Message ID | 1426093351-8998-1-git-send-email-michael.scott@linaro.org |
---|---|
State | Accepted |
Delegated to: | Łukasz Majewski |
Headers | show |
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). > +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, Acked-by: Steve Rae <srae@broadcom.com>
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. >> +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. To present a "normal" fastboot experience to users, we use this patch. > Acked-by: Steve Rae <srae@broadcom.com> Thank you for the Ack!
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-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 <srae@broadcom.com> > > Thank you for the Ack!
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-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 <srae@broadcom.com> > > > > Thank you for the Ack! Are there more comments for this patch?
Hi Lukasz, On 15-03-20 12:50 AM, Lukasz Majewski wrote: > Hi Steve, > >> >> >> On 15-03-12 10:17 AM, Michael Scott wrote: >>> >>> On 03/12/2015 09:23 AM, Steve Rae wrote: [... snip ...] >>>> 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? > No - the feature is OK (personally - I would use the names that match what "mmc part" displays; so I don't think that I would create any aliases....) Acked-by: Steve Rae <srae@broadcom.com>
Hi Steve, > Hi Lukasz, > > On 15-03-20 12:50 AM, Lukasz Majewski wrote: > > Hi Steve, > > > >> > >> > >> On 15-03-12 10:17 AM, Michael Scott wrote: > >>> > >>> On 03/12/2015 09:23 AM, Steve Rae wrote: > > [... snip ...] > > >>>> 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? > > > > No - the feature is OK > (personally - I would use the names that match what "mmc part" > displays; so I don't think that I would create any aliases....) > > Acked-by: Steve Rae <srae@broadcom.com> Applied to u-boot-dfu tree. Thanks!
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 and erase functions). +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
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(-)