From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lukasz Majewski Date: Thu, 13 Jun 2019 14:01:27 +0200 Subject: [U-Boot] [PATCH v2 3/3] fastboot: Check if partition really exist in getvar_has_slot() In-Reply-To: <20190613074719.78f3e2db@jawa> References: <20190612211411.15250-1-semen.protsenko@linaro.org> <20190612211411.15250-4-semen.protsenko@linaro.org> <20190613074719.78f3e2db@jawa> Message-ID: <20190613140127.0f352744@jawa> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On Thu, 13 Jun 2019 07:47:19 +0200 Lukasz Majewski wrote: > Hi Sam, > > > Hi Tom, > > > > We have broken fastboot right now... Can we please apply this > > series, so that it appears in v2019.07? > > I'm running Travis-CI on this series, and send PR to Marek when it > finish. Unfortunately, there are several build breaks: https://travis-ci.org/lmajewski/u-boot-dfu/jobs/545073270 Please fix them before sending v3. Thanks in advance, > > Thanks for fixing fastboot. > > > > > Thanks! > > > > On Thu, Jun 13, 2019 at 12:14 AM Sam Protsenko > > wrote: > > > > > > From: Igor Opaniuk > > > > > > Currently getvar_has_slot() invocation for "boot" and "system" > > > partitions always returns affirmative response regardless the fact > > > of existence of these partitions, which leads to impossibility to > > > flash them on old non-A/B AOSP setups, where _a/_b suffixes aren't > > > used: > > > > > > $ fastboot flash boot boot.img > > > Sending 'boot__a' (11301 KB) OKAY [ 0.451s] > > > Writing 'boot__a' FAILED (remote: 'cannot find > > > partition') fastboot: error: Command failed > > > > > > Although partition layout is: > > > -> part list mmc 0 > > > Partition Map for MMC device 0 -- Partition Type: EFI > > > > > > Part Start LBA End LBA Name > > > Attributes > > > Type GUID > > > Partition GUID > > > 1 0x00000800 0x000107ff "boot" > > > attrs: 0x0000000000000000 > > > type: ebd0a0a2-b9e5-4433-87c0-68b6b72699c7 > > > guid: ea2e2470-db4a-d646-b828-10167f736d63 > > > 2 0x00010800 0x000127ff "environment" > > > attrs: 0x0000000000000000 > > > type: ebd0a0a2-b9e5-4433-87c0-68b6b72699c7 > > > guid: 10a819d2-6004-3d48-bd87-114e2a796db9 > > > 3 0x00012800 0x0001a7ff "recovery" > > > attrs: 0x0000000000000000 > > > type: ebd0a0a2-b9e5-4433-87c0-68b6b72699c7 > > > guid: 9ea116e4-8a34-0c48-8cf5-2fe9480f56cd > > > 4 0x0001a800 0x0031a7ff "system" > > > attrs: 0x0000000000000000 > > > ...... > > > > > > This patch adds checks of existence for requested partitions > > > on eMMC/NAND. > > > > > > Signed-off-by: Igor Opaniuk > > > Signed-off-by: Sam Protsenko > > > --- > > > drivers/fastboot/fb_getvar.c | 26 ++++++++++++++++++++++---- > > > 1 file changed, 22 insertions(+), 4 deletions(-) > > > > > > diff --git a/drivers/fastboot/fb_getvar.c > > > b/drivers/fastboot/fb_getvar.c index b23880089e..563bda0088 100644 > > > --- a/drivers/fastboot/fb_getvar.c > > > +++ b/drivers/fastboot/fb_getvar.c > > > @@ -179,11 +179,29 @@ static void getvar_slot_suffixes(char > > > *var_parameter, char *response) > > > > > > static void getvar_has_slot(char *part_name, char *response) > > > { > > > - if (part_name && (!strcmp(part_name, "boot") || > > > - !strcmp(part_name, "system"))) > > > + char part_name_wslot[PART_NAME_LEN]; > > > + size_t len; > > > + int r; > > > + > > > + if (!part_name) > > > + goto no; > > > + > > > + /* Append "_a" prefix to part_name */ > > > + len = strlcpy(part_name_wslot, part_name, PART_NAME_LEN - > > > 3); > > > + if (len > PART_NAME_LEN - 3) { > > > + fastboot_fail("too long partition name", > > > response); > > > + return; > > > + } > > > + strcat(part_name_wslot, "_a"); > > > + > > > + /* Check if this partition exists */ > > > + r = getvar_get_part_info(part_name_wslot, response, NULL); > > > + if (r >= 0) { > > > fastboot_okay("yes", response); > > > - else > > > - fastboot_okay("no", response); > > > + return; > > > + } > > > +no: > > > + fastboot_okay("no", response); > > > } > > > > > > #if CONFIG_IS_ENABLED(FASTBOOT_FLASH_MMC) > > > -- > > > 2.20.1 > > > > > _______________________________________________ > > U-Boot mailing list > > U-Boot at lists.denx.de > > https://lists.denx.de/listinfo/u-boot > > > > > Best regards, > > Lukasz Majewski > > -- > > DENX Software Engineering GmbH, Managing Director: Wolfgang Denk > HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany > Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: > lukma at denx.de Best regards, Lukasz Majewski -- DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma at denx.de -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 488 bytes Desc: OpenPGP digital signature URL: