diff options
author | Tom Rini <trini@konsulko.com> | 2024-10-02 13:34:35 -0600 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2024-10-02 13:34:35 -0600 |
commit | 2e8dfef46c57657f4d1b9eb536bf7efa62c330ea (patch) | |
tree | 55953b9d524685cbe885a59f1d0166525ca324bc | |
parent | 8aee4c8111cf0d4a3f86ce48a9f83ffc42ab1cd8 (diff) | |
parent | ce68e2be7e2318d7982da965fa1be1c3a1a1eb3a (diff) | |
download | u-boot-2e8dfef46c57657f4d1b9eb536bf7efa62c330ea.tar.gz |
Merge patch series "Add Android 14 bootflow support for AM62X and AM62P board"
Guillaume La Roque <glaroque@baylibre.com> says:
Ths patchset add support of Android 14 with boot image version 4
for :
- AM62X-SK EVM: https://www.ti.com/tool/SK-AM62B
- BeaglePlay: https://beagleplay.org/
- AM62PX-SK EVM: https://www.ti.com/tool/SK-AM62P-LP
Android Images use to test this series are on the Official TI website:
- AM62x/BeaglePlay: https://www.ti.com/tool/PROCESSOR-SDK-AM62X
- AM62PX: https://www.ti.com/tool/PROCESSOR-SDK-AM62P
-rw-r--r-- | board/beagle/beagleplay/beagleplay.env | 30 | ||||
-rw-r--r-- | board/ti/am62px/am62px.env | 5 | ||||
-rw-r--r-- | board/ti/am62x/am62x.env | 5 | ||||
-rw-r--r-- | configs/am62x_a53_android.config | 21 | ||||
-rw-r--r-- | doc/board/ti/am62x_sk.rst | 14 | ||||
-rw-r--r-- | include/env/ti/android.env | 31 |
6 files changed, 106 insertions, 0 deletions
diff --git a/board/beagle/beagleplay/beagleplay.env b/board/beagle/beagleplay/beagleplay.env index 354bc987d12..fc29d49712d 100644 --- a/board/beagle/beagleplay/beagleplay.env +++ b/board/beagle/beagleplay/beagleplay.env @@ -17,3 +17,33 @@ bootdir=/boot boot_targets=mmc1 mmc0 bootmeths=script extlinux efi pxe rd_spec=- + +#if CONFIG_BOOTMETH_ANDROID +#include <env/ti/android.env> +/* Override Android partitions + * Required because tiboot3 is in mmc0boot0, not in UDA + * note that += is needed because \n is converted by space in .env files */ +partitions= + name=bootloader,start=5M,size=8M,uuid=${uuid_gpt_bootloader}; +partitions+=name=misc,start=13824K,size=512K,uuid=${uuid_gpt_misc}; +partitions+=name=frp,size=512K,uuid=${uuid_gpt_frp}; +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=init_boot_a,size=8M,uuid=${uuid_gpt_init_boot_a}; +partitions+=name=init_boot_b,size=8M,uuid=${uuid_gpt_init_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}; +partitions+=name=vbmeta_b,size=64K,uuid=${uuid_gpt_vbmeta_b}; +partitions+=name=vbmeta_vendor_dlkm_a,size=64K,uuid=${uuid_gpt_vbmeta_vendor_dlkm_a}; +partitions+=name=vbmeta_vendor_dlkm_b,size=64K,uuid=${uuid_gpt_vbmeta_vendor_dlkm_b}; +partitions+=name=super,size=4608M,uuid=${uuid_gpt_super}; +partitions+=name=metadata,size=64M,uuid=${uuid_gpt_metadata}; +partitions+=name=persist,size=32M,uuid=${uuid_gpt_persist}; +partitions+=name=userdata,size=-,uuid=${uuid_gpt_userdata} +fastboot_raw_partition_tiboot3="0x0 0x800 mmcpart 1" + +adtb_idx=2 +#endif diff --git a/board/ti/am62px/am62px.env b/board/ti/am62px/am62px.env index f8b6aff2c2f..7ef54079aa8 100644 --- a/board/ti/am62px/am62px.env +++ b/board/ti/am62px/am62px.env @@ -13,3 +13,8 @@ mmcdev=1 bootpart=1:2 bootdir=/boot rd_spec=- + +#if CONFIG_BOOTMETH_ANDROID +#include <env/ti/android.env> +adtb_idx=3 +#endif
\ No newline at end of file diff --git a/board/ti/am62x/am62x.env b/board/ti/am62x/am62x.env index 09b9b16a3e5..078cc4b5ac9 100644 --- a/board/ti/am62x/am62x.env +++ b/board/ti/am62x/am62x.env @@ -19,3 +19,8 @@ splashfile=ti_logo_414x97_32bpp.bmp.gz splashimage=0x80200000 splashpos=m,m splashsource=sf + +#if CONFIG_BOOTMETH_ANDROID +#include <env/ti/android.env> +adtb_idx=0 +#endif
\ No newline at end of file diff --git a/configs/am62x_a53_android.config b/configs/am62x_a53_android.config new file mode 100644 index 00000000000..adbe2b8e126 --- /dev/null +++ b/configs/am62x_a53_android.config @@ -0,0 +1,21 @@ +# Defconfig fragment for enabling Android boot flow +# to apply on top of am62x_evm_a53_defconfig or am62x_lpsk_a53_defconfig +# Enable fastboot +CONFIG_USB_FUNCTION_FASTBOOT=y +CONFIG_FASTBOOT_BUF_ADDR=0xC0000000 +CONFIG_FASTBOOT_BUF_SIZE=0x2F000000 +CONFIG_FASTBOOT_FLASH=y +CONFIG_FASTBOOT_FLASH_MMC_DEV=0 +CONFIG_CMD_GPT=y # Needed for FASTBOOT_CMD_OEM_FORMAT +CONFIG_RANDOM_UUID=y # Needed for FASTBOOT_CMD_OEM_FORMAT +CONFIG_FASTBOOT_CMD_OEM_FORMAT=y +# Enable Android boot flow +CONFIG_BOOTMETH_ANDROID=y +CONFIG_SYS_BOOTM_LEN=0x4000000 +CONFIG_SYS_MALLOC_LEN=0x08000000 +CONFIG_AVB_VERIFY=y +CONFIG_LIBAVB=y +CONFIG_CMD_ADTIMG=y +CONFIG_CMD_ABOOTIMG=y +CONFIG_CMD_AB_SELECT=y +CONFIG_CMD_AVB=y diff --git a/doc/board/ti/am62x_sk.rst b/doc/board/ti/am62x_sk.rst index b9d35244d44..51dab839ddd 100644 --- a/doc/board/ti/am62x_sk.rst +++ b/doc/board/ti/am62x_sk.rst @@ -132,6 +132,20 @@ DFU support (and disable storage support) .. include:: ../ti/k3.rst :start-after: .. k3_rst_include_start_build_steps_uboot :end-before: .. k3_rst_include_end_build_steps_uboot + +* 3.2.1 Alternative build of A53 for Android bootflow: + +Since the Android requires many more dependencies, it is disabled by default. +An extra config fragment should be used to enable Android bootflow support. + +.. prompt:: bash $ + + export UBOOT_CFG_CORTEXR="${UBOOT_CFG_CORTEXA} am62x_a53_android.config" + +.. include:: ../ti/k3.rst + :start-after: .. k3_rst_include_start_build_steps_uboot + :end-before: .. k3_rst_include_end_build_steps_uboot + .. am62x_evm_rst_include_end_build_steps Target Images diff --git a/include/env/ti/android.env b/include/env/ti/android.env new file mode 100644 index 00000000000..a058beb7fc4 --- /dev/null +++ b/include/env/ti/android.env @@ -0,0 +1,31 @@ +/* Android partitions + * += is needed because \n is converted by space in .env files */ +partitions=name=bootloader,start=5M,size=8M,uuid=${uuid_gpt_bootloader}; +partitions+=name=tiboot3,start=4M,size=1M,uuid=${uuid_gpt_tiboot3}; +partitions+=name=misc,start=13824K,size=512K,uuid=${uuid_gpt_misc}; +partitions+=name=frp,size=512K,uuid=${uuid_gpt_frp}; +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=init_boot_a,size=8M,uuid=${uuid_gpt_init_boot_a}; +partitions+=name=init_boot_b,size=8M,uuid=${uuid_gpt_init_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}; +partitions+=name=vbmeta_b,size=64K,uuid=${uuid_gpt_vbmeta_b}; +partitions+=name=vbmeta_vendor_dlkm_a,size=64K,uuid=${uuid_gpt_vbmeta_vendor_dlkm_a}; +partitions+=name=vbmeta_vendor_dlkm_b,size=64K,uuid=${uuid_gpt_vbmeta_vendor_dlkm_b}; +partitions+=name=super,size=4608M,uuid=${uuid_gpt_super}; +partitions+=name=metadata,size=64M,uuid=${uuid_gpt_metadata}; +partitions+=name=persist,size=32M,uuid=${uuid_gpt_persist}; +partitions+=name=userdata,size=-,uuid=${uuid_gpt_userdata} + +fastboot_raw_partition_bootenv=0x800 0x400 mmcpart 1 +fastboot.partition-type:metadata=f2fs + +boot_targets=mmc0 +mmcdev=0 +bootmeths=android +vendor_boot_comp_addr_r=0xd0000000 +bootcmd=bootflow scan -lb |