b/arch/arm/include/asm/arch-omap3/ehci_omap3.h
@@ -39,20 +39,27 @@
#define OMAP_USBTLL_SYSCONFIG_SIDLEMODE (1 << 3)
#define OMAP_USBTLL_SYSCONFIG_CACTIVITY (1 << 8)
+#define OMAP_USBTLL_REVISION (0x0)
+
#define OMAP_USBTLL_SYSSTATUS (0x14)
#define OMAP_USBTLL_SYSSTATUS_RESETDONE (1 << 0)
/* UHH Register Set */
+#define OMAP_UHH_REVISION (0x0)
#define OMAP_UHH_SYSCONFIG (0x10)
#define OMAP_UHH_SYSCONFIG_SOFTRESET (1 << 1)
#define OMAP_UHH_SYSCONFIG_CACTIVITY (1 << 8)
#define OMAP_UHH_SYSCONFIG_SIDLEMODE (1 << 3)
#define OMAP_UHH_SYSCONFIG_ENAWAKEUP (1 << 2)
#define OMAP_UHH_SYSCONFIG_MIDLEMODE (1 << 12)
+#define OMAP_UHH_SYSSTATUS (0x14)
+#define OMAP_UHH_DEBUG_CSR (0x44)
#define OMAP_UHH_HOSTCONFIG (0x40)
#define OMAP_UHH_HOSTCONFIG_INCR4_BURST_EN (1 << 2)
#define OMAP_UHH_HOSTCONFIG_INCR8_BURST_EN (1 << 3)
#define OMAP_UHH_HOSTCONFIG_INCR16_BURST_EN (1 << 4)
+#define OMAP_UHH_HOSTCONFIG_P2_CONNECT_STATUS_EN (1 << 9)
+#define OMAP_UHH_HOSTCONFIG_ULPI_BYPASS_EN (1 << 11)
#endif /* _EHCI_OMAP3_H_ */
@@ -299,7 +299,10 @@ int misc_init_r(void)
setenv(expansion_config.env_var, expansion_config.env_setting);
twl4030_power_init();
- twl4030_led_init( TWL4030_LED_LEDEN_LEDBON | TWL4030_LED_LEDEN_LEDAON );
+ /*
+ * Activate power for USB phy
+ */
+ twl4030_led_init( TWL4030_LED_LEDEN_LEDBON );
/* Configure GPIOs to output */
writel(~(GPIO23 | GPIO10 | GPIO8 | GPIO2 | GPIO1), &gpio6_base->oe);
@@ -382,27 +385,10 @@ int ehci_hcd_init(void)
* and USBHOST_120M_FCLK (USBHOST_FCLK2)
*/
sr32(&prcm_base->fclken_usbhost, 0, 2, 3);
- /* Enable USBTTL_ICLK */
- sr32(&prcm_base->iclken3_core, 2, 1, 1);
- /* Enable USBTTL_FCLK */
- sr32(&prcm_base->fclken3_core, 2, 1, 1);
pr_debug("USB clocks enabled\n");
udelay(10);
- /* perform TLL soft reset, and wait until reset is complete */
- writel(OMAP_USBTLL_SYSCONFIG_SOFTRESET,
- OMAP3_USBTLL_BASE + OMAP_USBTLL_SYSCONFIG);
- /* Wait for TLL reset to complete */
- while (!(readl(OMAP3_USBTLL_BASE + OMAP_USBTLL_SYSSTATUS)
- & OMAP_USBTLL_SYSSTATUS_RESETDONE));
- pr_debug("TLL reset done\n");
-
- writel(OMAP_USBTLL_SYSCONFIG_ENAWAKEUP |
- OMAP_USBTLL_SYSCONFIG_SIDLEMODE |
- OMAP_USBTLL_SYSCONFIG_CACTIVITY,
- OMAP3_USBTLL_BASE + OMAP_USBTLL_SYSCONFIG);
-
/* Put UHH in NoIdle/NoStandby mode */
writel(OMAP_UHH_SYSCONFIG_ENAWAKEUP
| OMAP_UHH_SYSCONFIG_SIDLEMODE
@@ -413,9 +399,43 @@ int ehci_hcd_init(void)
/* setup burst configurations */
writel(OMAP_UHH_HOSTCONFIG_INCR4_BURST_EN
| OMAP_UHH_HOSTCONFIG_INCR8_BURST_EN
- | OMAP_UHH_HOSTCONFIG_INCR16_BURST_EN,
+ | OMAP_UHH_HOSTCONFIG_INCR16_BURST_EN
+ | OMAP_UHH_HOSTCONFIG_P2_CONNECT_STATUS_EN,
OMAP3_UHH_BASE + OMAP_UHH_HOSTCONFIG);
+ printf("UHH initialized.\n");
+
+ printf("OMAP_UHH_SYSSTATUS=%x\n",
+ readl(OMAP3_UHH_BASE + OMAP_UHH_SYSSTATUS));
+ printf("OMAP_UHH_DEBUG_CSR=%x\n",
+ readl(OMAP3_UHH_BASE + OMAP_UHH_DEBUG_CSR));
+ printf(" PM_PWSTCTRL_USBHOST=%x\n",
+ readl(0x483074E0UL));
+ printf(" PM_PWSTST_USBHOST=%x\n",
+ readl(0x483074E4UL));
+ printf("CM (clock) Registers");
+ printf(" CM_FCLKEN_USBHOST=%x\n",
+ readl(0x48005400UL));
+ printf(" CM_ICLKEN_USBHOST=%x\n",
+ readl(0x48005410UL));
+ printf(" CM_IDLEST_USBHOST=%x\n",
+ readl(0x48005420UL));
+ printf(" CM_AUTOIDLE_USBHOST=%x\n",
+ readl(0x48005430UL));
+ printf(" CM_SLEEPDEP_USBHOST=%x\n",
+ readl(0x48005444UL));
+ printf(" CM_CLKSTCTRL_USBHOST=%x\n",
+ readl(0x48005448UL));
+ printf(" CM_CLKSTST_USBHOST=%x\n",
+ readl(0x4800544CUL));
+ printf(" CM_CLKSTST_CORE=%x\n",
+ readl(0x48004A4CUL));
+ printf(" CM_CLKSEL_CORE=%x\n",
+ readl(0x48004A40UL));
+
+ printf("UHH_HOSTCONFIG=%x\n",
+ readl(OMAP3_UHH_BASE + OMAP_UHH_HOSTCONFIG));
+
/*
* Refer ISSUE1:
* Hold the PHY in RESET for enough time till
@@ -423,7 +443,7 @@ int ehci_hcd_init(void)
*/
udelay(10);
omap_set_gpio_dataout(GPIO_PHY_RESET, 1);
- twl4030_led_init( TWL4030_LED_LEDEN_LEDBON );
+ udelay(10);
hccr = (struct ehci_hccr *)(OMAP3_EHCI_BASE);
hcor = (struct ehci_hcor *)(OMAP3_EHCI_BASE + 0x10);
@@ -388,6 +388,18 @@ const omap3_sysinfo sysinfo = {
MUX_VAL(CP(UART2_RX), (IDIS | PTU | EN | M4)) /*GPIO_147*/
#define MUX_BEAGLE_XM() \
+ MUX_VAL(CP(ETK_D11_ES2), (IDIS | PTD | DIS | M3)) /*HSUSB2_STP*/\
+ MUX_VAL(CP(ETK_D10_ES2), (IEN | PTD | DIS | M3)) /*HSUSB2_CLK*/\
+ MUX_VAL(CP(ETK_D12_ES2), (IEN | PTD | EN | M3)) /*HSUSB2_DIR*/\
+ MUX_VAL(CP(ETK_D13_ES2), (IEN | PTD | EN | M3)) /*HSUSB2_NXT*/\
+ MUX_VAL(CP(ETK_D14_ES2), (IEN | PTD | EN | M3)) /*HSUSB2_DATA0*/\
+ MUX_VAL(CP(ETK_D15_ES2), (IEN | PTD | EN | M3)) /*HSUSB2_DATA1*/\
+ MUX_VAL(CP(MCSPI1_CS3), (IEN | PTD | EN | M3)) /*HSUSB2_DATA2*/\
+ MUX_VAL(CP(MCSPI2_CS1), (IEN | PTD | EN | M3)) /*HSUSB2_DATA3*/\
+ MUX_VAL(CP(MCSPI2_SIMO), (IEN | PTD | EN | M3)) /*HSUSB2_DATA4*/\
+ MUX_VAL(CP(MCSPI2_SOMI), (IEN | PTD | EN | M3)) /*HSUSB2_DATA5*/\
+ MUX_VAL(CP(MCSPI2_CS0), (IEN | PTD | EN | M3)) /*HSUSB2_DATA6*/\
+ MUX_VAL(CP(MCSPI2_CLK), (IEN | PTD | EN | M3)) /*HSUSB2_DATA7*/\
MUX_VAL(CP(GPMC_NCS5), (IDIS | PTD | EN | M4)) /*GPIO_56*/\
MUX_VAL(CP(GPMC_WAIT0), (IDIS | PTU | EN | M4)) /*GPIO_63*/\
MUX_VAL(CP(MMC1_DAT7), (IDIS | PTU | EN | M4)) /*GPIO_129*/\
@@ -399,7 +411,6 @@ const omap3_sysinfo sysinfo = {
MUX_VAL(CP(UART2_RTS), (IDIS | PTD | DIS | M0)) /*UART2_RTS*/\
MUX_VAL(CP(UART2_TX), (IDIS | PTD | DIS | M0)) /*UART2_TX*/\
MUX_VAL(CP(UART2_RX), (IDIS | PTD | DIS | M4)) /*GPIO_147*/ \
- MUX_VAL(CP(ETK_D10_ES2), (IEN | PTD | DIS | M3)) /*HSUSB2_CLK*/\
MUX_VAL(CP(DSS_DATA0), (IDIS | PTD | DIS | M7)) /*safe_mode*/\
MUX_VAL(CP(DSS_DATA1), (IDIS | PTD | DIS | M7)) /*safe_mode*/\
MUX_VAL(CP(DSS_DATA2), (IDIS | PTD | DIS | M7)) /*safe_mode*/\
@@ -930,7 +930,7 @@ int usb_new_device(struct usb_device *dev)
dev->serial, sizeof(dev->serial));
USB_PRINTF("Manufacturer %s\n", dev->mf);
USB_PRINTF("Product %s\n", dev->prod);
- USB_PRINTF("SerialNumber %s\n", dev->serial);
+ USB_PRINTF("SerialNumber %x\n", dev->serial);
/* now prode if the device is a hub */
usb_hub_probe(dev, 0);
return 0;
b/include/configs/omap3_beagle_xm.h
@@ -125,8 +125,8 @@
#define CONFIG_USB_OMAP3 1
#define CONFIG_TWL4030_USB 1
#define CONFIG_USB_KEYBOARD 1
-//#define CONFIG_USB_HOST_ETHER 1
-//#define CONFIG_USB_ETHER_SMSC95XX 1
+#define CONFIG_USB_HOST_ETHER 1
+#define CONFIG_USB_ETHER_SMSC95XX 1
/* USB device configuration */
#define CONFIG_USB_DEVICE 1
@@ -162,9 +162,18 @@
#undef CONFIG_CMD_FPGA /* FPGA configuration Support */
#undef CONFIG_CMD_IMI /* iminfo */
#undef CONFIG_CMD_IMLS /* List all found images */
-#undef CONFIG_CMD_NET /* bootp, tftpboot, rarpboot */
-#undef CONFIG_CMD_NET_MULTI 1 /* bootp, tftpboot, rarpboot */
+#define CONFIG_CMD_NET /* bootp, tftpboot, rarpboot */
+#define CONFIG_NET_MULTI /* bootp, tftpboot, rarpboot */
+#define CONFIG_CMD_PING
+#undef CONFIG_CMD_DHCP
#undef CONFIG_CMD_NFS /* NFS support */
+#define CONFIG_BOOTP_SUBNETMASK 255.255.255.0
+#define CONFIG_BOOTP_GATEWAY 192.168.233.1
+#define CONFIG_BOOTP_HOSTNAME 192.168.233.56
+#define CONFIG_BOOTP_BOOTPATH /home/cspiel/beagle/boot
+#define CONFIG_IPADDR 192.168.233.203
+#define CONFIG_SERVERIP 192.168.233.56
+#define CONFIG_BOOTFILE uImage
#define CONFIG_SYS_NO_FLASH
#define CONFIG_HARD_I2C 1