* [U-Boot] [PATCH 1/2] imx8: Jump from alias to OCRAM address at SPL init
@ 2019-07-12 9:33 Ye Li
2019-07-12 9:33 ` [U-Boot] [PATCH 2/2] imx8qm/qxp: Set SPL TEXT base to OCRAM base Ye Li
2019-07-12 11:20 ` [U-Boot] [PATCH 1/2] imx8: Jump from alias to OCRAM address at SPL init Oleksandr Suvorov
0 siblings, 2 replies; 5+ messages in thread
From: Ye Li @ 2019-07-12 9:33 UTC (permalink / raw)
To: u-boot
When running SPL on iMX8, the A core starts at address 0
which is a alias to OCRAM 0x100000.
The alias only map first 96KB of OCRAM, so this require the
SPL size can't beyond 96KB. But when using SPL DM, the size increase
significantly and may exceed 96KB.
So to fix the problem, we will change SPL linker address to OCRAM
address 0x100000. And then jump to the absolute address not the PC relative
address for entering OCRAM.
Signed-off-by: Ye Li <ye.li@nxp.com>
---
arch/arm/Kconfig | 1 +
arch/arm/include/asm/arch-imx8/boot0.h | 21 +++++++++++++++++++++
2 files changed, 22 insertions(+)
create mode 100644 arch/arm/include/asm/arch-imx8/boot0.h
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 01ff57c..6ea21b7 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -755,6 +755,7 @@ config ARCH_IMX8
select ARM64
select DM
select OF_CONTROL
+ select ENABLE_ARM_SOC_BOOT0_HOOK
config ARCH_IMX8M
bool "NXP i.MX8M platform"
diff --git a/arch/arm/include/asm/arch-imx8/boot0.h b/arch/arm/include/asm/arch-imx8/boot0.h
new file mode 100644
index 0000000..5ce781a
--- /dev/null
+++ b/arch/arm/include/asm/arch-imx8/boot0.h
@@ -0,0 +1,21 @@
+/* SPDX-License-Identifier: GPL-2.0+ */
+/*
+ * Copyright 2019 NXP
+ */
+
+#if defined(CONFIG_SPL_BUILD)
+ /*
+ * We use absolute address not PC relative address to jump.
+ * When running SPL on iMX8, the A core starts at address 0, a alias to OCRAM 0x100000,
+ * our linker address for SPL is from 0x100000. So using absolute address can jump to
+ * the OCRAM address from the alias.
+ * The alias only map first 96KB of OCRAM, so this require the SPL size can't beyond 96KB.
+ * But when using SPL DM, the size increase significantly and may exceed 96KB.
+ * That's why we have to jump to OCRAM.
+ */
+
+ ldr x0, =reset
+ br x0
+#else
+ b reset
+#endif
--
2.7.4
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [U-Boot] [PATCH 2/2] imx8qm/qxp: Set SPL TEXT base to OCRAM base
2019-07-12 9:33 [U-Boot] [PATCH 1/2] imx8: Jump from alias to OCRAM address at SPL init Ye Li
@ 2019-07-12 9:33 ` Ye Li
2019-07-12 11:11 ` Oleksandr Suvorov
2019-07-12 11:20 ` [U-Boot] [PATCH 1/2] imx8: Jump from alias to OCRAM address at SPL init Oleksandr Suvorov
1 sibling, 1 reply; 5+ messages in thread
From: Ye Li @ 2019-07-12 9:33 UTC (permalink / raw)
To: u-boot
Modify the SPL TEXT base from OCRAM alias to OCRAM base 0x100000, so
we can use full OCRAM not limit to 96KB
Signed-off-by: Ye Li <ye.li@nxp.com>
---
configs/imx8qm_mek_defconfig | 1 +
configs/imx8qxp_mek_defconfig | 1 +
include/configs/imx8qm_mek.h | 1 -
3 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/configs/imx8qm_mek_defconfig b/configs/imx8qm_mek_defconfig
index a4d2619..544a5d9 100644
--- a/configs/imx8qm_mek_defconfig
+++ b/configs/imx8qm_mek_defconfig
@@ -3,6 +3,7 @@ CONFIG_SPL_SYS_ICACHE_OFF=y
CONFIG_SPL_SYS_DCACHE_OFF=y
CONFIG_ARCH_IMX8=y
CONFIG_SYS_TEXT_BASE=0x80020000
+CONFIG_SPL_TEXT_BASE=0x100000
CONFIG_SPL_GPIO_SUPPORT=y
CONFIG_SPL_LIBCOMMON_SUPPORT=y
CONFIG_SPL_LIBGENERIC_SUPPORT=y
diff --git a/configs/imx8qxp_mek_defconfig b/configs/imx8qxp_mek_defconfig
index 92927e3..73d6d13 100644
--- a/configs/imx8qxp_mek_defconfig
+++ b/configs/imx8qxp_mek_defconfig
@@ -3,6 +3,7 @@ CONFIG_SPL_SYS_ICACHE_OFF=y
CONFIG_SPL_SYS_DCACHE_OFF=y
CONFIG_ARCH_IMX8=y
CONFIG_SYS_TEXT_BASE=0x80020000
+CONFIG_SPL_TEXT_BASE=0x100000
CONFIG_SPL_GPIO_SUPPORT=y
CONFIG_SPL_LIBCOMMON_SUPPORT=y
CONFIG_SPL_LIBGENERIC_SUPPORT=y
diff --git a/include/configs/imx8qm_mek.h b/include/configs/imx8qm_mek.h
index d06ed61..148a4ff 100644
--- a/include/configs/imx8qm_mek.h
+++ b/include/configs/imx8qm_mek.h
@@ -10,7 +10,6 @@
#include <asm/arch/imx-regs.h>
#ifdef CONFIG_SPL_BUILD
-#define CONFIG_SPL_TEXT_BASE 0x0
#define CONFIG_SPL_MAX_SIZE (124 * 1024)
#define CONFIG_SYS_MONITOR_LEN (1024 * 1024)
#define CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_SECTOR
--
2.7.4
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [U-Boot] [PATCH 2/2] imx8qm/qxp: Set SPL TEXT base to OCRAM base
2019-07-12 9:33 ` [U-Boot] [PATCH 2/2] imx8qm/qxp: Set SPL TEXT base to OCRAM base Ye Li
@ 2019-07-12 11:11 ` Oleksandr Suvorov
0 siblings, 0 replies; 5+ messages in thread
From: Oleksandr Suvorov @ 2019-07-12 11:11 UTC (permalink / raw)
To: u-boot
On Fri, 12 Jul 2019 at 12:34, Ye Li <ye.li@nxp.com> wrote:
>
> Modify the SPL TEXT base from OCRAM alias to OCRAM base 0x100000, so
> we can use full OCRAM not limit to 96KB
>
> Signed-off-by: Ye Li <ye.li@nxp.com>
Reviewed-by: Oleksandr Suvorov <oleksandr.suvorov@toradex.com>
> ---
> configs/imx8qm_mek_defconfig | 1 +
> configs/imx8qxp_mek_defconfig | 1 +
> include/configs/imx8qm_mek.h | 1 -
> 3 files changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/configs/imx8qm_mek_defconfig b/configs/imx8qm_mek_defconfig
> index a4d2619..544a5d9 100644
> --- a/configs/imx8qm_mek_defconfig
> +++ b/configs/imx8qm_mek_defconfig
> @@ -3,6 +3,7 @@ CONFIG_SPL_SYS_ICACHE_OFF=y
> CONFIG_SPL_SYS_DCACHE_OFF=y
> CONFIG_ARCH_IMX8=y
> CONFIG_SYS_TEXT_BASE=0x80020000
> +CONFIG_SPL_TEXT_BASE=0x100000
> CONFIG_SPL_GPIO_SUPPORT=y
> CONFIG_SPL_LIBCOMMON_SUPPORT=y
> CONFIG_SPL_LIBGENERIC_SUPPORT=y
> diff --git a/configs/imx8qxp_mek_defconfig b/configs/imx8qxp_mek_defconfig
> index 92927e3..73d6d13 100644
> --- a/configs/imx8qxp_mek_defconfig
> +++ b/configs/imx8qxp_mek_defconfig
> @@ -3,6 +3,7 @@ CONFIG_SPL_SYS_ICACHE_OFF=y
> CONFIG_SPL_SYS_DCACHE_OFF=y
> CONFIG_ARCH_IMX8=y
> CONFIG_SYS_TEXT_BASE=0x80020000
> +CONFIG_SPL_TEXT_BASE=0x100000
> CONFIG_SPL_GPIO_SUPPORT=y
> CONFIG_SPL_LIBCOMMON_SUPPORT=y
> CONFIG_SPL_LIBGENERIC_SUPPORT=y
> diff --git a/include/configs/imx8qm_mek.h b/include/configs/imx8qm_mek.h
> index d06ed61..148a4ff 100644
> --- a/include/configs/imx8qm_mek.h
> +++ b/include/configs/imx8qm_mek.h
> @@ -10,7 +10,6 @@
> #include <asm/arch/imx-regs.h>
>
> #ifdef CONFIG_SPL_BUILD
> -#define CONFIG_SPL_TEXT_BASE 0x0
> #define CONFIG_SPL_MAX_SIZE (124 * 1024)
> #define CONFIG_SYS_MONITOR_LEN (1024 * 1024)
> #define CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_SECTOR
> --
> 2.7.4
>
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> https://lists.denx.de/listinfo/u-boot
--
Best regards
Oleksandr Suvorov
cryosay at gmail.com
^ permalink raw reply [flat|nested] 5+ messages in thread
* [U-Boot] [PATCH 1/2] imx8: Jump from alias to OCRAM address at SPL init
2019-07-12 9:33 [U-Boot] [PATCH 1/2] imx8: Jump from alias to OCRAM address at SPL init Ye Li
2019-07-12 9:33 ` [U-Boot] [PATCH 2/2] imx8qm/qxp: Set SPL TEXT base to OCRAM base Ye Li
@ 2019-07-12 11:20 ` Oleksandr Suvorov
1 sibling, 0 replies; 5+ messages in thread
From: Oleksandr Suvorov @ 2019-07-12 11:20 UTC (permalink / raw)
To: u-boot
On Fri, 12 Jul 2019 at 12:34, Ye Li <ye.li@nxp.com> wrote:
>
> When running SPL on iMX8, the A core starts at address 0
> which is a alias to OCRAM 0x100000.
> The alias only map first 96KB of OCRAM, so this require the
> SPL size can't beyond 96KB. But when using SPL DM, the size increase
> significantly and may exceed 96KB.
> So to fix the problem, we will change SPL linker address to OCRAM
> address 0x100000. And then jump to the absolute address not the PC relative
> address for entering OCRAM.
>
> Signed-off-by: Ye Li <ye.li@nxp.com>
Reviewed-by: Oleksandr Suvorov <oleksandr.suvorov@toradex.com>
> ---
> arch/arm/Kconfig | 1 +
> arch/arm/include/asm/arch-imx8/boot0.h | 21 +++++++++++++++++++++
> 2 files changed, 22 insertions(+)
> create mode 100644 arch/arm/include/asm/arch-imx8/boot0.h
>
> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
> index 01ff57c..6ea21b7 100644
> --- a/arch/arm/Kconfig
> +++ b/arch/arm/Kconfig
> @@ -755,6 +755,7 @@ config ARCH_IMX8
> select ARM64
> select DM
> select OF_CONTROL
> + select ENABLE_ARM_SOC_BOOT0_HOOK
>
> config ARCH_IMX8M
> bool "NXP i.MX8M platform"
> diff --git a/arch/arm/include/asm/arch-imx8/boot0.h b/arch/arm/include/asm/arch-imx8/boot0.h
> new file mode 100644
> index 0000000..5ce781a
> --- /dev/null
> +++ b/arch/arm/include/asm/arch-imx8/boot0.h
> @@ -0,0 +1,21 @@
> +/* SPDX-License-Identifier: GPL-2.0+ */
> +/*
> + * Copyright 2019 NXP
> + */
> +
> +#if defined(CONFIG_SPL_BUILD)
> + /*
> + * We use absolute address not PC relative address to jump.
> + * When running SPL on iMX8, the A core starts at address 0, a alias to OCRAM 0x100000,
> + * our linker address for SPL is from 0x100000. So using absolute address can jump to
> + * the OCRAM address from the alias.
> + * The alias only map first 96KB of OCRAM, so this require the SPL size can't beyond 96KB.
> + * But when using SPL DM, the size increase significantly and may exceed 96KB.
> + * That's why we have to jump to OCRAM.
> + */
> +
> + ldr x0, =reset
> + br x0
> +#else
> + b reset
> +#endif
> --
> 2.7.4
>
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> https://lists.denx.de/listinfo/u-boot
--
Best regards
Oleksandr Suvorov
Toradex AG
Altsagenstrasse 5 | 6048 Horw/Luzern | Switzerland | T: +41 41 500
4800 (main line)
^ permalink raw reply [flat|nested] 5+ messages in thread
* [U-Boot] [PATCH 2/2] imx8qm/qxp: Set SPL TEXT base to OCRAM base
@ 2019-10-14 12:40 sbabic at denx.de
0 siblings, 0 replies; 5+ messages in thread
From: sbabic at denx.de @ 2019-10-14 12:40 UTC (permalink / raw)
To: u-boot
> Modify the SPL TEXT base from OCRAM alias to OCRAM base 0x100000, so
> we can use full OCRAM not limit to 96KB
> Signed-off-by: Ye Li <ye.li@nxp.com>
> Reviewed-by: Oleksandr Suvorov <oleksandr.suvorov@toradex.com>
Applied to u-boot-imx, master, thanks !
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
=====================================================================
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2019-10-14 12:40 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-07-12 9:33 [U-Boot] [PATCH 1/2] imx8: Jump from alias to OCRAM address at SPL init Ye Li
2019-07-12 9:33 ` [U-Boot] [PATCH 2/2] imx8qm/qxp: Set SPL TEXT base to OCRAM base Ye Li
2019-07-12 11:11 ` Oleksandr Suvorov
2019-07-12 11:20 ` [U-Boot] [PATCH 1/2] imx8: Jump from alias to OCRAM address at SPL init Oleksandr Suvorov
2019-10-14 12:40 [U-Boot] [PATCH 2/2] imx8qm/qxp: Set SPL TEXT base to OCRAM base sbabic at denx.de
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.