public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [PATCH v2 0/5] Add support of Android Boot Image version 2 and non-AB image
@ 2024-11-14 21:29 Guillaume La Roque
  2024-11-14 21:29 ` [PATCH v2 1/5] bootstd: android: add support of bootimage v2 Guillaume La Roque
                   ` (5 more replies)
  0 siblings, 6 replies; 14+ messages in thread
From: Guillaume La Roque @ 2024-11-14 21:29 UTC (permalink / raw)
  To: Mattijs Korpershoek, Simon Glass, Tom Rini, Neil Armstrong
  Cc: Julien Masson, u-boot, u-boot-amlogic, Guillaume La Roque

Actually bootmethod android only support android boot image version 4
and with AB image, some old platform wtill use android boot image
version 2 with AB or without AB slot.

This patchset add support of both version 2 and non-AB slot images.
It's fixed in same time a boot issue seen on khadas vim3{l} board with 16GB eMMC

patchset was tested on khadas VIM3 and VIM3L with AOSP main branch and
android-mainline kernel and with TI AM62P with android release provided
by TI.

Signed-off-by: Guillaume La Roque <glaroque@baylibre.com>
---
Changes in v2:
- Drop patch 3 (configs: khadas-vim3{l}: fix userdata size) already
  applied 
- Apply Tested-by and Reviewed-by from v1
- Fix comments
- Revert malloc/free for slot_suffix
- Remove vim3/vim3l stuff in meson64_android.h 
- Link to v1: https://lore.kernel.org/r/20241017-adnroidv2-v1-0-781c939902c9@baylibre.com

---
Guillaume La Roque (5):
      bootstd: android: add support of bootimage v2
      bootstd: android: add non-A/B image support
      configs: khadas-vim3l_android{_ab}: move on bootmeth android
      configs: khadas-vim3_android{_ab}: move on bootmeth android
      bootstd: Add test for Android boot image v2

 arch/sandbox/dts/test.dts                 | 10 +++-
 boot/Kconfig                              |  1 -
 boot/bootmeth_android.c                   | 78 +++++++++++++++++++++----------
 configs/am62x_a53_android.config          |  1 +
 configs/khadas-vim3_android_ab_defconfig  |  7 ++-
 configs/khadas-vim3_android_defconfig     |  7 ++-
 configs/khadas-vim3l_android_ab_defconfig |  7 ++-
 configs/khadas-vim3l_android_defconfig    |  7 ++-
 configs/sandbox_defconfig                 |  1 +
 include/configs/khadas-vim3_android.h     | 26 +++++++++--
 include/configs/khadas-vim3l_android.h    | 26 +++++++++--
 include/configs/meson64_android.h         |  6 ---
 test/boot/bootflow.c                      | 29 ++++++++++--
 test/py/tests/test_ut.py                  | 49 +++++++++++++++++++
 14 files changed, 208 insertions(+), 47 deletions(-)
---
base-commit: ce427e40a2422b75374ee3404e3f5c6536e8984a
change-id: 20241015-adnroidv2-a01dca609707

Best regards,
-- 
Guillaume La Roque <glaroque@baylibre.com>


^ permalink raw reply	[flat|nested] 14+ messages in thread

* [PATCH v2 1/5] bootstd: android: add support of bootimage v2
  2024-11-14 21:29 [PATCH v2 0/5] Add support of Android Boot Image version 2 and non-AB image Guillaume La Roque
@ 2024-11-14 21:29 ` Guillaume La Roque
  2024-11-14 21:29 ` [PATCH v2 2/5] bootstd: android: add non-A/B image support Guillaume La Roque
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 14+ messages in thread
From: Guillaume La Roque @ 2024-11-14 21:29 UTC (permalink / raw)
  To: Mattijs Korpershoek, Simon Glass, Tom Rini, Neil Armstrong
  Cc: Julien Masson, u-boot, u-boot-amlogic, Guillaume La Roque

Android bootmeth only support boot image v3/4.

Add support of Android Boot Image version 2 [1].
Vendor boot image is only supported in version 3 and 4 so don't try to
read it when header version is less than 3.

[1] https://source.android.com/docs/core/architecture/bootloader/boot-image-header#header-v2

Tested-by: Julien Masson <jmasson@baylibre.com>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Signed-off-by: Guillaume La Roque <glaroque@baylibre.com>
---
 boot/bootmeth_android.c | 27 ++++++++++++---------------
 1 file changed, 12 insertions(+), 15 deletions(-)

diff --git a/boot/bootmeth_android.c b/boot/bootmeth_android.c
index 19b1f2c377b9..2e7f85e4a708 100644
--- a/boot/bootmeth_android.c
+++ b/boot/bootmeth_android.c
@@ -259,16 +259,12 @@ static int android_read_bootflow(struct udevice *dev, struct bootflow *bflow)
 		goto free_priv;
 	}
 
