RK3288搭配以太網PHY芯片使用,這些你需要了解

(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芯片。

 

(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 中已添加如下

腳本

service wlan_mac /system/bin/wlan_mac

class main

oneshot

以太網驅動讀取地址的代碼存於drivers/net/eth_mac,請根據實際需求修改此代碼。

由於不同的網絡設備的MAC 地址必須是唯一的,所以請考慮使用這種方法的風險性。

d.使用隨機地址

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章