[PATCH] fvp: Add support for loading Android boot images via semihosting

FVP now loads an Android boot image named boot.img if available, otherwise it falls back to the existing code path.
Signed-off-by: Peter Collingbourne pcc@google.com --- configs/vexpress_aemv8a_semi_defconfig | 2 ++ include/configs/vexpress_aemv8a.h | 30 +++++++++++++++++--------- 2 files changed, 22 insertions(+), 10 deletions(-)
diff --git a/configs/vexpress_aemv8a_semi_defconfig b/configs/vexpress_aemv8a_semi_defconfig index f31baab197..b52c761dee 100644 --- a/configs/vexpress_aemv8a_semi_defconfig +++ b/configs/vexpress_aemv8a_semi_defconfig @@ -14,6 +14,8 @@ CONFIG_BOOTARGS="console=ttyAMA0 earlycon=pl011,0x1c090000 debug user_debug=31 l # CONFIG_DISPLAY_CPUINFO is not set # CONFIG_DISPLAY_BOARDINFO is not set CONFIG_SYS_PROMPT="VExpress64# " +CONFIG_ANDROID_BOOT_IMAGE=y +CONFIG_CMD_ABOOTIMG=y # CONFIG_CMD_CONSOLE is not set # CONFIG_CMD_XIMG is not set # CONFIG_CMD_EDITENV is not set diff --git a/include/configs/vexpress_aemv8a.h b/include/configs/vexpress_aemv8a.h index 9a9cec414c..4f3a792f49 100644 --- a/include/configs/vexpress_aemv8a.h +++ b/include/configs/vexpress_aemv8a.h @@ -177,16 +177,26 @@ "initrd_addr=0x88000000\0" \ "fdtfile=devtree.dtb\0" \ "fdt_addr=0x83000000\0" \ - "fdt_high=0xffffffffffffffff\0" \ - "initrd_high=0xffffffffffffffff\0" - -#define CONFIG_BOOTCOMMAND "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" + "boot_name=boot.img\0" \ + "boot_addr=0x8007f800\0" + +#define CONFIG_BOOTCOMMAND "if smhload ${boot_name} ${boot_addr}; then " \ + " set bootargs; " \ + " abootimg addr ${boot_addr}; " \ + " abootimg get dtb --index=0 fdt_addr; " \ + " bootm ${boot_addr} ${boot_addr} " \ + " ${fdt_addr}; " \ + "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; " \ + "fi"
#endif

On Sat, Apr 4, 2020 at 4:58 AM Peter Collingbourne pcc@google.com wrote:
FVP now loads an Android boot image named boot.img if available, otherwise it falls back to the existing code path.
Signed-off-by: Peter Collingbourne pcc@google.com
That's very helpful when doing Android development. Thanks for doing this. Reviewed-by: Linus Walleij linus.walleij@linaro.org
Yours, Linus Walleij

On Fri, Apr 03, 2020 at 07:58:24PM -0700, Peter Collingbourne wrote:
FVP now loads an Android boot image named boot.img if available, otherwise it falls back to the existing code path.
Signed-off-by: Peter Collingbourne pcc@google.com Reviewed-by: Ryan Harkin ryan.harkin@linaro.org Reviewed-by: Linus Walleij linus.walleij@linaro.org
Applied to u-boot/master, thanks!
participants (3)
-
Linus Walleij
-
Peter Collingbourne
-
Tom Rini