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

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

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

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

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

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

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!
participants (4)
-
Boris Brezillon
-
Marek Vasut
-
Steve Rae
-
Tom Rini