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