mx6_common: Fix LOADADDR and SYS_TEXT_BASE for MX6SL and MX6SX
authorFabio Estevam <fabio.estevam at freescale.com>
Thu, 28 May 2015 15:33:34 +0000 (12:33 -0300)
committerStefano Babic <sbabic@denx.de>
Mon, 8 Jun 2015 06:35:59 +0000 (08:35 +0200)
Commit 8183058188cd2d942 ("imx6: centralise common boot options in
mx6_common.h") broke boot on mx6sl and mx6sx by assuming that all mx6
SoCs use the same LOADADDR/SYS_TEXT_BASE range, which is not correct.

DDR on mx6sx/mx6sl starts at 0x80000000.

Adjust LOADADDR/SYS_TEXT_BASE to the proper values for mx6sx/mx6sl,
so that these SoCs can boot again.

Also, TQMA6 requires a custom CONFIG_SYS_TEXT_BASE value, so move
its setting prior to the inclusion of mx6_common.h.

Signed-off-by: Fabio Estevam <fabio.estevam at freescale.com>
include/configs/mx6_common.h
include/configs/tqma6.h

index 233c6d2e88f46368a699bb028bf481d3c9831102..50370e1366c141fbc698d6f8bf92f4455349544e 100644 (file)
 #define CONFIG_REVISION_TAG
 
 /* Boot options */
+#if (defined(CONFIG_MX6SX) || defined(CONFIG_MX6SL))
+#define CONFIG_LOADADDR                0x82000000
+#ifndef CONFIG_SYS_TEXT_BASE
+#define CONFIG_SYS_TEXT_BASE   0x87800000
+#endif
+#else
 #define CONFIG_LOADADDR                0x12000000
-#define CONFIG_SYS_LOAD_ADDR   CONFIG_LOADADDR
 #ifndef CONFIG_SYS_TEXT_BASE
 #define CONFIG_SYS_TEXT_BASE   0x17800000
 #endif
+#endif
+#define CONFIG_SYS_LOAD_ADDR   CONFIG_LOADADDR
+
 #ifndef CONFIG_BOOTDELAY
 #define CONFIG_BOOTDELAY       3
 #endif
index a09118453a1c90ab95eb0062e3f2c1e5ce0052d1..e46c58075e5c0c5dd7caef16fc806dff12b4ff9a 100644 (file)
 
 /* #endif */
 
+/* place code in last 4 MiB of RAM */
+#if defined(CONFIG_MX6DL) || defined(CONFIG_MX6S)
+#define CONFIG_SYS_TEXT_BASE           0x2fc00000
+#elif defined(CONFIG_MX6Q) || defined(CONFIG_MX6D)
+#define CONFIG_SYS_TEXT_BASE           0x4fc00000
+#endif
+
 #include "mx6_common.h"
 
 #if defined(CONFIG_MX6DL) || defined(CONFIG_MX6S)
 #define CONFIG_CMD_ITEST
 #define CONFIG_CMD_SETEXPR
 
-/* place code in last 4 MiB of RAM */
-#if defined(CONFIG_MX6DL) || defined(CONFIG_MX6S)
-#define CONFIG_SYS_TEXT_BASE           0x2fc00000
-#elif defined(CONFIG_MX6Q) || defined(CONFIG_MX6D)
-#define CONFIG_SYS_TEXT_BASE           0x4fc00000
-#endif
-
 #define CONFIG_ENV_SIZE                        (SZ_8K)
 /* Size of malloc() pool */
 #define CONFIG_SYS_MALLOC_LEN          (CONFIG_ENV_SIZE + 2 * SZ_1M)