Discussion:
[U-Boot] [PATCH v1 0/2] usb: dfu: am335x: allow dfu in fullspeed mode only
Heiko Schocher
2014-09-09 12:37:02 UTC
Permalink
This patchserie adds the new config option CONFIG_DFU_FULLSPEED.
If this is enabled DFU uses fullspeed only. This is used on the
siemens boards.

Cc: Tom Rini <trini at ti.com>
Cc: Lukasz Majewski <l.majewski at samsung.com>
Cc: Marek Vasut <marex at denx.de>
Cc: Liu Bin <b-liu at ti.com>
Cc: Lukas Stockmann <lukas.stockmann at siemens.com>

Heiko Schocher (2):
usb: dfu: add config option to use in dfu mode fullspeed only
arm: am335x: siemens board use in DFU mode fullspeed only

README | 3 +++
drivers/usb/gadget/f_dfu.c | 3 +++
drivers/usb/gadget/g_dnl.c | 3 +++
include/configs/siemens-am33x-common.h | 3 ++-
4 files changed, 11 insertions(+), 1 deletion(-)
--
1.8.3.1
Heiko Schocher
2014-09-09 12:37:04 UTC
Permalink
Siemens boards are now using DFU in fullspeed only.

Signed-off-by: Heiko Schocher <hs at denx.de>
Cc: Tom Rini <trini at ti.com>
Cc: Lukasz Majewski <l.majewski at samsung.com>
Cc: Marek Vasut <marex at denx.de>
Cc: Liu Bin <b-liu at ti.com>
Cc: Lukas Stockmann <lukas.stockmann at siemens.com>
---
include/configs/siemens-am33x-common.h | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/include/configs/siemens-am33x-common.h b/include/configs/siemens-am33x-common.h
index b8fb77e..6fa5ddf 100644
--- a/include/configs/siemens-am33x-common.h
+++ b/include/configs/siemens-am33x-common.h
@@ -233,7 +233,7 @@
#define CONFIG_MUSB_GADGET
#define CONFIG_MUSB_PIO_ONLY
#define CONFIG_MUSB_DISABLE_BULK_COMBINE_SPLIT
-#define CONFIG_USB_GADGET_DUALSPEED
+#undef CONFIG_USB_GADGET_DUALSPEED
#define CONFIG_USB_GADGET_VBUS_DRAW 2
#define CONFIG_MUSB_HOST

@@ -267,6 +267,7 @@
#define CONFIG_CMD_DFU
#define CONFIG_SYS_DFU_DATA_BUF_SIZE (1 << 20)
#define DFU_MANIFEST_POLL_TIMEOUT 25000
+#define CONFIG_DFU_FULLSPEED

#endif /* CONFIG_SPL_BUILD */
--
1.8.3.1
Heiko Schocher
2014-09-09 12:37:03 UTC
Permalink
add the new config option CONFIG_DFU_FULLSPEED. With this
option enabled, DFU uses fullspeed only.

Signed-off-by: Heiko Schocher <hs at denx.de>
Cc: Tom Rini <trini at ti.com>
Cc: Lukasz Majewski <l.majewski at samsung.com>
Cc: Marek Vasut <marex at denx.de>
Cc: Liu Bin <b-liu at ti.com>
Cc: Lukas Stockmann <lukas.stockmann at siemens.com>
---
README | 3 +++
drivers/usb/gadget/f_dfu.c | 3 +++
drivers/usb/gadget/g_dnl.c | 3 +++
3 files changed, 9 insertions(+)

diff --git a/README b/README
index 0a0f528..1413392 100644
--- a/README
+++ b/README
@@ -1607,6 +1607,9 @@ The following options need to be configured:
entering dfuMANIFEST state. Host waits this timeout, before
sending again an USB request to the device.

