On 03.09.2017 07:56, Fabio Estevam wrote: > From: Fabio Estevam <fabio.este...@nxp.com> > > Instead of having every board file to add its own g_dnl_bind_fixup() > implementation, move it to the common imx6 SPL code. > > Signed-off-by: Fabio Estevam <fabio.este...@nxp.com> > --- > Stefan, > > I don't have access to Toradex board to test it, hence marking it > as RFC. > > I have tested it with imx6q-sabresd and it works fine on this board. > > arch/arm/mach-imx/spl.c | 10 ++++++++++ > board/toradex/apalis_imx6/apalis_imx6.c | 13 ------------- > board/toradex/colibri_imx6/colibri_imx6.c | 13 ------------- > board/toradex/common/tdx-common.c | 13 ------------- > 4 files changed, 10 insertions(+), 39 deletions(-) > > diff --git a/arch/arm/mach-imx/spl.c b/arch/arm/mach-imx/spl.c > index 8e8e2f7..e350bc9 100644 > --- a/arch/arm/mach-imx/spl.c > +++ b/arch/arm/mach-imx/spl.c > @@ -14,6 +14,7 @@ > #include <asm/spl.h> > #include <spl.h> > #include <asm/mach-imx/hab.h> > +#include <g_dnl.h> > > DECLARE_GLOBAL_DATA_PTR; > > @@ -86,6 +87,15 @@ u32 spl_boot_device(void) > } > return BOOT_DEVICE_NONE; > } > + > +#ifdef CONFIG_SPL_USB_GADGET_SUPPORT > +int g_dnl_bind_fixup(struct usb_device_descriptor *dev, const char *name) > +{ > + put_unaligned(CONFIG_G_DNL_PRODUCT_NUM + 0xfff, &dev->idProduct);
Note that 0xfff was a rather randomly picked offset, not sure if we want that in common code. > + > + return 0; > +} > +#endif > #endif > > #if defined(CONFIG_SPL_MMC_SUPPORT) > diff --git a/board/toradex/apalis_imx6/apalis_imx6.c > b/board/toradex/apalis_imx6/apalis_imx6.c > index ebc6c12..628a61d 100644 > --- a/board/toradex/apalis_imx6/apalis_imx6.c > +++ b/board/toradex/apalis_imx6/apalis_imx6.c > @@ -29,7 +29,6 @@ > #include <dm/platform_data/serial_mxc.h> > #include <dm/platdata.h> > #include <fsl_esdhc.h> > -#include <g_dnl.h> > #include <i2c.h> > #include <imx_thermal.h> > #include <linux/errno.h> > @@ -1224,18 +1223,6 @@ void reset_cpu(ulong addr) > { > } > > -#ifdef CONFIG_SPL_USB_GADGET_SUPPORT > -int g_dnl_bind_fixup(struct usb_device_descriptor *dev, const char *name) > -{ > - unsigned short usb_pid; > - > - usb_pid = TORADEX_USB_PRODUCT_NUM_OFFSET + 0xfff; > - put_unaligned(usb_pid, &dev->idProduct); > - > - return 0; > -} > -#endif > - > #endif > > static struct mxc_serial_platdata mxc_serial_plat = { > diff --git a/board/toradex/colibri_imx6/colibri_imx6.c > b/board/toradex/colibri_imx6/colibri_imx6.c > index 669d912..756e3f3 100644 > --- a/board/toradex/colibri_imx6/colibri_imx6.c > +++ b/board/toradex/colibri_imx6/colibri_imx6.c > @@ -28,7 +28,6 @@ > #include <dm/platform_data/serial_mxc.h> > #include <dm/platdata.h> > #include <fsl_esdhc.h> > -#include <g_dnl.h> > #include <i2c.h> > #include <imx_thermal.h> > #include <linux/errno.h> > @@ -1108,18 +1107,6 @@ void reset_cpu(ulong addr) > { > } > > -#ifdef CONFIG_SPL_USB_GADGET_SUPPORT > -int g_dnl_bind_fixup(struct usb_device_descriptor *dev, const char *name) > -{ > - unsigned short usb_pid; > - > - usb_pid = TORADEX_USB_PRODUCT_NUM_OFFSET + 0xfff; > - put_unaligned(usb_pid, &dev->idProduct); > - > - return 0; > -} > -#endif > - > #endif > > static struct mxc_serial_platdata mxc_serial_plat = { > diff --git a/board/toradex/common/tdx-common.c > b/board/toradex/common/tdx-common.c > index b4e4727..a7efeb8 100644 > --- a/board/toradex/common/tdx-common.c > +++ b/board/toradex/common/tdx-common.c > @@ -5,7 +5,6 @@ > */ > > #include <common.h> > -#include <g_dnl.h> > #include <libfdt.h> > > #include "tdx-cfg-block.h" > @@ -109,18 +108,6 @@ int show_board_info(void) > return 0; > } > > -#ifdef CONFIG_USB_GADGET_DOWNLOAD > -int g_dnl_bind_fixup(struct usb_device_descriptor *dev, const char *name) > -{ > - unsigned short usb_pid; > - > - usb_pid = TORADEX_USB_PRODUCT_NUM_OFFSET + tdx_hw_tag.prodid; > - put_unaligned(usb_pid, &dev->idProduct); > - > - return 0; > -} > -#endif Nack to this part, this is U-Boot only (not used in SPL) and reads the product ID from eMMC to generate the officially assigned Toradex USB Product ID. -- Stefan > - > #if defined(CONFIG_OF_LIBFDT) > int ft_common_board_setup(void *blob, bd_t *bd) > { _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot