summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason Liu <r64343@freescale.com>2013-11-15 11:46:06 +0800
committerJason Liu <r64343@freescale.com>2013-11-15 11:46:06 +0800
commita929825706b5e1508b29d8ae2a2afb2fcbb2de19 (patch)
tree563d1b4f0342a8c492eead04f76f2063359ddbd0
parent424cb1a79e9f5ae4ede9350dfb5e10dc9680e90b (diff)
downloadu-boot-imx-a929825706b5e1508b29d8ae2a2afb2fcbb2de19.zip
u-boot-imx-a929825706b5e1508b29d8ae2a2afb2fcbb2de19.tar.gz
u-boot-imx-a929825706b5e1508b29d8ae2a2afb2fcbb2de19.tar.bz2
ENGR00285890 imx6:plugin: update the ROM_API_TABLE_BASE_ADDR for plugin code
i.MX6DQ TO1.5 and i.MX6DL/SOLO change the ROM_API_TABLE_BASE_ADDR from 0xc0 to 0xc4.Need update the plugin code to sync with this change. The change as the following for the new TO with i.MX6DQ, i.MX6DL/SOLO: For i.MX6DQ, if the TO >=1.5, will use the new ROM_API_TABLE_BASE_ADDR=0xc4 For i.MX6DL/S, if the TO >=1.2, will use the new ROM_API_TABLE_BASE_ADDR=0xc4 For the old TO, we will still use the 0xc0 to keep compatible. Signed-off-by: Jason Liu <r64343@freescale.com>
-rw-r--r--board/freescale/mx6q_arm2/flash_header.S25
1 files changed, 20 insertions, 5 deletions
diff --git a/board/freescale/mx6q_arm2/flash_header.S b/board/freescale/mx6q_arm2/flash_header.S
index 4b6a403..8a8fac8 100644
--- a/board/freescale/mx6q_arm2/flash_header.S
+++ b/board/freescale/mx6q_arm2/flash_header.S
@@ -928,8 +928,13 @@ MXC_DCD_ITEM(90, MMDC_P0_BASE_ADDR + 0x404, 0x00011006)
#else
-#define ROM_API_TABLE_BASE_ADDR (0x000000C0)
-#define ROM_API_HWCNFG_SETUP_OFFSET (0x08)
+#define ROM_API_TABLE_BASE_ADDR_LEGACY 0xC0
+#define ROM_API_TABLE_BASE_ADDR_MX6DQ_TO15 0xC4
+#define ROM_API_TABLE_BASE_ADDR_MX6DL_TO12 0xC4
+#define ROM_API_HWCNFG_SETUP_OFFSET 0x08
+#define ROM_VERSION_OFFSET 0x48
+#define ROM_VERSION_TO12 0x12
+#define ROM_VERSION_TO15 0x15
/*****************PLUGIN IN mode********************/
@@ -1483,7 +1488,12 @@ plugin_start:
* pu_irom_hwcnfg_setup is in 0x1fb5 ERIC : < what is the address in Rigel >
*/
before_calling_rom___pu_irom_hwcnfg_setup:
- ldr r3, =ROM_API_TABLE_BASE_ADDR
+ ldr r3, =ROM_VERSION_OFFSET
+ ldr r4, [r3]
+ ldr r3, =ROM_VERSION_TO12
+ cmp r4, r3
+ ldrge r3, =ROM_API_TABLE_BASE_ADDR_MX6DL_TO12
+ ldrlt r3, =ROM_API_TABLE_BASE_ADDR_LEGACY
ldr r4, [r3, #ROM_API_HWCNFG_SETUP_OFFSET]
blx r4
after_calling_rom___pu_irom_hwcnfg_setup:
@@ -1510,7 +1520,7 @@ COPY_SIZE: .word _end_of_copy - TEXT_BASE + CONFIG_FLASH_HEADER_OFFSET
BOOT_DATA: .word TEXT_BASE
.word _end_of_copy - TEXT_BASE + CONFIG_FLASH_HEADER_OFFSET
.word 0
-#else
+#else /* i.MX6Q PATH */
/*DDR clock:480MHz, ipg clock:40MHz, AHB clock:80MHz*/
#define CONFIG_IPG_40M_FR_PLL3
@@ -1774,7 +1784,12 @@ plugin_start:
* check the _pu_irom_api_table for the address
*/
before_calling_rom___pu_irom_hwcnfg_setup:
- ldr r3, =ROM_API_TABLE_BASE_ADDR
+ ldr r3, =ROM_VERSION_OFFSET
+ ldr r4, [r3]
+ ldr r3, =ROM_VERSION_TO15
+ cmp r4, r3
+ ldrge r3, =ROM_API_TABLE_BASE_ADDR_MX6DQ_TO15
+ ldrlt r3, =ROM_API_TABLE_BASE_ADDR_LEGACY
ldr r4, [r3, #ROM_API_HWCNFG_SETUP_OFFSET]
blx r4
after_calling_rom___pu_irom_hwcnfg_setup: