
From: Boyan Karatotev boyan.karatotev@arm.com
The boot command for Total Compute has many aspects and changes from time to time. So move it to an .env file where it can be a proper script.
Signed-off-by: Boyan Karatotev boyan.karatotev@arm.com Signed-off-by: Leo Yan leo.yan@arm.com --- board/armltd/total_compute/total_compute.env | 28 ++++++++++++++++++++ configs/total_compute_defconfig | 2 +- include/configs/total_compute.h | 10 ------- 3 files changed, 29 insertions(+), 11 deletions(-) create mode 100644 board/armltd/total_compute/total_compute.env
diff --git a/board/armltd/total_compute/total_compute.env b/board/armltd/total_compute/total_compute.env new file mode 100644 index 0000000000..8975a86fd2 --- /dev/null +++ b/board/armltd/total_compute/total_compute.env @@ -0,0 +1,28 @@ +/* DRAM1 + 0x2000_0000 */ +load_addr=0xa0000000 +/* DRAM1 + 0x0800_0000 */ +initrd_addr_r=0x88000000 + +bootcmd= + if part number mmc 0 vbmeta is_avb; then + echo 'MMC with vbmeta partition detected.'; + echo 'Starting Android Verified boot...'; + avb init 0; + if avb verify; then + set bootargs $bootargs $avb_bootargs; + part start mmc 0 boot boot_start; + part size mmc 0 boot boot_size; + mmc read ${load_addr} ${boot_start} ${boot_size}; + bootm ${load_addr} ${load_addr} ${fdt_addr_r}; + else; + echo 'AVB verification failed.'; + exit; + fi; + elif part number mmc 0 system is_non_avb_android; then + echo 'Booting Android non-AVB...'; + booti ${kernel_addr_r} ${initrd_addr_r} ${fdt_addr_r}; + elif iminfo ${load_addr}; then + echo 'Booting FIT image...'; + bootm ${load_addr} ${load_addr} ${fdt_addr_r}; + fi; + echo 'ERROR: No valid image to boot the system. Aborting boot sequence.'; diff --git a/configs/total_compute_defconfig b/configs/total_compute_defconfig index 5f21d2e367..291083d8b6 100644 --- a/configs/total_compute_defconfig +++ b/configs/total_compute_defconfig @@ -18,7 +18,6 @@ CONFIG_FIT_SIGNATURE=y CONFIG_LEGACY_IMAGE_FORMAT=y CONFIG_DISTRO_DEFAULTS=y CONFIG_BOOTDELAY=5 -CONFIG_BOOTCOMMAND="if part number mmc 0 vbmeta is_avb; then echo MMC with vbmeta partition detected.; echo starting Android Verified boot.; avb init 0; if avb verify; then set bootargs $bootargs $avb_bootargs; part start mmc 0 boot boot_start; part size mmc 0 boot boot_size; mmc read ${load_addr} ${boot_start} ${boot_size}; bootm ${load_addr} ${load_addr} ${fdt_addr_r}; else; echo AVB verification failed.; exit; fi; elif part number mmc 0 system is_non_avb_android; then booti ${kernel_addr_r} ${initrd_addr_r} ${fdt_addr_r};else; echo Booting FIT image.; bootm ${load_addr} ${load_addr} ${fdt_addr_r}; fi;" CONFIG_SYS_CBSIZE=512 CONFIG_SYS_PBSIZE=544 # CONFIG_DISPLAY_CPUINFO is not set @@ -60,3 +59,4 @@ CONFIG_SYS_FLASH_CFI=y CONFIG_SYS_MAX_FLASH_SECT=256 # CONFIG_RANDOM_UUID is not set CONFIG_LIBAVB=y +CONFIG_ENV_SOURCE_FILE=total_compute diff --git a/include/configs/total_compute.h b/include/configs/total_compute.h index 4c966ce4bf..5cc0166f19 100644 --- a/include/configs/total_compute.h +++ b/include/configs/total_compute.h @@ -11,16 +11,6 @@
/* Link Definitions */
-#define CFG_EXTRA_ENV_SETTINGS \ - "load_addr=0xa0000000\0" \ - "initrd_addr_r=0x88000000\0" -/* - * If vbmeta partition is present, boot Android with verification using AVB. - * Else if system partition is present (no vbmeta partition), boot Android - * without verification (for development purposes). - * Else boot FIT image. - */ - #define CFG_SYS_FLASH_BASE 0x0C000000
#endif /* __TOTAL_COMPUTE_H */