Skip to contentSkip to conversation

mx6_common: Fix LOADADDR and SYS_TEXT_BASE for MX6SL and MX6SX

PATCH New Fabio Estevam 4 participants 5 messages May 28, 2015 – Jun 8, 2015

lore
Share & tools
lore
#0 lore raw

PATCH v3 1/1 mx6_common: Fix LOADADDR and SYS_TEXT_BASE for MX6SL and MX6SX

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.

---
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(-)
include/configs/mx6_common.h +9 -1
index 233c6d2..50370e1 100644
@@ -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
include/configs/tqma6.h +7 -7
index 4c93c9b..9c36096 100644
@@ -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)
Signature · 1 line
1.9.1
#1 lore raw

PATCH v3 1/1 mx6_common: Fix LOADADDR and SYS_TEXT_BASE for MX6SL and MX6SX

On 05/28/2015 05:33 PM, Fabio Estevam wrote:
..

Quoted 1 line

Build tested only

Hi Fabio,

Thank you for that fix. I did not realize you had a patch "on-going" when sending mine; sorry. Your solution is cleaner and more generic than mine anyway :)

This works fine for me and does indeed repair the boot on i.MX6 SoloX Sabre SD.

Best regards,

V.

#2 lore raw

PATCH v3 1/1 mx6_common: Fix LOADADDR and SYS_TEXT_BASE for MX6SL and MX6SX

Hi Stefano,

Quoted 6 lines · Vincent Stehl?

On 05/28/2015 05:33 PM, Fabio Estevam wrote:
..

Quoted 1 line

Build tested only

Hi Fabio,

Quoted 8 lines

Thank you for that fix. I did not realize you had a patch "on-going" when sending mine; sorry. Your solution is cleaner and more generic than mine anyway :)

This works fine for me and does indeed repair the boot on i.MX6 SoloX Sabre SD.

Can this one be applied so that we can have mx6solo and mx6solox booting again?

Thanks,

Fabio Estevam

#3 lore raw

PATCH v3 1/1 mx6_common: Fix LOADADDR and SYS_TEXT_BASE for MX6SL and MX6SX

Forgot to add Stefano on Cc.

Quoted 24 lines · Fabio Estevam

Hi Stefano,

Quoted 6 lines · Vincent Stehl?

On 05/28/2015 05:33 PM, Fabio Estevam wrote:
..

Quoted 1 line

Build tested only

Hi Fabio,

Quoted 8 lines

Thank you for that fix. I did not realize you had a patch "on-going" when sending mine; sorry. Your solution is cleaner and more generic than mine anyway :)

This works fine for me and does indeed repair the boot on i.MX6 SoloX Sabre SD.

Can this one be applied so that we can have mx6solo and mx6solox booting again?

Thanks,

Fabio Estevam

#4 lore raw

PATCH v3 1/1 mx6_common: Fix LOADADDR and SYS_TEXT_BASE for MX6SL and MX6SX

In reply to Fabio Estevam
Quoted 72 lines · Fabio Estevam

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.

---
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(-)
include/configs/mx6_common.h +9 -1
index 233c6d2..50370e1 100644
@@ -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
include/configs/tqma6.h +7 -0
index 4c93c9b..9c36096 100644
@@ -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
 

include/configs/tqma6.h line 130

Quoted 10 lines
include/configs/tqma6.h +0 -7
-/* 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)

Applied to u-boot-imx, thanks !

Best regards,
Stefano Babic

Signature · 5 lines
=====================================================================
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de
=====================================================================