+ CONFIG_DFU_FULLSPEED
+ use for the dfu functionality fullspeed only.
+
- USB Device Android Fastboot support:
CONFIG_CMD_FASTBOOT
This enables the command "fastboot" which enables the Android
diff --git a/drivers/usb/gadget/f_dfu.c b/drivers/usb/gadget/f_dfu.c
index 1145aab..dfa9f3b 100644
--- a/drivers/usb/gadget/f_dfu.c
+++ b/drivers/usb/gadget/f_dfu.c
@@ -238,6 +238,7 @@ static inline void to_dfu_mode(struct f_dfu *f_dfu)
{
f_dfu->usb_function.strings = dfu_strings;
f_dfu->usb_function.hs_descriptors = f_dfu->function;
+ f_dfu->usb_function.descriptors = f_dfu->function;
f_dfu->dfu_state = DFU_STATE_dfuIDLE;
}

@@ -245,6 +246,7 @@ static inline void to_runtime_mode(struct f_dfu *f_dfu)
{
f_dfu->usb_function.strings = NULL;
f_dfu->usb_function.hs_descriptors = dfu_runtime_descs;
+ f_dfu->usb_function.descriptors = dfu_runtime_descs;
}

static int handle_upload(struct usb_request *req, u16 len)
@@ -809,6 +811,7 @@ static int dfu_bind_config(struct usb_configuration *c)
return -ENOMEM;
f_dfu->usb_function.name = "dfu";
f_dfu->usb_function.hs_descriptors = dfu_runtime_descs;
+ f_dfu->usb_function.descriptors = dfu_runtime_descs;
f_dfu->usb_function.bind = dfu_bind;
f_dfu->usb_function.unbind = dfu_unbind;
f_dfu->usb_function.set_alt = dfu_set_alt;
diff --git a/drivers/usb/gadget/g_dnl.c b/drivers/usb/gadget/g_dnl.c
index 58cad11..79e0c9c 100644
--- a/drivers/usb/gadget/g_dnl.c
+++ b/drivers/usb/gadget/g_dnl.c
@@ -143,6 +143,9 @@ static int g_dnl_config_register(struct usb_composite_dev *cdev)
config->bConfigurationValue = CONFIGURATION_NUMBER;
config->iConfiguration = STRING_USBDOWN;
config->bind = g_dnl_do_config;
+#if defined(CONFIG_DFU_FULLSPEED)
+ config->fullspeed = 1;
+#endif

return usb_add_config(cdev, config);
}
--
1.8.3.1
Bin Liu
2014-09-09 14:09:34 UTC
Permalink
Heiko,
Post by Heiko Schocher
add the new config option CONFIG_DFU_FULLSPEED. With this
option enabled, DFU uses fullspeed only.
Can we not introduce the new config option but check the gadget driver
speed in runtime as what the ether gadget driver does?

I don't want two config options (CONFIG_USB_GADGET_DUALSPEED and
CONFIG_DFU_FULLSPEED) to control one feature, as in your patch 2/2.

