[PATCH v4] Fix flashing of eMMC user area with Fastboot

Oleh Kravchenko oleg at kaa.org.ua
Wed May 26 18:35:20 CEST 2021


Hello Tom,
coud you please cherry-pick this patch?

Lukasz doesn't respond :(

20.05.21 18:23, Oleh Kravchenko пише:
> Hello Lukasz,
> Could you please review this patch too?
>
> This patch fixes Fastboot behaviour,
> when flashing or erasing of eMMC user area was requested.
>
> 20.05.21 18:00, Sean Anderson пише:
>>
>> On 5/20/21 10:44 AM, Oleh Kravchenko wrote:
>>> Thank you, Sean!
>>>
>>> Could you please take a look at this patch too?
>>> https://patchwork.ozlabs.org/project/uboot/patch/20210514210620.24715-1-oleg@kaa.org.ua/
>> You may want to CC Lukas Majewski. I believe he took fastboot patches last time they got merged.
>>
>> --Sean
>>
>>> 20.05.21 17:32, Sean Anderson пише:
>>>>
>>>> On 5/19/21 6:31 AM, Oleh Kravchenko wrote:
>>>>> 'gpt' and 'mmc0' fastboot partitions have been treated as the same device,
>>>>> but it is wrong.
>>>>>
>>>>> Fill disk_partition structure with eMMC user partition info
>>>>> to properly flash data.
>>>>>
>>>>> 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>
>>>>> Cc: Sean Anderson <sean.anderson at seco.com>
>>>>> Cc: Tom Rini <trini at konsulko.com>
>>>>> ---
>>>>>
>>>>>
>>>>> Changes for v2:
>>>>>      - code cleanup;
>>>>> Changes for v3:
>>>>>      - QA passed at https://github.com/u-boot/u-boot/pull/75;
>>>>> Changes for v4:
>>>>>      - fixed ugly code;
>>>>>      - QA passed at https://github.com/u-boot/u-boot/pull/75.
>>>>>
>>>>>    drivers/fastboot/fb_mmc.c | 22 +++++++++++++++-------
>>>>>    1 file changed, 15 insertions(+), 7 deletions(-)
>>>>>
>>>>> diff --git a/drivers/fastboot/fb_mmc.c b/drivers/fastboot/fb_mmc.c
>>>>> index 2f3837e559..a009863e89 100644
>>>>> --- a/drivers/fastboot/fb_mmc.c
>>>>> +++ b/drivers/fastboot/fb_mmc.c
>>>>> @@ -512,7 +512,7 @@ void fastboot_mmc_flash_write(const char *cmd, void *download_buffer,
>>>>>                      u32 download_bytes, char *response)
>>>>>    {
>>>>>        struct blk_desc *dev_desc;
>>>>> -    struct disk_partition info;
>>>>> +    struct disk_partition info = {0};
>>>>>      #ifdef CONFIG_FASTBOOT_MMC_BOOT_SUPPORT
>>>>>        if (strcmp(cmd, CONFIG_FASTBOOT_MMC_BOOT1_NAME) == 0) {
>>>>> @@ -532,12 +532,7 @@ void fastboot_mmc_flash_write(const char *cmd, void *download_buffer,
>>>>>    #endif
>>>>>      #if CONFIG_IS_ENABLED(EFI_PARTITION)
>>>>> -#ifndef CONFIG_FASTBOOT_MMC_USER_SUPPORT
>>>>>        if (strcmp(cmd, CONFIG_FASTBOOT_GPT_NAME) == 0) {
>>>>> -#else
>>>>> -    if (strcmp(cmd, CONFIG_FASTBOOT_GPT_NAME) == 0 ||
>>>>> -        strcmp(cmd, CONFIG_FASTBOOT_MMC_USER_NAME) == 0) {
>>>>> -#endif
>>>>>            dev_desc = fastboot_mmc_get_dev(response);
>>>>>            if (!dev_desc)
>>>>>                return;
>>>>> @@ -599,7 +594,20 @@ void fastboot_mmc_flash_write(const char *cmd, void *download_buffer,
>>>>>        }
>>>>>    #endif
>>>>>    -    if (fastboot_mmc_get_part_info(cmd, &dev_desc, &info, response) < 0)
>>>>> +#if CONFIG_IS_ENABLED(FASTBOOT_MMC_USER_SUPPORT)
>>>>> +    if (strcmp(cmd, CONFIG_FASTBOOT_MMC_USER_NAME) == 0) {
>>>>> +        dev_desc = fastboot_mmc_get_dev(response);
>>>>> +        if (!dev_desc)
>>>>> +            return;
>>>>> +
>>>>> +        strlcpy((char *)&info.name, cmd, sizeof(info.name));
>>>>> +        info.size    = dev_desc->lba;
>>>>> +        info.blksz    = dev_desc->blksz;
>>>>> +    }
>>>>> +#endif
>>>>> +
>>>>> +    if (!info.name[0] &&
>>>>> +        fastboot_mmc_get_part_info(cmd, &dev_desc, &info, response) < 0)
>>>>>            return;
>>>>>          if (is_sparse_image(download_buffer)) {
>>>>>
>>>> Reviewed-by: Sean Anderson <sean.anderson at seco.com>


More information about the U-Boot mailing list