Oops, sorry, I was wrong, fastboot_mmc_get_dev() is always returning struct blk_desc; with hwpart=0.
чт, 13 мая 2021 г. в 13:29, Oleh Kravchenko <o...@kaa.org.ua>: > > 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.stratiie...@gmail.com>: > >> > >> Hi Oleh, > >> > >> Thank you for the fix. > >> > >> Reviewed-by: Roman Stratiienko <r.stratiie...@gmail.com> > >> > >> чт, 13 мая 2021 г. в 01:44, Oleh Kravchenko <o...@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 <o...@kaa.org.ua> > >>> Cc: Pantelis Antoniou <pa...@antoniou-consulting.com> > >>> Cc: Marek Vasut <ma...@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 >