* [U-Boot] [PATCH v2 0/3] USB SPL support for AM33xx / am335x_evm
@ 2013-02-05 21:36 Tom Rini
2013-02-05 21:36 ` [U-Boot] [PATCH v2 1/3] spl: support for booting via usbeth Tom Rini
` (3 more replies)
0 siblings, 4 replies; 5+ messages in thread
From: Tom Rini @ 2013-02-05 21:36 UTC (permalink / raw)
To: u-boot
Hey all,
The following is a slight update to Ilya's previous series for USB SPL
on am33xx platforms. The changes are that I've dropped two patches
needed to force usage on older platforms (where a ROM bug prevents USB
from being usable in ROM, so we had to feed SPL via UART, then feed
U-Boot via USB, which is useful for proof of concept) and a change to
make usb_ether determine the MAC to use, and follow the ROMs behavior
here.
--
Tom
^ permalink raw reply [flat|nested] 5+ messages in thread
* [U-Boot] [PATCH v2 1/3] spl: support for booting via usbeth
2013-02-05 21:36 [U-Boot] [PATCH v2 0/3] USB SPL support for AM33xx / am335x_evm Tom Rini
@ 2013-02-05 21:36 ` Tom Rini
2013-02-05 21:36 ` [U-Boot] [PATCH v2 2/3] am33xx: " Tom Rini
` (2 subsequent siblings)
3 siblings, 0 replies; 5+ messages in thread
From: Tom Rini @ 2013-02-05 21:36 UTC (permalink / raw)
To: u-boot
From: Ilya Yanok <ilya.yanok@cogentembedded.com>
In case of usbeth booting just call net_load_image("usb_ether").
This patch also adds CONFIG_SPL_USBETH_SUPPORT and
CONFIG_SPL_MUSB_NEW_SUPPORT config options to enable linking of SPL
against USB gagdet support and new MUSB driver resp.
Signed-off-by: Ilya Yanok <ilya.yanok@cogentembedded.com>
---
common/spl/spl.c | 5 +++++
spl/Makefile | 2 ++
2 files changed, 7 insertions(+)
diff --git a/common/spl/spl.c b/common/spl/spl.c
index ff9ba7b..6a5a136 100644
--- a/common/spl/spl.c
+++ b/common/spl/spl.c
@@ -221,6 +221,11 @@ void board_init_r(gd_t *dummy1, ulong dummy2)
#endif
break;
#endif
+#ifdef CONFIG_SPL_USBETH_SUPPORT
+ case BOOT_DEVICE_USBETH:
+ spl_net_load_image("usb_ether");
+ break;
+#endif
default:
debug("SPL: Un-supported Boot Device\n");
hang();
diff --git a/spl/Makefile b/spl/Makefile
index 6dbb105..3333cde 100644
--- a/spl/Makefile
+++ b/spl/Makefile
@@ -81,6 +81,8 @@ LIBS-$(CONFIG_SPL_POST_MEM_SUPPORT) += post/drivers/memory.o
LIBS-$(CONFIG_SPL_NET_SUPPORT) += net/libnet.o
LIBS-$(CONFIG_SPL_ETH_SUPPORT) += drivers/net/libnet.o
LIBS-$(CONFIG_SPL_ETH_SUPPORT) += drivers/net/phy/libphy.o
+LIBS-$(CONFIG_SPL_MUSB_NEW_SUPPORT) += drivers/usb/musb-new/libusb_musb-new.o
+LIBS-$(CONFIG_SPL_USBETH_SUPPORT) += drivers/usb/gadget/libusb_gadget.o
ifneq ($(CONFIG_AM33XX)$(CONFIG_OMAP34XX)$(CONFIG_OMAP44XX)$(CONFIG_OMAP54XX),)
LIBS-y += $(CPUDIR)/omap-common/libomap-common.o
--
1.7.9.5
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [U-Boot] [PATCH v2 2/3] am33xx: support for booting via usbeth
2013-02-05 21:36 [U-Boot] [PATCH v2 0/3] USB SPL support for AM33xx / am335x_evm Tom Rini
2013-02-05 21:36 ` [U-Boot] [PATCH v2 1/3] spl: support for booting via usbeth Tom Rini
@ 2013-02-05 21:36 ` Tom Rini
2013-02-05 21:36 ` [U-Boot] [PATCH v2 3/3] am335x_evm: enable support for booting via USB Tom Rini
2013-02-19 16:20 ` [U-Boot] [PATCH v2 0/3] USB SPL support for AM33xx / am335x_evm Tom Rini
3 siblings, 0 replies; 5+ messages in thread
From: Tom Rini @ 2013-02-05 21:36 UTC (permalink / raw)
To: u-boot
From: Ilya Yanok <ilya.yanok@cogentembedded.com>
This patch adds BOOT_DEVICE define for USB booting and fixes
spl_board_init function to call arch_misc_init (this is the place there
musb is initialized).
Signed-off-by: Ilya Yanok <ilya.yanok@cogentembedded.com>
---
arch/arm/cpu/armv7/omap-common/boot-common.c | 3 +++
arch/arm/include/asm/arch-am33xx/spl.h | 1 +
2 files changed, 4 insertions(+)
diff --git a/arch/arm/cpu/armv7/omap-common/boot-common.c b/arch/arm/cpu/armv7/omap-common/boot-common.c
index 2b584e0..1c8b617 100644
--- a/arch/arm/cpu/armv7/omap-common/boot-common.c
+++ b/arch/arm/cpu/armv7/omap-common/boot-common.c
@@ -55,6 +55,9 @@ void spl_board_init(void)
#ifdef CONFIG_SPL_NAND_SUPPORT
gpmc_init();
#endif
+#if defined(CONFIG_AM33XX) && defined(CONFIG_SPL_MUSB_NEW_SUPPORT)
+ arch_misc_init();
+#endif
}
int board_mmc_init(bd_t *bis)
diff --git a/arch/arm/include/asm/arch-am33xx/spl.h b/arch/arm/include/asm/arch-am33xx/spl.h
index 644ff35..e961ce0 100644
--- a/arch/arm/include/asm/arch-am33xx/spl.h
+++ b/arch/arm/include/asm/arch-am33xx/spl.h
@@ -29,6 +29,7 @@
#define BOOT_DEVICE_MMC2 9 /* eMMC or daughter card */
#define BOOT_DEVICE_SPI 11
#define BOOT_DEVICE_UART 65
+#define BOOT_DEVICE_USBETH 68
#define BOOT_DEVICE_CPGMAC 70
#define BOOT_DEVICE_MMC2_2 0xFF
#endif
--
1.7.9.5
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [U-Boot] [PATCH v2 3/3] am335x_evm: enable support for booting via USB
2013-02-05 21:36 [U-Boot] [PATCH v2 0/3] USB SPL support for AM33xx / am335x_evm Tom Rini
2013-02-05 21:36 ` [U-Boot] [PATCH v2 1/3] spl: support for booting via usbeth Tom Rini
2013-02-05 21:36 ` [U-Boot] [PATCH v2 2/3] am33xx: " Tom Rini
@ 2013-02-05 21:36 ` Tom Rini
2013-02-19 16:20 ` [U-Boot] [PATCH v2 0/3] USB SPL support for AM33xx / am335x_evm Tom Rini
3 siblings, 0 replies; 5+ messages in thread
From: Tom Rini @ 2013-02-05 21:36 UTC (permalink / raw)
To: u-boot
From: Ilya Yanok <ilya.yanok@cogentembedded.com>
This adds necessary config options and a new build target,
am335x_evm_usbspl, to enable usb booting and fixes board_eth_init()
function to take into account that we may have USB ether support in SPL
now. This uses the same MAC for both cpsw and USB, in order to match
ROM behavior.
The usbspl build target does not contain UART SPL, CPSW SPL or extra
environment settings, so that we may fit within our binary size
constraint.
--
v2: Set usb eth MAC to E-Fuse first MAC to match ROM, add
am335x_evm_usbspl build target. - trini
Signed-off-by: Ilya Yanok <ilya.yanok@cogentembedded.com>
Signed-off-by: Tom Rini <trini@ti.com>
---
board/ti/am335x/board.c | 38 +++++++++++++++++++++-----------------
boards.cfg | 1 +
include/configs/am335x_evm.h | 14 ++++++++++++++
3 files changed, 36 insertions(+), 17 deletions(-)
diff --git a/board/ti/am335x/board.c b/board/ti/am335x/board.c
index ed4229e..bced870 100644
--- a/board/ti/am335x/board.c
+++ b/board/ti/am335x/board.c
@@ -343,7 +343,8 @@ int board_late_init(void)
}
#endif
-#ifdef CONFIG_DRIVER_TI_CPSW
+#if (defined(CONFIG_DRIVER_TI_CPSW) && !defined(CONFIG_SPL_BUILD)) || \
+ (defined(CONFIG_SPL_ETH_SUPPORT) && defined(CONFIG_SPL_BUILD))
static void cpsw_control(int enabled)
{
/* VTP can be added here */
@@ -388,26 +389,26 @@ static struct cpsw_platform_data cpsw_data = {
int board_eth_init(bd_t *bis)
{
int rv, n = 0;
-#ifdef CONFIG_DRIVER_TI_CPSW
uint8_t mac_addr[6];
uint32_t mac_hi, mac_lo;
- if (!eth_getenv_enetaddr("ethaddr", mac_addr)) {
- debug("<ethaddr> not set. Reading from E-fuse\n");
- /* try reading mac address from efuse */
- 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;
+ /* try reading mac address from efuse */
+ 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 (defined(CONFIG_DRIVER_TI_CPSW) && !defined(CONFIG_SPL_BUILD)) || \
+ (defined(CONFIG_SPL_ETH_SUPPORT) && defined(CONFIG_SPL_BUILD))
+ if (!getenv("ethaddr")) {
+ printf("<ethaddr> not set. Validating first E-fuse MAC\n");
if (is_valid_ether_addr(mac_addr))
eth_setenv_enetaddr("ethaddr", mac_addr);
- else
- goto try_usbether;
}
if (board_is_bone() || board_is_bone_lt() || board_is_idk()) {
@@ -426,8 +427,11 @@ int board_eth_init(bd_t *bis)
else
n += rv;
#endif
-try_usbether:
-#if defined(CONFIG_USB_ETHER) && !defined(CONFIG_SPL_BUILD)
+#if defined(CONFIG_USB_ETHER) && \
+ (!defined(CONFIG_SPL_BUILD) || defined(CONFIG_SPL_USBETH_SUPPORT))
+ if (is_valid_ether_addr(mac_addr))
+ eth_setenv_enetaddr("usbnet_devaddr", mac_addr);
+
rv = usb_eth_initialize(bis);
if (rv < 0)
printf("Error %d registering USB_ETHER\n", rv);
diff --git a/boards.cfg b/boards.cfg
index 98f7a14..a50a8a4 100644
--- a/boards.cfg
+++ b/boards.cfg
@@ -236,6 +236,7 @@ am335x_evm_uart2 arm armv7 am335x ti
am335x_evm_uart3 arm armv7 am335x ti am33xx am335x_evm:SERIAL4,CONS_INDEX=4
am335x_evm_uart4 arm armv7 am335x ti am33xx am335x_evm:SERIAL5,CONS_INDEX=5
am335x_evm_uart5 arm armv7 am335x ti am33xx am335x_evm:SERIAL6,CONS_INDEX=6
+am335x_evm_usbspl arm armv7 am335x ti am33xx am335x_evm:SERIAL1,CONS_INDEX=1,SPL_USBETH_SUPPORT
highbank arm armv7 highbank - highbank
mx51_efikamx arm armv7 mx51_efikamx genesi mx5 mx51_efikamx:MACH_TYPE=MACH_TYPE_MX51_EFIKAMX,IMX_CONFIG=board/genesi/mx51_efikamx/imximage_mx.cfg
mx51_efikasb arm armv7 mx51_efikamx genesi mx5 mx51_efikamx:MACH_TYPE=MACH_TYPE_MX51_EFIKASB,IMX_CONFIG=board/genesi/mx51_efikamx/imximage_sb.cfg
diff --git a/include/configs/am335x_evm.h b/include/configs/am335x_evm.h
index 72459d8..9585c59 100644
--- a/include/configs/am335x_evm.h
+++ b/include/configs/am335x_evm.h
@@ -238,6 +238,7 @@
#define CONFIG_SPL_SPI_CS 0
#define CONFIG_SYS_SPI_U_BOOT_OFFS 0x20000
#define CONFIG_SYS_SPI_U_BOOT_SIZE 0x40000
+#define CONFIG_SPL_MUSB_NEW_SUPPORT
#define CONFIG_SPL_LDSCRIPT "$(CPUDIR)/omap-common/u-boot-spl.lds"
#define CONFIG_SPL_BOARD_INIT
@@ -311,8 +312,21 @@
#ifdef CONFIG_MUSB_GADGET
#define CONFIG_USB_ETHER
#define CONFIG_USB_ETH_RNDIS
+#define CONFIG_USBNET_HOST_ADDR "de:ad:be:af:00:00"
#endif /* CONFIG_MUSB_GADGET */
+#if defined(CONFIG_SPL_BUILD) && defined(CONFIG_SPL_USBETH_SUPPORT)
+/* disable host part of MUSB in SPL */
+#undef CONFIG_MUSB_HOST
+/*
+ * Disable UART, CPSW ethernet support and extra environment settings so we
+ * will fit within 101KiB.
+ */
+#undef CONFIG_SPL_ETH_SUPPORT
+#undef CONFIG_SPL_YMODEM_SUPPORT
+#undef CONFIG_EXTRA_ENV_SETTINGS
+#endif
+
/* Unsupported features */
#undef CONFIG_USE_IRQ
--
1.7.9.5
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [U-Boot] [PATCH v2 0/3] USB SPL support for AM33xx / am335x_evm
2013-02-05 21:36 [U-Boot] [PATCH v2 0/3] USB SPL support for AM33xx / am335x_evm Tom Rini
` (2 preceding siblings ...)
2013-02-05 21:36 ` [U-Boot] [PATCH v2 3/3] am335x_evm: enable support for booting via USB Tom Rini
@ 2013-02-19 16:20 ` Tom Rini
3 siblings, 0 replies; 5+ messages in thread
From: Tom Rini @ 2013-02-19 16:20 UTC (permalink / raw)
To: u-boot
On Tue, Feb 05, 2013 at 04:36:23PM -0500, Tom Rini wrote:
> Hey all,
>
> The following is a slight update to Ilya's previous series for USB SPL
> on am33xx platforms. The changes are that I've dropped two patches
> needed to force usage on older platforms (where a ROM bug prevents USB
> from being usable in ROM, so we had to feed SPL via UART, then feed
> U-Boot via USB, which is useful for proof of concept) and a change to
> make usb_ether determine the MAC to use, and follow the ROMs behavior
> here.
This is now applied to u-boot-ti/master.
--
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20130219/741445e9/attachment.pgp>
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2013-02-19 16:20 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-02-05 21:36 [U-Boot] [PATCH v2 0/3] USB SPL support for AM33xx / am335x_evm Tom Rini
2013-02-05 21:36 ` [U-Boot] [PATCH v2 1/3] spl: support for booting via usbeth Tom Rini
2013-02-05 21:36 ` [U-Boot] [PATCH v2 2/3] am33xx: " Tom Rini
2013-02-05 21:36 ` [U-Boot] [PATCH v2 3/3] am335x_evm: enable support for booting via USB Tom Rini
2013-02-19 16:20 ` [U-Boot] [PATCH v2 0/3] USB SPL support for AM33xx / am335x_evm Tom Rini
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox