From mboxrd@z Thu Jan 1 00:00:00 1970 From: Steve Rae Date: Thu, 12 Mar 2015 09:23:17 -0700 Subject: [U-Boot] [PATCH] fastboot: check for alias when looking up partition by name In-Reply-To: <1426093351-8998-1-git-send-email-michael.scott@linaro.org> References: <1426093351-8998-1-git-send-email-michael.scott@linaro.org> Message-ID: <5501BD75.4020006@broadcom.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On 15-03-11 10:02 AM, Michael Scott wrote: > Implement an alias name check for devices where GPT limitations prevent > user-friendly partition names such as "boot", "system" and "cache". Or, > where the actual partition name doesn't match a standard partition name > used commonly with fastboot. > > To set an alias, add an environment setting as follows: > fastboot_partition_alias_= > > Example: fastboot_partition_alias_boot=LNX > > Signed-off-by: Michael Scott > Cc: Steve Rae > Cc: Lukasz Majewski > --- > common/fb_mmc.c | 26 ++++++++++++++++++++++++-- > doc/README.android-fastboot | 9 +++++++++ > 2 files changed, 33 insertions(+), 2 deletions(-) > > diff --git a/common/fb_mmc.c b/common/fb_mmc.c > index 75899e4..0c48cf9 100644 > --- a/common/fb_mmc.c > +++ b/common/fb_mmc.c > @@ -33,6 +33,28 @@ void fastboot_okay(const char *s) > strncat(response_str, s, RESPONSE_LEN - 4 - 1); > } > > +static int get_partition_info_efi_by_name_or_alias(block_dev_desc_t *dev_desc, > + const char *name, disk_partition_t *info) > +{ > + int ret; > + > + ret = get_partition_info_efi_by_name(dev_desc, name, info); > + if (ret) { > + /* strlen("fastboot_partition_alias_") + 32(part_name) + 1 */ > + char env_alias_name[25 + 32 + 1]; > + char *aliased_part_name; > + > + /* check for alias */ > + strcpy(env_alias_name, "fastboot_partition_alias_"); > + strncat(env_alias_name, name, 32); > + aliased_part_name = getenv(env_alias_name); > + if (aliased_part_name != NULL) > + ret = get_partition_info_efi_by_name(dev_desc, > + aliased_part_name, info); > + } > + return ret; > +} > + > static void write_raw_image(block_dev_desc_t *dev_desc, disk_partition_t *info, > const char *part_name, void *buffer, > unsigned int download_bytes) > @@ -98,7 +120,7 @@ void fb_mmc_flash_write(const char *cmd, void *download_buffer, > printf("........ success\n"); > fastboot_okay(""); > return; > - } else if (get_partition_info_efi_by_name(dev_desc, cmd, &info)) { > + } else if (get_partition_info_efi_by_name_or_alias(dev_desc, cmd, &info)) { > error("cannot find partition: '%s'\n", cmd); > fastboot_fail("cannot find partition"); > return; > @@ -136,7 +158,7 @@ void fb_mmc_erase(const char *cmd, char *response) > return; > } > > - ret = get_partition_info_efi_by_name(dev_desc, cmd, &info); > + ret = get_partition_info_efi_by_name_or_alias(dev_desc, cmd, &info); > if (ret) { > error("cannot find partition: '%s'", cmd); > fastboot_fail("cannot find partition"); > diff --git a/doc/README.android-fastboot b/doc/README.android-fastboot > index 5526a43..04411e9 100644 > --- a/doc/README.android-fastboot > +++ b/doc/README.android-fastboot > @@ -50,6 +50,15 @@ buffer should be as large as possible for a platform. The location of the > buffer and size are set with CONFIG_USB_FASTBOOT_BUF_ADDR and > CONFIG_USB_FASTBOOT_BUF_SIZE. > > +Fastboot partition aliases can also be defined for devices where GPT > +limitations prevent user-friendly partition names such as "boot", "system" > +and "cache". Or, where the actual partition name doesn't match a standard > +partition name used commonly with fastboot. Current implentation checks > +aliases when accessing partitions by name (flash_write andThere's already a driver for DWC2 in drivers/usb/gadget/s3c_udc_otg.c . This driver should really be properly renamed though ;-/ erase functions). > +To define a partition alias add an environment variable similar to: > +fastboot_partition_alias_= > +Example: fastboot_partition_alias_boot=LNX > + > In Action > ========= > Enter into fastboot by executing the fastboot command in u-boot and you > An interesting feature (which seems unnecessary to me...) However, Acked-by: Steve Rae