[PATCH 0/2] configs: khadas-vim3{l}: Android bootflow updates

Hello, 2 small fixes for Khadas VIM3 and VIM3L to boot Android.
Recently, some effort has been made to use the upstream android-mainline kernel on these boards [1].
To use android-mainline kernel, we should: * Increase the boot/recovery partition sizes (so that it fits) * Drop dtbo support, since these are not part of android-mainline
[1] https://android-review.googlesource.com/c/kernel/common/+/3296472
Signed-off-by: Mattijs Korpershoek mkorpershoek@baylibre.com --- Mattijs Korpershoek (2): configs: khadas-vim3{l}: Increase boot/recovery partition size configs: meson64_android: Remove dtbo support
include/configs/khadas-vim3_android.h | 8 ++++---- include/configs/khadas-vim3l_android.h | 8 ++++---- include/configs/meson64_android.h | 26 +------------------------- 3 files changed, 9 insertions(+), 33 deletions(-) --- base-commit: a404065479be2c1fe1167c3c91367e8194a69d1b change-id: 20241011-yukawa-aosp-parts-77d255a19cda
Best regards,

The Android Common Kernel is over 34MiB now [1]. This does not include any kernel modules nor the Android ramdisk.
To make sure we are future proof, increase both recovery and boot partitions to 64 MiB.
[1] https://source.android.com/docs/core/architecture/kernel/gki-android15-6_6-r... Signed-off-by: Mattijs Korpershoek mkorpershoek@baylibre.com --- include/configs/khadas-vim3_android.h | 8 ++++---- include/configs/khadas-vim3l_android.h | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/include/configs/khadas-vim3_android.h b/include/configs/khadas-vim3_android.h index da6adf6c413a..b76e049f09cc 100644 --- a/include/configs/khadas-vim3_android.h +++ b/include/configs/khadas-vim3_android.h @@ -21,8 +21,8 @@ "name=dtbo_b,size=8M,uuid=${uuid_gpt_dtbo_b};" \ "name=vbmeta_a,size=512K,uuid=${uuid_gpt_vbmeta_a};" \ "name=vbmeta_b,size=512K,uuid=${uuid_gpt_vbmeta_b};" \ - "name=boot_a,size=32M,bootable,uuid=${uuid_gpt_boot_a};" \ - "name=boot_b,size=32M,bootable,uuid=${uuid_gpt_boot_b};" \ + "name=boot_a,size=64M,bootable,uuid=${uuid_gpt_boot_a};" \ + "name=boot_b,size=64M,bootable,uuid=${uuid_gpt_boot_b};" \ "name=super,size=3072M,uuid=${uuid_gpt_super};" \ "name=userdata,size=11282M,uuid=${uuid_gpt_userdata};" \ "name=rootfs,size=-,uuid=" ROOT_UUID @@ -33,8 +33,8 @@ "name=misc,size=512K,uuid=${uuid_gpt_misc};" \ "name=dtbo,size=8M,uuid=${uuid_gpt_dtbo};" \ "name=vbmeta,size=512K,uuid=${uuid_gpt_vbmeta};" \ - "name=boot,size=32M,bootable,uuid=${uuid_gpt_boot};" \ - "name=recovery,size=32M,uuid=${uuid_gpt_recovery};" \ + "name=boot,size=64M,bootable,uuid=${uuid_gpt_boot};" \ + "name=recovery,size=64M,uuid=${uuid_gpt_recovery};" \ "name=cache,size=256M,uuid=${uuid_gpt_cache};" \ "name=super,size=1792M,uuid=${uuid_gpt_super};" \ "name=userdata,size=12786M,uuid=${uuid_gpt_userdata};" \ diff --git a/include/configs/khadas-vim3l_android.h b/include/configs/khadas-vim3l_android.h index b1768e2d8211..0ab8ffd372a4 100644 --- a/include/configs/khadas-vim3l_android.h +++ b/include/configs/khadas-vim3l_android.h @@ -21,8 +21,8 @@ "name=dtbo_b,size=8M,uuid=${uuid_gpt_dtbo_b};" \ "name=vbmeta_a,size=512K,uuid=${uuid_gpt_vbmeta_a};" \ "name=vbmeta_b,size=512K,uuid=${uuid_gpt_vbmeta_b};" \ - "name=boot_a,size=32M,bootable,uuid=${uuid_gpt_boot_a};" \ - "name=boot_b,size=32M,bootable,uuid=${uuid_gpt_boot_b};" \ + "name=boot_a,size=64M,bootable,uuid=${uuid_gpt_boot_a};" \ + "name=boot_b,size=64M,bootable,uuid=${uuid_gpt_boot_b};" \ "name=super,size=3072M,uuid=${uuid_gpt_super};" \ "name=userdata,size=11282M,uuid=${uuid_gpt_userdata};" \ "name=rootfs,size=-,uuid=" ROOT_UUID @@ -33,8 +33,8 @@ "name=misc,size=512K,uuid=${uuid_gpt_misc};" \ "name=dtbo,size=8M,uuid=${uuid_gpt_dtbo};" \ "name=vbmeta,size=512K,uuid=${uuid_gpt_vbmeta};" \ - "name=boot,size=32M,bootable,uuid=${uuid_gpt_boot};" \ - "name=recovery,size=32M,uuid=${uuid_gpt_recovery};" \ + "name=boot,size=64M,bootable,uuid=${uuid_gpt_boot};" \ + "name=recovery,size=64M,uuid=${uuid_gpt_recovery};" \ "name=cache,size=256M,uuid=${uuid_gpt_cache};" \ "name=super,size=1792M,uuid=${uuid_gpt_super};" \ "name=userdata,size=12786M,uuid=${uuid_gpt_userdata};" \

Hi,
Le 11/10/2024 à 17:51, Mattijs Korpershoek a écrit :
The Android Common Kernel is over 34MiB now [1]. This does not include any kernel modules nor the Android ramdisk.
To make sure we are future proof, increase both recovery and boot partitions to 64 MiB.
[1] https://source.android.com/docs/core/architecture/kernel/gki-android15-6_6-r... Signed-off-by: Mattijs Korpershoek mkorpershoek@baylibre.com
include/configs/khadas-vim3_android.h | 8 ++++---- include/configs/khadas-vim3l_android.h | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/include/configs/khadas-vim3_android.h b/include/configs/khadas-vim3_android.h index da6adf6c413a..b76e049f09cc 100644 --- a/include/configs/khadas-vim3_android.h +++ b/include/configs/khadas-vim3_android.h @@ -21,8 +21,8 @@ "name=dtbo_b,size=8M,uuid=${uuid_gpt_dtbo_b};" \ "name=vbmeta_a,size=512K,uuid=${uuid_gpt_vbmeta_a};" \ "name=vbmeta_b,size=512K,uuid=${uuid_gpt_vbmeta_b};" \
- "name=boot_a,size=32M,bootable,uuid=${uuid_gpt_boot_a};" \
- "name=boot_b,size=32M,bootable,uuid=${uuid_gpt_boot_b};" \
- "name=boot_a,size=64M,bootable,uuid=${uuid_gpt_boot_a};" \
- "name=boot_b,size=64M,bootable,uuid=${uuid_gpt_boot_b};" \ "name=super,size=3072M,uuid=${uuid_gpt_super};" \ "name=userdata,size=11282M,uuid=${uuid_gpt_userdata};" \ "name=rootfs,size=-,uuid=" ROOT_UUID
@@ -33,8 +33,8 @@ "name=misc,size=512K,uuid=${uuid_gpt_misc};" \ "name=dtbo,size=8M,uuid=${uuid_gpt_dtbo};" \ "name=vbmeta,size=512K,uuid=${uuid_gpt_vbmeta};" \
- "name=boot,size=32M,bootable,uuid=${uuid_gpt_boot};" \
- "name=recovery,size=32M,uuid=${uuid_gpt_recovery};" \
- "name=boot,size=64M,bootable,uuid=${uuid_gpt_boot};" \
- "name=recovery,size=64M,uuid=${uuid_gpt_recovery};" \ "name=cache,size=256M,uuid=${uuid_gpt_cache};" \ "name=super,size=1792M,uuid=${uuid_gpt_super};" \ "name=userdata,size=12786M,uuid=${uuid_gpt_userdata};" \
diff --git a/include/configs/khadas-vim3l_android.h b/include/configs/khadas-vim3l_android.h index b1768e2d8211..0ab8ffd372a4 100644 --- a/include/configs/khadas-vim3l_android.h +++ b/include/configs/khadas-vim3l_android.h @@ -21,8 +21,8 @@ "name=dtbo_b,size=8M,uuid=${uuid_gpt_dtbo_b};" \ "name=vbmeta_a,size=512K,uuid=${uuid_gpt_vbmeta_a};" \ "name=vbmeta_b,size=512K,uuid=${uuid_gpt_vbmeta_b};" \
- "name=boot_a,size=32M,bootable,uuid=${uuid_gpt_boot_a};" \
- "name=boot_b,size=32M,bootable,uuid=${uuid_gpt_boot_b};" \
- "name=boot_a,size=64M,bootable,uuid=${uuid_gpt_boot_a};" \
- "name=boot_b,size=64M,bootable,uuid=${uuid_gpt_boot_b};" \ "name=super,size=3072M,uuid=${uuid_gpt_super};" \ "name=userdata,size=11282M,uuid=${uuid_gpt_userdata};" \ "name=rootfs,size=-,uuid=" ROOT_UUID
@@ -33,8 +33,8 @@ "name=misc,size=512K,uuid=${uuid_gpt_misc};" \ "name=dtbo,size=8M,uuid=${uuid_gpt_dtbo};" \ "name=vbmeta,size=512K,uuid=${uuid_gpt_vbmeta};" \
- "name=boot,size=32M,bootable,uuid=${uuid_gpt_boot};" \
- "name=recovery,size=32M,uuid=${uuid_gpt_recovery};" \
- "name=boot,size=64M,bootable,uuid=${uuid_gpt_boot};" \
- "name=recovery,size=64M,uuid=${uuid_gpt_recovery};" \ "name=cache,size=256M,uuid=${uuid_gpt_cache};" \ "name=super,size=1792M,uuid=${uuid_gpt_super};" \ "name=userdata,size=12786M,uuid=${uuid_gpt_userdata};" \
Reviewed-by: Guillaume La Roque glaroque@baylibre.com

The device tree overlays are not part of the Android Common Kernel code [1]
Historically, they existed to enable some Android specific features but they have been removed.
Remove the dtbos logic since these files do no longer exist.
[1] https://android.googlesource.com/kernel/common/+/ac2ea0bb91a3b5f5e71eba66c44... Signed-off-by: Mattijs Korpershoek mkorpershoek@baylibre.com --- include/configs/meson64_android.h | 26 +------------------------- 1 file changed, 1 insertion(+), 25 deletions(-)
diff --git a/include/configs/meson64_android.h b/include/configs/meson64_android.h index c0e977abb01f..fa520265800c 100644 --- a/include/configs/meson64_android.h +++ b/include/configs/meson64_android.h @@ -116,31 +116,7 @@ "fi; " \ "abootimg get dtb --index=$dtb_index dtb_start dtb_size; " \ "cp.b $dtb_start $fdt_addr_r $dtb_size; " \ - "fdt addr $fdt_addr_r 0x80000; " \ - "if test $board_name = sei510; then " \ - "echo " Reading DTBO for sei510..."; " \ - "setenv dtbo_index 0;" \ - "elif test $board_name = sei610; then " \ - "echo " Reading DTBO for sei610..."; " \ - "setenv dtbo_index 1;" \ - "elif test $board_name = vim3l; then " \ - "echo " Reading DTBO for vim3l..."; " \ - "setenv dtbo_index 2;" \ - "elif test $board_name = vim3; then " \ - "echo " Reading DTBO for vim3..."; " \ - "setenv dtbo_index 3;" \ - "else " \ - "echo Error: Android boot is not supported for $board_name; " \ - "exit; " \ - "fi; " \ - "part start mmc ${mmcdev} dtbo${slot_suffix} p_dtbo_start; " \ - "part size mmc ${mmcdev} dtbo${slot_suffix} p_dtbo_size; " \ - "mmc read ${dtboaddr} ${p_dtbo_start} ${p_dtbo_size}; " \ - "echo " Applying DTBOs..."; " \ - "adtimg addr $dtboaddr; " \ - "adtimg get dt --index=$dtbo_index dtbo0_addr; " \ - "fdt apply $dtbo0_addr;" \ - "setenv bootargs "$bootargs androidboot.dtbo_idx=$dtbo_index ";"\ + "fdt addr $fdt_addr_r 0x80000; "
#define BOOT_CMD "bootm ${loadaddr} ${loadaddr} ${fdt_addr_r};"

Hi,
Le 11/10/2024 à 17:51, Mattijs Korpershoek a écrit :
The device tree overlays are not part of the Android Common Kernel code [1]
Historically, they existed to enable some Android specific features but they have been removed.
Remove the dtbos logic since these files do no longer exist.
[1] https://android.googlesource.com/kernel/common/+/ac2ea0bb91a3b5f5e71eba66c44... Signed-off-by: Mattijs Korpershoek mkorpershoek@baylibre.com
include/configs/meson64_android.h | 26 +------------------------- 1 file changed, 1 insertion(+), 25 deletions(-)
diff --git a/include/configs/meson64_android.h b/include/configs/meson64_android.h index c0e977abb01f..fa520265800c 100644 --- a/include/configs/meson64_android.h +++ b/include/configs/meson64_android.h @@ -116,31 +116,7 @@ "fi; " \ "abootimg get dtb --index=$dtb_index dtb_start dtb_size; " \ "cp.b $dtb_start $fdt_addr_r $dtb_size; " \
- "fdt addr $fdt_addr_r 0x80000; " \
- "if test $board_name = sei510; then " \
"echo \" Reading DTBO for sei510...\"; " \
"setenv dtbo_index 0;" \
- "elif test $board_name = sei610; then " \
"echo \" Reading DTBO for sei610...\"; " \
"setenv dtbo_index 1;" \
- "elif test $board_name = vim3l; then " \
"echo \" Reading DTBO for vim3l...\"; " \
"setenv dtbo_index 2;" \
- "elif test $board_name = vim3; then " \
"echo \" Reading DTBO for vim3...\"; " \
"setenv dtbo_index 3;" \
- "else " \
"echo Error: Android boot is not supported for $board_name; " \
"exit; " \
- "fi; " \
- "part start mmc ${mmcdev} dtbo${slot_suffix} p_dtbo_start; " \
- "part size mmc ${mmcdev} dtbo${slot_suffix} p_dtbo_size; " \
- "mmc read ${dtboaddr} ${p_dtbo_start} ${p_dtbo_size}; " \
- "echo " Applying DTBOs..."; " \
- "adtimg addr $dtboaddr; " \
- "adtimg get dt --index=$dtbo_index dtbo0_addr; " \
- "fdt apply $dtbo0_addr;" \
- "setenv bootargs "$bootargs androidboot.dtbo_idx=$dtbo_index ";"\
"fdt addr $fdt_addr_r 0x80000; "
#define BOOT_CMD "bootm ${loadaddr} ${loadaddr} ${fdt_addr_r};"
Reviewed-by: Guillaume La Roque glaroque@baylibre.com

Le 11/10/2024 à 17:51, Mattijs Korpershoek a écrit :
Hello, 2 small fixes for Khadas VIM3 and VIM3L to boot Android.
Recently, some effort has been made to use the upstream android-mainline kernel on these boards [1].
To use android-mainline kernel, we should:
- Increase the boot/recovery partition sizes (so that it fits)
- Drop dtbo support, since these are not part of android-mainline
[1] https://android-review.googlesource.com/c/kernel/common/+/3296472
Signed-off-by: Mattijs Korpershoek mkorpershoek@baylibre.com
Mattijs Korpershoek (2): configs: khadas-vim3{l}: Increase boot/recovery partition size configs: meson64_android: Remove dtbo support
include/configs/khadas-vim3_android.h | 8 ++++---- include/configs/khadas-vim3l_android.h | 8 ++++---- include/configs/meson64_android.h | 26 +------------------------- 3 files changed, 9 insertions(+), 33 deletions(-)
base-commit: a404065479be2c1fe1167c3c91367e8194a69d1b change-id: 20241011-yukawa-aosp-parts-77d255a19cda
Best regards,
Thanks !
Reviewed-by: Neil Armstrong neil.armstrong@linaro.org

Hi,
On Fri, 11 Oct 2024 17:51:01 +0200, Mattijs Korpershoek wrote:
Recently, some effort has been made to use the upstream android-mainline kernel on these boards [1].
To use android-mainline kernel, we should:
- Increase the boot/recovery partition sizes (so that it fits)
- Drop dtbo support, since these are not part of android-mainline
[...]
Thanks, Applied to https://source.denx.de/u-boot/custodians/u-boot-amlogic (u-boot-amlogic-next)
[1/2] configs: khadas-vim3{l}: Increase boot/recovery partition size https://source.denx.de/u-boot/custodians/u-boot-amlogic/-/commit/ce138d9742b... [2/2] configs: meson64_android: Remove dtbo support https://source.denx.de/u-boot/custodians/u-boot-amlogic/-/commit/0b063d66406...
participants (3)
-
Guillaume LA ROQUE
-
Mattijs Korpershoek
-
Neil Armstrong