[PATCH v1 4/4] common: android_ab: fix slot suffix for abc block

Dmitry Rokosov ddrokosov at salutedevices.com
Mon Jul 29 16:42:24 CEST 2024


On Sun, Jul 28, 2024 at 01:36:06PM -0600, Simon Glass wrote:
> Hi Dmitry,
> 
> On Thu, 25 Jul 2024 at 14:55, Dmitry Rokosov
> <ddrokosov at salutedevices.com> wrote:
> >
> > To align with the official Android BCB (Boot Control Block)
> > specifications, it's important to note that the slot_suffix should start
> > with an underscore symbol.
> >
> > For a comprehensive understanding of the expected slot_suffix format in
> > userspace, please refer to the provided reference [1].
> >
> > Links:
> > [1] - https://source.android.com/docs/core/architecture/bootloader/updating#slots
> >
> > Signed-off-by: Dmitry Rokosov <ddrokosov at salutedevices.com>
> > ---
> >  boot/android_ab.c | 5 +++--
> >  1 file changed, 3 insertions(+), 2 deletions(-)
> 
> Reviewed-by: Simon Glass <sjg at chromium.org>
> 
> (can the test cover this?)

I understand your point. I will try to think about the test that could
potentially uncover this problem.

Will send it in the next version.

> >
> > diff --git a/boot/android_ab.c b/boot/android_ab.c
> > index 359cc1a00428..45c154b10f1a 100644
> > --- a/boot/android_ab.c
> > +++ b/boot/android_ab.c
> > @@ -53,7 +53,7 @@ static int ab_control_default(struct bootloader_control *abc)
> >         if (!abc)
> >                 return -EFAULT;
> >
> > -       memcpy(abc->slot_suffix, "a\0\0\0", 4);
> > +       memcpy(abc->slot_suffix, "_a\0\0", 4);
> >         abc->magic = BOOT_CTRL_MAGIC;
> >         abc->version = BOOT_CTRL_VERSION;
> >         abc->nb_slot = NUM_SLOTS;
> > @@ -319,7 +319,8 @@ int ab_select_slot(struct blk_desc *dev_desc, struct disk_partition *part_info,
> >                  * or the device tree.
> >                  */
> >                 memset(slot_suffix, 0, sizeof(slot_suffix));
> > -               slot_suffix[0] = BOOT_SLOT_NAME(slot);
> > +               slot_suffix[0] = '_';
> > +               slot_suffix[1] = BOOT_SLOT_NAME(slot);
> >                 if (memcmp(abc->slot_suffix, slot_suffix,
> >                            sizeof(slot_suffix))) {
> >                         memcpy(abc->slot_suffix, slot_suffix,
> > --
> > 2.43.0
> >

-- 
Thank you,
Dmitry


More information about the U-Boot mailing list