From mboxrd@z Thu Jan 1 00:00:00 1970 From: Weijie Gao Date: Thu, 9 Jan 2020 16:40:44 +0800 Subject: [PATCH 10/16] mips: unconditionally enable u_boot_list section in u-boot-spl.lds In-Reply-To: <69d71ca0-96c4-5561-7fee-69886483ad4b@gmail.com> References: <1578452505-7007-1-git-send-email-weijie.gao@mediatek.com> <69d71ca0-96c4-5561-7fee-69886483ad4b@gmail.com> Message-ID: <1578559244.5535.21.camel@mcddlt001> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On Wed, 2020-01-08 at 17:11 +0100, Daniel Schwierzeck wrote: > > Am 08.01.20 um 04:01 schrieb Weijie Gao: > > u_boot_list is not only used by DM, but also by some SPL image load methods > > such as spl_nor.c. > > > > This patch removes CONFIG_SPL_DM surrounding the u_boot_list section to > > make sure SPL image load methods can be correctly built into u-boot without > > DM enabled. > > > > Signed-off-by: Weijie Gao > > --- > > arch/mips/cpu/u-boot-spl.lds | 2 -- > > 1 file changed, 2 deletions(-) > > > > diff --git a/arch/mips/cpu/u-boot-spl.lds b/arch/mips/cpu/u-boot-spl.lds > > index d08d6222c4..cd143ab168 100644 > > --- a/arch/mips/cpu/u-boot-spl.lds > > +++ b/arch/mips/cpu/u-boot-spl.lds > > @@ -27,12 +27,10 @@ SECTIONS > > *(SORT_BY_ALIGNMENT(.sdata*)) > > } > .spl_mem > > > > -#ifdef CONFIG_SPL_DM > > . = ALIGN(4); > > .u_boot_list : { > > KEEP(*(SORT(.u_boot_list*))); > > } > .spl_mem > > -#endif > > unconditionally including this is a bad idea on SoC's with a very > constrained SRAM space (e.g. CI20 board) or in SPL/TPL scenarios. > > One solution would be to replace #ifdef CONFIG_SPL_DM with something > like #ifdef CONFIG_MIPS_SPL_LIST and in Kconfig something like this: > > config MIPS_SPL_LIST > bool "..." > default y if (SPL_DM | SPL_NOR_SUPPORT) > default n > > > Alternatively with an inverted semantic: > > #ifndef CONFIG_MIPS_SPL_LIST_EXLCUDE > ... > #endif > > > config MIPS_SPL_LIST_EXLCUDE > bool "" > default n > > config ARCH_JZ47XX > ... > select MIPS_SPL_LIST_EXLCUDE > > > > > > . = ALIGN(4); > > __image_copy_end = .; > > > I think adding CONFIG_SPL_LOADER_SUPPORT is also OK: #if defined(CONFIG_SPL_DM) || defined(CONFIG_SPL_LOADER_SUPPORT) . = ALIGN(4); .u_boot_list : { KEEP(*(SORT(.u_boot_list*))); } > .spl_mem #endif In mach Kconfig: config SPL_LOADER_SUPPORT bool default y if SPL_NOR_SUPPORT default n