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

Boris Brezillon boris.brezillon at free-electrons.com
Thu Mar 17 17:44:45 CET 2016


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


More information about the U-Boot mailing list