From: Boyan Karatotev Date: Fri, 25 Oct 2024 17:18:17 +0000 (+0100) Subject: arm: total_compute: move the boot command to an env file X-Git-Url: http://git.dujemihanovic.xyz/%7B%7B%20%24style.RelPermalink%20%7D%7D?a=commitdiff_plain;h=6d111a6dc22f89104786b43e4e37bde46934330c;p=u-boot.git arm: total_compute: move the boot command to an env file 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 Signed-off-by: Leo Yan --- 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 */