From: George Chan <gchan9...@gmail.com>

If target u-boot img do not support androidboot v3 or greater,
abootimg might not be necessary.

aarch64-linux-gnu-ld.bfd: boot/bootmeth_android.o: in function 
`boot_android_normal':
/home/user/sources/u-boot-next/boot/bootmeth_android.c:541:(.text.boot_android_normal+0xd0):
 undefined reference to `set_avendor_bootimg_addr'
aarch64-linux-gnu-ld.bfd: 
/home/user/sources/u-boot-next/boot/bootmeth_android.c:543:(.text.boot_android_normal+0xd8):
 undefined reference to `set_abootimg_addr'
Segmentation fault (core dumped)

Reviewed-by: Mattijs Korpershoek <mkorpersh...@kernel.org>
Acked-by: Mattijs Korpershoek <mkorpersh...@kernel.org>
Signed-off-by: George Chan <gchan9...@gmail.com>
---
 boot/bootmeth_android.c | 2 +-
 include/image.h         | 2 ++
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/boot/bootmeth_android.c b/boot/bootmeth_android.c
index 8c2bde10e17..d7740b86d67 100644
--- a/boot/bootmeth_android.c
+++ b/boot/bootmeth_android.c
@@ -534,7 +534,7 @@ static int boot_android_normal(struct bootflow *bflow)
        if (ret < 0)
                return log_msg_ret("read boot", ret);
 
-       if (priv->header_version >= 3) {
+       if (IS_ENABLED(CONFIG_CMD_ABOOTIMG) && priv->header_version >= 3) {
                ret = read_slotted_partition(desc, "vendor_boot", priv->slot,
                                             priv->vendor_boot_img_size, 
vloadaddr);
                if (ret < 0)
diff --git a/include/image.h b/include/image.h
index 11d33ceeb39..82a861ba8bf 100644
--- a/include/image.h
+++ b/include/image.h
@@ -2050,6 +2050,7 @@ ulong get_abootimg_addr(void);
  * Return: no returned results
  */
 void set_abootimg_addr(ulong addr);
+void __weak set_abootimg_addr(ulong addr) {}
 
 /**
  * get_ainit_bootimg_addr() - Get Android init boot image address
@@ -2071,6 +2072,7 @@ ulong get_avendor_bootimg_addr(void);
  * Return: no returned results
  */
 void set_avendor_bootimg_addr(ulong addr);
+void __weak set_avendor_bootimg_addr(ulong addr) {}
 
 /**
  * board_fit_config_name_match() - Check for a matching board name

-- 
2.43.0


Reply via email to