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.sc...@linaro.org>
Cc: Steve Rae <s...@broadcom.com>
Cc: Lukasz Majewski <l.majew...@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-boot and
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 <s...@broadcom.com>

Thank you for the Ack!
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to