[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