Message ID | 20180421151110.20423-5-mans@mansr.com |
---|---|
State | Accepted |
Commit | 07a8f79ee850b1e59371519f179d32fea171bbec |
Delegated to: | Stefano Babic |
Headers | show |
Series | [U-Boot,1/5] ARM: mxs: make lowlevel_init() weak | expand |
On 21/04/2018 17:11, Mans Rullgard wrote: > This allows using the full SPL framework on mxs devices. In this > mode, the u-boot.sb image loaded by the boot ROM contains only the > SPL which then loads U-Boot proper or a kernel in falcon mode. > > Signed-off-by: Mans Rullgard <mans@mansr.com> > --- > arch/arm/Kconfig | 2 +- > arch/arm/cpu/arm926ejs/mxs/Makefile | 4 ++-- > arch/arm/cpu/arm926ejs/mxs/mxsimage-spl.mx23.cfg | 5 +++++ > arch/arm/cpu/arm926ejs/mxs/mxsimage-spl.mx28.cfg | 6 ++++++ > arch/arm/cpu/arm926ejs/mxs/spl_boot.c | 2 ++ > include/configs/mxs.h | 2 ++ > 6 files changed, 18 insertions(+), 3 deletions(-) > create mode 100644 arch/arm/cpu/arm926ejs/mxs/mxsimage-spl.mx23.cfg > create mode 100644 arch/arm/cpu/arm926ejs/mxs/mxsimage-spl.mx28.cfg > > diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig > index 7212fc5afa72..0acdd162b4b3 100644 > --- a/arch/arm/Kconfig > +++ b/arch/arm/Kconfig > @@ -1352,7 +1352,7 @@ source "arch/arm/Kconfig.debug" > endmenu > > config SPL_LDSCRIPT > - default "arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds" if ARCH_MX23 || ARCH_MX28 > + default "arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds" if (ARCH_MX23 || ARCH_MX28) && !SPL_FRAMEWORK > default "arch/arm/cpu/arm1136/u-boot-spl.lds" if CPU_ARM1136 > default "arch/arm/cpu/armv8/u-boot-spl.lds" if ARM64 > > diff --git a/arch/arm/cpu/arm926ejs/mxs/Makefile b/arch/arm/cpu/arm926ejs/mxs/Makefile > index 71c2c0e7b40c..83b05acfa4eb 100644 > --- a/arch/arm/cpu/arm926ejs/mxs/Makefile > +++ b/arch/arm/cpu/arm926ejs/mxs/Makefile > @@ -14,8 +14,8 @@ obj-y += spl_boot.o spl_lradc_init.o spl_mem_init.o spl_power_init.o > endif > > # Specify the target for use in elftosb call > -MKIMAGE_TARGET-$(CONFIG_MX23) = mxsimage.mx23.cfg > -MKIMAGE_TARGET-$(CONFIG_MX28) = mxsimage.mx28.cfg > +MKIMAGE_TARGET-$(CONFIG_MX23) = mxsimage$(CONFIG_SPL_FRAMEWORK:%=-spl).mx23.cfg > +MKIMAGE_TARGET-$(CONFIG_MX28) = mxsimage$(CONFIG_SPL_FRAMEWORK:%=-spl).mx28.cfg > > # Generate HAB-capable IVT > # > diff --git a/arch/arm/cpu/arm926ejs/mxs/mxsimage-spl.mx23.cfg b/arch/arm/cpu/arm926ejs/mxs/mxsimage-spl.mx23.cfg > new file mode 100644 > index 000000000000..ab2183ed3795 > --- /dev/null > +++ b/arch/arm/cpu/arm926ejs/mxs/mxsimage-spl.mx23.cfg > @@ -0,0 +1,5 @@ > +DISPLAYPROGRESS > +SECTION 0x0 BOOTABLE > + TAG LAST > + LOAD 0x1000 spl/u-boot-spl.bin > + CALL 0x1000 0x0 > diff --git a/arch/arm/cpu/arm926ejs/mxs/mxsimage-spl.mx28.cfg b/arch/arm/cpu/arm926ejs/mxs/mxsimage-spl.mx28.cfg > new file mode 100644 > index 000000000000..0d95064ff7f1 > --- /dev/null > +++ b/arch/arm/cpu/arm926ejs/mxs/mxsimage-spl.mx28.cfg > @@ -0,0 +1,6 @@ > +DISPLAYPROGRESS > +SECTION 0x0 BOOTABLE > + TAG LAST > + LOAD 0x1000 spl/u-boot-spl.bin > + LOAD IVT 0x8000 0x1000 > + CALL HAB 0x8000 0x0 > diff --git a/arch/arm/cpu/arm926ejs/mxs/spl_boot.c b/arch/arm/cpu/arm926ejs/mxs/spl_boot.c > index 0c3925640dc9..bc39465fc4e0 100644 > --- a/arch/arm/cpu/arm926ejs/mxs/spl_boot.c > +++ b/arch/arm/cpu/arm926ejs/mxs/spl_boot.c > @@ -146,6 +146,7 @@ void mxs_common_spl_init(const uint32_t arg, const uint32_t *resptr, > } > } > > +#ifndef CONFIG_SPL_FRAMEWORK > /* Support aparatus */ > inline void board_init_f(unsigned long bootflag) > { > @@ -158,3 +159,4 @@ inline void board_init_r(gd_t *id, ulong dest_addr) > for (;;) > ; > } > +#endif > diff --git a/include/configs/mxs.h b/include/configs/mxs.h > index f07f81c8415c..0fe0770e13f0 100644 > --- a/include/configs/mxs.h > +++ b/include/configs/mxs.h > @@ -44,8 +44,10 @@ > /* Startup hooks */ > > /* SPL */ > +#ifndef CONFIG_SPL_FRAMEWORK > #define CONFIG_SPL_NO_CPU_SUPPORT_CODE > #define CONFIG_SPL_START_S_PATH "arch/arm/cpu/arm926ejs/mxs" > +#endif > > /* Memory sizes */ > #define CONFIG_SYS_MALLOC_LEN 0x00400000 /* 4 MB for malloc */ > Applied to u-boot-imx, thanks ! Best regards, Stefano Babic
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 7212fc5afa72..0acdd162b4b3 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -1352,7 +1352,7 @@ source "arch/arm/Kconfig.debug" endmenu config SPL_LDSCRIPT - default "arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds" if ARCH_MX23 || ARCH_MX28 + default "arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds" if (ARCH_MX23 || ARCH_MX28) && !SPL_FRAMEWORK default "arch/arm/cpu/arm1136/u-boot-spl.lds" if CPU_ARM1136 default "arch/arm/cpu/armv8/u-boot-spl.lds" if ARM64 diff --git a/arch/arm/cpu/arm926ejs/mxs/Makefile b/arch/arm/cpu/arm926ejs/mxs/Makefile index 71c2c0e7b40c..83b05acfa4eb 100644 --- a/arch/arm/cpu/arm926ejs/mxs/Makefile +++ b/arch/arm/cpu/arm926ejs/mxs/Makefile @@ -14,8 +14,8 @@ obj-y += spl_boot.o spl_lradc_init.o spl_mem_init.o spl_power_init.o endif # Specify the target for use in elftosb call -MKIMAGE_TARGET-$(CONFIG_MX23) = mxsimage.mx23.cfg -MKIMAGE_TARGET-$(CONFIG_MX28) = mxsimage.mx28.cfg +MKIMAGE_TARGET-$(CONFIG_MX23) = mxsimage$(CONFIG_SPL_FRAMEWORK:%=-spl).mx23.cfg +MKIMAGE_TARGET-$(CONFIG_MX28) = mxsimage$(CONFIG_SPL_FRAMEWORK:%=-spl).mx28.cfg # Generate HAB-capable IVT # diff --git a/arch/arm/cpu/arm926ejs/mxs/mxsimage-spl.mx23.cfg b/arch/arm/cpu/arm926ejs/mxs/mxsimage-spl.mx23.cfg new file mode 100644 index 000000000000..ab2183ed3795 --- /dev/null +++ b/arch/arm/cpu/arm926ejs/mxs/mxsimage-spl.mx23.cfg @@ -0,0 +1,5 @@ +DISPLAYPROGRESS +SECTION 0x0 BOOTABLE + TAG LAST + LOAD 0x1000 spl/u-boot-spl.bin + CALL 0x1000 0x0 diff --git a/arch/arm/cpu/arm926ejs/mxs/mxsimage-spl.mx28.cfg b/arch/arm/cpu/arm926ejs/mxs/mxsimage-spl.mx28.cfg new file mode 100644 index 000000000000..0d95064ff7f1 --- /dev/null +++ b/arch/arm/cpu/arm926ejs/mxs/mxsimage-spl.mx28.cfg @@ -0,0 +1,6 @@ +DISPLAYPROGRESS +SECTION 0x0 BOOTABLE + TAG LAST + LOAD 0x1000 spl/u-boot-spl.bin + LOAD IVT 0x8000 0x1000 + CALL HAB 0x8000 0x0 diff --git a/arch/arm/cpu/arm926ejs/mxs/spl_boot.c b/arch/arm/cpu/arm926ejs/mxs/spl_boot.c index 0c3925640dc9..bc39465fc4e0 100644 --- a/arch/arm/cpu/arm926ejs/mxs/spl_boot.c +++ b/arch/arm/cpu/arm926ejs/mxs/spl_boot.c @@ -146,6 +146,7 @@ void mxs_common_spl_init(const uint32_t arg, const uint32_t *resptr, } } +#ifndef CONFIG_SPL_FRAMEWORK /* Support aparatus */ inline void board_init_f(unsigned long bootflag) { @@ -158,3 +159,4 @@ inline void board_init_r(gd_t *id, ulong dest_addr) for (;;) ; } +#endif diff --git a/include/configs/mxs.h b/include/configs/mxs.h index f07f81c8415c..0fe0770e13f0 100644 --- a/include/configs/mxs.h +++ b/include/configs/mxs.h @@ -44,8 +44,10 @@ /* Startup hooks */ /* SPL */ +#ifndef CONFIG_SPL_FRAMEWORK #define CONFIG_SPL_NO_CPU_SUPPORT_CODE #define CONFIG_SPL_START_S_PATH "arch/arm/cpu/arm926ejs/mxs" +#endif /* Memory sizes */ #define CONFIG_SYS_MALLOC_LEN 0x00400000 /* 4 MB for malloc */
This allows using the full SPL framework on mxs devices. In this mode, the u-boot.sb image loaded by the boot ROM contains only the SPL which then loads U-Boot proper or a kernel in falcon mode. Signed-off-by: Mans Rullgard <mans@mansr.com> --- arch/arm/Kconfig | 2 +- arch/arm/cpu/arm926ejs/mxs/Makefile | 4 ++-- arch/arm/cpu/arm926ejs/mxs/mxsimage-spl.mx23.cfg | 5 +++++ arch/arm/cpu/arm926ejs/mxs/mxsimage-spl.mx28.cfg | 6 ++++++ arch/arm/cpu/arm926ejs/mxs/spl_boot.c | 2 ++ include/configs/mxs.h | 2 ++ 6 files changed, 18 insertions(+), 3 deletions(-) create mode 100644 arch/arm/cpu/arm926ejs/mxs/mxsimage-spl.mx23.cfg create mode 100644 arch/arm/cpu/arm926ejs/mxs/mxsimage-spl.mx28.cfg