09
2017
04

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芯片。如需获取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)RTL8211FREALTEK;

(3)MAC地址设置问题

每个以太网设备只有唯一的MAC 地址,所以需要有一个地方用来存储这个唯一的地址,同时在打开以太网时读取出这个地址,并写入PHY 寄存器。SDK 提供了四种获取以太网MAC 地址的方法:

a.存储在NANDIDB

首先要保证kernel中的配置CONFIG_ETH_MAC_FROM_IDB已打开其次要使用烧,写工具UpgradeDllTool将地址写入,烧写工具在SDK 中有提供。

b.存储在EEPROM

首先要保证kernel中的配置CONFIG_ETH_MAC_FROM_EEPROM已打开,其次EEPROM 的驱动见drivers/staging/rk29/eeprom,根据不同型号请自行作相应修改

c.使用WiFiMAC地址

该种方法的原理是在系统启动时自动加载一次Wi-Fi驱动,同时将Wi-Fi MAC 地址

读出并存储在/data分区的一个文件中,以太网打开时,读取该文件中的地址。首先要保证kernel中的配置CONFIG_ETH_MAC_FROM_WIFI_MAC已打开,其次要保证Android wlan_mac 程序存在,且已在init.rcinit.rkxx.rc中已添加如下

脚本

servicewlan_mac /system/bin/wlan_mac

classmain

oneshot

以太网驱动读取地址的代码存于drivers/net/eth_mac,请根据实际需求修改此代码。

由于不同的网络设备的MAC 地址必须是唯一的,所以请考虑使用这种方法的风险性。

d.使用随机地址

若上述三种方法均未采用,驱动中会在每次打开以太网时随机生成MAC 地址

由于不同的网络设备的MAC 地址必须是唯一的,所以请考虑使用这种方法的风险性。

4)关于引脚复用问题

    对于RK3288,在使用以太网PHY时,还需注意主控GMAC RGMII  IO引脚与其它功能的复用,常见的复用包括RMIIsdmmc, Flashsdio1复用,,需要确认IOMUX 状态是否正确,可通过io命令直接查看GRF 寄存器确认

了解更多PHY芯片调试信息,欢迎随时交流:QQ:2335804557,手机:18576699326,孙生。

(以上信息由深圳桑尼奇科技有限公司提供)


« 上一篇下一篇 »

评论列表:

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。