Message ID | 20240911214945.15873-6-ddrokosov@salutedevices.com |
---|---|
State | New |
Delegated to: | Mattijs Korpershoek |
Headers | show |
Series | android_ab: introduce bcb ab_dump command and provide several bcb fixes | expand |
Hello Simon and Mattijs! In the v1 patch series, you suggested creating a test case for the changes in this patchset. However, the bcb ab_dump test in the current patch series already covers all code paths involving slot_suffix generation. Therefore, an additional test case for that is not necessary. On Thu, Sep 12, 2024 at 12:49:13AM +0300, Dmitry Rokosov wrote: > To align with the official Android BCB (Bootloader 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 > > Based-on: https://android-review.googlesource.com/c/platform/external/u-boot/+/1446439 > Signed-off-by: Dmitry Rokosov <ddrokosov@salutedevices.com> > Reviewed-by: Simon Glass <sjg@chromium.org> > Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com> > --- > boot/android_ab.c | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > diff --git a/boot/android_ab.c b/boot/android_ab.c > index c93e51541019..a287eac04fe8 100644 > --- a/boot/android_ab.c > +++ b/boot/android_ab.c > @@ -52,7 +52,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; > @@ -328,7 +328,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 >
diff --git a/boot/android_ab.c b/boot/android_ab.c index c93e51541019..a287eac04fe8 100644 --- a/boot/android_ab.c +++ b/boot/android_ab.c @@ -52,7 +52,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; @@ -328,7 +328,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,