[PATCH RFC] at91: Remove AT91_LOAD_BAREBOX_SRAM option
Alexander Shiyan
eagle.alexander923 at gmail.com
Wed Mar 5 21:39:20 PST 2025
This patch removes the AT91_LOAD_BAREBOX_SRAM option.
The option was introduced over 12 years ago and is now misleading.
The functionality of loading a stage into SRAM can now be implemented
via PBL in a low-level board-specific call.
For boot sources (other than MMC), BOOTRom expects the size of the
image to boot into SRAM in exception vector 6, so let's fix
barebox-arm-head to always use the correct value here.
This partially reverts commits:
41d3371741: at91: introduce AT91_LOAD_BAREBOX_SRAM to specifcy which size load for external boot
4bd5ceee72: at91sam9261ek: add first stage support
Signed-off-by: Alexander Shiyan <eagle.alexander923 at gmail.com>
---
.../boards/at91/microchip-at91sam9263-ek.rst | 7 --
.../defaultenv-at91sam9261ek/config | 10 +--
arch/arm/boards/at91sam9261ek/init.c | 16 +----
.../at91sam9261ek_first_stage_defconfig | 65 -------------------
arch/arm/mach-at91/Kconfig | 10 ---
include/mach/at91/barebox-arm.h | 11 +---
6 files changed, 6 insertions(+), 113 deletions(-)
delete mode 100644 arch/arm/configs/at91sam9261ek_first_stage_defconfig
diff --git a/Documentation/boards/at91/microchip-at91sam9263-ek.rst b/Documentation/boards/at91/microchip-at91sam9263-ek.rst
index 8022cdd678..557e2040cb 100644
--- a/Documentation/boards/at91/microchip-at91sam9263-ek.rst
+++ b/Documentation/boards/at91/microchip-at91sam9263-ek.rst
@@ -123,10 +123,3 @@ This is the reset vector and exception vectors. Must be the very first in the fi
``.text_bare_init*:``
Everything in this section, and , is checked at link time.
Size most be less than BAREBOX_MAX_BARE_INIT_SIZE / ARCH_BAREBOX_MAX_BARE_INIT_SIZE
-
-at91 specify the size of the two sections in exception vector 6 (see above),
-if CONFIG_AT91_LOAD_BAREBOX_SRAM is defined.
-I think this is because some at91 variants have only very limited SRAM size,
-and we copy only a minimal part to the SRAM. The remaining part is then
-executed in-place.
-For at91sam9263 we have a large SRAM so there is room for the full bootstrap binary.
diff --git a/arch/arm/boards/at91sam9261ek/defaultenv-at91sam9261ek/config b/arch/arm/boards/at91sam9261ek/defaultenv-at91sam9261ek/config
index cb3e847f54..7d855779ca 100644
--- a/arch/arm/boards/at91sam9261ek/defaultenv-at91sam9261ek/config
+++ b/arch/arm/boards/at91sam9261ek/defaultenv-at91sam9261ek/config
@@ -34,14 +34,8 @@ kernelimage=zImage
#kernelimage=Image.lzo
nand_device=atmel_nand
-if [ x$borebox_first_stage = x1 ]
-then
- nand_parts="384k(barebox)ro,128k(bareboxenv),128k(bareboxenv2),128k(oftree),4M(kernel),120M(rootfs),-(data)"
- rootfs_mtdblock_nand=5
-else
- nand_parts="128k(at91bootstrap),256k(barebox)ro,128k(bareboxenv),128k(bareboxenv2),128k(oftree),4M(kernel),120M(rootfs),-(data)"
- rootfs_mtdblock_nand=6
-fi
+nand_parts="128k(at91bootstrap),256k(barebox)ro,128k(bareboxenv),128k(bareboxenv2),128k(oftree),4M(kernel),120M(rootfs),-(data)"
+rootfs_mtdblock_nand=6
autoboot_timeout=3
diff --git a/arch/arm/boards/at91sam9261ek/init.c b/arch/arm/boards/at91sam9261ek/init.c
index da305fe9ed..799466d655 100644
--- a/arch/arm/boards/at91sam9261ek/init.c
+++ b/arch/arm/boards/at91sam9261ek/init.c
@@ -319,9 +319,6 @@ mem_initcall(at91sam9261ek_mem_init);
static int at91sam9261ek_devices_init(void)
{
- u32 barebox_part_start;
- u32 barebox_part_size;
-
ek_add_device_nand();
ek_add_device_dm9000();
ek_add_device_udc();
@@ -330,17 +327,8 @@ static int at91sam9261ek_devices_init(void)
ek_add_device_lcdc();
ek_add_device_spi();
- if (IS_ENABLED(CONFIG_AT91_LOAD_BAREBOX_SRAM)) {
- barebox_part_start = 0;
- barebox_part_size = SZ_256K + SZ_128K;
- export_env_ull("borebox_first_stage", 1);
- } else {
- devfs_add_partition("nand0", 0x00000, SZ_128K, DEVFS_PARTITION_FIXED, "at91bootstrap_raw");
- barebox_part_start = SZ_128K;
- barebox_part_size = SZ_256K;
- }
- devfs_add_partition("nand0", barebox_part_start, barebox_part_size,
- DEVFS_PARTITION_FIXED, "self_raw");
+ devfs_add_partition("nand0", 0x00000, SZ_128K, DEVFS_PARTITION_FIXED, "at91bootstrap_raw");
+ devfs_add_partition("nand0", SZ_128K, SZ_256K, DEVFS_PARTITION_FIXED, "self_raw");
dev_add_bb_dev("self_raw", "self0");
devfs_add_partition("nand0", SZ_256K + SZ_128K, SZ_128K, DEVFS_PARTITION_FIXED, "env_raw");
dev_add_bb_dev("env_raw", "env0");
diff --git a/arch/arm/configs/at91sam9261ek_first_stage_defconfig b/arch/arm/configs/at91sam9261ek_first_stage_defconfig
deleted file mode 100644
index 8e6065de34..0000000000
--- a/arch/arm/configs/at91sam9261ek_first_stage_defconfig
+++ /dev/null
@@ -1,65 +0,0 @@
-CONFIG_ARCH_AT91=y
-CONFIG_ARCH_AT91SAM9261=y
-CONFIG_AT91_LOAD_BAREBOX_SRAM=y
-CONFIG_AEABI=y
-CONFIG_ARM_OPTIMZED_STRING_FUNCTIONS=y
-CONFIG_MMU=y
-CONFIG_BAREBOX_MAX_IMAGE_SIZE=0x27000
-CONFIG_EXPERIMENTAL=y
-CONFIG_MALLOC_TLSF=y
-CONFIG_PROMPT="9261-EK:"
-CONFIG_HUSH_FANCY_PROMPT=y
-CONFIG_CMDLINE_EDITING=y
-CONFIG_AUTO_COMPLETE=y
-CONFIG_MENU=y
-CONFIG_BOOTM_SHOW_TYPE=y
-CONFIG_BOOTM_INITRD=y
-CONFIG_CONSOLE_ACTIVATE_ALL=y
-CONFIG_DEFAULT_ENVIRONMENT_GENERIC=y
-# CONFIG_CMD_ARM_CPUINFO is not set
-CONFIG_LONGHELP=y
-CONFIG_CMD_MEMINFO=y
-CONFIG_CMD_AT91_BOOT_TEST=y
-# CONFIG_CMD_BOOTU is not set
-CONFIG_CMD_GO=y
-CONFIG_CMD_LOADB=y
-CONFIG_CMD_RESET=y
-CONFIG_CMD_UIMAGE=y
-CONFIG_CMD_PARTITION=y
-CONFIG_CMD_EXPORT=y
-CONFIG_CMD_PRINTENV=y
-CONFIG_CMD_SAVEENV=y
-CONFIG_CMD_SLEEP=y
-CONFIG_CMD_DHCP=y
-CONFIG_CMD_PING=y
-CONFIG_CMD_TFTP=y
-CONFIG_CMD_ECHO_E=y
-CONFIG_CMD_EDIT=y
-CONFIG_CMD_LOGIN=y
-CONFIG_CMD_MENU=y
-CONFIG_CMD_MENU_MANAGEMENT=y
-CONFIG_CMD_PASSWD=y
-CONFIG_CMD_READLINE=y
-CONFIG_CMD_TIMEOUT=y
-CONFIG_CMD_FLASH=y
-CONFIG_CMD_GPIO=y
-CONFIG_CMD_LED=y
-CONFIG_CMD_LED_TRIGGER=y
-CONFIG_NET=y
-CONFIG_NET_NFS=y
-CONFIG_NET_RESOLV=y
-CONFIG_DRIVER_NET_DM9K=y
-CONFIG_DRIVER_SPI_ATMEL=y
-CONFIG_MTD=y
-# CONFIG_MTD_OOB_DEVICE is not set
-CONFIG_MTD_DATAFLASH=y
-CONFIG_NAND=y
-CONFIG_NAND_ATMEL=y
-CONFIG_USB_GADGET=y
-CONFIG_USB_GADGET_DFU=y
-CONFIG_USB_GADGET_SERIAL=y
-CONFIG_LED=y
-CONFIG_LED_GPIO=y
-CONFIG_LED_TRIGGERS=y
-CONFIG_KEYBOARD_GPIO=y
-CONFIG_FS_TFTP=y
diff --git a/arch/arm/mach-at91/Kconfig b/arch/arm/mach-at91/Kconfig
index 0b3a4ac44c..5bc5cacb7c 100644
--- a/arch/arm/mach-at91/Kconfig
+++ b/arch/arm/mach-at91/Kconfig
@@ -152,9 +152,6 @@ config HAVE_NAND_ATMEL_BUSWIDTH_16
config HAVE_AT91_DATAFLASH_CARD
bool
-config HAVE_AT91_LOAD_BAREBOX_SRAM
- bool
-
comment "Atmel AT91 System-on-Chip"
config SOC_AT91RM9200
@@ -177,7 +174,6 @@ config SOC_AT91SAM9261
bool
select SOC_AT91SAM9
select PINCTRL_AT91
- select HAVE_AT91_LOAD_BAREBOX_SRAM
help
Select this if you are using one of Atmel's AT91SAM9261 or AT91SAM9G10 SoC.
@@ -185,7 +181,6 @@ config SOC_AT91SAM9263
bool
select SOC_AT91SAM9
select HAS_MACB
- select HAVE_AT91_LOAD_BAREBOX_SRAM
select PINCTRL_AT91
config SOC_AT91SAM9G45
@@ -707,9 +702,4 @@ config AT91_BOOTSTRAP
depends on HAVE_AT91_BOOTSTRAP
select BOOTSTRAP
-config AT91_LOAD_BAREBOX_SRAM
- bool "at91 load barebox in sram"
- depends on SHELL_NONE || HAVE_AT91_LOAD_BAREBOX_SRAM
- default y if SHELL_NONE
-
endif
diff --git a/include/mach/at91/barebox-arm.h b/include/mach/at91/barebox-arm.h
index 652fd283a0..3a041b4557 100644
--- a/include/mach/at91/barebox-arm.h
+++ b/include/mach/at91/barebox-arm.h
@@ -4,18 +4,11 @@
#include <asm/barebox-arm.h>
#include <asm/common.h>
+#include <linux/compiler.h>
#include <mach/at91/sama5d3.h>
#include <mach/at91/sama5d4.h>
#include <mach/at91/at91sam9261.h>
-#ifdef CONFIG_AT91_LOAD_BAREBOX_SRAM
-#define AT91_EXV6 ".word _barebox_image_size\n"
-#else
-#define AT91_EXV6 ".word _barebox_bare_init_size\n"
-#endif
-
-#include <linux/compiler.h>
-
static __always_inline void __barebox_at91_head(void)
{
__asm__ __volatile__ (
@@ -27,7 +20,7 @@ static __always_inline void __barebox_at91_head(void)
"1: b 1b\n"
"1: b 1b\n"
"1: b 1b\n"
- AT91_EXV6 /* image size to load by the bootrom */
+ ".word _barebox_image_size\n" /* image size to load by the bootrom */
"1: b 1b\n"
"1: b 1b\n"
#endif
--
2.39.1
More information about the barebox
mailing list