[PATCH] Fix flash and erase of EMMC_BOOT2 with fastboot

Oleh Kravchenko oleg at kaa.org.ua
Thu May 13 12:29:19 CEST 2021


Hello Roman,
Thank you for your code-review!

I've checked how Fastboot works with eMMC's boot and user areas.
Erasing and flashing works just fine:

$ fastboot erase mmc0boot0
Erasing 'mmc0boot0'...
OKAY [  2.948s]
Finished. Total time: 2.983s

> ........ erased 16777216 bytes from mmc hwpart[1]

$ fastboot erase mmc0boot1
Erasing 'mmc0boot1'...
OKAY [  2.952s]
Finished. Total time: 2.989s

> ........ erased 16777216 bytes from mmc hwpart[2]

$ fastboot erase mmc0
Erasing 'mmc0'...
OKAY [ 38.037s]
Finished. Total time: 38.071s

> ........ erased 3850371072 bytes from mmc hwpart[0]

$ fastboot flash mmc0boot0 u-boot.bin
target reported max download size of 1048576 bytes
Sending 'mmc0boot0' (439 KB)...
OKAY [  0.022s]
Writing 'mmc0boot0'...
OKAY [  0.106s]
Finished. Total time: 0.217s

> Starting download of 450560 bytes
> ...
> downloading of 450560 bytes finished
> ........ wrote 450560 bytes to EMMC_BOOT1

$ fastboot flash mmc0boot1 u-boot.bin
target reported max download size of 1048576 bytes
Sending 'mmc0boot1' (439 KB)...
OKAY [  0.022s]
Writing 'mmc0boot1'...
OKAY [  0.107s]
Finished. Total time: 0.219s

> Starting download of 450560 bytes
> ...
> downloading of 450560 bytes finished
> ........ wrote 450560 bytes to EMMC_BOOT2

$ fastboot flash mmc0 /tmp/core-image-minimal.wic 
target reported max download size of 419430400 bytes
Sending 'mmc0' (402048 KB)...
OKAY [ 13.727s]
Writing 'mmc0'...
OKAY [  0.024s]
Finished. Total time: 13.834s

> Starting download of 411697152 bytes
> .................................
> downloading of 411697152 bytes finished

13.05.21 11:58, Roman Stratiienko пише:
> Looks like there is another issue:
> Erasing the USER partition (CONFIG_FASTBOOT_MMC_USER_SUPPORT), will
> erase active selected hwpart, and in case it was called after
> erasing/flashing BOOT1 & BOOT2 it will erase last selected boot
> partition, instead of USER.
> 
> чт, 13 мая 2021 г. в 11:42, Roman Stratiienko <r.stratiienko at gmail.com>:
>>
>> Hi Oleh,
>>
>> Thank you for the fix.
>>
>> Reviewed-by: Roman Stratiienko <r.stratiienko at gmail.com>
>>
>> чт, 13 мая 2021 г. в 01:44, Oleh Kravchenko <oleg at kaa.org.ua>:
>>>
>>> The current U-Boot version has the next matches for boot partitions:
>>>> mmc0boot0 to EMMC_BOOT1
>>>> mmc0boot1 to EMMC_BOOT1 (should be EMMC_BOOT2)
>>> This patch fixes a typo for the boot partition number.
>>>
>>> Signed-off-by: Oleh Kravchenko <oleg at kaa.org.ua>
>>> Cc: Pantelis Antoniou <panto at antoniou-consulting.com>
>>> Cc: Marek Vasut <marex at denx.de>
>>> ---
>>>
>>>  drivers/fastboot/fb_mmc.c | 4 ++--
>>>  1 file changed, 2 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/drivers/fastboot/fb_mmc.c b/drivers/fastboot/fb_mmc.c
>>> index 8e74e50e91..1827ce5d12 100644
>>> --- a/drivers/fastboot/fb_mmc.c
>>> +++ b/drivers/fastboot/fb_mmc.c
>>> @@ -525,7 +525,7 @@ void fastboot_mmc_flash_write(const char *cmd, void *download_buffer,
>>>         if (strcmp(cmd, CONFIG_FASTBOOT_MMC_BOOT2_NAME) == 0) {
>>>                 dev_desc = fastboot_mmc_get_dev(response);
>>>                 if (dev_desc)
>>> -                       fb_mmc_boot_ops(dev_desc, download_buffer, 1,
>>> +                       fb_mmc_boot_ops(dev_desc, download_buffer, 2,
>>>                                         download_bytes, response);
>>>                 return;
>>>         }
>>> @@ -655,7 +655,7 @@ void fastboot_mmc_erase(const char *cmd, char *response)
>>>                 /* erase EMMC boot2 */
>>>                 dev_desc = fastboot_mmc_get_dev(response);
>>>                 if (dev_desc)
>>> -                       fb_mmc_boot_ops(dev_desc, NULL, 1, 0, response);
>>> +                       fb_mmc_boot_ops(dev_desc, NULL, 2, 0, response);
>>>                 return;
>>>         }
>>>  #endif
>>> --
>>> 2.26.3
>>>

-- 
Best regards,
Oleh Kravchenko



More information about the U-Boot mailing list