On Fri 08 Nov 2024 at 11:07, Guillaume La Roque <glaro...@baylibre.com> wrote:
> 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 if version is less than 3. > > 1: > https://source.android.com/docs/core/architecture/bootloader/boot-image-header#header-v2 > > Signed-off-by: Guillaume La Roque <glaro...@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 > > > Tested on mediatek MT8365 EVK board with boot image V2. Tested-by: Julien Masson <jmas...@baylibre.com> -- Julien Masson