[PATCH v1 4/8] arm: total_compute: move the boot command to an env file
Leo Yan
leo.yan at arm.com
Fri Oct 25 19:18:17 CEST 2024
From: Boyan Karatotev <boyan.karatotev at 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 at arm.com>
Signed-off-by: Leo Yan <leo.yan at 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 */
--
2.34.1
More information about the U-Boot
mailing list