Regards,
-Bin.
Post by Heiko Schocher
Signed-off-by: Heiko Schocher <hs at denx.de>
Cc: Tom Rini <trini at ti.com>
Cc: Lukasz Majewski <l.majewski at samsung.com>
Cc: Marek Vasut <marex at denx.de>
Cc: Liu Bin <b-liu at ti.com>
Cc: Lukas Stockmann <lukas.stockmann at siemens.com>
---
README | 3 +++
drivers/usb/gadget/f_dfu.c | 3 +++
drivers/usb/gadget/g_dnl.c | 3 +++
3 files changed, 9 insertions(+)
diff --git a/README b/README
index 0a0f528..1413392 100644
--- a/README
+++ b/README
entering dfuMANIFEST state. Host waits this timeout, before
sending again an USB request to the device.
+ CONFIG_DFU_FULLSPEED
+ use for the dfu functionality fullspeed only.
+
CONFIG_CMD_FASTBOOT
This enables the command "fastboot" which enables the Android
diff --git a/drivers/usb/gadget/f_dfu.c b/drivers/usb/gadget/f_dfu.c
index 1145aab..dfa9f3b 100644
--- a/drivers/usb/gadget/f_dfu.c
+++ b/drivers/usb/gadget/f_dfu.c
@@ -238,6 +238,7 @@ static inline void to_dfu_mode(struct f_dfu *f_dfu)
{
f_dfu->usb_function.strings = dfu_strings;
f_dfu->usb_function.hs_descriptors = f_dfu->function;
+ f_dfu->usb_function.descriptors = f_dfu->function;
f_dfu->dfu_state = DFU_STATE_dfuIDLE;
}
@@ -245,6 +246,7 @@ static inline void to_runtime_mode(struct f_dfu *f_dfu)
{
f_dfu->usb_function.strings = NULL;
f_dfu->usb_function.hs_descriptors = dfu_runtime_descs;
+ f_dfu->usb_function.descriptors = dfu_runtime_descs;
}
static int handle_upload(struct usb_request *req, u16 len)
@@ -809,6 +811,7 @@ static int dfu_bind_config(struct usb_configuration *c)
return -ENOMEM;
f_dfu->usb_function.name = "dfu";
f_dfu->usb_function.hs_descriptors = dfu_runtime_descs;
+ f_dfu->usb_function.descriptors = dfu_runtime_descs;
f_dfu->usb_function.bind = dfu_bind;
f_dfu->usb_function.unbind = dfu_unbind;
f_dfu->usb_function.set_alt = dfu_set_alt;
diff --git a/drivers/usb/gadget/g_dnl.c b/drivers/usb/gadget/g_dnl.c
index 58cad11..79e0c9c 100644
--- a/drivers/usb/gadget/g_dnl.c
+++ b/drivers/usb/gadget/g_dnl.c
@@ -143,6 +143,9 @@ static int g_dnl_config_register(struct usb_composite_dev *cdev)
config->bConfigurationValue = CONFIGURATION_NUMBER;
config->iConfiguration = STRING_USBDOWN;
config->bind = g_dnl_do_config;
+#if defined(CONFIG_DFU_FULLSPEED)
+ config->fullspeed = 1;
+#endif
return usb_add_config(cdev, config);
}
Lukasz Majewski
2014-09-09 14:25:09 UTC
Permalink
Hi Bin,
Post by Lukasz Majewski
Heiko,
Post by Heiko Schocher
add the new config option CONFIG_DFU_FULLSPEED. With this
option enabled, DFU uses fullspeed only.
Can we not introduce the new config option but check the gadget
driver speed in runtime as what the ether gadget driver does?
I don't want two config options (CONFIG_USB_GADGET_DUALSPEED and
CONFIG_DFU_FULLSPEED) to control one feature, as in your patch 2/2.
+1
Post by Lukasz Majewski
Regards,
-Bin.
Post by Heiko Schocher
Signed-off-by: Heiko Schocher <hs at denx.de>
Cc: Tom Rini <trini at ti.com>
Cc: Lukasz Majewski <l.majewski at samsung.com>
Cc: Marek Vasut <marex at denx.de>
Cc: Liu Bin <b-liu at ti.com>
Cc: Lukas Stockmann <lukas.stockmann at siemens.com>
---
README | 3 +++
drivers/usb/gadget/f_dfu.c | 3 +++
drivers/usb/gadget/g_dnl.c | 3 +++
3 files changed, 9 insertions(+)
diff --git a/README b/README
index 0a0f528..1413392 100644
--- a/README
+++ b/README
entering dfuMANIFEST state. Host waits this
timeout, before sending again an USB request to the device.
+ CONFIG_DFU_FULLSPEED
+ use for the dfu functionality fullspeed only.
+
CONFIG_CMD_FASTBOOT
This enables the command "fastboot" which enables
the Android diff --git a/drivers/usb/gadget/f_dfu.c
b/drivers/usb/gadget/f_dfu.c index 1145aab..dfa9f3b 100644
--- a/drivers/usb/gadget/f_dfu.c
+++ b/drivers/usb/gadget/f_dfu.c
@@ -238,6 +238,7 @@ static inline void to_dfu_mode(struct f_dfu
*f_dfu) {
f_dfu->usb_function.strings = dfu_strings;
f_dfu->usb_function.hs_descriptors = f_dfu->function;
+ f_dfu->usb_function.descriptors = f_dfu->function;
f_dfu->dfu_state = DFU_STATE_dfuIDLE;
}
@@ -245,6 +246,7 @@ static inline void to_runtime_mode(struct f_dfu
*f_dfu) {
f_dfu->usb_function.strings = NULL;
f_dfu->usb_function.hs_descriptors = dfu_runtime_descs;
+ f_dfu->usb_function.descriptors = dfu_runtime_descs;
}
static int handle_upload(struct usb_request *req, u16 len)
@@ -809,6 +811,7 @@ static int dfu_bind_config(struct
usb_configuration *c) return -ENOMEM;
f_dfu->usb_function.name = "dfu";
f_dfu->usb_function.hs_descriptors = dfu_runtime_descs;
+ f_dfu->usb_function.descriptors = dfu_runtime_descs;
f_dfu->usb_function.bind = dfu_bind;
f_dfu->usb_function.unbind = dfu_unbind;
f_dfu->usb_function.set_alt = dfu_set_alt;
diff --git a/drivers/usb/gadget/g_dnl.c b/drivers/usb/gadget/g_dnl.c
index 58cad11..79e0c9c 100644
--- a/drivers/usb/gadget/g_dnl.c
+++ b/drivers/usb/gadget/g_dnl.c
@@ -143,6 +143,9 @@ static int g_dnl_config_register(struct
usb_composite_dev *cdev) config->bConfigurationValue =
CONFIGURATION_NUMBER; config->iConfiguration = STRING_USBDOWN;
config->bind = g_dnl_do_config;
+#if defined(CONFIG_DFU_FULLSPEED)
+ config->fullspeed = 1;
+#endif
return usb_add_config(cdev, config);
}
--
Best regards,

Lukasz Majewski

Samsung R&D Institute Poland (SRPOL) | Linux Platform Group
Heiko Schocher
2014-09-09 14:37:11 UTC
Permalink
Hello Bin Liu,
Post by Lukasz Majewski
Heiko,
Post by Heiko Schocher
add the new config option CONFIG_DFU_FULLSPEED. With this
option enabled, DFU uses fullspeed only.
Can we not introduce the new config option but check the gadget driver speed in runtime as what the ether gadget driver does?
I don't want two config options (CONFIG_USB_GADGET_DUALSPEED and CONFIG_DFU_FULLSPEED) to control one feature, as in your patch 2/2.
Hmm.. I am not sure, if I understand you correct. I could use
CONFIG_USB_GADGET_DUALSPEED instead the new config option
for setting "config->fullspeed = 1;" in g_dnl_config_register()

If you mean this, yes, thats would be a good change...

bye,
Heiko
Post by Lukasz Majewski
Regards,
-Bin.
Post by Heiko Schocher
Signed-off-by: Heiko Schocher <hs at denx.de>
Cc: Tom Rini <trini at ti.com>
Cc: Lukasz Majewski <l.majewski at samsung.com>
Cc: Marek Vasut <marex at denx.de>
Cc: Liu Bin <b-liu at ti.com>
Cc: Lukas Stockmann <lukas.stockmann at siemens.com>
---
README | 3 +++
drivers/usb/gadget/f_dfu.c | 3 +++
drivers/usb/gadget/g_dnl.c | 3 +++
3 files changed, 9 insertions(+)
diff --git a/README b/README
index 0a0f528..1413392 100644
--- a/README
+++ b/README
entering dfuMANIFEST state. Host waits this timeout, before
sending again an USB request to the device.
+ CONFIG_DFU_FULLSPEED
+ use for the dfu functionality fullspeed only.
+
CONFIG_CMD_FASTBOOT
This enables the command "fastboot" which enables the Android
diff --git a/drivers/usb/gadget/f_dfu.c b/drivers/usb/gadget/f_dfu.c
index 1145aab..dfa9f3b 100644
--- a/drivers/usb/gadget/f_dfu.c
+++ b/drivers/usb/gadget/f_dfu.c
@@ -238,6 +238,7 @@ static inline void to_dfu_mode(struct f_dfu *f_dfu)
{
f_dfu->usb_function.strings = dfu_strings;
f_dfu->usb_function.hs_descriptors = f_dfu->function;
+ f_dfu->usb_function.descriptors = f_dfu->function;
f_dfu->dfu_state = DFU_STATE_dfuIDLE;
}
@@ -245,6 +246,7 @@ static inline void to_runtime_mode(struct f_dfu *f_dfu)
{
f_dfu->usb_function.strings = NULL;
f_dfu->usb_function.hs_descriptors = dfu_runtime_descs;
+ f_dfu->usb_function.descriptors = dfu_runtime_descs;
}
static int handle_upload(struct usb_request *req, u16 len)
@@ -809,6 +811,7 @@ static int dfu_bind_config(struct usb_configuration *c)
return -ENOMEM;
f_dfu->usb_function.name = "dfu";
f_dfu->usb_function.hs_descriptors = dfu_runtime_descs;
+ f_dfu->usb_function.descriptors = dfu_runtime_descs;
f_dfu->usb_function.bind = dfu_bind;
f_dfu->usb_function.unbind = dfu_unbind;
f_dfu->usb_function.set_alt = dfu_set_alt;
diff --git a/drivers/usb/gadget/g_dnl.c b/drivers/usb/gadget/g_dnl.c
index 58cad11..79e0c9c 100644
--- a/drivers/usb/gadget/g_dnl.c
+++ b/drivers/usb/gadget/g_dnl.c
@@ -143,6 +143,9 @@ static int g_dnl_config_register(struct usb_composite_dev *cdev)
config->bConfigurationValue = CONFIGURATION_NUMBER;
config->iConfiguration = STRING_USBDOWN;
config->bind = g_dnl_do_config;
+#if defined(CONFIG_DFU_FULLSPEED)
+ config->fullspeed = 1;
+#endif
return usb_add_config(cdev, config);
}
--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Bin Liu
2014-09-09 14:42:06 UTC
Permalink
Heiko,
Post by Heiko Schocher
Hello Bin Liu,
Post by Lukasz Majewski
Heiko,
Post by Heiko Schocher
add the new config option CONFIG_DFU_FULLSPEED. With this
option enabled, DFU uses fullspeed only.
Can we not introduce the new config option but check the gadget driver
speed in runtime as what the ether gadget driver does?
I don't want two config options (CONFIG_USB_GADGET_DUALSPEED and
CONFIG_DFU_FULLSPEED) to control one feature, as in your patch 2/2.
Hmm.. I am not sure, if I understand you correct. I could use
CONFIG_USB_GADGET_DUALSPEED instead the new config option
for setting "config->fullspeed = 1;" in g_dnl_config_register()
If you mean this, yes, thats would be a good change...
No, I did not mean this build time macro, but was thinking you can check
g->speed at the same place in runtime.

I think you can refer to ether.c, which supports full-speed but does not
use any macro.

Regards,
-Bin.
Post by Heiko Schocher
bye,
Heiko
Post by Lukasz Majewski
Regards,
-Bin.
Post by Heiko Schocher
Signed-off-by: Heiko Schocher <hs at denx.de>
Cc: Tom Rini <trini at ti.com>
Cc: Lukasz Majewski <l.majewski at samsung.com>
Cc: Marek Vasut <marex at denx.de>
Cc: Liu Bin <b-liu at ti.com>
Cc: Lukas Stockmann <lukas.stockmann at siemens.com>
---
README | 3 +++
drivers/usb/gadget/f_dfu.c | 3 +++
drivers/usb/gadget/g_dnl.c | 3 +++
3 files changed, 9 insertions(+)
diff --git a/README b/README
index 0a0f528..1413392 100644
--- a/README
+++ b/README
entering dfuMANIFEST state. Host waits this timeout, before
sending again an USB request to the device.
+ CONFIG_DFU_FULLSPEED
+ use for the dfu functionality fullspeed only.
+
CONFIG_CMD_FASTBOOT
This enables the command "fastboot" which enables the Android
diff --git a/drivers/usb/gadget/f_dfu.c b/drivers/usb/gadget/f_dfu.c
index 1145aab..dfa9f3b 100644
--- a/drivers/usb/gadget/f_dfu.c
+++ b/drivers/usb/gadget/f_dfu.c
@@ -238,6 +238,7 @@ static inline void to_dfu_mode(struct f_dfu *f_dfu)
{
f_dfu->usb_function.strings = dfu_strings;
f_dfu->usb_function.hs_descriptors = f_dfu->function;
+ f_dfu->usb_function.descriptors = f_dfu->function;
f_dfu->dfu_state = DFU_STATE_dfuIDLE;
}
@@ -245,6 +246,7 @@ static inline void to_runtime_mode(struct f_dfu *f_dfu)
{
f_dfu->usb_function.strings = NULL;
f_dfu->usb_function.hs_descriptors = dfu_runtime_descs;
+ f_dfu->usb_function.descriptors = dfu_runtime_descs;
}
static int handle_upload(struct usb_request *req, u16 len)
@@ -809,6 +811,7 @@ static int dfu_bind_config(struct
usb_configuration *c)
return -ENOMEM;
f_dfu->usb_function.name = "dfu";
f_dfu->usb_function.hs_descriptors = dfu_runtime_descs;
+ f_dfu->usb_function.descriptors = dfu_runtime_descs;
f_dfu->usb_function.bind = dfu_bind;
f_dfu->usb_function.unbind = dfu_unbind;
f_dfu->usb_function.set_alt = dfu_set_alt;
diff --git a/drivers/usb/gadget/g_dnl.c b/drivers/usb/gadget/g_dnl.c
index 58cad11..79e0c9c 100644
--- a/drivers/usb/gadget/g_dnl.c
+++ b/drivers/usb/gadget/g_dnl.c
@@ -143,6 +143,9 @@ static int g_dnl_config_register(struct
usb_composite_dev *cdev)
config->bConfigurationValue = CONFIGURATION_NUMBER;
config->iConfiguration = STRING_USBDOWN;
config->bind = g_dnl_do_config;
+#if defined(CONFIG_DFU_FULLSPEED)
+ config->fullspeed = 1;
+#endif
return usb_add_config(cdev, config);
}
Heiko Schocher
2014-09-10 06:10:02 UTC
Permalink
Hello Bin Liu,
Post by Lukasz Majewski
Heiko,
Post by Heiko Schocher
Hello Bin Liu,
Post by Lukasz Majewski
Heiko,
Post by Heiko Schocher
add the new config option CONFIG_DFU_FULLSPEED. With this
option enabled, DFU uses fullspeed only.
Can we not introduce the new config option but check the gadget driver
speed in runtime as what the ether gadget driver does?
I don't want two config options (CONFIG_USB_GADGET_DUALSPEED and
CONFIG_DFU_FULLSPEED) to control one feature, as in your patch 2/2.
Hmm.. I am not sure, if I understand you correct. I could use
CONFIG_USB_GADGET_DUALSPEED instead the new config option
for setting "config->fullspeed = 1;" in g_dnl_config_register()
If you mean this, yes, thats would be a good change...
No, I did not mean this build time macro, but was thinking you can check g->speed at the same place in runtime.
I think you can refer to ether.c, which supports full-speed but does not use any macro.
Yep, you are right, I can get rid completely of this new define!
The speed selection is done in drivers/usb/gadget/composite.c

