[U-Boot] [PATCH v3] mx6_common: Fix LOADADDR and SYS_TEXT_BASE for MX6SL and MX6SX

Fabio Estevam fabio.estevam at freescale.com
Thu May 28 17:33:34 CEST 2015


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>
---
Build tested only

Changes since v2:
- Move the custom CONFIG_SYS_TEXT_BASE from tqma6.h prior to including
mx6_common.h

 include/configs/mx6_common.h | 10 +++++++++-
 include/configs/tqma6.h      | 14 +++++++-------
 2 files changed, 16 insertions(+), 8 deletions(-)

diff --git a/include/configs/mx6_common.h b/include/configs/mx6_common.h
index 233c6d2..50370e1 100644
--- a/include/configs/mx6_common.h
+++ b/include/configs/mx6_common.h
@@ -53,11 +53,19 @@
 #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
diff --git a/include/configs/tqma6.h b/include/configs/tqma6.h
index 4c93c9b..9c36096 100644
--- a/include/configs/tqma6.h
+++ b/include/configs/tqma6.h
@@ -22,6 +22,13 @@
 
 /* #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)
@@ -118,13 +125,6 @@
 #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)
-- 
1.9.1



More information about the U-Boot mailing list