From: Marek Vasut Date: Wed, 22 Oct 2025 13:17:16 +0000 (+0200) Subject: arm64: renesas: Clean up default boot command X-Git-Tag: v2026.01-rc2~27^2 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=057b1f8df9b5f6dced7f7db353a175744bf26031;p=pandora-u-boot.git arm64: renesas: Clean up default boot command The current default boot command does not respect the Linux kernel 2 MiB alignment requirement, present on aarch64 [1]: " The Image must be placed text_offset bytes from a 2MB aligned base address anywhere in usable system RAM and called there. " Adjust the boot command such, that it always places both Image and DT at the nearest highest 2 MiB aligned offset. The DT is placed at lower 2 MiB aligned address, the aarch64 Image is placed at the next higher 2 MiB aligned address. Is is unlikely that a DT would be larger than 2 MiB on these systems. Replace use of hard-coded load addresses with generic ${loadaddr} aligned using setexpr. This way, if user picks valid ${loadaddr}, their kernel and DT address will be correctly set as well. Fix up boot commands to use && instead of ; to exit the boot command early in case of failure. [1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/arch/arm64/booting.rst#n138 Signed-off-by: Marek Vasut --- diff --git a/configs/hihope_rzg2_defconfig b/configs/hihope_rzg2_defconfig index 19fb14887c6..5ef91e3df7e 100644 --- a/configs/hihope_rzg2_defconfig +++ b/configs/hihope_rzg2_defconfig @@ -12,7 +12,7 @@ CONFIG_TARGET_HIHOPE_RZG2=y # CONFIG_SPL is not set CONFIG_USE_BOOTARGS=y CONFIG_USE_BOOTCOMMAND=y -CONFIG_BOOTCOMMAND="tftp 0x48080000 Image; tftp 0x48000000 Image-r8a774a1-hihope-rzg2m-ex.dtb; booti 0x48080000 - 0x48000000" +CONFIG_BOOTCOMMAND="setexpr dloadaddr ${loadaddr} + 0x200000 && setexpr dloadaddr ${dloadaddr} \\\\& 0xffc00000 && setexpr kloadaddr ${dloadaddr} + 0x200000 && tftp ${dloadaddr} Image-r8a774a1-hihope-rzg2m-ex.dtb && tftp ${kloadaddr} Image && booti ${kloadaddr} - ${dloadaddr}" CONFIG_DEFAULT_FDT_FILE="r8a774a1-hihope-rzg2m-ex.dtb" # CONFIG_BOARD_EARLY_INIT_F is not set CONFIG_CMD_MMC=y diff --git a/configs/r8a77970_eagle_defconfig b/configs/r8a77970_eagle_defconfig index 3734836fa61..72e5dd5536c 100644 --- a/configs/r8a77970_eagle_defconfig +++ b/configs/r8a77970_eagle_defconfig @@ -20,7 +20,7 @@ CONFIG_SPL_BSS_MAX_SIZE=0x1000 # CONFIG_EFI_LOADER is not set CONFIG_USE_BOOTARGS=y CONFIG_USE_BOOTCOMMAND=y -CONFIG_BOOTCOMMAND="tftp 0x48080000 Image; tftp 0x48000000 Image-r8a77970-eagle.dtb; booti 0x48080000 - 0x48000000" +CONFIG_BOOTCOMMAND="setexpr dloadaddr ${loadaddr} + 0x200000 && setexpr dloadaddr ${dloadaddr} \\\\& 0xffc00000 && setexpr kloadaddr ${dloadaddr} + 0x200000 && tftp ${dloadaddr} Image-r8a77970-eagle.dtb && tftp ${kloadaddr} Image && booti ${kloadaddr} - ${dloadaddr}" CONFIG_DEFAULT_FDT_FILE="r8a77970-eagle.dtb" # CONFIG_SPL_SHARES_INIT_SP_ADDR is not set CONFIG_CMD_DFU=y diff --git a/configs/r8a77980_condor_defconfig b/configs/r8a77980_condor_defconfig index 3ebb1e73284..5c7797c4373 100644 --- a/configs/r8a77980_condor_defconfig +++ b/configs/r8a77980_condor_defconfig @@ -19,7 +19,7 @@ CONFIG_SPL_BSS_START_ADDR=0xe631f000 CONFIG_SPL_BSS_MAX_SIZE=0x1000 CONFIG_USE_BOOTARGS=y CONFIG_USE_BOOTCOMMAND=y -CONFIG_BOOTCOMMAND="tftp 0x48080000 Image; tftp 0x48000000 Image-r8a77980-condor.dtb; booti 0x48080000 - 0x48000000" +CONFIG_BOOTCOMMAND="setexpr dloadaddr ${loadaddr} + 0x200000 && setexpr dloadaddr ${dloadaddr} \\\\& 0xffc00000 && setexpr kloadaddr ${dloadaddr} + 0x200000 && tftp ${dloadaddr} Image-r8a77980-condor.dtb && tftp ${kloadaddr} Image && booti ${kloadaddr} - ${dloadaddr}" CONFIG_DEFAULT_FDT_FILE="r8a77980-condor.dtb" # CONFIG_BOARD_EARLY_INIT_F is not set # CONFIG_SPL_SHARES_INIT_SP_ADDR is not set diff --git a/configs/r8a77990_ebisu_defconfig b/configs/r8a77990_ebisu_defconfig index 7405f207612..bd2093653a2 100644 --- a/configs/r8a77990_ebisu_defconfig +++ b/configs/r8a77990_ebisu_defconfig @@ -19,7 +19,7 @@ CONFIG_SPL_BSS_MAX_SIZE=0x1000 CONFIG_SYS_MONITOR_BASE=0x00000000 CONFIG_USE_BOOTARGS=y CONFIG_USE_BOOTCOMMAND=y -CONFIG_BOOTCOMMAND="tftp 0x48080000 Image; tftp 0x48000000 Image-r8a77990-ebisu.dtb; booti 0x48080000 - 0x48000000" +CONFIG_BOOTCOMMAND="setexpr dloadaddr ${loadaddr} + 0x200000 && setexpr dloadaddr ${dloadaddr} \\\\& 0xffc00000 && setexpr kloadaddr ${dloadaddr} + 0x200000 && tftp ${dloadaddr} Image-r8a77990-ebisu.dtb && tftp ${kloadaddr} Image && booti ${kloadaddr} - ${dloadaddr}" CONFIG_DEFAULT_FDT_FILE="r8a77990-ebisu.dtb" # CONFIG_BOARD_EARLY_INIT_F is not set # CONFIG_SPL_SHARES_INIT_SP_ADDR is not set diff --git a/configs/r8a77995_draak_defconfig b/configs/r8a77995_draak_defconfig index 2d487722677..ef2fe782936 100644 --- a/configs/r8a77995_draak_defconfig +++ b/configs/r8a77995_draak_defconfig @@ -19,7 +19,7 @@ CONFIG_SPL_BSS_MAX_SIZE=0x1000 CONFIG_SYS_MONITOR_BASE=0x00000000 CONFIG_USE_BOOTARGS=y CONFIG_USE_BOOTCOMMAND=y -CONFIG_BOOTCOMMAND="tftp 0x48080000 Image; tftp 0x48000000 Image-r8a77995-draak.dtb; booti 0x48080000 - 0x48000000" +CONFIG_BOOTCOMMAND="setexpr dloadaddr ${loadaddr} + 0x200000 && setexpr dloadaddr ${dloadaddr} \\\\& 0xffc00000 && setexpr kloadaddr ${dloadaddr} + 0x200000 && tftp ${dloadaddr} Image-r8a77995-draak.dtb && tftp ${kloadaddr} Image && booti ${kloadaddr} - ${dloadaddr}" CONFIG_DEFAULT_FDT_FILE="r8a77995-draak.dtb" # CONFIG_SPL_SHARES_INIT_SP_ADDR is not set CONFIG_SYS_EEPROM_PAGE_WRITE_DELAY_MS=10 diff --git a/configs/r8a779a0_falcon_defconfig b/configs/r8a779a0_falcon_defconfig index 1b99ba1f02b..6e61cd87352 100644 --- a/configs/r8a779a0_falcon_defconfig +++ b/configs/r8a779a0_falcon_defconfig @@ -11,7 +11,7 @@ CONFIG_DEFAULT_DEVICE_TREE="renesas/r8a779a0-falcon" CONFIG_TARGET_FALCON=y CONFIG_SYS_CLK_FREQ=16666666 CONFIG_ARMV8_PSCI=y -CONFIG_BOOTCOMMAND="tftp 0x48080000 Image; tftp 0x48000000 Image-r8a779a0-falcon.dtb; booti 0x48080000 - 0x48000000" +CONFIG_BOOTCOMMAND="setexpr dloadaddr ${loadaddr} + 0x200000 && setexpr dloadaddr ${dloadaddr} \\\\& 0xffc00000 && setexpr kloadaddr ${dloadaddr} + 0x200000 && tftp ${dloadaddr} Image-r8a779a0-falcon.dtb && tftp ${kloadaddr} Image && booti ${kloadaddr} - ${dloadaddr}" CONFIG_DEFAULT_FDT_FILE="r8a779a0-falcon.dtb" CONFIG_SYS_PBSIZE=2068 CONFIG_ENV_IS_IN_SPI_FLASH=y diff --git a/configs/r8a779f0_spider_defconfig b/configs/r8a779f0_spider_defconfig index 6b16ff55480..e3ee4d4bd99 100644 --- a/configs/r8a779f0_spider_defconfig +++ b/configs/r8a779f0_spider_defconfig @@ -5,7 +5,7 @@ CONFIG_ARCH_RENESAS=y CONFIG_RCAR_GEN4=y CONFIG_TARGET_SPIDER=y CONFIG_DEFAULT_DEVICE_TREE="renesas/r8a779f0-spider" -CONFIG_BOOTCOMMAND="tftp 0x48080000 Image && tftp 0x48000000 Image-r8a779f0-spider.dtb && booti 0x48080000 - 0x48000000" +CONFIG_BOOTCOMMAND="setexpr dloadaddr ${loadaddr} + 0x200000 && setexpr dloadaddr ${dloadaddr} \\\\& 0xffc00000 && setexpr kloadaddr ${dloadaddr} + 0x200000 && tftp ${dloadaddr} Image-r8a779f0-spider.dtb && tftp ${kloadaddr} Image && booti ${kloadaddr} - ${dloadaddr}" CONFIG_DEFAULT_FDT_FILE="r8a779f0-spider.dtb" CONFIG_BAUDRATE=1843200 CONFIG_DM_PCA953X=y diff --git a/configs/r8a779f4_s4sk_defconfig b/configs/r8a779f4_s4sk_defconfig index 1b353492d04..94ec079b47f 100644 --- a/configs/r8a779f4_s4sk_defconfig +++ b/configs/r8a779f4_s4sk_defconfig @@ -5,7 +5,7 @@ CONFIG_ARCH_RENESAS=y CONFIG_RCAR_GEN4=y CONFIG_TARGET_S4SK=y CONFIG_DEFAULT_DEVICE_TREE="renesas/r8a779f4-s4sk" -CONFIG_BOOTCOMMAND="tftp 0x48080000 Image && tftp 0x48000000 Image-r8a779f4-s4sk.dtb && booti 0x48080000 - 0x48000000" +CONFIG_BOOTCOMMAND="setexpr dloadaddr ${loadaddr} + 0x200000 && setexpr dloadaddr ${dloadaddr} \\\\& 0xffc00000 && setexpr kloadaddr ${dloadaddr} + 0x200000 && tftp ${dloadaddr} Image-r8a779f4-s4sk.dtb && tftp ${kloadaddr} Image && booti ${kloadaddr} - ${dloadaddr}" CONFIG_DEFAULT_FDT_FILE="r8a779f4-s4sk.dtb" CONFIG_BAUDRATE=921600 CONFIG_BOARD_LATE_INIT=y diff --git a/configs/r8a779g0_whitehawk_defconfig b/configs/r8a779g0_whitehawk_defconfig index 41217fa5776..c0e8620b2f7 100644 --- a/configs/r8a779g0_whitehawk_defconfig +++ b/configs/r8a779g0_whitehawk_defconfig @@ -13,7 +13,7 @@ CONFIG_SYS_CLK_FREQ=16666666 CONFIG_SYS_BOOT_GET_CMDLINE=y CONFIG_SYS_BARGSIZE=2048 CONFIG_BINMAN=y -CONFIG_BOOTCOMMAND="tftp 0x48080000 Image && tftp 0x48000000 Image-r8a779g0-white-hawk.dtb && booti 0x48080000 - 0x48000000" +CONFIG_BOOTCOMMAND="setexpr dloadaddr ${loadaddr} + 0x200000 && setexpr dloadaddr ${dloadaddr} \\\\& 0xffc00000 && setexpr kloadaddr ${dloadaddr} + 0x200000 && tftp ${dloadaddr} Image-r8a779g0-white-hawk.dtb && tftp ${kloadaddr} Image && booti ${kloadaddr} - ${dloadaddr}" CONFIG_DEFAULT_FDT_FILE="r8a779g0-white-hawk.dtb" CONFIG_CMD_REMOTEPROC=y CONFIG_REMOTEPROC_RENESAS_APMU=y diff --git a/configs/r8a779h0_grayhawk_defconfig b/configs/r8a779h0_grayhawk_defconfig index 33009429315..2a3f25a12be 100644 --- a/configs/r8a779h0_grayhawk_defconfig +++ b/configs/r8a779h0_grayhawk_defconfig @@ -10,7 +10,7 @@ CONFIG_TARGET_GRAYHAWK=y CONFIG_SYS_CLK_FREQ=16666666 CONFIG_SYS_BOOT_GET_CMDLINE=y CONFIG_SYS_BARGSIZE=2048 -CONFIG_BOOTCOMMAND="tftp 0x48080000 Image && tftp 0x48000000 Image-r8a779h0-gray-hawk.dtb && booti 0x48080000 - 0x48000000" +CONFIG_BOOTCOMMAND="setexpr dloadaddr ${loadaddr} + 0x200000 && setexpr dloadaddr ${dloadaddr} \\\\& 0xffc00000 && setexpr kloadaddr ${dloadaddr} + 0x200000 && tftp ${dloadaddr} Image-r8a779h0-gray-hawk.dtb && tftp ${kloadaddr} Image && booti ${kloadaddr} - ${dloadaddr}" CONFIG_DEFAULT_FDT_FILE="r8a779h0-gray-hawk.dtb" CONFIG_SYS_CBSIZE=2048 CONFIG_ENV_IS_IN_MMC=y diff --git a/configs/rcar3_salvator-x_defconfig b/configs/rcar3_salvator-x_defconfig index 15ec0a45901..7adaf665a35 100644 --- a/configs/rcar3_salvator-x_defconfig +++ b/configs/rcar3_salvator-x_defconfig @@ -21,7 +21,7 @@ CONFIG_SYS_MONITOR_BASE=0x00000000 # CONFIG_BOOTSTD is not set CONFIG_USE_BOOTARGS=y CONFIG_USE_BOOTCOMMAND=y -CONFIG_BOOTCOMMAND="tftp 0x48080000 Image; tftp 0x48000000 Image-r8a77951-salvator-x.dtb; booti 0x48080000 - 0x48000000" +CONFIG_BOOTCOMMAND="setexpr dloadaddr ${loadaddr} + 0x200000 && setexpr dloadaddr ${dloadaddr} \\\\& 0xffc00000 && setexpr kloadaddr ${dloadaddr} + 0x200000 && tftp ${dloadaddr} Image-r8a77951-salvator-x.dtb && tftp ${kloadaddr} Image && booti ${kloadaddr} - ${dloadaddr}" CONFIG_DEFAULT_FDT_FILE="r8a77951-salvator-x.dtb" # CONFIG_SPL_SHARES_INIT_SP_ADDR is not set CONFIG_SYS_EEPROM_PAGE_WRITE_DELAY_MS=10 diff --git a/configs/rcar3_ulcb_defconfig b/configs/rcar3_ulcb_defconfig index 41bdee19682..f3e2112a91e 100644 --- a/configs/rcar3_ulcb_defconfig +++ b/configs/rcar3_ulcb_defconfig @@ -19,7 +19,7 @@ CONFIG_SPL_BSS_MAX_SIZE=0x1000 CONFIG_SYS_MONITOR_BASE=0x00000000 CONFIG_USE_BOOTARGS=y CONFIG_USE_BOOTCOMMAND=y -CONFIG_BOOTCOMMAND="tftp 0x48080000 Image; tftp 0x48000000 Image-r8a77951-ulcb.dtb; booti 0x48080000 - 0x48000000" +CONFIG_BOOTCOMMAND="setexpr dloadaddr ${loadaddr} + 0x200000 && setexpr dloadaddr ${dloadaddr} \\\\& 0xffc00000 && setexpr kloadaddr ${dloadaddr} + 0x200000 && tftp ${dloadaddr} Image-r8a77951-ulcb.dtb && tftp ${kloadaddr} Image && booti ${kloadaddr} - ${dloadaddr}" CONFIG_DEFAULT_FDT_FILE="r8a77951-ulcb.dtb" # CONFIG_SPL_SHARES_INIT_SP_ADDR is not set CONFIG_SYS_EEPROM_PAGE_WRITE_DELAY_MS=10 diff --git a/configs/silinux_ek874_defconfig b/configs/silinux_ek874_defconfig index af462d2086f..485e6067d10 100644 --- a/configs/silinux_ek874_defconfig +++ b/configs/silinux_ek874_defconfig @@ -20,7 +20,7 @@ CONFIG_SPL_BSS_MAX_SIZE=0x1000 CONFIG_USE_BOOTARGS=y CONFIG_BOOTARGS="root=/dev/nfs rw nfsroot=192.168.0.1:/export/rfs ip=192.168.0.20" CONFIG_USE_BOOTCOMMAND=y -CONFIG_BOOTCOMMAND="tftp 0x48080000 Image; tftp 0x48000000 Image-r8a774c0-ek874.dtb; booti 0x48080000 - 0x48000000" +CONFIG_BOOTCOMMAND="setexpr dloadaddr ${loadaddr} + 0x200000 && setexpr dloadaddr ${dloadaddr} \\\\& 0xffc00000 && setexpr kloadaddr ${dloadaddr} + 0x200000 && tftp ${dloadaddr} Image-r8a774c0-ek874.dtb && tftp ${kloadaddr} Image && booti ${kloadaddr} - ${dloadaddr}" CONFIG_DEFAULT_FDT_FILE="r8a774c0-ek874.dtb" # CONFIG_BOARD_EARLY_INIT_F is not set # CONFIG_SPL_SHARES_INIT_SP_ADDR is not set