[U-Boot] [PATCH 1/2] imx8: Jump from alias to OCRAM address at SPL init
Oleksandr Suvorov
oleksandr.suvorov at toradex.com
Fri Jul 12 11:20:00 UTC 2019
On Fri, 12 Jul 2019 at 12:34, Ye Li <ye.li at 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 at nxp.com>
Reviewed-by: Oleksandr Suvorov <oleksandr.suvorov at 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)
More information about the U-Boot
mailing list