福州瑞芯微电子有限公司5.1.3.2USB以太网不稳定
例如在播放网络视频时,容易断线,从log来看到有以下USB异常信息:
usb2-1:USBdisconnect,devicenumber2
这个可能是USBHOST口供电不足造成的,需要硬件上修改。5.1.3.3MAC地址为0导致异常进不了Android系统如果使用USB以太网芯片(非Dongle)可能没有MAC地址
可加入如下补丁,先从flash保留区读取MAC地址,如果读不到,会随机产生MAC地址。
diff--gita/drivers/net/usb/usbnet.cb/drivers/net/usb/usbnet.coldmode100644newmode100755
index3d50e7d..1af08ed
---a/drivers/net/usb/usbnet.c+++b/drivers/net/usb/usbnet.c
@@-1595,6+1595,26@@usbnet_probe(structusb_interface*udev,conststructusb_device_id*prod)
if((dev->driver_info->flags&FLAG_WWAN)!=0)
SET_NETDEV_DEVTYPE(net,&wwan_type);+#if1+if((net->dev_addr[0]==0x00)&&+(net->dev_addr[1]==0x00)&&+(net->dev_addr[2]==0x00)&&+(net->dev_addr[3]==0x00)&&+(net->dev_addr[4]==0x00)&&+(net->dev_addr[5]==0x00))+{+externinteth_mac_idb(u8*eth_mac);++printk(\trymacaddrfromidbfirst.\\n\+eth_mac_idb(net->dev_addr);+if(!is_valid_ether_addr(net->dev_addr))
内部资料,不得扩散Page26of28福州瑞芯微电子有限公司+{+printk(\nomacaddrinidb,userandommacaddr.\\n\+random_ether_addr(net->dev_addr);+}+}+#endif+
status=register_netdev(net);
5.1.3.4USB以太网注册成了eth1导致无法使用
这是因为系统中存在了GMAC,它会注册成eth0,导致在插入usb以太网时,注册成了eth1。但是上层只会监听eth0,所以导致usb以太网无法使用。
需要去掉GMAC的支持,才能使用usb以太网,具体修改如下。在板级dts中disable掉gmac:
&gmac{status=\};内部资料,不得扩散Page27of28福州瑞芯微电子有限公司6附录6.1已验证以太网PHY芯片列表
供应商DAVICOMSMSCDM9161LAN8720RTL8201FREALTEKRTL8211FATHEROSICPLUSTIAR8032IP101DP83848CRGMIIRMIIRMIIRMII(RK2918/RK2908不支持)(RK2918/RK2908不支持)(RK3288不支持)型号接口RMIIRMIIRMII(RK2918/RK2908不支持)备注6.2已验证USB以太网卡芯片列表
供应商DAVICOMSMSCREALTEKDM9620LAN9500RTL8152B型号备注内部资料,不得扩散Page28of28