[U-Boot] [PATCH] samsung: dfu: Provide correct Vendor and Product IDs for UMS gadget

It is necessary to provide the same Vendor and Product IDs as the one in the original Linux kernel code.
Without this change the USB mass storage gadget is not working with Windows7.
Signed-off-by: Lukasz Majewski l.majewski@samsung.com --- board/samsung/common/Makefile | 2 +- board/samsung/common/gadget.c | 24 ++++++++++++++++++++++++ board/samsung/common/thor.c | 21 --------------------- include/configs/exynos4-dt.h | 2 ++ 4 files changed, 27 insertions(+), 22 deletions(-) create mode 100644 board/samsung/common/gadget.c delete mode 100644 board/samsung/common/thor.c
diff --git a/board/samsung/common/Makefile b/board/samsung/common/Makefile index 41d0cc3..93347ef 100644 --- a/board/samsung/common/Makefile +++ b/board/samsung/common/Makefile @@ -6,7 +6,7 @@ #
obj-$(CONFIG_SOFT_I2C_MULTI_BUS) += multi_i2c.o -obj-$(CONFIG_THOR_FUNCTION) += thor.o +obj-$(CONFIG_USBDOWNLOAD_GADGET) += gadget.o obj-$(CONFIG_MISC_COMMON) += misc.o
ifndef CONFIG_SPL_BUILD diff --git a/board/samsung/common/gadget.c b/board/samsung/common/gadget.c new file mode 100644 index 0000000..6a1e57f --- /dev/null +++ b/board/samsung/common/gadget.c @@ -0,0 +1,24 @@ +/* + * Copyright (C) 2013 Samsung Electronics + * Lukasz Majewski l.majewski@samsung.com + * + * SPDX-License-Identifier: GPL-2.0+ + */ + +#include <common.h> +#include <linux/usb/ch9.h> + +int g_dnl_bind_fixup(struct usb_device_descriptor *dev, const char *name) +{ + if (!strcmp(name, "usb_dnl_thor")) { + put_unaligned(CONFIG_G_DNL_THOR_VENDOR_NUM, &dev->idVendor); + put_unaligned(CONFIG_G_DNL_THOR_PRODUCT_NUM, &dev->idProduct); + } else if (!strcmp(name, "usb_dnl_ums")) { + put_unaligned(CONFIG_G_DNL_UMS_VENDOR_NUM, &dev->idVendor); + put_unaligned(CONFIG_G_DNL_UMS_PRODUCT_NUM, &dev->idProduct); + } else { + put_unaligned(CONFIG_G_DNL_VENDOR_NUM, &dev->idVendor); + put_unaligned(CONFIG_G_DNL_PRODUCT_NUM, &dev->idProduct); + } + return 0; +} diff --git a/board/samsung/common/thor.c b/board/samsung/common/thor.c deleted file mode 100644 index 1c7630d..0000000 --- a/board/samsung/common/thor.c +++ /dev/null @@ -1,21 +0,0 @@ -/* - * Copyright (C) 2013 Samsung Electronics - * Lukasz Majewski l.majewski@samsung.com - * - * SPDX-License-Identifier: GPL-2.0+ - */ - -#include <common.h> -#include <linux/usb/ch9.h> - -int g_dnl_bind_fixup(struct usb_device_descriptor *dev, const char *name) -{ - if (!strcmp(name, "usb_dnl_thor")) { - put_unaligned(CONFIG_G_DNL_THOR_VENDOR_NUM, &dev->idVendor); - put_unaligned(CONFIG_G_DNL_THOR_PRODUCT_NUM, &dev->idProduct); - } else { - put_unaligned(CONFIG_G_DNL_VENDOR_NUM, &dev->idVendor); - put_unaligned(CONFIG_G_DNL_PRODUCT_NUM, &dev->idProduct); - } - return 0; -} diff --git a/include/configs/exynos4-dt.h b/include/configs/exynos4-dt.h index 44e6ab4..7dac1a3 100644 --- a/include/configs/exynos4-dt.h +++ b/include/configs/exynos4-dt.h @@ -105,6 +105,8 @@ #define CONFIG_G_DNL_PRODUCT_NUM 0x6601 #define CONFIG_G_DNL_THOR_VENDOR_NUM CONFIG_G_DNL_VENDOR_NUM #define CONFIG_G_DNL_THOR_PRODUCT_NUM 0x685D +#define CONFIG_G_DNL_UMS_VENDOR_NUM 0x0525 +#define CONFIG_G_DNL_UMS_PRODUCT_NUM 0xA4A5 #define CONFIG_G_DNL_MANUFACTURER "Samsung"
/* Miscellaneous configurable options */

