[U-Boot] [PATCH v2] mx6_common: Fix LOADADDR and SYS_TEXT_BASE for MX6SL and MX6SX
Stefano Babic
sbabic at denx.de
Thu May 28 16:42:09 CEST 2015
Hi Fabio,
On 28/05/2015 16:13, Fabio Estevam wrote:
> 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 to mx6_common.h.
>
> Signed-off-by: Fabio Estevam <fabio.estevam at freescale.com>
> ---
> Build tested only.
>
> Changes since v1:
> - Fix build warnings in tqma6
>
> include/configs/mx6_common.h | 20 +++++++++++++++++++-
> include/configs/tqma6.h | 7 -------
> 2 files changed, 19 insertions(+), 8 deletions(-)
>
> diff --git a/include/configs/mx6_common.h b/include/configs/mx6_common.h
> index 233c6d2..e69c0dd 100644
> --- a/include/configs/mx6_common.h
> +++ b/include/configs/mx6_common.h
> @@ -53,11 +53,29 @@
> #define CONFIG_REVISION_TAG
>
> /* Boot options */
> +
> +/* place code in last 4 MiB of RAM on TQMA6 */
> +#if defined(CONFIG_TARGET_TQMA6)
If we allow to have board specific #ifdef inside mx6_common, I am afraid
we will get in ashort time the same mess we tried to order now.
What about moving the include in tqma6.h in a later point, I mean, after
CONFIG_SYS_TEXT_BASE is already set ?
mx6_common.h is already well protected and should not redefine something
if it is already set.
diff --git a/include/configs/tqma6.h b/include/configs/tqma6.h
index 4c93c9b..4c6ce3e 100644
--- a/include/configs/tqma6.h
+++ b/include/configs/tqma6.h
@@ -22,8 +22,6 @@
/* #endif */
-#include "mx6_common.h"
-
#if defined(CONFIG_MX6DL) || defined(CONFIG_MX6S)
#define PHYS_SDRAM_SIZE (512u * SZ_1M)
#elif defined(CONFIG_MX6Q) || defined(CONFIG_MX6D)
@@ -398,6 +396,9 @@
*
* Now include the baseboard specific configuration
*/
+
+#include "mx6_common.h"
+
#ifdef CONFIG_MBA6
#include "tqma6_mba6.h"
:
> +#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
> +#endif
> +
> +#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..f1bf095 100644
> --- a/include/configs/tqma6.h
> +++ b/include/configs/tqma6.h
> @@ -118,13 +118,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)
>
Best regards,
Stefano Babic
--
=====================================================================
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
=====================================================================
More information about the U-Boot
mailing list