diff mbox

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

Message ID 1458231683-9886-1-git-send-email-boris.brezillon@free-electrons.com
State Accepted
Commit 74322201dde4593dc3194c702e95e5760e6b497a
Delegated to: Tom Rini
Headers show

Commit Message

Boris Brezillon March 17, 2016, 4:21 p.m. UTC
From: Rob Herring <rob.herring@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@linaro.org>
[Boris Brezillon: add a commit message]
Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>

Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
---
 drivers/usb/gadget/f_fastboot.c | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

Comments

Boris Brezillon March 17, 2016, 4:44 p.m. UTC | #1
On Thu, 17 Mar 2016 17:21:23 +0100
Boris Brezillon <boris.brezillon@free-electrons.com> wrote:

> From: Rob Herring <rob.herring@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@linaro.org>
> [Boris Brezillon: add a commit message]
> Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
> 
> Signed-off-by: Boris Brezillon <boris.brezillon@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);
>  }
Steve Rae March 22, 2016, 10:24 p.m. UTC | #2
On Thu, Mar 17, 2016 at 9:44 AM, Boris Brezillon <
boris.brezillon@free-electrons.com> wrote:

> On Thu, 17 Mar 2016 17:21:23 +0100
> Boris Brezillon <boris.brezillon@free-electrons.com> wrote:
>
> > From: Rob Herring <rob.herring@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@linaro.org>
> > [Boris Brezillon: add a commit message]
> > Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
> >
> > Signed-off-by: Boris Brezillon <boris.brezillon@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
>
Steve Rae March 22, 2016, 10:25 p.m. UTC | #3
On Thu, Mar 17, 2016 at 9:44 AM, Boris Brezillon <
boris.brezillon@free-electrons.com> wrote:

> On Thu, 17 Mar 2016 17:21:23 +0100
> Boris Brezillon <boris.brezillon@free-electrons.com> wrote:
>
> > From: Rob Herring <rob.herring@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@linaro.org>
> > [Boris Brezillon: add a commit message]
> > Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
> >
> > Signed-off-by: Boris Brezillon <boris.brezillon@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);
> >  }
>
>
Acked-by: Steve Rae <srae@broadcom.com>


>
>
> --
> 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
>
Marek Vasut March 23, 2016, 2:05 a.m. UTC | #4
On 03/17/2016 05:44 PM, Boris Brezillon wrote:
> On Thu, 17 Mar 2016 17:21:23 +0100
> Boris Brezillon <boris.brezillon@free-electrons.com> wrote:
> 
>> From: Rob Herring <rob.herring@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@linaro.org>
>> [Boris Brezillon: add a commit message]
>> Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
>>
>> Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
> 
> Sorry for the duplicated SoB.

Dropped the double-SoB and applied, thanks!

Best regards,
Marek Vasut
Tom Rini April 2, 2016, 1:55 a.m. UTC | #5
On Thu, Mar 17, 2016 at 05:21:23PM +0100, Boris BREZILLON wrote:

> From: Rob Herring <rob.herring@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@linaro.org>
> [Boris Brezillon: add a commit message]
> Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
> 
> Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
> Acked-by: Steve Rae <srae@broadcom.com>

Applied to u-boot/master, thanks!
diff mbox

Patch

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);
 }