[PATCH 1/2] ARM: at91: Enable SPL_SEPARATE_BSS by default

According to the linker script for both armv7 and arm926ejs based SoC, BSS section was all the time separated for SPL but this symbol was only enabled on some boards. However, it is necessary to have it enabled for OF_SEPARATE configuration where DTB is appended to u-boot with DTB.
Signed-off-by: Gregory CLEMENT gregory.clement@bootlin.com --- arch/arm/Kconfig | 1 + 1 file changed, 1 insertion(+)
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index f9dab073ea..e558024652 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -492,6 +492,7 @@ choice config ARCH_AT91 bool "Atmel AT91" select SPL_BOARD_INIT if SPL && !TARGET_SMARTWEB + select SPL_SEPARATE_BSS if SPL
config TARGET_EDB93XX bool "Support edb93xx"

Now that CONFIG_SPL_SEPARATE_BSS is selected for all the AT91 based boards, cleanups the defconfigs by removing it.
Signed-off-by: Gregory CLEMENT gregory.clement@bootlin.com --- configs/gardena-smart-gateway-at91sam_defconfig | 1 - configs/sama5d27_som1_ek_mmc1_defconfig | 1 - configs/sama5d27_som1_ek_mmc_defconfig | 1 - configs/sama5d27_som1_ek_qspiflash_defconfig | 1 - configs/sama5d27_wlsom1_ek_mmc_defconfig | 1 - configs/sama5d27_wlsom1_ek_qspiflash_defconfig | 1 - configs/sama5d2_icp_mmc_defconfig | 1 - configs/sama5d2_xplained_emmc_defconfig | 1 - configs/sama5d2_xplained_mmc_defconfig | 1 - configs/sama5d2_xplained_qspiflash_defconfig | 1 - configs/sama5d3_xplained_mmc_defconfig | 1 - configs/sama5d3xek_mmc_defconfig | 1 - configs/sama5d4_xplained_mmc_defconfig | 1 - configs/sama5d4ek_mmc_defconfig | 1 - 14 files changed, 14 deletions(-)
diff --git a/configs/gardena-smart-gateway-at91sam_defconfig b/configs/gardena-smart-gateway-at91sam_defconfig index 455b41553a..891b301148 100644 --- a/configs/gardena-smart-gateway-at91sam_defconfig +++ b/configs/gardena-smart-gateway-at91sam_defconfig @@ -25,7 +25,6 @@ CONFIG_BOOTARGS="console=ttyS0,115200 earlyprintk mtdparts=atmel_nand:256k(boots CONFIG_SYS_CONSOLE_IS_IN_ENV=y CONFIG_SYS_CONSOLE_INFO_QUIET=y CONFIG_SPL_SYS_MALLOC_SIMPLE=y -CONFIG_SPL_SEPARATE_BSS=y # CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_SECTOR is not set CONFIG_SPL_NAND_SUPPORT=y CONFIG_HUSH_PARSER=y diff --git a/configs/sama5d27_som1_ek_mmc1_defconfig b/configs/sama5d27_som1_ek_mmc1_defconfig index fd5c3da8ca..22b75eb6ed 100644 --- a/configs/sama5d27_som1_ek_mmc1_defconfig +++ b/configs/sama5d27_som1_ek_mmc1_defconfig @@ -28,7 +28,6 @@ CONFIG_USE_BOOTARGS=y CONFIG_BOOTARGS="console=ttyS0,115200 earlyprintk root=/dev/mmcblk1p2 rw rootwait" CONFIG_MISC_INIT_R=y # CONFIG_DISPLAY_BOARDINFO is not set -CONFIG_SPL_SEPARATE_BSS=y CONFIG_HUSH_PARSER=y CONFIG_CMD_BOOTZ=y # CONFIG_CMD_FLASH is not set diff --git a/configs/sama5d27_som1_ek_mmc_defconfig b/configs/sama5d27_som1_ek_mmc_defconfig index eabdff31de..3cf7ef0ea1 100644 --- a/configs/sama5d27_som1_ek_mmc_defconfig +++ b/configs/sama5d27_som1_ek_mmc_defconfig @@ -29,7 +29,6 @@ CONFIG_USE_BOOTARGS=y CONFIG_BOOTARGS="console=ttyS0,115200 earlyprintk root=/dev/mmcblk0p2 rw rootwait" CONFIG_MISC_INIT_R=y # CONFIG_DISPLAY_BOARDINFO is not set -CONFIG_SPL_SEPARATE_BSS=y CONFIG_HUSH_PARSER=y CONFIG_CMD_BOOTZ=y # CONFIG_CMD_FLASH is not set diff --git a/configs/sama5d27_som1_ek_qspiflash_defconfig b/configs/sama5d27_som1_ek_qspiflash_defconfig index 56cb0c58e6..6dcb297123 100644 --- a/configs/sama5d27_som1_ek_qspiflash_defconfig +++ b/configs/sama5d27_som1_ek_qspiflash_defconfig @@ -29,7 +29,6 @@ CONFIG_USE_BOOTARGS=y CONFIG_BOOTARGS="console=ttyS0,115200 earlyprintk root=/dev/mmcblk0p2 rw rootwait" CONFIG_MISC_INIT_R=y # CONFIG_DISPLAY_BOARDINFO is not set -CONFIG_SPL_SEPARATE_BSS=y CONFIG_HUSH_PARSER=y CONFIG_CMD_BOOTZ=y # CONFIG_CMD_FLASH is not set diff --git a/configs/sama5d27_wlsom1_ek_mmc_defconfig b/configs/sama5d27_wlsom1_ek_mmc_defconfig index 6b55e9585a..908b0942ff 100644 --- a/configs/sama5d27_wlsom1_ek_mmc_defconfig +++ b/configs/sama5d27_wlsom1_ek_mmc_defconfig @@ -27,7 +27,6 @@ CONFIG_USE_BOOTARGS=y CONFIG_MISC_INIT_R=y # CONFIG_DISPLAY_BOARDINFO is not set CONFIG_DISPLAY_BOARDINFO_LATE=y -CONFIG_SPL_SEPARATE_BSS=y CONFIG_SPL_DISPLAY_PRINT=y # CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_SECTOR is not set CONFIG_SPL_AT91_MCK_BYPASS=y diff --git a/configs/sama5d27_wlsom1_ek_qspiflash_defconfig b/configs/sama5d27_wlsom1_ek_qspiflash_defconfig index 74fe6d42cb..9e54fbd583 100644 --- a/configs/sama5d27_wlsom1_ek_qspiflash_defconfig +++ b/configs/sama5d27_wlsom1_ek_qspiflash_defconfig @@ -27,7 +27,6 @@ CONFIG_USE_BOOTARGS=y CONFIG_MISC_INIT_R=y # CONFIG_DISPLAY_BOARDINFO is not set CONFIG_DISPLAY_BOARDINFO_LATE=y -CONFIG_SPL_SEPARATE_BSS=y CONFIG_SPL_DISPLAY_PRINT=y # CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_SECTOR is not set CONFIG_SPL_SPI_LOAD=y diff --git a/configs/sama5d2_icp_mmc_defconfig b/configs/sama5d2_icp_mmc_defconfig index 316648ef70..0c2a774d61 100644 --- a/configs/sama5d2_icp_mmc_defconfig +++ b/configs/sama5d2_icp_mmc_defconfig @@ -25,7 +25,6 @@ CONFIG_SD_BOOT=y CONFIG_BOOTDELAY=3 CONFIG_USE_BOOTARGS=y # CONFIG_DISPLAY_BOARDINFO is not set -CONFIG_SPL_SEPARATE_BSS=y CONFIG_SPL_DISPLAY_PRINT=y # CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_SECTOR is not set CONFIG_SPL_RAM_SUPPORT=y diff --git a/configs/sama5d2_xplained_emmc_defconfig b/configs/sama5d2_xplained_emmc_defconfig index 425ced92fe..b75a695cec 100644 --- a/configs/sama5d2_xplained_emmc_defconfig +++ b/configs/sama5d2_xplained_emmc_defconfig @@ -27,7 +27,6 @@ CONFIG_BOOTDELAY=3 CONFIG_USE_BOOTARGS=y CONFIG_BOOTARGS="console=ttyS0,115200 earlyprintk root=/dev/mmcblk0p2 rw rootwait" # CONFIG_DISPLAY_BOARDINFO is not set -CONFIG_SPL_SEPARATE_BSS=y CONFIG_HUSH_PARSER=y CONFIG_CMD_BOOTZ=y # CONFIG_CMD_FLASH is not set diff --git a/configs/sama5d2_xplained_mmc_defconfig b/configs/sama5d2_xplained_mmc_defconfig index ec61db567f..1459d1d2dc 100644 --- a/configs/sama5d2_xplained_mmc_defconfig +++ b/configs/sama5d2_xplained_mmc_defconfig @@ -29,7 +29,6 @@ CONFIG_USE_BOOTARGS=y CONFIG_BOOTARGS="console=ttyS0,115200 earlyprintk root=/dev/mmcblk1p2 rw rootwait" CONFIG_MISC_INIT_R=y # CONFIG_DISPLAY_BOARDINFO is not set -CONFIG_SPL_SEPARATE_BSS=y CONFIG_HUSH_PARSER=y CONFIG_CMD_BOOTZ=y # CONFIG_CMD_FLASH is not set diff --git a/configs/sama5d2_xplained_qspiflash_defconfig b/configs/sama5d2_xplained_qspiflash_defconfig index 407c6b28b6..0adb850ddc 100644 --- a/configs/sama5d2_xplained_qspiflash_defconfig +++ b/configs/sama5d2_xplained_qspiflash_defconfig @@ -29,7 +29,6 @@ CONFIG_USE_BOOTARGS=y CONFIG_BOOTARGS="console=ttyS0,115200 earlyprintk root=/dev/mmcblk0p1 rw rootwait" CONFIG_MISC_INIT_R=y # CONFIG_DISPLAY_BOARDINFO is not set -CONFIG_SPL_SEPARATE_BSS=y CONFIG_HUSH_PARSER=y CONFIG_CMD_BOOTZ=y # CONFIG_CMD_FLASH is not set diff --git a/configs/sama5d3_xplained_mmc_defconfig b/configs/sama5d3_xplained_mmc_defconfig index 17cca5508c..0574f91008 100644 --- a/configs/sama5d3_xplained_mmc_defconfig +++ b/configs/sama5d3_xplained_mmc_defconfig @@ -27,7 +27,6 @@ CONFIG_BOOTDELAY=3 CONFIG_USE_BOOTARGS=y CONFIG_BOOTARGS="console=ttyS0,115200 earlyprintk root=/dev/mmcblk0p2 rw rootwait" # CONFIG_DISPLAY_BOARDINFO is not set -CONFIG_SPL_SEPARATE_BSS=y CONFIG_HUSH_PARSER=y CONFIG_CMD_BOOTZ=y # CONFIG_CMD_FLASH is not set diff --git a/configs/sama5d3xek_mmc_defconfig b/configs/sama5d3xek_mmc_defconfig index 1848454a6c..752d24fa6c 100644 --- a/configs/sama5d3xek_mmc_defconfig +++ b/configs/sama5d3xek_mmc_defconfig @@ -29,7 +29,6 @@ CONFIG_BOOTARGS="console=ttyS0,115200 earlyprintk root=/dev/mmcblk0p2 rw rootwai # CONFIG_CONSOLE_MUX is not set CONFIG_SYS_CONSOLE_IS_IN_ENV=y # CONFIG_DISPLAY_BOARDINFO is not set -CONFIG_SPL_SEPARATE_BSS=y CONFIG_HUSH_PARSER=y CONFIG_CMD_BOOTZ=y # CONFIG_CMD_IMI is not set diff --git a/configs/sama5d4_xplained_mmc_defconfig b/configs/sama5d4_xplained_mmc_defconfig index 919c05cfb3..23bf724c67 100644 --- a/configs/sama5d4_xplained_mmc_defconfig +++ b/configs/sama5d4_xplained_mmc_defconfig @@ -28,7 +28,6 @@ CONFIG_USE_BOOTARGS=y CONFIG_BOOTARGS="console=ttyS0,115200 earlyprintk root=/dev/mmcblk0p2 rw rootwait" CONFIG_MISC_INIT_R=y # CONFIG_DISPLAY_BOARDINFO is not set -CONFIG_SPL_SEPARATE_BSS=y CONFIG_HUSH_PARSER=y CONFIG_CMD_BOOTZ=y # CONFIG_CMD_FLASH is not set diff --git a/configs/sama5d4ek_mmc_defconfig b/configs/sama5d4ek_mmc_defconfig index c15c71d277..a87c230b3f 100644 --- a/configs/sama5d4ek_mmc_defconfig +++ b/configs/sama5d4ek_mmc_defconfig @@ -29,7 +29,6 @@ CONFIG_BOOTARGS="console=ttyS0,115200 earlyprintk root=/dev/mmcblk0p2 rw rootwai # CONFIG_CONSOLE_MUX is not set CONFIG_SYS_CONSOLE_IS_IN_ENV=y # CONFIG_DISPLAY_BOARDINFO is not set -CONFIG_SPL_SEPARATE_BSS=y CONFIG_HUSH_PARSER=y CONFIG_CMD_BOOTZ=y # CONFIG_CMD_IMI is not set

On 09.01.20 17:30, Gregory CLEMENT wrote:
Now that CONFIG_SPL_SEPARATE_BSS is selected for all the AT91 based boards, cleanups the defconfigs by removing it.
Signed-off-by: Gregory CLEMENT gregory.clement@bootlin.com
configs/gardena-smart-gateway-at91sam_defconfig | 1 - configs/sama5d27_som1_ek_mmc1_defconfig | 1 - configs/sama5d27_som1_ek_mmc_defconfig | 1 - configs/sama5d27_som1_ek_qspiflash_defconfig | 1 - configs/sama5d27_wlsom1_ek_mmc_defconfig | 1 - configs/sama5d27_wlsom1_ek_qspiflash_defconfig | 1 - configs/sama5d2_icp_mmc_defconfig | 1 - configs/sama5d2_xplained_emmc_defconfig | 1 - configs/sama5d2_xplained_mmc_defconfig | 1 - configs/sama5d2_xplained_qspiflash_defconfig | 1 - configs/sama5d3_xplained_mmc_defconfig | 1 - configs/sama5d3xek_mmc_defconfig | 1 - configs/sama5d4_xplained_mmc_defconfig | 1 - configs/sama5d4ek_mmc_defconfig | 1 - 14 files changed, 14 deletions(-)
Reviewed-by: Stefan Roese sr@denx.de
Thanks, Stefan

On 09.01.20 17:30, Gregory CLEMENT wrote:
According to the linker script for both armv7 and arm926ejs based SoC, BSS section was all the time separated for SPL but this symbol was only enabled on some boards. However, it is necessary to have it enabled for OF_SEPARATE configuration where DTB is appended to u-boot with DTB.
Signed-off-by: Gregory CLEMENT gregory.clement@bootlin.com
arch/arm/Kconfig | 1 + 1 file changed, 1 insertion(+)
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index f9dab073ea..e558024652 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -492,6 +492,7 @@ choice config ARCH_AT91 bool "Atmel AT91" select SPL_BOARD_INIT if SPL && !TARGET_SMARTWEB
select SPL_SEPARATE_BSS if SPL
config TARGET_EDB93XX bool "Support edb93xx"
Reviewed-by: Stefan Roese sr@denx.de
Thanks, Stefan

On 10.01.2020 08:32, Stefan Roese wrote:
On 09.01.20 17:30, Gregory CLEMENT wrote:
According to the linker script for both armv7 and arm926ejs based SoC, BSS section was all the time separated for SPL but this symbol was only enabled on some boards. However, it is necessary to have it enabled for OF_SEPARATE configuration where DTB is appended to u-boot with DTB.
Signed-off-by: Gregory CLEMENT gregory.clement@bootlin.com
arch/arm/Kconfig | 1 + 1 file changed, 1 insertion(+)
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index f9dab073ea..e558024652 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -492,6 +492,7 @@ choice config ARCH_AT91 bool "Atmel AT91" select SPL_BOARD_INIT if SPL && !TARGET_SMARTWEB + select SPL_SEPARATE_BSS if SPL
config TARGET_EDB93XX bool "Support edb93xx"
Reviewed-by: Stefan Roese sr@denx.de
Thanks, Stefan
Hi,
With these changes, for all the A5 boards , SEPARATE_BSS was already enabled, but for the rest of the platforms, it was not. As I see from the linker script, the BSS area is configured into DRAM area. Is there any chance that we have accesses to this section before the DRAM is initialized on these platforms ? Could cause the boards to hang.
Eugen

Hi Eugen,
On 10.01.2020 08:32, Stefan Roese wrote:
On 09.01.20 17:30, Gregory CLEMENT wrote:
According to the linker script for both armv7 and arm926ejs based SoC, BSS section was all the time separated for SPL but this symbol was only enabled on some boards. However, it is necessary to have it enabled for OF_SEPARATE configuration where DTB is appended to u-boot with DTB.
Signed-off-by: Gregory CLEMENT gregory.clement@bootlin.com
arch/arm/Kconfig | 1 + 1 file changed, 1 insertion(+)
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index f9dab073ea..e558024652 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -492,6 +492,7 @@ choice config ARCH_AT91 bool "Atmel AT91" select SPL_BOARD_INIT if SPL && !TARGET_SMARTWEB + select SPL_SEPARATE_BSS if SPL
config TARGET_EDB93XX bool "Support edb93xx"
Reviewed-by: Stefan Roese sr@denx.de
Thanks, Stefan
Hi,
With these changes, for all the A5 boards , SEPARATE_BSS was already enabled, but for the rest of the platforms, it was not. As I see from the linker script, the BSS area is configured into DRAM area. Is there any chance that we have accesses to this section before the DRAM is initialized on these platforms ? Could cause the boards to hang.
It is explicitly stated that it BSS is not available before setting up the DRAM: it is forbidden to use global/static variables. So it should be OK.
Gregory
Eugen

On 05.06.2020 10:49, Gregory CLEMENT wrote:
Hi Eugen,
On 10.01.2020 08:32, Stefan Roese wrote:
On 09.01.20 17:30, Gregory CLEMENT wrote:
According to the linker script for both armv7 and arm926ejs based SoC, BSS section was all the time separated for SPL but this symbol was only enabled on some boards. However, it is necessary to have it enabled for OF_SEPARATE configuration where DTB is appended to u-boot with DTB.
Signed-off-by: Gregory CLEMENT gregory.clement@bootlin.com
arch/arm/Kconfig | 1 + 1 file changed, 1 insertion(+)
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index f9dab073ea..e558024652 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -492,6 +492,7 @@ choice config ARCH_AT91 bool "Atmel AT91" select SPL_BOARD_INIT if SPL && !TARGET_SMARTWEB
select SPL_SEPARATE_BSS if SPL
config TARGET_EDB93XX bool "Support edb93xx"
Reviewed-by: Stefan Roese sr@denx.de
Thanks, Stefan
Hi,
With these changes, for all the A5 boards , SEPARATE_BSS was already enabled, but for the rest of the platforms, it was not. As I see from the linker script, the BSS area is configured into DRAM area. Is there any chance that we have accesses to this section before the DRAM is initialized on these platforms ? Could cause the boards to hang.
It is explicitly stated that it BSS is not available before setting up the DRAM: it is forbidden to use global/static variables. So it should be OK.
Thanks for the clarification. Will queue the patches for next merge window.
Eugen
Gregory
Eugen
-- Gregory Clement, Bootlin Embedded Linux and Kernel engineering http://bootlin.com

Hi Eugen,
On 05.06.2020 10:49, Gregory CLEMENT wrote:
Hi Eugen,
On 10.01.2020 08:32, Stefan Roese wrote:
On 09.01.20 17:30, Gregory CLEMENT wrote:
According to the linker script for both armv7 and arm926ejs based SoC, BSS section was all the time separated for SPL but this symbol was only enabled on some boards. However, it is necessary to have it enabled for OF_SEPARATE configuration where DTB is appended to u-boot with DTB.
Signed-off-by: Gregory CLEMENT gregory.clement@bootlin.com
arch/arm/Kconfig | 1 + 1 file changed, 1 insertion(+)
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index f9dab073ea..e558024652 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -492,6 +492,7 @@ choice config ARCH_AT91 bool "Atmel AT91" select SPL_BOARD_INIT if SPL && !TARGET_SMARTWEB
select SPL_SEPARATE_BSS if SPL
config TARGET_EDB93XX bool "Support edb93xx"
Reviewed-by: Stefan Roese sr@denx.de
Thanks, Stefan
Hi,
With these changes, for all the A5 boards , SEPARATE_BSS was already enabled, but for the rest of the platforms, it was not. As I see from the linker script, the BSS area is configured into DRAM area. Is there any chance that we have accesses to this section before the DRAM is initialized on these platforms ? Could cause the boards to hang.
It is explicitly stated that it BSS is not available before setting up the DRAM: it is forbidden to use global/static variables. So it should be OK.
Thanks for the clarification. Will queue the patches for next merge window.
Thanks, actually I've just sent a v2 because in the meantime an other defconfig needed to be updated.
Gregory
Eugen
Gregory
Eugen
-- Gregory Clement, Bootlin Embedded Linux and Kernel engineering http://bootlin.com
participants (3)
-
Eugen.Hristev@microchip.com
-
Gregory CLEMENT
-
Stefan Roese