Hi Minkyu,
It is necessary to provide the same Vendor and Product IDs as the one in the original Linux kernel code.
Without this change the USB mass storage gadget is not working with Windows7.
Do you have any comments to this patch?
Would you consider taking this patch to u-boot-samsung tree or should I take it to u-boot-dfu since it fixes things related to UMS gadget?
Signed-off-by: Lukasz Majewski l.majewski@samsung.com
board/samsung/common/Makefile | 2 +- board/samsung/common/gadget.c | 24 ++++++++++++++++++++++++ board/samsung/common/thor.c | 21 --------------------- include/configs/exynos4-dt.h | 2 ++ 4 files changed, 27 insertions(+), 22 deletions(-) create mode 100644 board/samsung/common/gadget.c delete mode 100644 board/samsung/common/thor.c
diff --git a/board/samsung/common/Makefile b/board/samsung/common/Makefile index 41d0cc3..93347ef 100644 --- a/board/samsung/common/Makefile +++ b/board/samsung/common/Makefile @@ -6,7 +6,7 @@ #
obj-$(CONFIG_SOFT_I2C_MULTI_BUS) += multi_i2c.o -obj-$(CONFIG_THOR_FUNCTION) += thor.o +obj-$(CONFIG_USBDOWNLOAD_GADGET) += gadget.o obj-$(CONFIG_MISC_COMMON) += misc.o
ifndef CONFIG_SPL_BUILD diff --git a/board/samsung/common/gadget.c b/board/samsung/common/gadget.c new file mode 100644 index 0000000..6a1e57f --- /dev/null +++ b/board/samsung/common/gadget.c @@ -0,0 +1,24 @@ +/*
- Copyright (C) 2013 Samsung Electronics
- Lukasz Majewski l.majewski@samsung.com
- SPDX-License-Identifier: GPL-2.0+
- */
+#include <common.h> +#include <linux/usb/ch9.h>
+int g_dnl_bind_fixup(struct usb_device_descriptor *dev, const char *name) +{
- if (!strcmp(name, "usb_dnl_thor")) {
put_unaligned(CONFIG_G_DNL_THOR_VENDOR_NUM,
&dev->idVendor);
put_unaligned(CONFIG_G_DNL_THOR_PRODUCT_NUM,
&dev->idProduct);
- } else if (!strcmp(name, "usb_dnl_ums")) {
put_unaligned(CONFIG_G_DNL_UMS_VENDOR_NUM,
&dev->idVendor);
put_unaligned(CONFIG_G_DNL_UMS_PRODUCT_NUM,
&dev->idProduct);
- } else {
put_unaligned(CONFIG_G_DNL_VENDOR_NUM,
&dev->idVendor);
put_unaligned(CONFIG_G_DNL_PRODUCT_NUM,
&dev->idProduct);
- }
- return 0;
+} diff --git a/board/samsung/common/thor.c b/board/samsung/common/thor.c deleted file mode 100644 index 1c7630d..0000000 --- a/board/samsung/common/thor.c +++ /dev/null @@ -1,21 +0,0 @@ -/*
- Copyright (C) 2013 Samsung Electronics
- Lukasz Majewski l.majewski@samsung.com
- SPDX-License-Identifier: GPL-2.0+
- */
-#include <common.h> -#include <linux/usb/ch9.h>
-int g_dnl_bind_fixup(struct usb_device_descriptor *dev, const char *name) -{
- if (!strcmp(name, "usb_dnl_thor")) {
put_unaligned(CONFIG_G_DNL_THOR_VENDOR_NUM,
&dev->idVendor);
put_unaligned(CONFIG_G_DNL_THOR_PRODUCT_NUM,
&dev->idProduct);
- } else {
put_unaligned(CONFIG_G_DNL_VENDOR_NUM,
&dev->idVendor);
put_unaligned(CONFIG_G_DNL_PRODUCT_NUM,
&dev->idProduct);
- }
- return 0;
-} diff --git a/include/configs/exynos4-dt.h b/include/configs/exynos4-dt.h index 44e6ab4..7dac1a3 100644 --- a/include/configs/exynos4-dt.h +++ b/include/configs/exynos4-dt.h @@ -105,6 +105,8 @@ #define CONFIG_G_DNL_PRODUCT_NUM 0x6601 #define CONFIG_G_DNL_THOR_VENDOR_NUM CONFIG_G_DNL_VENDOR_NUM #define CONFIG_G_DNL_THOR_PRODUCT_NUM 0x685D +#define CONFIG_G_DNL_UMS_VENDOR_NUM 0x0525 +#define CONFIG_G_DNL_UMS_PRODUCT_NUM 0xA4A5 #define CONFIG_G_DNL_MANUFACTURER "Samsung"
/* Miscellaneous configurable options */

Dear Lukasz Majewski,
On 14/08/14 15:56, Lukasz Majewski wrote:
Hi Minkyu,
It is necessary to provide the same Vendor and Product IDs as the one in the original Linux kernel code.
Without this change the USB mass storage gadget is not working with Windows7.
Do you have any comments to this patch?
Would you consider taking this patch to u-boot-samsung tree or should I take it to u-boot-dfu since it fixes things related to UMS gadget?
How you think? If you want to take this patch to dfu, I'm OK. If not, please let me know. I'll take it.
Thanks, Minkyu Kang.

Hi Minkyu,
Dear Lukasz Majewski,
On 14/08/14 15:56, Lukasz Majewski wrote:
Hi Minkyu,
It is necessary to provide the same Vendor and Product IDs as the one in the original Linux kernel code.
Without this change the USB mass storage gadget is not working with Windows7.
Do you have any comments to this patch?
Would you consider taking this patch to u-boot-samsung tree or should I take it to u-boot-dfu since it fixes things related to UMS gadget?
How you think? If you want to take this patch to dfu, I'm OK. If not, please let me know. I'll take it.
It would be best for me if I'd take it directly to u-boot-dfu tree. Please, just add Acked-by to this patch.
Thanks, Minkyu Kang.

On 29/07/14 18:10, Lukasz Majewski wrote:
It is necessary to provide the same Vendor and Product IDs as the one in the original Linux kernel code.
Without this change the USB mass storage gadget is not working with Windows7.
Signed-off-by: Lukasz Majewski l.majewski@samsung.com
board/samsung/common/Makefile | 2 +- board/samsung/common/gadget.c | 24 ++++++++++++++++++++++++ board/samsung/common/thor.c | 21 --------------------- include/configs/exynos4-dt.h | 2 ++ 4 files changed, 27 insertions(+), 22 deletions(-) create mode 100644 board/samsung/common/gadget.c delete mode 100644 board/samsung/common/thor.c
Acked-by: Minkyu Kang mk7.kang@samsung.com
Thanks, Minkyu Kang.

Hi Minkyu,
On 29/07/14 18:10, Lukasz Majewski wrote:
It is necessary to provide the same Vendor and Product IDs as the one in the original Linux kernel code.
Without this change the USB mass storage gadget is not working with Windows7.
Signed-off-by: Lukasz Majewski l.majewski@samsung.com
board/samsung/common/Makefile | 2 +- board/samsung/common/gadget.c | 24 ++++++++++++++++++++++++ board/samsung/common/thor.c | 21 --------------------- include/configs/exynos4-dt.h | 2 ++ 4 files changed, 27 insertions(+), 22 deletions(-) create mode 100644 board/samsung/common/gadget.c delete mode 100644 board/samsung/common/thor.c
Acked-by: Minkyu Kang mk7.kang@samsung.com
Applied to u-boot-dfu tree.
Thanks!
Thanks, Minkyu Kang.

Hi,
On Tue, Jul 29, 2014 at 12:10 PM, Lukasz Majewski l.majewski@samsung.com wrote:
It is necessary to provide the same Vendor and Product IDs as the one in the original Linux kernel code.
Without this change the USB mass storage gadget is not working with Windows7.
Signed-off-by: Lukasz Majewski l.majewski@samsung.com
board/samsung/common/Makefile | 2 +- board/samsung/common/gadget.c | 24 ++++++++++++++++++++++++ board/samsung/common/thor.c | 21 --------------------- include/configs/exynos4-dt.h | 2 ++ 4 files changed, 27 insertions(+), 22 deletions(-) create mode 100644 board/samsung/common/gadget.c delete mode 100644 board/samsung/common/thor.c
This patch breaks the build of the "s5p_goni" board as it also uses "board/samsung/common/gadget.c"
Best, Vasili

On Mon, 25 Aug 2014 19:12:19 +0300 Vasili Galka vvv444@gmail.com wrote:
Hi,
On Tue, Jul 29, 2014 at 12:10 PM, Lukasz Majewski l.majewski@samsung.com wrote:
It is necessary to provide the same Vendor and Product IDs as the one in the original Linux kernel code.
Without this change the USB mass storage gadget is not working with Windows7.
Signed-off-by: Lukasz Majewski l.majewski@samsung.com
board/samsung/common/Makefile | 2 +- board/samsung/common/gadget.c | 24 ++++++++++++++++++++++++ board/samsung/common/thor.c | 21 --------------------- include/configs/exynos4-dt.h | 2 ++ 4 files changed, 27 insertions(+), 22 deletions(-) create mode 100644 board/samsung/common/gadget.c delete mode 100644 board/samsung/common/thor.c
This patch breaks the build of the "s5p_goni" board as it also uses "board/samsung/common/gadget.c"
Yes, I know.
The patch has been already prepared, sent to ML, Acked-by GONI maintainer and now I hope, that Tom will add this fix to u-boot-master repository.
Thanks for spotting, sorry for error.
Best, Vasili _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
participants (4)
-
Lukasz Majewski
-
Lukasz Majewski
-
Minkyu Kang
-
Vasili Galka