public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [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