-	if (priv->header_version != 4) {
-		log_debug("only boot.img v4 is supported %u\n", priv->header_version);
-		ret = -EINVAL;
-		goto free_priv;
-	}
-
-	ret = scan_vendor_boot_part(bflow->blk, priv);
-	if (ret < 0) {
-		log_debug("scan vendor_boot failed: err=%d\n", ret);
-		goto free_priv;
+	if (priv->header_version >= 3) {
+		ret = scan_vendor_boot_part(bflow->blk, priv);
+		if (ret < 0) {
+			log_debug("scan vendor_boot failed: err=%d\n", ret);
+			goto free_priv;
+		}
 	}
 
 	/*
@@ -476,12 +472,13 @@ static int boot_android_normal(struct bootflow *bflow)
 	if (ret < 0)
 		return log_msg_ret("read boot", ret);
 
-	ret = read_slotted_partition(desc, "vendor_boot", priv->slot, vloadaddr);
-	if (ret < 0)
-		return log_msg_ret("read vendor_boot", ret);
-
+	if (priv->header_version >= 3) {
+		ret = read_slotted_partition(desc, "vendor_boot", priv->slot, vloadaddr);
+		if (ret < 0)
+			return log_msg_ret("read vendor_boot", ret);
+		set_avendor_bootimg_addr(vloadaddr);
+	}
 	set_abootimg_addr(loadaddr);
-	set_avendor_bootimg_addr(vloadaddr);
 
 	ret = bootm_boot_start(loadaddr, bflow->cmdline);
 

-- 
2.34.1


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH v2 2/5] bootstd: android: add non-A/B image support
  2024-11-14 21:29 [PATCH v2 0/5] Add support of Android Boot Image version 2 and non-AB image Guillaume La Roque
  2024-11-14 21:29 ` [PATCH v2 1/5] bootstd: android: add support of bootimage v2 Guillaume La Roque
@ 2024-11-14 21:29 ` Guillaume La Roque
  2024-11-19 10:17   ` Mattijs Korpershoek
  2024-11-14 21:29 ` [PATCH v2 3/5] configs: khadas-vim3l_android{_ab}: move on bootmeth android Guillaume La Roque
                   ` (3 subsequent siblings)
  5 siblings, 1 reply; 14+ messages in thread
From: Guillaume La Roque @ 2024-11-14 21:29 UTC (permalink / raw)
  To: Mattijs Korpershoek, Simon Glass, Tom Rini, Neil Armstrong
  Cc: Julien Masson, u-boot, u-boot-amlogic, Guillaume La Roque

Update android bootmeth to support non-A/B image.
Enable AB support only when ANDROID_AB is enabled.

Signed-off-by: Guillaume La Roque <glaroque@baylibre.com>
---
 boot/Kconfig                     |  1 -
 boot/bootmeth_android.c          | 51 +++++++++++++++++++++++++++++++++-------
 configs/am62x_a53_android.config |  1 +
 configs/sandbox_defconfig        |  1 +
 4 files changed, 44 insertions(+), 10 deletions(-)

diff --git a/boot/Kconfig b/boot/Kconfig
index 7dd30a030e39..661e89ca05b2 100644
--- a/boot/Kconfig
+++ b/boot/Kconfig
@@ -500,7 +500,6 @@ config BOOTMETH_ANDROID
 	bool "Bootdev support for Android"
 	depends on X86 || ARM || SANDBOX
 	depends on CMDLINE
-	select ANDROID_AB
 	select ANDROID_BOOT_IMAGE
 	select CMD_BCB
 	imply CMD_FASTBOOT
diff --git a/boot/bootmeth_android.c b/boot/bootmeth_android.c
index 2e7f85e4a708..2aac32331d3c 100644
--- a/boot/bootmeth_android.c
+++ b/boot/bootmeth_android.c
@@ -29,6 +29,7 @@
 #define BCB_PART_NAME "misc"
 #define BOOT_PART_NAME "boot"
 #define VENDOR_BOOT_PART_NAME "vendor_boot"
+#define SLOT_LEN 2
 
 /**
  * struct android_priv - Private data
@@ -42,7 +43,7 @@
  */
 struct android_priv {
 	enum android_boot_mode boot_mode;
-	char slot[2];
+	char *slot;
 	u32 header_version;
 };
 
@@ -71,7 +72,11 @@ static int scan_boot_part(struct udevice *blk, struct android_priv *priv)
 	char *buf;
 	int ret;
 
-	sprintf(partname, BOOT_PART_NAME "_%s", priv->slot);
+	if (priv->slot)
+		sprintf(partname, BOOT_PART_NAME "_%s", priv->slot);
+	else
+		sprintf(partname, BOOT_PART_NAME);
+
 	ret = part_get_info_by_name(desc, partname, &partition);
 	if (ret < 0)
 		return log_msg_ret("part info", ret);
@@ -108,7 +113,11 @@ static int scan_vendor_boot_part(struct udevice *blk, struct android_priv *priv)
 	char *buf;
 	int ret;
 
-	sprintf(partname, VENDOR_BOOT_PART_NAME "_%s", priv->slot);
+	if (priv->slot)
+		sprintf(partname, VENDOR_BOOT_PART_NAME "_%s", priv->slot);
+	else
+		sprintf(partname, VENDOR_BOOT_PART_NAME);
+
 	ret = part_get_info_by_name(desc, partname, &partition);
 	if (ret < 0)
 		return log_msg_ret("part info", ret);
@@ -142,6 +151,11 @@ static int android_read_slot_from_bcb(struct bootflow *bflow, bool decrement)
 	char slot_suffix[3];
 	int ret;
 
+	if (!CONFIG_IS_ENABLED(ANDROID_AB)) {
+		priv->slot = NULL;
+		return 0;
+	}
+
 	ret = part_get_info_by_name(desc, BCB_PART_NAME, &misc);
 	if (ret < 0)
 		return log_msg_ret("part", ret);
@@ -150,6 +164,7 @@ static int android_read_slot_from_bcb(struct bootflow *bflow, bool decrement)
 	if (ret < 0)
 		return log_msg_ret("slot", ret);
 
+	priv->slot = malloc(SLOT_LEN);
 	priv->slot[0] = BOOT_SLOT_NAME(ret);
 	priv->slot[1] = '\0';
 
@@ -274,7 +289,7 @@ static int android_read_bootflow(struct udevice *dev, struct bootflow *bflow)
 	configure_serialno(bflow);
 	configure_bootloader_version(bflow);
 
-	if (priv->boot_mode == ANDROID_BOOT_MODE_NORMAL) {
+	if (priv->boot_mode == ANDROID_BOOT_MODE_NORMAL && priv->slot) {
 		ret = bootflow_cmdline_set_arg(bflow, "androidboot.force_normal_boot",
 					       "1", false);
 		if (ret < 0) {
@@ -323,14 +338,28 @@ static int read_slotted_partition(struct blk_desc *desc, const char *const name,
 {
 	struct disk_partition partition;
 	char partname[PART_NAME_LEN];
+	size_t partname_len;
 	int ret;
 	u32 n;
 
-	/* Ensure name fits in partname it should be: <name>_<slot>\0 */
-	if (strlen(name) > (PART_NAME_LEN - 2 - 1))
+	/*
+	 * Ensure name fits in partname.
+	 * For A/B, it should be <name>_<slot>\0
+	 * For non A/B, it should be <name>\0
+	 */
+	if (CONFIG_IS_ENABLED(ANDROID_AB))
+		partname_len = PART_NAME_LEN - 2 - 1;
+	else
+		partname_len = PART_NAME_LEN - 1;
+
+	if (strlen(name) > partname_len)
 		return log_msg_ret("name too long", -EINVAL);
 
-	sprintf(partname, "%s_%s", name, slot);
+	if (slot)
+		sprintf(partname, "%s_%s", name, slot);
+	else
+		sprintf(partname, "%s", name);
+
 	ret = part_get_info_by_name(desc, partname, &partition);
 	if (ret < 0)
 		return log_msg_ret("part", ret);
@@ -382,7 +411,7 @@ static int run_avb_verification(struct bootflow *bflow)
 	AvbSlotVerifyData *out_data;
 	enum avb_boot_state boot_state;
 	char *extra_args;
-	char slot_suffix[3];
+	char slot_suffix[3] = "";
 	bool unlocked = false;
 	int ret;
 
@@ -390,7 +419,8 @@ static int run_avb_verification(struct bootflow *bflow)
 	if (!avb_ops)
 		return log_msg_ret("avb ops", -ENOMEM);
 
-	sprintf(slot_suffix, "_%s", priv->slot);
+	if (priv->slot)
+		sprintf(slot_suffix, "_%s", priv->slot);
 
 	ret = avb_ops->read_is_device_unlocked(avb_ops, &unlocked);
 	if (ret != AVB_IO_RESULT_OK)
@@ -480,6 +510,9 @@ static int boot_android_normal(struct bootflow *bflow)
 	}
 	set_abootimg_addr(loadaddr);
 
+	if (priv->slot)
+		free(priv->slot);
+
 	ret = bootm_boot_start(loadaddr, bflow->cmdline);
 
 	return log_msg_ret("boot", ret);
diff --git a/configs/am62x_a53_android.config b/configs/am62x_a53_android.config
index adbe2b8e126f..2aca51e3a107 100644
--- a/configs/am62x_a53_android.config
+++ b/configs/am62x_a53_android.config
@@ -11,6 +11,7 @@ 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_ANDROID_AB=y
 CONFIG_SYS_BOOTM_LEN=0x4000000
 CONFIG_SYS_MALLOC_LEN=0x08000000
 CONFIG_AVB_VERIFY=y
diff --git a/configs/sandbox_defconfig b/configs/sandbox_defconfig
index d111858082d5..6b8dedf20712 100644
--- a/configs/sandbox_defconfig
+++ b/configs/sandbox_defconfig
@@ -50,6 +50,7 @@ CONFIG_LOG_DEFAULT_LEVEL=6
 CONFIG_LOGF_FUNC=y
 CONFIG_DISPLAY_BOARDINFO_LATE=y
 CONFIG_STACKPROTECTOR=y
+CONFIG_ANDROID_AB=y
 CONFIG_CMD_CPU=y
 CONFIG_CMD_LICENSE=y
 CONFIG_CMD_SMBIOS=y

-- 
2.34.1


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH v2 3/5] configs: khadas-vim3l_android{_ab}: move on bootmeth android
  2024-11-14 21:29 [PATCH v2 0/5] Add support of Android Boot Image version 2 and non-AB image Guillaume La Roque
  2024-11-14 21:29 ` [PATCH v2 1/5] bootstd: android: add support of bootimage v2 Guillaume La Roque
  2024-11-14 21:29 ` [PATCH v2 2/5] bootstd: android: add non-A/B image support Guillaume La Roque
@ 2024-11-14 21:29 ` Guillaume La Roque
  2024-11-15 14:04   ` Neil Armstrong
  2024-11-19 10:35   ` Mattijs Korpershoek
  2024-11-14 21:29 ` [PATCH v2 4/5] configs: khadas-vim3_android{_ab}: " Guillaume La Roque
                   ` (2 subsequent siblings)
  5 siblings, 2 replies; 14+ messages in thread
From: Guillaume La Roque @ 2024-11-14 21:29 UTC (permalink / raw)
  To: Mattijs Korpershoek, Simon Glass, Tom Rini, Neil Armstrong
  Cc: Julien Masson, u-boot, u-boot-amlogic, Guillaume La Roque

Actually khadas vim3l use distro command to boot android image.
Move on new bootmeth android for A/B and non-A/B vim3l android.

Signed-off-by: Guillaume La Roque <glaroque@baylibre.com>
---
 configs/khadas-vim3l_android_ab_defconfig |  7 ++++++-
 configs/khadas-vim3l_android_defconfig    |  7 ++++++-
 include/configs/khadas-vim3l_android.h    | 26 ++++++++++++++++++++++----
 include/configs/meson64_android.h         |  3 ---
 4 files changed, 34 insertions(+), 9 deletions(-)

diff --git a/configs/khadas-vim3l_android_ab_defconfig b/configs/khadas-vim3l_android_ab_defconfig
index 4d7b90f23002..43db61056baf 100644
--- a/configs/khadas-vim3l_android_ab_defconfig
+++ b/configs/khadas-vim3l_android_ab_defconfig
@@ -24,6 +24,12 @@ CONFIG_REMAKE_ELF=y
 CONFIG_FIT=y
 CONFIG_FIT_SIGNATURE=y
 CONFIG_FIT_VERBOSE=y
+CONFIG_BOOTMETH_ANDROID=y
+# CONFIG_BOOTMETH_EXTLINUX is not set
+# CONFIG_BOOTMETH_EXTLINUX_PXE is not set
+# CONFIG_BOOTMETH_EFILOADER is not set
+# CONFIG_BOOTMETH_EFI_BOOTMGR is not set
+# CONFIG_BOOTMETH_VBE is not set
 CONFIG_LEGACY_IMAGE_FORMAT=y
 CONFIG_OF_BOARD_SETUP=y
 # CONFIG_DISPLAY_CPUINFO is not set
@@ -35,7 +41,6 @@ CONFIG_SYS_MAXARGS=32
 CONFIG_CMD_ADTIMG=y
 CONFIG_CMD_ABOOTIMG=y
 # CONFIG_CMD_IMI is not set
-CONFIG_CMD_BCB=y
 CONFIG_CMD_GPIO=y
 CONFIG_CMD_GPT=y
 CONFIG_CMD_I2C=y
diff --git a/configs/khadas-vim3l_android_defconfig b/configs/khadas-vim3l_android_defconfig
index 4ec27262cdc7..32d57a5b9090 100644
--- a/configs/khadas-vim3l_android_defconfig
+++ b/configs/khadas-vim3l_android_defconfig
@@ -24,6 +24,12 @@ CONFIG_REMAKE_ELF=y
 CONFIG_FIT=y
 CONFIG_FIT_SIGNATURE=y
 CONFIG_FIT_VERBOSE=y
+CONFIG_BOOTMETH_ANDROID=y
+# CONFIG_BOOTMETH_EXTLINUX is not set
+# CONFIG_BOOTMETH_EXTLINUX_PXE is not set
+# CONFIG_BOOTMETH_EFILOADER is not set
+# CONFIG_BOOTMETH_EFI_BOOTMGR is not set
+# CONFIG_BOOTMETH_VBE is not set
 CONFIG_LEGACY_IMAGE_FORMAT=y
 CONFIG_OF_BOARD_SETUP=y
 # CONFIG_DISPLAY_CPUINFO is not set
@@ -34,7 +40,6 @@ CONFIG_SYS_MAXARGS=32
 CONFIG_CMD_ADTIMG=y
 CONFIG_CMD_ABOOTIMG=y
 # CONFIG_CMD_IMI is not set
-CONFIG_CMD_BCB=y
 CONFIG_CMD_GPIO=y
 CONFIG_CMD_GPT=y
 CONFIG_CMD_I2C=y
diff --git a/include/configs/khadas-vim3l_android.h b/include/configs/khadas-vim3l_android.h
index f39a3782d663..31068c59d5ed 100644
--- a/include/configs/khadas-vim3l_android.h
+++ b/include/configs/khadas-vim3l_android.h
@@ -41,10 +41,28 @@
 	"name=rootfs,size=-,uuid=" ROOT_UUID
 #endif
 
-#define EXTRA_ANDROID_ENV_SETTINGS \
-	"board=vim3l\0" \
-	"board_name=vim3l\0" \
+#define CFG_EXTRA_ENV_SETTINGS                                    \
+	"board=vim3l\0"                                               \
+	"board_name=vim3l\0"                                          \
+	"bootmeths=android\0"                                         \
+	"bootcmd=bootflow scan\0"                                     \
+	"adtb_idx=2\0"                                                \
+	"partitions=" PARTS_DEFAULT "\0"                              \
+	"mmcdev=2\0"                                                  \
+	"fastboot_raw_partition_bootloader=0x1 0xfff mmcpart 1\0"     \
+	"fastboot_raw_partition_bootenv=0x0 0xfff mmcpart 2\0"        \
+	"gpio_recovery=88\0"                                          \
+	"stdin=" STDIN_CFG "\0"                                       \
+	"stdout=" STDOUT_CFG "\0"                                     \
+	"stderr=" STDOUT_CFG "\0"                                     \
+	"dtboaddr=0x08200000\0"                                       \
+	"loadaddr=0x01080000\0"                                       \
+	"fdt_addr_r=0x01000000\0"                                     \
+	"scriptaddr=0x08000000\0"                                     \
+	"kernel_addr_r=0x01080000\0"                                  \
+	"pxefile_addr_r=0x01080000\0"                                 \
+	"ramdisk_addr_r=0x13000000\0"                                 \
 
-#include <configs/meson64_android.h>
+#include <configs/meson64.h>
 
 #endif /* __CONFIG_H */
diff --git a/include/configs/meson64_android.h b/include/configs/meson64_android.h
index 77364bbf9cf0..37ef8b8f7a7e 100644
--- a/include/configs/meson64_android.h
+++ b/include/configs/meson64_android.h
@@ -104,9 +104,6 @@
 	"elif test $board_name = sei610; then " \
 		"echo \"  Reading DTB for sei610...\"; " \
 		"setenv dtb_index 1;" \
-	"elif test $board_name = vim3l; then " \
-		"echo \"  Reading DTB for vim3l...\"; " \
-		"setenv dtb_index 2;" \
 	"elif test $board_name = vim3; then " \
 		"echo \"  Reading DTB for vim3...\"; " \
 		"setenv dtb_index 3;" \

-- 
2.34.1


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH v2 4/5] configs: khadas-vim3_android{_ab}: move on bootmeth android
  2024-11-14 21:29 [PATCH v2 0/5] Add support of Android Boot Image version 2 and non-AB image Guillaume La Roque
                   ` (2 preceding siblings ...)
  2024-11-14 21:29 ` [PATCH v2 3/5] configs: khadas-vim3l_android{_ab}: move on bootmeth android Guillaume La Roque
@ 2024-11-14 21:29 ` Guillaume La Roque
  2024-11-15 14:04   ` Neil Armstrong
  2024-11-19 10:36   ` Mattijs Korpershoek
  2024-11-14 21:29 ` [PATCH v2 5/5] bootstd: Add test for Android boot image v2 Guillaume La Roque
  2024-11-19 10:21 ` [PATCH v2 0/5] Add support of Android Boot Image version 2 and non-AB image Neil Armstrong
  5 siblings, 2 replies; 14+ messages in thread
From: Guillaume La Roque @ 2024-11-14 21:29 UTC (permalink / raw)
  To: Mattijs Korpershoek, Simon Glass, Tom Rini, Neil Armstrong
  Cc: Julien Masson, u-boot, u-boot-amlogic, Guillaume La Roque

Actually khadas vim3 use distro command to boot android image.
Move on new bootmeth android for A/B and non-A/B vim3 android.

Signed-off-by: Guillaume La Roque <glaroque@baylibre.com>
---
 configs/khadas-vim3_android_ab_defconfig |  7 ++++++-
 configs/khadas-vim3_android_defconfig    |  7 ++++++-
 include/configs/khadas-vim3_android.h    | 26 ++++++++++++++++++++++----
 include/configs/meson64_android.h        |  3 ---
 4 files changed, 34 insertions(+), 9 deletions(-)

diff --git a/configs/khadas-vim3_android_ab_defconfig b/configs/khadas-vim3_android_ab_defconfig
index de5357c45cbf..a078c5d363ae 100644
--- a/configs/khadas-vim3_android_ab_defconfig
+++ b/configs/khadas-vim3_android_ab_defconfig
@@ -24,6 +24,12 @@ CONFIG_REMAKE_ELF=y
 CONFIG_FIT=y
 CONFIG_FIT_SIGNATURE=y
 CONFIG_FIT_VERBOSE=y
+CONFIG_BOOTMETH_ANDROID=y
+# CONFIG_BOOTMETH_EXTLINUX is not set
+# CONFIG_BOOTMETH_EXTLINUX_PXE is not set
+# CONFIG_BOOTMETH_EFILOADER is not set
+# CONFIG_BOOTMETH_EFI_BOOTMGR is not set
+# CONFIG_BOOTMETH_VBE is not set
 CONFIG_LEGACY_IMAGE_FORMAT=y
 CONFIG_OF_BOARD_SETUP=y
 # CONFIG_DISPLAY_CPUINFO is not set
@@ -35,7 +41,6 @@ CONFIG_SYS_MAXARGS=32
 CONFIG_CMD_ADTIMG=y
 CONFIG_CMD_ABOOTIMG=y
 # CONFIG_CMD_IMI is not set
-CONFIG_CMD_BCB=y
 CONFIG_CMD_GPIO=y
 CONFIG_CMD_GPT=y
 CONFIG_CMD_I2C=y
diff --git a/configs/khadas-vim3_android_defconfig b/configs/khadas-vim3_android_defconfig
index a0d9c423c3c3..b77a44ce859b 100644
--- a/configs/khadas-vim3_android_defconfig
+++ b/configs/khadas-vim3_android_defconfig
@@ -24,6 +24,12 @@ CONFIG_REMAKE_ELF=y
 CONFIG_FIT=y
 CONFIG_FIT_SIGNATURE=y
 CONFIG_FIT_VERBOSE=y
+CONFIG_BOOTMETH_ANDROID=y
+# CONFIG_BOOTMETH_EXTLINUX is not set
+# CONFIG_BOOTMETH_EXTLINUX_PXE is not set
+# CONFIG_BOOTMETH_EFILOADER is not set
+# CONFIG_BOOTMETH_EFI_BOOTMGR is not set
+# CONFIG_BOOTMETH_VBE is not set
 CONFIG_LEGACY_IMAGE_FORMAT=y
 CONFIG_OF_BOARD_SETUP=y
 # CONFIG_DISPLAY_CPUINFO is not set
@@ -34,7 +40,6 @@ CONFIG_SYS_MAXARGS=32
 CONFIG_CMD_ADTIMG=y
 CONFIG_CMD_ABOOTIMG=y
 # CONFIG_CMD_IMI is not set
-CONFIG_CMD_BCB=y
 CONFIG_CMD_GPIO=y
 CONFIG_CMD_GPT=y
 CONFIG_CMD_I2C=y
diff --git a/include/configs/khadas-vim3_android.h b/include/configs/khadas-vim3_android.h
index 0e2953fe71b3..096ab4e5fb1f 100644
--- a/include/configs/khadas-vim3_android.h
+++ b/include/configs/khadas-vim3_android.h
@@ -41,10 +41,28 @@
 	"name=rootfs,size=-,uuid=" ROOT_UUID
 #endif
 
-#define EXTRA_ANDROID_ENV_SETTINGS \
-	"board=vim3\0" \
-	"board_name=vim3\0" \
+#define CFG_EXTRA_ENV_SETTINGS                                    \
+	"board=vim3\0"                                               \
+	"board_name=vim3\0"                                          \
+	"bootmeths=android\0"                                         \
+	"bootcmd=bootflow scan\0"                                     \
+	"adtb_idx=3\0"                                                \
+	"partitions=" PARTS_DEFAULT "\0"                              \
+	"mmcdev=2\0"                                                  \
+	"fastboot_raw_partition_bootloader=0x1 0xfff mmcpart 1\0"     \
+	"fastboot_raw_partition_bootenv=0x0 0xfff mmcpart 2\0"        \
+	"gpio_recovery=88\0"                                          \
+	"stdin=" STDIN_CFG "\0"                                       \
+	"stdout=" STDOUT_CFG "\0"                                     \
+	"stderr=" STDOUT_CFG "\0"                                     \
+	"dtboaddr=0x08200000\0"                                       \
+	"loadaddr=0x01080000\0"                                       \
+	"fdt_addr_r=0x01000000\0"                                     \
+	"scriptaddr=0x08000000\0"                                     \
+	"kernel_addr_r=0x01080000\0"                                  \
+	"pxefile_addr_r=0x01080000\0"                                 \
+	"ramdisk_addr_r=0x13000000\0"                                 \
 
-#include <configs/meson64_android.h>
+#include <configs/meson64.h>
 
 #endif /* __CONFIG_H */
diff --git a/include/configs/meson64_android.h b/include/configs/meson64_android.h
index 37ef8b8f7a7e..d6ef0a83a686 100644
--- a/include/configs/meson64_android.h
+++ b/include/configs/meson64_android.h
@@ -104,9 +104,6 @@
 	"elif test $board_name = sei610; then " \
 		"echo \"  Reading DTB for sei610...\"; " \
 		"setenv dtb_index 1;" \
-	"elif test $board_name = vim3; then " \
-		"echo \"  Reading DTB for vim3...\"; " \
-		"setenv dtb_index 3;" \
 	"else " \
 		"echo Error: Android boot is not supported for $board_name; " \
 		"exit; " \

-- 
2.34.1


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH v2 5/5] bootstd: Add test for Android boot image v2
  2024-11-14 21:29 [PATCH v2 0/5] Add support of Android Boot Image version 2 and non-AB image Guillaume La Roque
                   ` (3 preceding siblings ...)
  2024-11-14 21:29 ` [PATCH v2 4/5] configs: khadas-vim3_android{_ab}: " Guillaume La Roque
@ 2024-11-14 21:29 ` Guillaume La Roque
  2024-11-19 10:21 ` [PATCH v2 0/5] Add support of Android Boot Image version 2 and non-AB image Neil Armstrong
  5 siblings, 0 replies; 14+ messages in thread
From: Guillaume La Roque @ 2024-11-14 21:29 UTC (permalink / raw)
  To: Mattijs Korpershoek, Simon Glass, Tom Rini, Neil Armstrong
  Cc: Julien Masson, u-boot, u-boot-amlogic, Guillaume La Roque

Rename actual android bootmethod test to specify it's for boot image
version 4.
Add a unit test for testing the Android bootmethod with boot image
version 2.

This requires another mmc image (mmc8) to contain the following
partitions:
- misc: contains the Bootloader Control Block (BCB)
- boot_a: contains a fake generic kernel image

we can test this with:

$ ./test/py/test.py --bd sandbox --build -k test_ut # build the mmc8.img
$ ./test/py/test.py --bd sandbox --build -k bootflow_android

Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Signed-off-by: Guillaume La Roque <glaroque@baylibre.com>
---
 arch/sandbox/dts/test.dts | 10 +++++++++-
 test/boot/bootflow.c      | 29 +++++++++++++++++++++++++---
 test/py/tests/test_ut.py  | 49 +++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 84 insertions(+), 4 deletions(-)

diff --git a/arch/sandbox/dts/test.dts b/arch/sandbox/dts/test.dts
index dee280184b1b..36cfbf213e4c 100644
--- a/arch/sandbox/dts/test.dts
+++ b/arch/sandbox/dts/test.dts
@@ -44,6 +44,7 @@
 		mmc5 = "/mmc5";
 		mmc6 = "/mmc6";
 		mmc7 = "/mmc7";
+		mmc8 = "/mmc8";
 		pci0 = &pci0;
 		pci1 = &pci1;
 		pci2 = &pci2;
@@ -1138,13 +1139,20 @@
 		filename = "mmc6.img";
 	};
 
-	/* This is used for Android tests */
+	/* This is used for Android boot image v4 tests */
 	mmc7 {
 		status = "disabled";
 		compatible = "sandbox,mmc";
 		filename = "mmc7.img";
 	};
 
+	/* This is used for Android boot image v2 tests. */
+	mmc8 {
+		status = "disabled";
+		compatible = "sandbox,mmc";
+		filename = "mmc8.img";
+	};
+
 	pch {
 		compatible = "sandbox,pch";
 	};
diff --git a/test/boot/bootflow.c b/test/boot/bootflow.c
index 9397328609d0..60649886402c 100644
--- a/test/boot/bootflow.c
+++ b/test/boot/bootflow.c
@@ -1199,8 +1199,8 @@ static int bootflow_cros(struct unit_test_state *uts)
 }
 BOOTSTD_TEST(bootflow_cros, UTF_CONSOLE);
 
-/* Test Android bootmeth  */
-static int bootflow_android(struct unit_test_state *uts)
+/* Test Android bootmeth  with boot image version 4 */
+static int bootflow_android_image_v4(struct unit_test_state *uts)
 {
 	if (!IS_ENABLED(CONFIG_BOOTMETH_ANDROID))
 		return -EAGAIN;
@@ -1220,7 +1220,30 @@ static int bootflow_android(struct unit_test_state *uts)
 
 	return 0;
 }
-BOOTSTD_TEST(bootflow_android, UTF_CONSOLE);
+BOOTSTD_TEST(bootflow_android_image_v4, UTF_CONSOLE);
+
+/* Test Android bootmeth with boot image version 2 */
+static int bootflow_android_image_v2(struct unit_test_state *uts)
+{
+	if (!IS_ENABLED(CONFIG_BOOTMETH_ANDROID))
+		return -EAGAIN;
+
+	ut_assertok(scan_mmc_android_bootdev(uts, "mmc8"));
+	ut_assertok(run_command("bootflow list", 0));
+
+	ut_assert_nextlinen("Showing all");
+	ut_assert_nextlinen("Seq");
+	ut_assert_nextlinen("---");
+	ut_assert_nextlinen("  0  extlinux");
+	ut_assert_nextlinen("  1  android      ready   mmc          0  mmc8.bootdev.whole        ");
+	ut_assert_nextlinen("---");
+	ut_assert_skip_to_line("(2 bootflows, 2 valid)");
+
+	ut_assert_console_end();
+
+	return 0;
+}
+BOOTSTD_TEST(bootflow_android_image_v2, UTF_CONSOLE);
 
 /* Test EFI bootmeth */
 static int bootflow_efi(struct unit_test_state *uts)
diff --git a/test/py/tests/test_ut.py b/test/py/tests/test_ut.py
index 6d44191976bb..7a0bde4da256 100644
--- a/test/py/tests/test_ut.py
+++ b/test/py/tests/test_ut.py
@@ -501,6 +501,55 @@ def setup_android_image(cons):
 
     print(f'wrote to {fname}')
 
+    mmc_dev = 8
+    fname = os.path.join(cons.config.source_dir, f'mmc{mmc_dev}.img')
+    u_boot_utils.run_and_log(cons, f'qemu-img create {fname} 20M')
+    u_boot_utils.run_and_log(cons, f'cgpt create {fname}')
+
+    ptr = 40
+
+    # Number of sectors in 1MB
+    sect_size = 512
+    sect_1mb = (1 << 20) // sect_size
+
+    required_parts = [
+        {'num': 1, 'label':'misc', 'size': '1M'},
+        {'num': 2, 'label':'boot_a', 'size': '4M'},
+        {'num': 3, 'label':'boot_b', 'size': '4M'},
+    ]
+
+    for part in required_parts:
+        size_str = part['size']
+        if 'M' in size_str:
+            size = int(size_str[:-1]) * sect_1mb
+        else:
+            size = int(size_str)
+        u_boot_utils.run_and_log(
+            cons,
+            f"cgpt add -i {part['num']} -b {ptr} -s {size} -l {part['label']} -t basicdata {fname}")
+        ptr += size
+
+    u_boot_utils.run_and_log(cons, f'cgpt boot -p {fname}')
+    out = u_boot_utils.run_and_log(cons, f'cgpt show -q {fname}')
+
+    # Create a dict (indexed by partition number) containing the above info
+    for line in out.splitlines():
+        start, size, num, name = line.split(maxsplit=3)
+        parts[int(num)] = Partition(int(start), int(size), name)
+
+    with open(fname, 'rb') as inf:
+        disk_data = inf.read()
+
+    test_abootimg.AbootimgTestDiskImage(cons, 'boot.img', test_abootimg.img_hex)
+    boot_img = os.path.join(cons.config.result_dir, 'boot.img')
+    with open(boot_img, 'rb') as inf:
+        set_part_data(2, inf.read())
+
+    with open(fname, 'wb') as outf:
+        outf.write(disk_data)
+
+    print(f'wrote to {fname}')
+
     return fname
 
 def setup_cedit_file(cons):

-- 
2.34.1


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* Re: [PATCH v2 3/5] configs: khadas-vim3l_android{_ab}: move on bootmeth android
  2024-11-14 21:29 ` [PATCH v2 3/5] configs: khadas-vim3l_android{_ab}: move on bootmeth android Guillaume La Roque
@ 2024-11-15 14:04   ` Neil Armstrong
  2024-11-19 10:35   ` Mattijs Korpershoek
  1 sibling, 0 replies; 14+ messages in thread
From: Neil Armstrong @ 2024-11-15 14:04 UTC (permalink / raw)
  To: Guillaume La Roque, Mattijs Korpershoek, Simon Glass, Tom Rini
  Cc: Julien Masson, u-boot, u-boot-amlogic

On 14/11/2024 22:29, Guillaume La Roque wrote:
> Actually khadas vim3l use distro command to boot android image.
> Move on new bootmeth android for A/B and non-A/B vim3l android.
> 
> Signed-off-by: Guillaume La Roque <glaroque@baylibre.com>
> ---
>   configs/khadas-vim3l_android_ab_defconfig |  7 ++++++-
>   configs/khadas-vim3l_android_defconfig    |  7 ++++++-
>   include/configs/khadas-vim3l_android.h    | 26 ++++++++++++++++++++++----
>   include/configs/meson64_android.h         |  3 ---
>   4 files changed, 34 insertions(+), 9 deletions(-)
> 
> diff --git a/configs/khadas-vim3l_android_ab_defconfig b/configs/khadas-vim3l_android_ab_defconfig
> index 4d7b90f23002..43db61056baf 100644
> --- a/configs/khadas-vim3l_android_ab_defconfig
> +++ b/configs/khadas-vim3l_android_ab_defconfig
> @@ -24,6 +24,12 @@ CONFIG_REMAKE_ELF=y
>   CONFIG_FIT=y
>   CONFIG_FIT_SIGNATURE=y
>   CONFIG_FIT_VERBOSE=y
> +CONFIG_BOOTMETH_ANDROID=y
> +# CONFIG_BOOTMETH_EXTLINUX is not set
> +# CONFIG_BOOTMETH_EXTLINUX_PXE is not set
> +# CONFIG_BOOTMETH_EFILOADER is not set
> +# CONFIG_BOOTMETH_EFI_BOOTMGR is not set
> +# CONFIG_BOOTMETH_VBE is not set
>   CONFIG_LEGACY_IMAGE_FORMAT=y
>   CONFIG_OF_BOARD_SETUP=y
>   # CONFIG_DISPLAY_CPUINFO is not set
> @@ -35,7 +41,6 @@ CONFIG_SYS_MAXARGS=32
>   CONFIG_CMD_ADTIMG=y
>   CONFIG_CMD_ABOOTIMG=y
>   # CONFIG_CMD_IMI is not set
> -CONFIG_CMD_BCB=y
>   CONFIG_CMD_GPIO=y
>   CONFIG_CMD_GPT=y
>   CONFIG_CMD_I2C=y
> diff --git a/configs/khadas-vim3l_android_defconfig b/configs/khadas-vim3l_android_defconfig
> index 4ec27262cdc7..32d57a5b9090 100644
> --- a/configs/khadas-vim3l_android_defconfig
> +++ b/configs/khadas-vim3l_android_defconfig
> @@ -24,6 +24,12 @@ CONFIG_REMAKE_ELF=y
>   CONFIG_FIT=y
>   CONFIG_FIT_SIGNATURE=y
>   CONFIG_FIT_VERBOSE=y
> +CONFIG_BOOTMETH_ANDROID=y
> +# CONFIG_BOOTMETH_EXTLINUX is not set
> +# CONFIG_BOOTMETH_EXTLINUX_PXE is not set
> +# CONFIG_BOOTMETH_EFILOADER is not set
> +# CONFIG_BOOTMETH_EFI_BOOTMGR is not set
> +# CONFIG_BOOTMETH_VBE is not set
>   CONFIG_LEGACY_IMAGE_FORMAT=y
>   CONFIG_OF_BOARD_SETUP=y
>   # CONFIG_DISPLAY_CPUINFO is not set
> @@ -34,7 +40,6 @@ CONFIG_SYS_MAXARGS=32
>   CONFIG_CMD_ADTIMG=y
>   CONFIG_CMD_ABOOTIMG=y
>   # CONFIG_CMD_IMI is not set
> -CONFIG_CMD_BCB=y
>   CONFIG_CMD_GPIO=y
>   CONFIG_CMD_GPT=y
>   CONFIG_CMD_I2C=y
> diff --git a/include/configs/khadas-vim3l_android.h b/include/configs/khadas-vim3l_android.h
> index f39a3782d663..31068c59d5ed 100644
> --- a/include/configs/khadas-vim3l_android.h
> +++ b/include/configs/khadas-vim3l_android.h
> @@ -41,10 +41,28 @@
>   	"name=rootfs,size=-,uuid=" ROOT_UUID
>   #endif
>   
> -#define EXTRA_ANDROID_ENV_SETTINGS \
> -	"board=vim3l\0" \
> -	"board_name=vim3l\0" \
> +#define CFG_EXTRA_ENV_SETTINGS                                    \
> +	"board=vim3l\0"                                               \
> +	"board_name=vim3l\0"                                          \
> +	"bootmeths=android\0"                                         \
> +	"bootcmd=bootflow scan\0"                                     \
> +	"adtb_idx=2\0"                                                \
> +	"partitions=" PARTS_DEFAULT "\0"                              \
> +	"mmcdev=2\0"                                                  \
> +	"fastboot_raw_partition_bootloader=0x1 0xfff mmcpart 1\0"     \
> +	"fastboot_raw_partition_bootenv=0x0 0xfff mmcpart 2\0"        \
> +	"gpio_recovery=88\0"                                          \
> +	"stdin=" STDIN_CFG "\0"                                       \
> +	"stdout=" STDOUT_CFG "\0"                                     \
> +	"stderr=" STDOUT_CFG "\0"                                     \
> +	"dtboaddr=0x08200000\0"                                       \
> +	"loadaddr=0x01080000\0"                                       \
> +	"fdt_addr_r=0x01000000\0"                                     \
> +	"scriptaddr=0x08000000\0"                                     \
> +	"kernel_addr_r=0x01080000\0"                                  \
> +	"pxefile_addr_r=0x01080000\0"                                 \
> +	"ramdisk_addr_r=0x13000000\0"                                 \
>   
> -#include <configs/meson64_android.h>
> +#include <configs/meson64.h>
>   
>   #endif /* __CONFIG_H */
> diff --git a/include/configs/meson64_android.h b/include/configs/meson64_android.h
> index 77364bbf9cf0..37ef8b8f7a7e 100644
> --- a/include/configs/meson64_android.h
> +++ b/include/configs/meson64_android.h
> @@ -104,9 +104,6 @@
>   	"elif test $board_name = sei610; then " \
>   		"echo \"  Reading DTB for sei610...\"; " \
>   		"setenv dtb_index 1;" \
> -	"elif test $board_name = vim3l; then " \
> -		"echo \"  Reading DTB for vim3l...\"; " \
> -		"setenv dtb_index 2;" \
>   	"elif test $board_name = vim3; then " \
>   		"echo \"  Reading DTB for vim3...\"; " \
>   		"setenv dtb_index 3;" \
> 

Acked-by: Neil Armstrong <neil.armstrong@linaro.org>

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH v2 4/5] configs: khadas-vim3_android{_ab}: move on bootmeth android
  2024-11-14 21:29 ` [PATCH v2 4/5] configs: khadas-vim3_android{_ab}: " Guillaume La Roque
@ 2024-11-15 14:04   ` Neil Armstrong
  2024-11-19 10:36   ` Mattijs Korpershoek
  1 sibling, 0 replies; 14+ messages in thread
From: Neil Armstrong @ 2024-11-15 14:04 UTC (permalink / raw)
  To: Guillaume La Roque, Mattijs Korpershoek, Simon Glass, Tom Rini
  Cc: Julien Masson, u-boot, u-boot-amlogic

On 14/11/2024 22:29, Guillaume La Roque wrote:
> Actually khadas vim3 use distro command to boot android image.
> Move on new bootmeth android for A/B and non-A/B vim3 android.
> 
> Signed-off-by: Guillaume La Roque <glaroque@baylibre.com>
> ---
>   configs/khadas-vim3_android_ab_defconfig |  7 ++++++-
>   configs/khadas-vim3_android_defconfig    |  7 ++++++-
>   include/configs/khadas-vim3_android.h    | 26 ++++++++++++++++++++++----
>   include/configs/meson64_android.h        |  3 ---
>   4 files changed, 34 insertions(+), 9 deletions(-)
> 
> diff --git a/configs/khadas-vim3_android_ab_defconfig b/configs/khadas-vim3_android_ab_defconfig
> index de5357c45cbf..a078c5d363ae 100644
> --- a/configs/khadas-vim3_android_ab_defconfig
> +++ b/configs/khadas-vim3_android_ab_defconfig
> @@ -24,6 +24,12 @@ CONFIG_REMAKE_ELF=y
>   CONFIG_FIT=y
>   CONFIG_FIT_SIGNATURE=y
>   CONFIG_FIT_VERBOSE=y
> +CONFIG_BOOTMETH_ANDROID=y
> +# CONFIG_BOOTMETH_EXTLINUX is not set
> +# CONFIG_BOOTMETH_EXTLINUX_PXE is not set
> +# CONFIG_BOOTMETH_EFILOADER is not set
> +# CONFIG_BOOTMETH_EFI_BOOTMGR is not set
> +# CONFIG_BOOTMETH_VBE is not set
>   CONFIG_LEGACY_IMAGE_FORMAT=y
>   CONFIG_OF_BOARD_SETUP=y
>   # CONFIG_DISPLAY_CPUINFO is not set
> @@ -35,7 +41,6 @@ CONFIG_SYS_MAXARGS=32
>   CONFIG_CMD_ADTIMG=y
>   CONFIG_CMD_ABOOTIMG=y
>   # CONFIG_CMD_IMI is not set
> -CONFIG_CMD_BCB=y
>   CONFIG_CMD_GPIO=y
>   CONFIG_CMD_GPT=y
>   CONFIG_CMD_I2C=y
> diff --git a/configs/khadas-vim3_android_defconfig b/configs/khadas-vim3_android_defconfig
> index a0d9c423c3c3..b77a44ce859b 100644
> --- a/configs/khadas-vim3_android_defconfig
> +++ b/configs/khadas-vim3_android_defconfig
> @@ -24,6 +24,12 @@ CONFIG_REMAKE_ELF=y
>   CONFIG_FIT=y
>   CONFIG_FIT_SIGNATURE=y
>   CONFIG_FIT_VERBOSE=y
> +CONFIG_BOOTMETH_ANDROID=y
> +# CONFIG_BOOTMETH_EXTLINUX is not set
> +# CONFIG_BOOTMETH_EXTLINUX_PXE is not set
> +# CONFIG_BOOTMETH_EFILOADER is not set
> +# CONFIG_BOOTMETH_EFI_BOOTMGR is not set
> +# CONFIG_BOOTMETH_VBE is not set
>   CONFIG_LEGACY_IMAGE_FORMAT=y
>   CONFIG_OF_BOARD_SETUP=y
>   # CONFIG_DISPLAY_CPUINFO is not set
> @@ -34,7 +40,6 @@ CONFIG_SYS_MAXARGS=32
>   CONFIG_CMD_ADTIMG=y
>   CONFIG_CMD_ABOOTIMG=y
>   # CONFIG_CMD_IMI is not set
> -CONFIG_CMD_BCB=y
>   CONFIG_CMD_GPIO=y
>   CONFIG_CMD_GPT=y
>   CONFIG_CMD_I2C=y
> diff --git a/include/configs/khadas-vim3_android.h b/include/configs/khadas-vim3_android.h
> index 0e2953fe71b3..096ab4e5fb1f 100644
> --- a/include/configs/khadas-vim3_android.h
> +++ b/include/configs/khadas-vim3_android.h
> @@ -41,10 +41,28 @@
>   	"name=rootfs,size=-,uuid=" ROOT_UUID
>   #endif
>   
> -#define EXTRA_ANDROID_ENV_SETTINGS \
> -	"board=vim3\0" \
> -	"board_name=vim3\0" \
> +#define CFG_EXTRA_ENV_SETTINGS                                    \
> +	"board=vim3\0"                                               \
> +	"board_name=vim3\0"                                          \
> +	"bootmeths=android\0"                                         \
> +	"bootcmd=bootflow scan\0"                                     \
> +	"adtb_idx=3\0"                                                \
> +	"partitions=" PARTS_DEFAULT "\0"                              \
> +	"mmcdev=2\0"                                                  \
> +	"fastboot_raw_partition_bootloader=0x1 0xfff mmcpart 1\0"     \
> +	"fastboot_raw_partition_bootenv=0x0 0xfff mmcpart 2\0"        \
> +	"gpio_recovery=88\0"                                          \
> +	"stdin=" STDIN_CFG "\0"                                       \
> +	"stdout=" STDOUT_CFG "\0"                                     \
> +	"stderr=" STDOUT_CFG "\0"                                     \
> +	"dtboaddr=0x08200000\0"                                       \
> +	"loadaddr=0x01080000\0"                                       \
> +	"fdt_addr_r=0x01000000\0"                                     \
> +	"scriptaddr=0x08000000\0"                                     \
> +	"kernel_addr_r=0x01080000\0"                                  \
> +	"pxefile_addr_r=0x01080000\0"                                 \
> +	"ramdisk_addr_r=0x13000000\0"                                 \
>   
> -#include <configs/meson64_android.h>
> +#include <configs/meson64.h>
>   
>   #endif /* __CONFIG_H */
> diff --git a/include/configs/meson64_android.h b/include/configs/meson64_android.h
> index 37ef8b8f7a7e..d6ef0a83a686 100644
> --- a/include/configs/meson64_android.h
> +++ b/include/configs/meson64_android.h
> @@ -104,9 +104,6 @@
>   	"elif test $board_name = sei610; then " \
>   		"echo \"  Reading DTB for sei610...\"; " \
>   		"setenv dtb_index 1;" \
> -	"elif test $board_name = vim3; then " \
> -		"echo \"  Reading DTB for vim3...\"; " \
> -		"setenv dtb_index 3;" \
>   	"else " \
>   		"echo Error: Android boot is not supported for $board_name; " \
>   		"exit; " \
> 

Acked-by: Neil Armstrong <neil.armstrong@linaro.org>

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH v2 2/5] bootstd: android: add non-A/B image support
  2024-11-14 21:29 ` [PATCH v2 2/5] bootstd: android: add non-A/B image support Guillaume La Roque
@ 2024-11-19 10:17   ` Mattijs Korpershoek
  0 siblings, 0 replies; 14+ messages in thread
From: Mattijs Korpershoek @ 2024-11-19 10:17 UTC (permalink / raw)
  To: Guillaume La Roque, Simon Glass, Tom Rini, Neil Armstrong
  Cc: Julien Masson, u-boot, u-boot-amlogic, Guillaume La Roque

Hi Guillaume,

Thank you for the patch.

On jeu., nov. 14, 2024 at 22:29, Guillaume La Roque <glaroque@baylibre.com> wrote:

> Update android bootmeth to support non-A/B image.
> Enable AB support only when ANDROID_AB is enabled.
>
> Signed-off-by: Guillaume La Roque <glaroque@baylibre.com>

Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>

> ---
>  boot/Kconfig                     |  1 -
>  boot/bootmeth_android.c          | 51 +++++++++++++++++++++++++++++++++-------
>  configs/am62x_a53_android.config |  1 +
>  configs/sandbox_defconfig        |  1 +
>  4 files changed, 44 insertions(+), 10 deletions(-)
>

[...]

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH v2 0/5] Add support of Android Boot Image version 2 and non-AB image
  2024-11-14 21:29 [PATCH v2 0/5] Add support of Android Boot Image version 2 and non-AB image Guillaume La Roque
                   ` (4 preceding siblings ...)
  2024-11-14 21:29 ` [PATCH v2 5/5] bootstd: Add test for Android boot image v2 Guillaume La Roque
@ 2024-11-19 10:21 ` Neil Armstrong
  5 siblings, 0 replies; 14+ messages in thread
From: Neil Armstrong @ 2024-11-19 10:21 UTC (permalink / raw)
  To: Guillaume La Roque, Mattijs Korpershoek, Simon Glass, Tom Rini
  Cc: Julien Masson, u-boot, u-boot-amlogic

Hi,

On 14/11/2024 22:29, Guillaume La Roque wrote:
> Actually bootmethod android only support android boot image version 4
> and with AB image, some old platform wtill use android boot image
> version 2 with AB or without AB slot.
> 
> This patchset add support of both version 2 and non-AB slot images.
> It's fixed in same time a boot issue seen on khadas vim3{l} board with 16GB eMMC
> 
> patchset was tested on khadas VIM3 and VIM3L with AOSP main branch and
> android-mainline kernel and with TI AM62P with android release provided
> by TI.
> 
> Signed-off-by: Guillaume La Roque <glaroque@baylibre.com>
> ---
> Changes in v2:
> - Drop patch 3 (configs: khadas-vim3{l}: fix userdata size) already
>    applied
> - Apply Tested-by and Reviewed-by from v1
> - Fix comments
> - Revert malloc/free for slot_suffix
> - Remove vim3/vim3l stuff in meson64_android.h
> - Link to v1: https://lore.kernel.org/r/20241017-adnroidv2-v1-0-781c939902c9@baylibre.com
> 
> ---
> Guillaume La Roque (5):
>        bootstd: android: add support of bootimage v2
>        bootstd: android: add non-A/B image support
>        configs: khadas-vim3l_android{_ab}: move on bootmeth android
>        configs: khadas-vim3_android{_ab}: move on bootmeth android
>        bootstd: Add test for Android boot image v2
> 
>   arch/sandbox/dts/test.dts                 | 10 +++-
>   boot/Kconfig                              |  1 -
>   boot/bootmeth_android.c                   | 78 +++++++++++++++++++++----------
>   configs/am62x_a53_android.config          |  1 +
>   configs/khadas-vim3_android_ab_defconfig  |  7 ++-
>   configs/khadas-vim3_android_defconfig     |  7 ++-
>   configs/khadas-vim3l_android_ab_defconfig |  7 ++-
>   configs/khadas-vim3l_android_defconfig    |  7 ++-
>   configs/sandbox_defconfig                 |  1 +
>   include/configs/khadas-vim3_android.h     | 26 +++++++++--
>   include/configs/khadas-vim3l_android.h    | 26 +++++++++--
>   include/configs/meson64_android.h         |  6 ---
>   test/boot/bootflow.c                      | 29 ++++++++++--
>   test/py/tests/test_ut.py                  | 49 +++++++++++++++++++
>   14 files changed, 208 insertions(+), 47 deletions(-)
> ---
> base-commit: ce427e40a2422b75374ee3404e3f5c6536e8984a
> change-id: 20241015-adnroidv2-a01dca609707
> 
> Best regards,

To whoever applies this patchset, please take the configs patches at the same time!

Neil


^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH v2 3/5] configs: khadas-vim3l_android{_ab}: move on bootmeth android
  2024-11-14 21:29 ` [PATCH v2 3/5] configs: khadas-vim3l_android{_ab}: move on bootmeth android Guillaume La Roque
  2024-11-15 14:04   ` Neil Armstrong
@ 2024-11-19 10:35   ` Mattijs Korpershoek
  2024-11-19 11:21     ` Guillaume LA ROQUE
  1 sibling, 1 reply; 14+ messages in thread
From: Mattijs Korpershoek @ 2024-11-19 10:35 UTC (permalink / raw)
  To: Guillaume La Roque, Simon Glass, Tom Rini, Neil Armstrong
  Cc: Julien Masson, u-boot, u-boot-amlogic, Guillaume La Roque

Hi Guillaume,

Thank you for the patch.

On jeu., nov. 14, 2024 at 22:29, Guillaume La Roque <glaroque@baylibre.com> wrote:

> Actually khadas vim3l use distro command to boot android image.
> Move on new bootmeth android for A/B and non-A/B vim3l android.
>
> Signed-off-by: Guillaume La Roque <glaroque@baylibre.com>
> ---
>  configs/khadas-vim3l_android_ab_defconfig |  7 ++++++-
>  configs/khadas-vim3l_android_defconfig    |  7 ++++++-
>  include/configs/khadas-vim3l_android.h    | 26 ++++++++++++++++++++++----
>  include/configs/meson64_android.h         |  3 ---
>  4 files changed, 34 insertions(+), 9 deletions(-)

[...]

>
>  CONFIG_CMD_GPIO=y
>  CONFIG_CMD_GPT=y
>  CONFIG_CMD_I2C=y
> diff --git a/include/configs/khadas-vim3l_android.h b/include/configs/khadas-vim3l_android.h
> index f39a3782d663..31068c59d5ed 100644
> --- a/include/configs/khadas-vim3l_android.h
> +++ b/include/configs/khadas-vim3l_android.h
> @@ -41,10 +41,28 @@
>  	"name=rootfs,size=-,uuid=" ROOT_UUID
>  #endif
>  
> -#define EXTRA_ANDROID_ENV_SETTINGS \
> -	"board=vim3l\0" \
> -	"board_name=vim3l\0" \
> +#define CFG_EXTRA_ENV_SETTINGS                                    \
> +	"board=vim3l\0"                                               \
> +	"board_name=vim3l\0"                                          \
> +	"bootmeths=android\0"                                         \
> +	"bootcmd=bootflow scan\0"                                     \
> +	"adtb_idx=2\0"                                                \
> +	"partitions=" PARTS_DEFAULT "\0"                              \
> +	"mmcdev=2\0"                                                  \
> +	"fastboot_raw_partition_bootloader=0x1 0xfff mmcpart 1\0"     \
> +	"fastboot_raw_partition_bootenv=0x0 0xfff mmcpart 2\0"        \
> +	"gpio_recovery=88\0"                                          \

gpio_recovery is not used anywhere. Can we please drop this?

With that addressed, please add:

Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>

> +	"stdin=" STDIN_CFG "\0"                                       \
> +	"stdout=" STDOUT_CFG "\0"                                     \
> +	"stderr=" STDOUT_CFG "\0"                                     \
> +	"dtboaddr=0x08200000\0"                                       \
> +	"loadaddr=0x01080000\0"                                       \
> +	"fdt_addr_r=0x01000000\0"                                     \
> +	"scriptaddr=0x08000000\0"                                     \
> +	"kernel_addr_r=0x01080000\0"                                  \
> +	"pxefile_addr_r=0x01080000\0"                                 \
> +	"ramdisk_addr_r=0x13000000\0"                                 \
>  
> -#include <configs/meson64_android.h>
> +#include <configs/meson64.h>
>  
>  #endif /* __CONFIG_H */
> diff --git a/include/configs/meson64_android.h b/include/configs/meson64_android.h
> index 77364bbf9cf0..37ef8b8f7a7e 100644
> --- a/include/configs/meson64_android.h
> +++ b/include/configs/meson64_android.h
> @@ -104,9 +104,6 @@
>  	"elif test $board_name = sei610; then " \
>  		"echo \"  Reading DTB for sei610...\"; " \
>  		"setenv dtb_index 1;" \
> -	"elif test $board_name = vim3l; then " \
> -		"echo \"  Reading DTB for vim3l...\"; " \
> -		"setenv dtb_index 2;" \
>  	"elif test $board_name = vim3; then " \
>  		"echo \"  Reading DTB for vim3...\"; " \
>  		"setenv dtb_index 3;" \
>
> -- 
> 2.34.1

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH v2 4/5] configs: khadas-vim3_android{_ab}: move on bootmeth android
  2024-11-14 21:29 ` [PATCH v2 4/5] configs: khadas-vim3_android{_ab}: " Guillaume La Roque
  2024-11-15 14:04   ` Neil Armstrong
@ 2024-11-19 10:36   ` Mattijs Korpershoek
  2024-11-19 11:20     ` Guillaume LA ROQUE
  1 sibling, 1 reply; 14+ messages in thread
From: Mattijs Korpershoek @ 2024-11-19 10:36 UTC (permalink / raw)
  To: Guillaume La Roque, Simon Glass, Tom Rini, Neil Armstrong
  Cc: Julien Masson, u-boot, u-boot-amlogic, Guillaume La Roque

Hi Guillaume,

Thank you for the patch.

On jeu., nov. 14, 2024 at 22:29, Guillaume La Roque <glaroque@baylibre.com> wrote:

> Actually khadas vim3 use distro command to boot android image.
> Move on new bootmeth android for A/B and non-A/B vim3 android.
>
> Signed-off-by: Guillaume La Roque <glaroque@baylibre.com>
> ---
>  configs/khadas-vim3_android_ab_defconfig |  7 ++++++-
>  configs/khadas-vim3_android_defconfig    |  7 ++++++-
>  include/configs/khadas-vim3_android.h    | 26 ++++++++++++++++++++++----
>  include/configs/meson64_android.h        |  3 ---
>  4 files changed, 34 insertions(+), 9 deletions(-)
>
> diff --git a/configs/khadas-vim3_android_ab_defconfig b/configs/khadas-vim3_android_ab_defconfig
> index de5357c45cbf..a078c5d363ae 100644
> --- a/configs/khadas-vim3_android_ab_defconfig
> +++ b/configs/khadas-vim3_android_ab_defconfig
> @@ -24,6 +24,12 @@ CONFIG_REMAKE_ELF=y
>  CONFIG_FIT=y
>  CONFIG_FIT_SIGNATURE=y
>  CONFIG_FIT_VERBOSE=y
> +CONFIG_BOOTMETH_ANDROID=y
> +# CONFIG_BOOTMETH_EXTLINUX is not set
> +# CONFIG_BOOTMETH_EXTLINUX_PXE is not set
> +# CONFIG_BOOTMETH_EFILOADER is not set
> +# CONFIG_BOOTMETH_EFI_BOOTMGR is not set
> +# CONFIG_BOOTMETH_VBE is not set
>  CONFIG_LEGACY_IMAGE_FORMAT=y
>  CONFIG_OF_BOARD_SETUP=y
>  # CONFIG_DISPLAY_CPUINFO is not set
> @@ -35,7 +41,6 @@ CONFIG_SYS_MAXARGS=32
>  CONFIG_CMD_ADTIMG=y
>  CONFIG_CMD_ABOOTIMG=y
>  # CONFIG_CMD_IMI is not set
> -CONFIG_CMD_BCB=y
>  CONFIG_CMD_GPIO=y
>  CONFIG_CMD_GPT=y
>  CONFIG_CMD_I2C=y
> diff --git a/configs/khadas-vim3_android_defconfig b/configs/khadas-vim3_android_defconfig
> index a0d9c423c3c3..b77a44ce859b 100644
> --- a/configs/khadas-vim3_android_defconfig
> +++ b/configs/khadas-vim3_android_defconfig
> @@ -24,6 +24,12 @@ CONFIG_REMAKE_ELF=y
>  CONFIG_FIT=y
>  CONFIG_FIT_SIGNATURE=y
>  CONFIG_FIT_VERBOSE=y
> +CONFIG_BOOTMETH_ANDROID=y
> +# CONFIG_BOOTMETH_EXTLINUX is not set
> +# CONFIG_BOOTMETH_EXTLINUX_PXE is not set
> +# CONFIG_BOOTMETH_EFILOADER is not set
> +# CONFIG_BOOTMETH_EFI_BOOTMGR is not set
> +# CONFIG_BOOTMETH_VBE is not set
>  CONFIG_LEGACY_IMAGE_FORMAT=y
>  CONFIG_OF_BOARD_SETUP=y
>  # CONFIG_DISPLAY_CPUINFO is not set
> @@ -34,7 +40,6 @@ CONFIG_SYS_MAXARGS=32
>  CONFIG_CMD_ADTIMG=y
>  CONFIG_CMD_ABOOTIMG=y
>  # CONFIG_CMD_IMI is not set
> -CONFIG_CMD_BCB=y
>  CONFIG_CMD_GPIO=y
>  CONFIG_CMD_GPT=y
>  CONFIG_CMD_I2C=y
> diff --git a/include/configs/khadas-vim3_android.h b/include/configs/khadas-vim3_android.h
> index 0e2953fe71b3..096ab4e5fb1f 100644
> --- a/include/configs/khadas-vim3_android.h
> +++ b/include/configs/khadas-vim3_android.h
> @@ -41,10 +41,28 @@
>  	"name=rootfs,size=-,uuid=" ROOT_UUID
>  #endif
>  
> -#define EXTRA_ANDROID_ENV_SETTINGS \
> -	"board=vim3\0" \
> -	"board_name=vim3\0" \
> +#define CFG_EXTRA_ENV_SETTINGS                                    \
> +	"board=vim3\0"                                               \
> +	"board_name=vim3\0"                                          \
> +	"bootmeths=android\0"                                         \
> +	"bootcmd=bootflow scan\0"                                     \
> +	"adtb_idx=3\0"                                                \
> +	"partitions=" PARTS_DEFAULT "\0"                              \
> +	"mmcdev=2\0"                                                  \
> +	"fastboot_raw_partition_bootloader=0x1 0xfff mmcpart 1\0"     \
> +	"fastboot_raw_partition_bootenv=0x0 0xfff mmcpart 2\0"        \
> +	"gpio_recovery=88\0"                                          \

gpio_recovery is not used anywhere. Can we please drop this?

With that addressed, please add:

Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>

> +	"stdin=" STDIN_CFG "\0"                                       \
> +	"stdout=" STDOUT_CFG "\0"                                     \
> +	"stderr=" STDOUT_CFG "\0"                                     \
> +	"dtboaddr=0x08200000\0"                                       \
> +	"loadaddr=0x01080000\0"                                       \
> +	"fdt_addr_r=0x01000000\0"                                     \
> +	"scriptaddr=0x08000000\0"                                     \
> +	"kernel_addr_r=0x01080000\0"                                  \
> +	"pxefile_addr_r=0x01080000\0"                                 \
> +	"ramdisk_addr_r=0x13000000\0"                                 \
>  
> -#include <configs/meson64_android.h>
> +#include <configs/meson64.h>
>  
>  #endif /* __CONFIG_H */
> diff --git a/include/configs/meson64_android.h b/include/configs/meson64_android.h
> index 37ef8b8f7a7e..d6ef0a83a686 100644
> --- a/include/configs/meson64_android.h
> +++ b/include/configs/meson64_android.h
> @@ -104,9 +104,6 @@
>  	"elif test $board_name = sei610; then " \
>  		"echo \"  Reading DTB for sei610...\"; " \
>  		"setenv dtb_index 1;" \
> -	"elif test $board_name = vim3; then " \
> -		"echo \"  Reading DTB for vim3...\"; " \
> -		"setenv dtb_index 3;" \
>  	"else " \
>  		"echo Error: Android boot is not supported for $board_name; " \
>  		"exit; " \
>
> -- 
> 2.34.1

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH v2 4/5] configs: khadas-vim3_android{_ab}: move on bootmeth android
  2024-11-19 10:36   ` Mattijs Korpershoek
@ 2024-11-19 11:20     ` Guillaume LA ROQUE
  0 siblings, 0 replies; 14+ messages in thread
From: Guillaume LA ROQUE @ 2024-11-19 11:20 UTC (permalink / raw)
  To: Mattijs Korpershoek, Simon Glass, Tom Rini, Neil Armstrong
  Cc: Julien Masson, u-boot, u-boot-amlogic

Hi,


Le 19/11/2024 à 11:36, Mattijs Korpershoek a écrit :
> Hi Guillaume,
>
> Thank you for the patch.
>
> On jeu., nov. 14, 2024 at 22:29, Guillaume La Roque <glaroque@baylibre.com> wrote:
>
>> Actually khadas vim3 use distro command to boot android image.
>> Move on new bootmeth android for A/B and non-A/B vim3 android.
>>
>> Signed-off-by: Guillaume La Roque <glaroque@baylibre.com>
>> ---
>>   configs/khadas-vim3_android_ab_defconfig |  7 ++++++-
>>   configs/khadas-vim3_android_defconfig    |  7 ++++++-
>>   include/configs/khadas-vim3_android.h    | 26 ++++++++++++++++++++++----
>>   include/configs/meson64_android.h        |  3 ---
>>   4 files changed, 34 insertions(+), 9 deletions(-)
>>
>> diff --git a/configs/khadas-vim3_android_ab_defconfig b/configs/khadas-vim3_android_ab_defconfig
>> index de5357c45cbf..a078c5d363ae 100644
>> --- a/configs/khadas-vim3_android_ab_defconfig
>> +++ b/configs/khadas-vim3_android_ab_defconfig
>> @@ -24,6 +24,12 @@ CONFIG_REMAKE_ELF=y
>>   CONFIG_FIT=y
>>   CONFIG_FIT_SIGNATURE=y
>>   CONFIG_FIT_VERBOSE=y
>> +CONFIG_BOOTMETH_ANDROID=y
>> +# CONFIG_BOOTMETH_EXTLINUX is not set
>> +# CONFIG_BOOTMETH_EXTLINUX_PXE is not set
>> +# CONFIG_BOOTMETH_EFILOADER is not set
>> +# CONFIG_BOOTMETH_EFI_BOOTMGR is not set
>> +# CONFIG_BOOTMETH_VBE is not set
>>   CONFIG_LEGACY_IMAGE_FORMAT=y
>>   CONFIG_OF_BOARD_SETUP=y
>>   # CONFIG_DISPLAY_CPUINFO is not set
>> @@ -35,7 +41,6 @@ CONFIG_SYS_MAXARGS=32
>>   CONFIG_CMD_ADTIMG=y
>>   CONFIG_CMD_ABOOTIMG=y
>>   # CONFIG_CMD_IMI is not set
>> -CONFIG_CMD_BCB=y
>>   CONFIG_CMD_GPIO=y
>>   CONFIG_CMD_GPT=y
>>   CONFIG_CMD_I2C=y
>> diff --git a/configs/khadas-vim3_android_defconfig b/configs/khadas-vim3_android_defconfig
>> index a0d9c423c3c3..b77a44ce859b 100644
>> --- a/configs/khadas-vim3_android_defconfig
>> +++ b/configs/khadas-vim3_android_defconfig
>> @@ -24,6 +24,12 @@ CONFIG_REMAKE_ELF=y
>>   CONFIG_FIT=y
>>   CONFIG_FIT_SIGNATURE=y
>>   CONFIG_FIT_VERBOSE=y
>> +CONFIG_BOOTMETH_ANDROID=y
>> +# CONFIG_BOOTMETH_EXTLINUX is not set
>> +# CONFIG_BOOTMETH_EXTLINUX_PXE is not set
>> +# CONFIG_BOOTMETH_EFILOADER is not set
>> +# CONFIG_BOOTMETH_EFI_BOOTMGR is not set
>> +# CONFIG_BOOTMETH_VBE is not set
>>   CONFIG_LEGACY_IMAGE_FORMAT=y
>>   CONFIG_OF_BOARD_SETUP=y
>>   # CONFIG_DISPLAY_CPUINFO is not set
>> @@ -34,7 +40,6 @@ CONFIG_SYS_MAXARGS=32
>>   CONFIG_CMD_ADTIMG=y
>>   CONFIG_CMD_ABOOTIMG=y
>>   # CONFIG_CMD_IMI is not set
>> -CONFIG_CMD_BCB=y
>>   CONFIG_CMD_GPIO=y
>>   CONFIG_CMD_GPT=y
>>   CONFIG_CMD_I2C=y
>> diff --git a/include/configs/khadas-vim3_android.h b/include/configs/khadas-vim3_android.h
>> index 0e2953fe71b3..096ab4e5fb1f 100644
>> --- a/include/configs/khadas-vim3_android.h
>> +++ b/include/configs/khadas-vim3_android.h
>> @@ -41,10 +41,28 @@
>>   	"name=rootfs,size=-,uuid=" ROOT_UUID
>>   #endif
>>   
>> -#define EXTRA_ANDROID_ENV_SETTINGS \
>> -	"board=vim3\0" \
>> -	"board_name=vim3\0" \
>> +#define CFG_EXTRA_ENV_SETTINGS                                    \
>> +	"board=vim3\0"                                               \
>> +	"board_name=vim3\0"                                          \
>> +	"bootmeths=android\0"                                         \
>> +	"bootcmd=bootflow scan\0"                                     \
>> +	"adtb_idx=3\0"                                                \
>> +	"partitions=" PARTS_DEFAULT "\0"                              \
>> +	"mmcdev=2\0"                                                  \
>> +	"fastboot_raw_partition_bootloader=0x1 0xfff mmcpart 1\0"     \
>> +	"fastboot_raw_partition_bootenv=0x0 0xfff mmcpart 2\0"        \
>> +	"gpio_recovery=88\0"                                          \
> gpio_recovery is not used anywhere. Can we please drop this?
yes i forgot this part of gpio recovery not needed anymore i will do in v3

Thanks
>
> With that addressed, please add:
>
> Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
>
>> +	"stdin=" STDIN_CFG "\0"                                       \
>> +	"stdout=" STDOUT_CFG "\0"                                     \
>> +	"stderr=" STDOUT_CFG "\0"                                     \
>> +	"dtboaddr=0x08200000\0"                                       \
>> +	"loadaddr=0x01080000\0"                                       \
>> +	"fdt_addr_r=0x01000000\0"                                     \
>> +	"scriptaddr=0x08000000\0"                                     \
>> +	"kernel_addr_r=0x01080000\0"                                  \
>> +	"pxefile_addr_r=0x01080000\0"                                 \
>> +	"ramdisk_addr_r=0x13000000\0"                                 \
>>   
>> -#include <configs/meson64_android.h>
>> +#include <configs/meson64.h>
>>   
>>   #endif /* __CONFIG_H */
>> diff --git a/include/configs/meson64_android.h b/include/configs/meson64_android.h
>> index 37ef8b8f7a7e..d6ef0a83a686 100644
>> --- a/include/configs/meson64_android.h
>> +++ b/include/configs/meson64_android.h
>> @@ -104,9 +104,6 @@
>>   	"elif test $board_name = sei610; then " \
>>   		"echo \"  Reading DTB for sei610...\"; " \
>>   		"setenv dtb_index 1;" \
>> -	"elif test $board_name = vim3; then " \
>> -		"echo \"  Reading DTB for vim3...\"; " \
>> -		"setenv dtb_index 3;" \
>>   	"else " \
>>   		"echo Error: Android boot is not supported for $board_name; " \
>>   		"exit; " \
>>
>> -- 
>> 2.34.1



^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH v2 3/5] configs: khadas-vim3l_android{_ab}: move on bootmeth android
  2024-11-19 10:35   ` Mattijs Korpershoek
@ 2024-11-19 11:21     ` Guillaume LA ROQUE
  0 siblings, 0 replies; 14+ messages in thread
From: Guillaume LA ROQUE @ 2024-11-19 11:21 UTC (permalink / raw)
  To: Mattijs Korpershoek, Simon Glass, Tom Rini, Neil Armstrong
  Cc: Julien Masson, u-boot, u-boot-amlogic

Hi,

Le 19/11/2024 à 11:35, Mattijs Korpershoek a écrit :
> Hi Guillaume,
>
> Thank you for the patch.
>
> On jeu., nov. 14, 2024 at 22:29, Guillaume La Roque <glaroque@baylibre.com> wrote:
>
>> Actually khadas vim3l use distro command to boot android image.
>> Move on new bootmeth android for A/B and non-A/B vim3l android.
>>
>> Signed-off-by: Guillaume La Roque <glaroque@baylibre.com>
>> ---
>>   configs/khadas-vim3l_android_ab_defconfig |  7 ++++++-
>>   configs/khadas-vim3l_android_defconfig    |  7 ++++++-
>>   include/configs/khadas-vim3l_android.h    | 26 ++++++++++++++++++++++----
>>   include/configs/meson64_android.h         |  3 ---
>>   4 files changed, 34 insertions(+), 9 deletions(-)
> [...]
>
>>   CONFIG_CMD_GPIO=y
>>   CONFIG_CMD_GPT=y
>>   CONFIG_CMD_I2C=y
>> diff --git a/include/configs/khadas-vim3l_android.h b/include/configs/khadas-vim3l_android.h
>> index f39a3782d663..31068c59d5ed 100644
>> --- a/include/configs/khadas-vim3l_android.h
>> +++ b/include/configs/khadas-vim3l_android.h
>> @@ -41,10 +41,28 @@
>>   	"name=rootfs,size=-,uuid=" ROOT_UUID
>>   #endif
>>   
>> -#define EXTRA_ANDROID_ENV_SETTINGS \
>> -	"board=vim3l\0" \
>> -	"board_name=vim3l\0" \
>> +#define CFG_EXTRA_ENV_SETTINGS                                    \
>> +	"board=vim3l\0"                                               \
>> +	"board_name=vim3l\0"                                          \
>> +	"bootmeths=android\0"                                         \
>> +	"bootcmd=bootflow scan\0"                                     \
>> +	"adtb_idx=2\0"                                                \
>> +	"partitions=" PARTS_DEFAULT "\0"                              \
>> +	"mmcdev=2\0"                                                  \
>> +	"fastboot_raw_partition_bootloader=0x1 0xfff mmcpart 1\0"     \
>> +	"fastboot_raw_partition_bootenv=0x0 0xfff mmcpart 2\0"        \
>> +	"gpio_recovery=88\0"                                          \
> gpio_recovery is not used anywhere. Can we please drop this?
yes i forgot this part of gpio recovery not needed anymore i will do in v3
>
> With that addressed, please add:
>
> Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
>
>> +	"stdin=" STDIN_CFG "\0"                                       \
>> +	"stdout=" STDOUT_CFG "\0"                                     \
>> +	"stderr=" STDOUT_CFG "\0"                                     \
>> +	"dtboaddr=0x08200000\0"                                       \
>> +	"loadaddr=0x01080000\0"                                       \
>> +	"fdt_addr_r=0x01000000\0"                                     \
>> +	"scriptaddr=0x08000000\0"                                     \
>> +	"kernel_addr_r=0x01080000\0"                                  \
>> +	"pxefile_addr_r=0x01080000\0"                                 \
>> +	"ramdisk_addr_r=0x13000000\0"                                 \
>>   
>> -#include <configs/meson64_android.h>
>> +#include <configs/meson64.h>
>>   
>>   #endif /* __CONFIG_H */
>> diff --git a/include/configs/meson64_android.h b/include/configs/meson64_android.h
>> index 77364bbf9cf0..37ef8b8f7a7e 100644
>> --- a/include/configs/meson64_android.h
>> +++ b/include/configs/meson64_android.h
>> @@ -104,9 +104,6 @@
>>   	"elif test $board_name = sei610; then " \
>>   		"echo \"  Reading DTB for sei610...\"; " \
>>   		"setenv dtb_index 1;" \
>> -	"elif test $board_name = vim3l; then " \
>> -		"echo \"  Reading DTB for vim3l...\"; " \
>> -		"setenv dtb_index 2;" \
>>   	"elif test $board_name = vim3; then " \
>>   		"echo \"  Reading DTB for vim3...\"; " \
>>   		"setenv dtb_index 3;" \
>>
>> -- 
>> 2.34.1



^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2024-11-19 11:21 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-11-14 21:29 [PATCH v2 0/5] Add support of Android Boot Image version 2 and non-AB image Guillaume La Roque
2024-11-14 21:29 ` [PATCH v2 1/5] bootstd: android: add support of bootimage v2 Guillaume La Roque
2024-11-14 21:29 ` [PATCH v2 2/5] bootstd: android: add non-A/B image support Guillaume La Roque
2024-11-19 10:17   ` Mattijs Korpershoek
2024-11-14 21:29 ` [PATCH v2 3/5] configs: khadas-vim3l_android{_ab}: move on bootmeth android Guillaume La Roque
2024-11-15 14:04   ` Neil Armstrong
2024-11-19 10:35   ` Mattijs Korpershoek
2024-11-19 11:21     ` Guillaume LA ROQUE
2024-11-14 21:29 ` [PATCH v2 4/5] configs: khadas-vim3_android{_ab}: " Guillaume La Roque
2024-11-15 14:04   ` Neil Armstrong
2024-11-19 10:36   ` Mattijs Korpershoek
2024-11-19 11:20     ` Guillaume LA ROQUE
2024-11-14 21:29 ` [PATCH v2 5/5] bootstd: Add test for Android boot image v2 Guillaume La Roque
2024-11-19 10:21 ` [PATCH v2 0/5] Add support of Android Boot Image version 2 and non-AB image Neil Armstrong

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox