include: configs: am62x_evm: support boot image v4

- Add vendor_boot and init_boot partitions in partition table.
- Rework Android bootflow to include vendor_boot image loading.

Signed-off-by: Safae Ouajih <souajih@baylibre.com>
Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Signed-off-by: Guillaume La Roque <glaroque@baylibre.com>
This commit is contained in:
Safae Ouajih 2023-08-30 10:04:40 +02:00 committed by Praneeth Bajjuri
parent 9f0d18e7f6
commit c5e4106e65
2 changed files with 23 additions and 7 deletions

View File

@ -138,6 +138,8 @@
#define BOOTENV_DEV_RECOVERY(devtypeu, devtypel, instance) \
"bootcmd_recovery=" \
"setenv run_recovery 0;" \
"setenv ramdisk_addr_r 0xe9000000;" \
"setenv vloadaddr 0xe0000000;" \
"if bcb load " __stringify(CONFIG_FASTBOOT_FLASH_MMC_DEV) " " \
CONTROL_PARTITION "; then " \
"if bcb test command = boot-recovery; then; " \
@ -163,10 +165,15 @@
"run avb_verify_cmd;" \
"part start mmc ${mmcdev} " RECOVERY_PARTITION "${slot_suffix} boot_start;" \
"part size mmc ${mmcdev} " RECOVERY_PARTITION "${slot_suffix} boot_size;" \
"part start mmc ${mmcdev} vendor_boot${slot_suffix} vendor_boot_start;" \
"part size mmc ${mmcdev} vendor_boot${slot_suffix} vendor_boot_size;" \
"if mmc read ${loadaddr} ${boot_start} ${boot_size}; then " \
"run prepare_fdt_cmd;" \
"echo Running Android Recovery...;" \
BOOT_CMD \
"if mmc read $vloadaddr ${vendor_boot_start} ${vendor_boot_size}; then " \
"abootimg addr $loadaddr $vloadaddr;" \
"run prepare_fdt_cmd;" \
"echo Running Android Recovery...;" \
BOOT_CMD \
"fi;" \
"fi;" \
"echo Failed to boot Android...;" \
"reset;" \
@ -182,13 +189,20 @@
"setenv bootargs ${bootargs} androidboot.serialno=${serial#};" \
"run ab_select_slot_cmd;" \
"run avb_verify_cmd;" \
"setenv ramdisk_addr_r 0xe9000000;" \
"setenv vloadaddr 0xe0000000;" \
"part start mmc ${mmcdev} " BOOT_PARTITION "${slot_suffix} boot_start;" \
"part size mmc ${mmcdev} " BOOT_PARTITION "${slot_suffix} boot_size;" \
"part start mmc ${mmcdev} vendor_boot${slot_suffix} vendor_boot_start;" \
"part size mmc ${mmcdev} vendor_boot${slot_suffix} vendor_boot_size;" \
"if mmc read ${loadaddr} ${boot_start} ${boot_size}; then " \
"run prepare_fdt_cmd;" \
"setenv bootargs \"${bootargs} " AB_BOOTARGS "\" ; " \
"echo Running Android...;" \
BOOT_CMD \
"if mmc read $vloadaddr ${vendor_boot_start} ${vendor_boot_size}; then " \
"abootimg addr $loadaddr $vloadaddr;" \
"run prepare_fdt_cmd;" \
"setenv bootargs \"${bootargs} " AB_BOOTARGS "\" ; " \
"echo Running Android...;" \
BOOT_CMD \
"fi;" \
"fi;" \
"echo Failed to boot Android...\0"

View File

@ -7,6 +7,8 @@ partitions+=name=uboot-env,start=13M,size=512K,uuid=${uuid_gpt_env};
partitions+=name=misc,start=13824K,size=512K,uuid=${uuid_gpt_misc};
partitions+=name=boot_a,size=40M,uuid=${uuid_gpt_boot_a};
partitions+=name=boot_b,size=40M,uuid=${uuid_gpt_boot_b};
partitions+=name=vendor_boot_a,size=32M,uuid=${uuid_gpt_vendor_boot_a};
partitions+=name=vendor_boot_b,size=32M,uuid=${uuid_gpt_vendor_boot_b};
partitions+=name=dtbo_a,size=8M,uuid=${uuid_gpt_dtbo_a};
partitions+=name=dtbo_b,size=8M,uuid=${uuid_gpt_dtbo_b};
partitions+=name=vbmeta_a,size=64K,uuid=${uuid_gpt_vbmeta_a};