All of lore.kernel.org
 help / color / mirror / Atom feed
From: Lukasz Majewski <l.majewski@samsung.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH] fastboot: check for alias when looking up partition by name
Date: Fri, 20 Mar 2015 08:50:10 +0100	[thread overview]
Message-ID: <20150320085010.69159f40@amdc2363> (raw)
In-Reply-To: <5501D782.3000503@broadcom.com>

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?

-- 
Best regards,

Lukasz Majewski

Samsung R&D Institute Poland (SRPOL) | Linux Platform Group

  reply	other threads:[~2015-03-20  7:50 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-03-11 17:02 [U-Boot] [PATCH] fastboot: check for alias when looking up partition by name Michael Scott
2015-03-12 16:23 ` Steve Rae
2015-03-12 17:17   ` Michael Scott
2015-03-12 18:14     ` Steve Rae
2015-03-20  7:50       ` Lukasz Majewski [this message]
2015-03-20 16:30         ` Steve Rae
2015-03-23  9:13           ` Lukasz Majewski

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20150320085010.69159f40@amdc2363 \
    --to=l.majewski@samsung.com \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.