On Thu, 17 Mar 2016 17:21:23 +0100 Boris Brezillon <boris.brezil...@free-electrons.com> wrote:
> From: Rob Herring <rob.herr...@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.herr...@linaro.org> > [Boris Brezillon: add a commit message] > Signed-off-by: Boris Brezillon <boris.brezil...@free-electrons.com> > > Signed-off-by: Boris Brezillon <boris.brezil...@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@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot