
Hi Steve,
On 15-03-12 10:17 AM, Michael Scott wrote:
On 03/12/2015 09:23 AM, Steve Rae wrote:
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_<alias partition name>=<actual partition name>
Example: fastboot_partition_alias_boot=LNX
Signed-off-by: Michael Scott michael.scott@linaro.org Cc: Steve Rae srae@broadcom.com Cc: Lukasz Majewski l.majewski@samsung.com
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).
Hi Steve,
I'm a bit confused with the mention of drivers/usb/gadget/s3c_udc_otg.c and how it relates back this patch. I'm willing to make any corrections you would like, but may need some clarification.
Sorry -- I corrupted this (finger trouble!) - please ignore
+To define a partition alias add an environment variable similar to: +fastboot_partition_alias_<alias partition name>=<actual partition name> +Example: fastboot_partition_alias_boot=LNX
In Action
Enter into fastboot by executing the fastboot command in u-bootand you
An interesting feature (which seems unnecessary to me...) However,
A bit of background:
We are using fastboot support on Nvidia Jetson-TK1 platform where a GPT limitation sets partition names to 3 letters.
IE: LNX = boot, APP = system and UDA = userdata.
OK -- then this patch makes much more sense!
- so when the user performs "mmc part", (I'm assuming it will list
the "3 letter names"), then they perform "fastboot flash LNX boot.bin" (which makes sense to me....)
- or they can setup these aliases and perform "fastboot flash boot
boot.bin" (I would probably stick with the former myself...) Thanks, Steve
To present a "normal" fastboot experience to users, we use this patch.
Acked-by: Steve Rae srae@broadcom.com
Thank you for the Ack!
Are there more comments for this patch?