Message ID | 20211111092603.774415-4-peter.hoyes@arm.com |
---|---|
State | Awaiting Upstream |
Delegated to: | Tom Rini |
Headers | show |
Series | VExpress64 board family improvements | expand |
On Thu, 11 Nov 2021 09:26:01 +0000 Peter Hoyes <peter.hoyes@arm.com> wrote: > From: Peter Hoyes <Peter.Hoyes@arm.com> > > Move env var address values to #defines so they can be reused elsewhere. > > Rename env var names to those recommended in the README and modify > addresses to allow more space for the kernel. > > Fix issue where fdt is called with invalid arguments when booting > without a ramdisk. > > Signed-off-by: Peter Hoyes <Peter.Hoyes@arm.com> Ah, more air to breathe now, thanks! Reviewed-by: Andre Przywara <andre.przywara@arm.com> Cheers, Andre > --- > include/configs/vexpress_aemv8.h | 50 ++++++++++++++++++++------------ > 1 file changed, 31 insertions(+), 19 deletions(-) > > diff --git a/include/configs/vexpress_aemv8.h b/include/configs/vexpress_aemv8.h > index 49517a60b0..7cdfc30649 100644 > --- a/include/configs/vexpress_aemv8.h > +++ b/include/configs/vexpress_aemv8.h > @@ -7,6 +7,8 @@ > #ifndef __VEXPRESS_AEMV8_H > #define __VEXPRESS_AEMV8_H > > +#include <linux/stringify.h> > + > #define CONFIG_REMAKE_ELF > > /* Link Definitions */ > @@ -172,33 +174,43 @@ > BOOTENV > > #elif CONFIG_TARGET_VEXPRESS64_BASE_FVP > + > +#define VEXPRESS_KERNEL_ADDR 0x80080000 > +#define VEXPRESS_FDT_ADDR 0x8fc00000 > +#define VEXPRESS_BOOT_ADDR 0x8fd00000 > +#define VEXPRESS_RAMDISK_ADDR 0x8fe00000 > + > #define CONFIG_EXTRA_ENV_SETTINGS \ > "kernel_name=Image\0" \ > - "kernel_addr=0x80080000\0" \ > - "initrd_name=ramdisk.img\0" \ > - "initrd_addr=0x88000000\0" \ > - "fdtfile=devtree.dtb\0" \ > - "fdt_addr=0x83000000\0" \ > - "boot_name=boot.img\0" \ > - "boot_addr=0x8007f800\0" > + "kernel_addr_r=" __stringify(VEXPRESS_KERNEL_ADDR) "\0" \ > + "ramdisk_name=ramdisk.img\0" \ > + "ramdisk_addr_r=" __stringify(VEXPRESS_RAMDISK_ADDR) "\0" \ > + "fdtfile=devtree.dtb\0" \ > + "fdt_addr_r=" __stringify(VEXPRESS_FDT_ADDR) "\0" \ > + "boot_name=boot.img\0" \ > + "boot_addr_r=" __stringify(VEXPRESS_BOOT_ADDR) "\0" > > #ifndef CONFIG_BOOTCOMMAND > -#define CONFIG_BOOTCOMMAND "if smhload ${boot_name} ${boot_addr}; then " \ > +#define CONFIG_BOOTCOMMAND "if smhload ${boot_name} ${boot_addr_r}; then " \ > " set bootargs; " \ > - " abootimg addr ${boot_addr}; " \ > - " abootimg get dtb --index=0 fdt_addr; " \ > - " bootm ${boot_addr} ${boot_addr} " \ > - " ${fdt_addr}; " \ > + " abootimg addr ${boot_addr_r}; " \ > + " abootimg get dtb --index=0 fdt_addr_r; " \ > + " bootm ${boot_addr_r} ${boot_addr_r} " \ > + " ${fdt_addr_r}; " \ > "else; " \ > " set fdt_high 0xffffffffffffffff; " \ > " set initrd_high 0xffffffffffffffff; " \ > - " smhload ${kernel_name} ${kernel_addr}; " \ > - " smhload ${fdtfile} ${fdt_addr}; " \ > - " smhload ${initrd_name} ${initrd_addr} "\ > - " initrd_end; " \ > - " fdt addr ${fdt_addr}; fdt resize; " \ > - " fdt chosen ${initrd_addr} ${initrd_end}; " \ > - " booti $kernel_addr - $fdt_addr; " \ > + " smhload ${kernel_name} ${kernel_addr_r}; " \ > + " smhload ${fdtfile} ${fdt_addr_r}; " \ > + " smhload ${ramdisk_name} ${ramdisk_addr_r} "\ > + " ramdisk_end; " \ > + " fdt addr ${fdt_addr_r}; fdt resize; " \ > + " if test -n ${ramdisk_end}; then "\ > + " fdt chosen ${ramdisk_addr_r} ${ramdisk_end}; " \ > + " else; " \ > + " fdt chosen; " \ > + " fi; " \ > + " booti $kernel_addr_r - $fdt_addr_r; " \ > "fi" > #endif >
On Thu, Nov 11, 2021 at 09:26:01AM +0000, Peter Hoyes wrote: > From: Peter Hoyes <Peter.Hoyes@arm.com> > > Move env var address values to #defines so they can be reused elsewhere. > > Rename env var names to those recommended in the README and modify > addresses to allow more space for the kernel. > > Fix issue where fdt is called with invalid arguments when booting > without a ramdisk. > > Signed-off-by: Peter Hoyes <Peter.Hoyes@arm.com> > Reviewed-by: Andre Przywara <andre.przywara@arm.com> Applied to u-boot/next, thanks!
diff --git a/include/configs/vexpress_aemv8.h b/include/configs/vexpress_aemv8.h index 49517a60b0..7cdfc30649 100644 --- a/include/configs/vexpress_aemv8.h +++ b/include/configs/vexpress_aemv8.h @@ -7,6 +7,8 @@ #ifndef __VEXPRESS_AEMV8_H #define __VEXPRESS_AEMV8_H +#include <linux/stringify.h> + #define CONFIG_REMAKE_ELF /* Link Definitions */ @@ -172,33 +174,43 @@ BOOTENV #elif CONFIG_TARGET_VEXPRESS64_BASE_FVP + +#define VEXPRESS_KERNEL_ADDR 0x80080000 +#define VEXPRESS_FDT_ADDR 0x8fc00000 +#define VEXPRESS_BOOT_ADDR 0x8fd00000 +#define VEXPRESS_RAMDISK_ADDR 0x8fe00000 + #define CONFIG_EXTRA_ENV_SETTINGS \ "kernel_name=Image\0" \ - "kernel_addr=0x80080000\0" \ - "initrd_name=ramdisk.img\0" \ - "initrd_addr=0x88000000\0" \ - "fdtfile=devtree.dtb\0" \ - "fdt_addr=0x83000000\0" \ - "boot_name=boot.img\0" \ - "boot_addr=0x8007f800\0" + "kernel_addr_r=" __stringify(VEXPRESS_KERNEL_ADDR) "\0" \ + "ramdisk_name=ramdisk.img\0" \ + "ramdisk_addr_r=" __stringify(VEXPRESS_RAMDISK_ADDR) "\0" \ + "fdtfile=devtree.dtb\0" \ + "fdt_addr_r=" __stringify(VEXPRESS_FDT_ADDR) "\0" \ + "boot_name=boot.img\0" \ + "boot_addr_r=" __stringify(VEXPRESS_BOOT_ADDR) "\0" #ifndef CONFIG_BOOTCOMMAND -#define CONFIG_BOOTCOMMAND "if smhload ${boot_name} ${boot_addr}; then " \ +#define CONFIG_BOOTCOMMAND "if smhload ${boot_name} ${boot_addr_r}; then " \ " set bootargs; " \ - " abootimg addr ${boot_addr}; " \ - " abootimg get dtb --index=0 fdt_addr; " \ - " bootm ${boot_addr} ${boot_addr} " \ - " ${fdt_addr}; " \ + " abootimg addr ${boot_addr_r}; " \ + " abootimg get dtb --index=0 fdt_addr_r; " \ + " bootm ${boot_addr_r} ${boot_addr_r} " \ + " ${fdt_addr_r}; " \ "else; " \ " set fdt_high 0xffffffffffffffff; " \ " set initrd_high 0xffffffffffffffff; " \ - " smhload ${kernel_name} ${kernel_addr}; " \ - " smhload ${fdtfile} ${fdt_addr}; " \ - " smhload ${initrd_name} ${initrd_addr} "\ - " initrd_end; " \ - " fdt addr ${fdt_addr}; fdt resize; " \ - " fdt chosen ${initrd_addr} ${initrd_end}; " \ - " booti $kernel_addr - $fdt_addr; " \ + " smhload ${kernel_name} ${kernel_addr_r}; " \ + " smhload ${fdtfile} ${fdt_addr_r}; " \ + " smhload ${ramdisk_name} ${ramdisk_addr_r} "\ + " ramdisk_end; " \ + " fdt addr ${fdt_addr_r}; fdt resize; " \ + " if test -n ${ramdisk_end}; then "\ + " fdt chosen ${ramdisk_addr_r} ${ramdisk_end}; " \ + " else; " \ + " fdt chosen; " \ + " fi; " \ + " booti $kernel_addr_r - $fdt_addr_r; " \ "fi" #endif