I removed it, do some tests, and send a v2. Thanks!

bye,
Heiko
--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Lukasz Majewski
2014-09-09 13:43:09 UTC
Permalink
Hi Heiko,
Post by Heiko Schocher
This patchserie adds the new config option CONFIG_DFU_FULLSPEED.
Is there any special reason to support Full Speed (12 Mbit/sec - USB
1.1) and not rely solely on the High Speed (USB 2.0) as we do now?
Post by Heiko Schocher
If this is enabled DFU uses fullspeed only. This is used on the
siemens boards.
Is there any DFU problem with the mentioned Siemens board, that we must
use USB 1.1?

I'd also appreciate more verbose rationale for this patch series - why
this change is needed? What is the expected improvement?

Thanks in advance.
Post by Heiko Schocher
Cc: Tom Rini <trini at ti.com>
Cc: Lukasz Majewski <l.majewski at samsung.com>
Cc: Marek Vasut <marex at denx.de>
Cc: Liu Bin <b-liu at ti.com>
Cc: Lukas Stockmann <lukas.stockmann at siemens.com>
usb: dfu: add config option to use in dfu mode fullspeed only
arm: am335x: siemens board use in DFU mode fullspeed only
README | 3 +++
drivers/usb/gadget/f_dfu.c | 3 +++
drivers/usb/gadget/g_dnl.c | 3 +++
include/configs/siemens-am33x-common.h | 3 ++-
4 files changed, 11 insertions(+), 1 deletion(-)
--
Best regards,

Lukasz Majewski

Samsung R&D Institute Poland (SRPOL) | Linux Platform Group
Bin Liu
2014-09-09 14:05:23 UTC
Permalink
Lukasz,
Post by Lukasz Majewski
Hi Heiko,
Post by Heiko Schocher
This patchserie adds the new config option CONFIG_DFU_FULLSPEED.
Is there any special reason to support Full Speed (12 Mbit/sec - USB
1.1) and not rely solely on the High Speed (USB 2.0) as we do now?
The drivers must support full-speed anyway based on the USB2.0 Specs.

I have seen many cases in which only full-speed is suitable due to
either board design or specific USB use case.

One example is that to better fit to the production firmware flashing
automation, a board does not use standard USB receptacle or plug, but a
four touch pads on the PCB, so that the robot can grab the board and
touch the pads to download the firmware. In this case signal integrity
is a concern, but not download speed.

Regards,
-Bin.
Post by Lukasz Majewski
Post by Heiko Schocher
If this is enabled DFU uses fullspeed only. This is used on the
siemens boards.
Is there any DFU problem with the mentioned Siemens board, that we must
use USB 1.1?
I'd also appreciate more verbose rationale for this patch series - why
this change is needed? What is the expected improvement?
Thanks in advance.
Post by Heiko Schocher
Cc: Tom Rini <trini at ti.com>
Cc: Lukasz Majewski <l.majewski at samsung.com>
Cc: Marek Vasut <marex at denx.de>
Cc: Liu Bin <b-liu at ti.com>
Cc: Lukas Stockmann <lukas.stockmann at siemens.com>
usb: dfu: add config option to use in dfu mode fullspeed only
arm: am335x: siemens board use in DFU mode fullspeed only
README | 3 +++
drivers/usb/gadget/f_dfu.c | 3 +++
drivers/usb/gadget/g_dnl.c | 3 +++
include/configs/siemens-am33x-common.h | 3 ++-
4 files changed, 11 insertions(+), 1 deletion(-)
Lukasz Majewski
2014-09-09 14:24:08 UTC
Permalink
Hi Bin,
Post by Bin Liu
Lukasz,
Post by Lukasz Majewski
Hi Heiko,
Post by Heiko Schocher
This patchserie adds the new config option CONFIG_DFU_FULLSPEED.
Is there any special reason to support Full Speed (12 Mbit/sec - USB
1.1) and not rely solely on the High Speed (USB 2.0) as we do now?
The drivers must support full-speed anyway based on the USB2.0 Specs.
I have seen many cases in which only full-speed is suitable due to
either board design or specific USB use case.
One example is that to better fit to the production firmware flashing
automation, a board does not use standard USB receptacle or plug, but
a four touch pads on the PCB, so that the robot can grab the board
and touch the pads to download the firmware. In this case signal
integrity is a concern, but not download speed.
Thanks for example.

