(1)以太網PHY芯片驅動及接口
瑞芯微在設計RK 系列主控芯片時,有內置以太網MAC 控制器,通常只需要搭配一顆以太網PHY芯片,即可實現以太網卡功能。
根據規范,不同廠家的PHY芯片,一般有一部分寄存器的定義是通用的,只需配置了這些通用的寄存器,基本上PHY 就可以正常工作。對應Linux 系統,一般驅動中會自帶有通用的PHY 驅動。特另是RK3288之前芯片所配套的SDK 中使用的都是通用驅動,如果不需要使用PHY 廠家提供的自定義的寄存器配置實現一些個性化的功能,那么PHY 的驅動就不需要修改。從RK3288 之后的SDK 開始,原廠則帶有各個PHY 廠家在Linux 上提供驅動的配置,但基本上,各家的驅動差異很小,基本上也是調用通用驅動的接口,像目前10/100M 以太網PHY 與MAC 之間的接口主要有MII 和RMII,而10/100/1000M 以太網PHY 與MAC 之間的接口則主要為RGMII。從這個角度來講,RK主控基本上是支持大部分PHY芯片。如需獲取PHY驅動移植更多設置信息,歡迎隨時交流:QQ:2335804557,手機:18576699326,孫生。
(2)RK3288常配合的以太網PHY芯片
10M/100M網絡PHY芯片:LAN8720(SMSC,目前屬于MicroChip)、RTL8201F (REALTEK)、AR8032(Atheros)、IP101GR(ICPLUS)、DM9161(Davicom);
10M/100M/1000M網絡PHY芯片:RTL8211E(REALTEK)、RTL8211F(REALTEK);
(3)MAC地址設置問題
每個以太網設備只有唯一的MAC 地址,所以需要有一個地方用來存儲這個唯一的地址,同時在打開以太網時讀取出這個地址,并寫入PHY 寄存器。SDK 提供了四種獲取以太網MAC 地址的方法:
a.存儲在NAND的IDB中
首先要保證kernel中的配置CONFIG_ETH_MAC_FROM_IDB已打開其次要使用燒,寫工具UpgradeDllTool將地址寫入,燒寫工具在SDK 中有提供。
b.存儲在EEPROM中
首先要保證kernel中的配置CONFIG_ETH_MAC_FROM_EEPROM已打開,其次EEPROM 的驅動見drivers/staging/rk29/eeprom,根據不同型號請自行作相應修改
c.使用WiFi的MAC地址
該種方法的原理是在系統啟動時自動加載一次Wi-Fi驅動,同時將Wi-Fi 的MAC 地址
讀出并存儲在/data分區的一個文件中,以太網打開時,讀取該文件中的地址。首先要保證kernel中的配置CONFIG_ETH_MAC_FROM_WIFI_MAC已打開,其次要保證Android 上wlan_mac 程序存在,且已在init.rc或init.rkxx.rc中已添加如下
腳本
servicewlan_mac /system/bin/wlan_mac
classmain
oneshot
以太網驅動讀取地址的代碼存于drivers/net/eth_mac,請根據實際需求修改此代碼。
由于不同的網絡設備的MAC 地址必須是唯一的,所以請考慮使用這種方法的風險性。
d.使用隨機地址
若上述三種方法均未采用,驅動中會在每次打開以太網時隨機生成MAC 地址
由于不同的網絡設備的MAC 地址必須是唯一的,所以請考慮使用這種方法的風險性。
(4)關于引腳復用問題
對于RK3288,在使用以太網PHY時,還需注意主控GMAC RGMII IO引腳與其它功能的復用,常見的復用包括RMII與sdmmc, Flash與sdio1復用,,需要確認IOMUX 狀態是否正確,可通過io命令直接查看GRF 寄存器確認。
欲了解更多PHY芯片調試信息,歡迎隨時交流:QQ:2335804557,手機:18576699326,孫生。
(以上信息由深圳桑尼奇科技有限公司提供)
評論列表: