[U-Boot] [PATCH] fastboot: allow retrieving fastboot variables from env

Steve Rae steve.rae at broadcom.com
Tue Mar 22 23:24:20 CET 2016


On Thu, Mar 17, 2016 at 9:44 AM, Boris Brezillon <
boris.brezillon at free-electrons.com> wrote:

> On Thu, 17 Mar 2016 17:21:23 +0100
> Boris Brezillon <boris.brezillon at free-electrons.com> wrote:
>
> > From: Rob Herring <rob.herring at linaro.org>
> >
> > Some boards need to expose device specific variable through fastboot
> > (to adpat the flashing script depending on hardware revision for
> > example).
> >
> > Provide a way to expose custom fastboot variables. Note that all
> > variables meant to be exposed through fastboot should be be prefixed
> > with 'fastboot.', the variable should not exceed 32 bytes (including
> > the prefix and the trailing '\0') and the variable content should
> > fit in the response buffer (60 bytes excluding the 'OKAY' prefix and
> > the trailing '\0').
> >
> > Signed-off-by: Rob Herring <rob.herring at linaro.org>
> > [Boris Brezillon: add a commit message]
> > Signed-off-by: Boris Brezillon <boris.brezillon at free-electrons.com>
> >
> > Signed-off-by: Boris Brezillon <boris.brezillon at free-electrons.com>
>
> Sorry for the duplicated SoB.
>
> > ---
> >  drivers/usb/gadget/f_fastboot.c | 12 ++++++++++--
> >  1 file changed, 10 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/usb/gadget/f_fastboot.c
> b/drivers/usb/gadget/f_fastboot.c
> > index a54b4ee..2e87fee 100644
> > --- a/drivers/usb/gadget/f_fastboot.c
> > +++ b/drivers/usb/gadget/f_fastboot.c
> > @@ -413,8 +413,16 @@ static void cb_getvar(struct usb_ep *ep, struct
> usb_request *req)
> >               else
> >                       strcpy(response, "FAILValue not set");
> >       } else {
> > -             printf("WARNING: unknown variable: %s\n", cmd);
> > -             strcpy(response, "FAILVariable not implemented");
> > +             char envstr[32];
> > +
> > +             snprintf(envstr, sizeof(envstr) - 1, "fastboot.%s", cmd);
> > +             s = getenv(envstr);
> > +             if (s) {
> > +                     strncat(response, s, chars_left);
> > +             } else {
> > +                     printf("WARNING: unknown variable: %s\n", cmd);
> > +                     strcpy(response, "FAILVariable not implemented");
> > +             }
> >       }
> >       fastboot_tx_write_str(response);
> >  }
>
>
>
> --
> Boris Brezillon, Free Electrons
> Embedded Linux and Kernel engineering
> http://free-electrons.com
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot
>


More information about the U-Boot mailing list