Best regards,
Lukasz
Post by Bin Liu
Regards,
-Bin.
Post by Lukasz Majewski
Post by Heiko Schocher
If this is enabled DFU uses fullspeed only. This is used on the
siemens boards.
Is there any DFU problem with the mentioned Siemens board, that we
must use USB 1.1?
I'd also appreciate more verbose rationale for this patch series -
why this change is needed? What is the expected improvement?
Thanks in advance.
Post by Heiko Schocher
Cc: Tom Rini <trini at ti.com>
Cc: Lukasz Majewski <l.majewski at samsung.com>
Cc: Marek Vasut <marex at denx.de>
Cc: Liu Bin <b-liu at ti.com>
Cc: Lukas Stockmann <lukas.stockmann at siemens.com>
usb: dfu: add config option to use in dfu mode fullspeed only
arm: am335x: siemens board use in DFU mode fullspeed only
README | 3 +++
drivers/usb/gadget/f_dfu.c | 3 +++
drivers/usb/gadget/g_dnl.c | 3 +++
include/configs/siemens-am33x-common.h | 3 ++-
4 files changed, 11 insertions(+), 1 deletion(-)
--
Best regards,

Lukasz Majewski

Samsung R&D Institute Poland (SRPOL) | Linux Platform Group
Heiko Schocher
2014-09-09 14:22:24 UTC
Permalink
Hello Lukasz,
Post by Lukasz Majewski
Hi Heiko,
Post by Heiko Schocher
This patchserie adds the new config option CONFIG_DFU_FULLSPEED.
Is there any special reason to support Full Speed (12 Mbit/sec - USB
1.1) and not rely solely on the High Speed (USB 2.0) as we do now?
Post by Heiko Schocher
If this is enabled DFU uses fullspeed only. This is used on the
siemens boards.
Is there any DFU problem with the mentioned Siemens board, that we must
use USB 1.1?
I'd also appreciate more verbose rationale for this patch series - why
this change is needed? What is the expected improvement?
They have a "USB HW protection circuit" and therefore they only allowed
to use fullspeed ...

@Lukas Stockman: Maybe you could answer this better than me?

bye,
Heiko
--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Stockmann, Lukas
2014-09-10 05:46:24 UTC
Permalink
Hi all
-----Urspr?ngliche Nachricht-----
Von: Heiko Schocher [mailto:hs at denx.de]
Gesendet: Dienstag, 9. September 2014 16:22
An: Lukasz Majewski
Cc: u-boot at lists.denx.de; Tom Rini; Marek Vasut; Liu Bin; Stockmann, Lukas
Betreff: Re: [PATCH v1 0/2] usb: dfu: am335x: allow dfu in fullspeed mode
only
Hello Lukasz,
Post by Lukasz Majewski
Hi Heiko,
Post by Heiko Schocher
This patchserie adds the new config option CONFIG_DFU_FULLSPEED.
Is there any special reason to support Full Speed (12 Mbit/sec - USB
1.1) and not rely solely on the High Speed (USB 2.0) as we do now?
Post by Heiko Schocher
If this is enabled DFU uses fullspeed only. This is used on the
siemens boards.
Is there any DFU problem with the mentioned Siemens board, that we
must use USB 1.1?
I'd also appreciate more verbose rationale for this patch series - why
this change is needed? What is the expected improvement?
They have a "USB HW protection circuit" and therefore they only allowed to
use fullspeed ...
@Lukas Stockman: Maybe you could answer this better than me?
Yes, it's because of a protection circuit. Our device is 24V AC
powered, if someone uses a non galvanically isolated transformer and misswires it,
it could burn down the USB host. That's why we have a protection on the USB
side which limits the speed to 12Mbit/sec.

Regards,
Lukas

Loading...