toradex: imx6: Move g_dnl_bind_fixup() into common SPL code
Subsystems (4)
Fabio Estevam
reviewerRFC 1/1 toradex: imx6: Move g_dnl_bind_fixup() into common SPL code
From: Fabio Estevam <[email protected]>
Instead of having every board file to add its own g_dnl_bind_fixup() implementation, move it to the common imx6 SPL code.
---
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(-)
arch/arm/mach-imx/spl.c +10 -0
@@ -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); + +return 0 ; +} +#endif #endif #if defined(CONFIG_SPL_MMC_SUPPORT )
board/toradex/apalis_imx6/apalis_imx6.c +0 -13
@@ -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 = {
board/toradex/colibri_imx6/colibri_imx6.c +0 -13
@@ -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 = {
board/toradex/common/tdx-common.c +0 -13
@@ -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 -#if defined(CONFIG_OF_LIBFDT )int ft_common_board_setup (void *blob,bd_t *bd) {
Signature · 1 line
2.7.4
Quoted 5 lines · Fabio Estevam
From: Fabio Estevam <[email protected]>
Instead of having every board file to add its own
g_dnl_bind_fixup()implementation, move it to the common imx6 SPL code.
Quoted 137 lines
Signed-off-by Fabio Estevam <[email protected]>---
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(-)arch/arm/mach-imx/spl.c +10
-0@@ -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); + +return 0 ; +} +#endif #endif #if defined(CONFIG_SPL_MMC_SUPPORT )board/toradex/apalis_imx6/apalis_imx6.c +0
-13@@ -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 = {board/toradex/colibri_imx6/colibri_imx6.c +0
-13@@ -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 = {board/toradex/common/tdx-common.c +0
-13@@ -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 -#if defined(CONFIG_OF_LIBFDT )int ft_common_board_setup (void *blob,bd_t *bd) {
Signature · 9 lines
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
Quoted 33 lines · Fabio Estevam
From: Fabio Estevam <[email protected]>
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 <[email protected]>---
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(-)arch/arm/mach-imx/spl.c +1
-0@@ -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 ;
arch/arm/mach-imx/spl.c u32 spl_boot_device(void) · line 94
Quoted 8 lines
arch/arm/mach-imx/spl.c +5
-0@@ -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.
Quoted 86 lines
arch/arm/mach-imx/spl.c +4
-0+ +return 0 ; +} +#endif #endif #if defined(CONFIG_SPL_MMC_SUPPORT )board/toradex/apalis_imx6/apalis_imx6.c +0
-13@@ -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 = {board/toradex/colibri_imx6/colibri_imx6.c +0
-13@@ -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 = {board/toradex/common/tdx-common.c +0
-2@@ -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
board/toradex/common/tdx-common.c int show_board_info(void) · line 122
Quoted 10 lines
board/toradex/common/tdx-common.c +0
-10-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
Quoted 4 lines
board/toradex/common/tdx-common.c +0
-1-#if defined(CONFIG_OF_LIBFDT )int ft_common_board_setup (void *blob,bd_t *bd) {
Fabio Estevam
reviewerQuoted 1 line · Stefan Agner
Note that
0xfffwas a rather randomly picked offset, not sure if we want that in common code.
Yes, I noticed that. I am inclined to go with 0xfff and then later we can even introduce a CONFIG option for the offset if needed.
Quoted 5 lines
Quoted 5 lines
board/toradex/common/tdx-common.c +0
-5-#ifdef CONFIG_USB_GADGET_DOWNLOAD -int g_dnl_bind_fixup (struct usb_device_descriptor *dev,const char *name) -{ -unsigned short usb_pid; -
Quoted 8 lines
board/toradex/common/tdx-common.c int show_board_info(void) · line 122
Quoted 6 lines
board/toradex/common/tdx-common.c +0
-6- 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.
Ok, will prepare another version that keeps the non-SPL code then.
Thanks