我正在研究Beagleboard-xm类似的主板(只有一些GPIO差异),并修改 uboot& kernel ,主板启动成功。为了便于调试,我在 uboot 中添加了CONFIG_CMD_DHCP
,CONFIG_CMD_PING
,CONFIG_CMD_NET
,并添加了我的命令来重置 LAN9514 ...
+static int reset_hub(cmd_tbl_t *cmdtp,int flag,int argc,char * const argv[])
+{
+ gpio_request(13,"reset hub");
+ gpio_direction_output(13,1);
+ __udelay(10000);
+ gpio_direction_output(13,0);
+ return 0;
+}
+U_BOOT_CMD(resethub,CONFIG_SYS_MAXARGS,1,reset_hub,"reset hub","");
但是,有一个问题:当第一次启动usb时, LAN9514 成功枚举。但是第二次, LAN9514 枚举失败。
U-Boot# usb start
(Re)start USB...
USB0: USB EHCI 1.00
scanning bus 0 for devices... 3 USB Device(s) found
scanning usb for storage devices... 0 Storage Device(s) found
scanning usb for ethernet devices... 1 Ethernet Device(s) found
U-Boot# usb start
(Re)start USB...
USB0: USB EHCI 1.00
scanning bus 0 for devices... 1 USB Device(s) found
scanning usb for storage devices... 0 Storage Device(s) found
scanning usb for ethernet devices... 0 Ethernet Device(s) found
我已经检查过USB2HS_RESET波形和HUB_RESET波形,看起来没问题。
我查看了USB3320的USBDM0,USBDP0引脚,“usb start”命令没有输出,USB3320复位失败了吗?
我的内核也无法枚举LAN9514,dmesg说“连接已关闭”:
ehci-omap ehci-omap.0:GetStatus端口:2状态003002 0 ACK POWER OWNER sig = se0 CSC
连接udisk进行测试。它可以在第一时间被识别,但也不能在第二次被识别...... 第一次:
U-Boot# usb start
(Re)start USB...
USB0: USB EHCI 1.00
scanning bus 0 for devices... 4 USB Device(s) found
scanning usb for storage devices... Device NOT ready
Request Sense returned 02 3A 00
1 Storage Device(s) found
scanning usb for ethernet devices... 1 Ethernet Device(s) found
U-Boot# usb tree
USB device tree:
1 Hub (480 Mb/s, 0mA)
| u-boot EHCI Host Controller
|
+-2 Hub (480 Mb/s, 2mA)
|
+-3 Vendor specific (480 Mb/s, 2mA)
|
+-4 Mass Storage (480 Mb/s, 250mA)
Generic Mass Storage Device 121220130416
第二次:
U-Boot# usb start
(Re)start USB...
USB0: USB EHCI 1.00
scanning bus 0 for devices... 1 USB Device(s) found
scanning usb for storage devices... 0 Storage Device(s) found
scanning usb for ethernet devices... 0 Ethernet Device(s) found
U-Boot# usb tree
USB device tree:
1 Hub (480 Mb/s, 0mA)
u-boot EHCI Host Controller