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

Lukasz Majewski l.majewski at samsung.com
Thu Aug 14 08:56:33 CEST 2014


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 at 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 at 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 at 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 */



-- 
Best regards,

Lukasz Majewski

Samsung R&D Institute Poland (SRPOL) | Linux Platform Group


More information about the U-Boot mailing list