* [U-Boot] [PATCH 1/2] usb: gadget: g_dnl: fix g_dnl_set_serialnumber()
@ 2017-02-22 9:22 Felipe Balbi
2017-02-22 9:22 ` [U-Boot] [PATCH 2/2] usb: gadget: f_dfu: set serial number if serial# is valid Felipe Balbi
2017-02-22 12:07 ` [U-Boot] [PATCH 1/2] usb: gadget: g_dnl: fix g_dnl_set_serialnumber() Lukasz Majewski
0 siblings, 2 replies; 4+ messages in thread
From: Felipe Balbi @ 2017-02-22 9:22 UTC (permalink / raw)
To: u-boot
instead of only copying if strlen(s) is less than 32 characters, let's
just copy at most 31 characters regardless of the size of
serial#. This will guarantee that we always have a serial number if
serial# environment variable is set to anything.
Note that without a proper serial number, USB Command Verifier fails
our test of Device Descriptor since we will claim to have a serial
number without really providing one when requested.
Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
---
drivers/usb/gadget/g_dnl.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/drivers/usb/gadget/g_dnl.c b/drivers/usb/gadget/g_dnl.c
index 45a484c4b725..4ba7c1da7cb0 100644
--- a/drivers/usb/gadget/g_dnl.c
+++ b/drivers/usb/gadget/g_dnl.c
@@ -49,8 +49,7 @@ static const char manufacturer[] = CONFIG_G_DNL_MANUFACTURER;
void g_dnl_set_serialnumber(char *s)
{
memset(g_dnl_serial, 0, MAX_STRING_SERIAL);
- if (strlen(s) < MAX_STRING_SERIAL)
- strncpy(g_dnl_serial, s, strlen(s));
+ strncpy(g_dnl_serial, s, MAX_STRING_SERIAL - 1);
}
static struct usb_device_descriptor device_desc = {
--
2.11.0.295.gd7dffce1ce
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [U-Boot] [PATCH 2/2] usb: gadget: f_dfu: set serial number if serial# is valid
2017-02-22 9:22 [U-Boot] [PATCH 1/2] usb: gadget: g_dnl: fix g_dnl_set_serialnumber() Felipe Balbi
@ 2017-02-22 9:22 ` Felipe Balbi
2017-02-22 12:08 ` Lukasz Majewski
2017-02-22 12:07 ` [U-Boot] [PATCH 1/2] usb: gadget: g_dnl: fix g_dnl_set_serialnumber() Lukasz Majewski
1 sibling, 1 reply; 4+ messages in thread
From: Felipe Balbi @ 2017-02-22 9:22 UTC (permalink / raw)
To: u-boot
With this patch, USB Command Verifier is happy with our DFU
implementation on Chapter 9 tests.
Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
---
drivers/usb/gadget/f_dfu.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/drivers/usb/gadget/f_dfu.c b/drivers/usb/gadget/f_dfu.c
index 64cdfa7c98ec..52a6a79ceefc 100644
--- a/drivers/usb/gadget/f_dfu.c
+++ b/drivers/usb/gadget/f_dfu.c
@@ -691,6 +691,7 @@ static int dfu_bind(struct usb_configuration *c, struct usb_function *f)
{
struct usb_composite_dev *cdev = c->cdev;
struct f_dfu *f_dfu = func_to_dfu(f);
+ const char *s;
int alt_num = dfu_get_alt_number();
int rv, id, i;
@@ -724,6 +725,10 @@ static int dfu_bind(struct usb_configuration *c, struct usb_function *f)
cdev->req->context = f_dfu;
+ s = getenv("serial#");
+ if (s)
+ g_dnl_set_serialnumber((char *)s);
+
error:
return rv;
}
--
2.11.0.295.gd7dffce1ce
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [U-Boot] [PATCH 1/2] usb: gadget: g_dnl: fix g_dnl_set_serialnumber()
2017-02-22 9:22 [U-Boot] [PATCH 1/2] usb: gadget: g_dnl: fix g_dnl_set_serialnumber() Felipe Balbi
2017-02-22 9:22 ` [U-Boot] [PATCH 2/2] usb: gadget: f_dfu: set serial number if serial# is valid Felipe Balbi
@ 2017-02-22 12:07 ` Lukasz Majewski
1 sibling, 0 replies; 4+ messages in thread
From: Lukasz Majewski @ 2017-02-22 12:07 UTC (permalink / raw)
To: u-boot
On Wed, 22 Feb 2017 11:22:37 +0200
Felipe Balbi <felipe.balbi@linux.intel.com> wrote:
> instead of only copying if strlen(s) is less than 32 characters, let's
> just copy at most 31 characters regardless of the size of
> serial#. This will guarantee that we always have a serial number if
> serial# environment variable is set to anything.
>
> Note that without a proper serial number, USB Command Verifier fails
> our test of Device Descriptor since we will claim to have a serial
> number without really providing one when requested.
>
> Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
> ---
> drivers/usb/gadget/g_dnl.c | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/drivers/usb/gadget/g_dnl.c b/drivers/usb/gadget/g_dnl.c
> index 45a484c4b725..4ba7c1da7cb0 100644
> --- a/drivers/usb/gadget/g_dnl.c
> +++ b/drivers/usb/gadget/g_dnl.c
> @@ -49,8 +49,7 @@ static const char manufacturer[] =
> CONFIG_G_DNL_MANUFACTURER; void g_dnl_set_serialnumber(char *s)
> {
> memset(g_dnl_serial, 0, MAX_STRING_SERIAL);
> - if (strlen(s) < MAX_STRING_SERIAL)
> - strncpy(g_dnl_serial, s, strlen(s));
> + strncpy(g_dnl_serial, s, MAX_STRING_SERIAL - 1);
> }
>
> static struct usb_device_descriptor device_desc = {
Acked-by: Lukasz Majewski <lukma@denx.de>
Tested-by: Lukasz Majewski <lukma@denx.de>
Test HW: BBB (am335x) - with tests/py/dfu
Test SW: test/py/dfu
I've applied it to u-boot-dfu tree.
Best regards,
Lukasz Majewski
--
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
^ permalink raw reply [flat|nested] 4+ messages in thread
* [U-Boot] [PATCH 2/2] usb: gadget: f_dfu: set serial number if serial# is valid
2017-02-22 9:22 ` [U-Boot] [PATCH 2/2] usb: gadget: f_dfu: set serial number if serial# is valid Felipe Balbi
@ 2017-02-22 12:08 ` Lukasz Majewski
0 siblings, 0 replies; 4+ messages in thread
From: Lukasz Majewski @ 2017-02-22 12:08 UTC (permalink / raw)
To: u-boot
On Wed, 22 Feb 2017 11:22:38 +0200
Felipe Balbi <felipe.balbi@linux.intel.com> wrote:
> With this patch, USB Command Verifier is happy with our DFU
> implementation on Chapter 9 tests.
>
> Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
> ---
> drivers/usb/gadget/f_dfu.c | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/drivers/usb/gadget/f_dfu.c b/drivers/usb/gadget/f_dfu.c
> index 64cdfa7c98ec..52a6a79ceefc 100644
> --- a/drivers/usb/gadget/f_dfu.c
> +++ b/drivers/usb/gadget/f_dfu.c
> @@ -691,6 +691,7 @@ static int dfu_bind(struct usb_configuration *c,
> struct usb_function *f) {
> struct usb_composite_dev *cdev = c->cdev;
> struct f_dfu *f_dfu = func_to_dfu(f);
> + const char *s;
> int alt_num = dfu_get_alt_number();
> int rv, id, i;
>
> @@ -724,6 +725,10 @@ static int dfu_bind(struct usb_configuration *c,
> struct usb_function *f)
> cdev->req->context = f_dfu;
>
> + s = getenv("serial#");
> + if (s)
> + g_dnl_set_serialnumber((char *)s);
> +
> error:
> return rv;
> }
Acked-by: Lukasz Majewski <lukma@denx.de>
Tested-by: Lukasz Majewski <lukma@denx.de>
Test HW: BBB (am335x) - with tests/py/dfu
Test SW: test/py/dfu
I've applied it to u-boot-dfu tree.
Best regards,
Lukasz Majewski
--
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2017-02-22 12:08 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-02-22 9:22 [U-Boot] [PATCH 1/2] usb: gadget: g_dnl: fix g_dnl_set_serialnumber() Felipe Balbi
2017-02-22 9:22 ` [U-Boot] [PATCH 2/2] usb: gadget: f_dfu: set serial number if serial# is valid Felipe Balbi
2017-02-22 12:08 ` Lukasz Majewski
2017-02-22 12:07 ` [U-Boot] [PATCH 1/2] usb: gadget: g_dnl: fix g_dnl_set_serialnumber() Lukasz Majewski
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox