diff mbox

[U-Boot,v2,11/13] am43xx: Add USB device boot support

Message ID 20170613121009.25860-12-vigneshr@ti.com
State Changes Requested
Delegated to: Lukasz Majewski
Headers show

Commit Message

Raghavendra, Vignesh June 13, 2017, 12:10 p.m. UTC
Add function to populate MAC address for usb ether device to support
RNDIS in SPL. Also make arch_misc_init() available when
CONFIG_SPL_USBEHT_SUPPORT is defined so that usb_ether_init() is called
for am43xx as well.

Signed-off-by: Vignesh R <vigneshr@ti.com>
---
 arch/arm/mach-omap2/boot-common.c |  3 ++-
 board/ti/am43xx/board.c           | 20 ++++++++++++++++++++
 2 files changed, 22 insertions(+), 1 deletion(-)

Comments

Simon Glass June 17, 2017, 3:42 a.m. UTC | #1
On 13 June 2017 at 06:10, Vignesh R <vigneshr@ti.com> wrote:
> Add function to populate MAC address for usb ether device to support
> RNDIS in SPL. Also make arch_misc_init() available when
> CONFIG_SPL_USBEHT_SUPPORT is defined so that usb_ether_init() is called
> for am43xx as well.
>
> Signed-off-by: Vignesh R <vigneshr@ti.com>
> ---
>  arch/arm/mach-omap2/boot-common.c |  3 ++-
>  board/ti/am43xx/board.c           | 20 ++++++++++++++++++++
>  2 files changed, 22 insertions(+), 1 deletion(-)

Reviewed-by: Simon Glass <sjg@chromium.org>
diff mbox

Patch

diff --git a/arch/arm/mach-omap2/boot-common.c b/arch/arm/mach-omap2/boot-common.c
index 29c8f231917b..fc4c935477cf 100644
--- a/arch/arm/mach-omap2/boot-common.c
+++ b/arch/arm/mach-omap2/boot-common.c
@@ -194,7 +194,8 @@  void spl_board_init(void)
 #ifdef CONFIG_SPL_I2C_SUPPORT
 	i2c_init(CONFIG_SYS_OMAP24_I2C_SPEED, CONFIG_SYS_OMAP24_I2C_SLAVE);
 #endif
-#if defined(CONFIG_AM33XX) && defined(CONFIG_SPL_MUSB_NEW_SUPPORT)
+#if (defined(CONFIG_AM33XX) && defined(CONFIG_SPL_MUSB_NEW_SUPPORT)) || \
+	defined(CONFIG_SPL_USBETH_SUPPORT)
 	arch_misc_init();
 #endif
 #if defined(CONFIG_HW_WATCHDOG)
diff --git a/board/ti/am43xx/board.c b/board/ti/am43xx/board.c
index a2aefc08530a..73ae8fc1ff96 100644
--- a/board/ti/am43xx/board.c
+++ b/board/ti/am43xx/board.c
@@ -821,6 +821,26 @@  int board_eth_init(bd_t *bis)
 }
 #endif
 
+#if defined(CONFIG_DM_ETH) && defined(CONFIG_SPL_USBETH_SUPPORT)
+void board_set_usbnet_devaddr(void)
+{
+	uint8_t mac_addr[6];
+	uint32_t mac_hi, mac_lo;
+
+	mac_lo = readl(&cdev->macid0l);
+	mac_hi = readl(&cdev->macid0h);
+	mac_addr[0] = mac_hi & 0xFF;
+	mac_addr[1] = (mac_hi & 0xFF00) >> 8;
+	mac_addr[2] = (mac_hi & 0xFF0000) >> 16;
+	mac_addr[3] = (mac_hi & 0xFF000000) >> 24;
+	mac_addr[4] = mac_lo & 0xFF;
+	mac_addr[5] = (mac_lo & 0xFF00) >> 8;
+
+	if (is_valid_ethaddr(mac_addr))
+		eth_setenv_enetaddr("usbnet_devaddr", mac_addr);
+}
+#endif
+
 #ifdef CONFIG_SPL_LOAD_FIT
 int board_fit_config_name_match(const char *name)
 {