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.使用随机地址

### 关于RK PHY芯片JLsemi的技术资料与数据手册 对于RK平台使用PHY芯片之一——JLsemi,这类PHY芯片同样遵循IEEE 802.3标准,其内部结构包括一组用于配置和监控物理层功能的寄存器。这些寄存器中的前16个(地址范围为0到15),按照IEEE规定具有统一定义的功能,能够支持基本的网络初始化与操作[^2]。 针对具体型号如JLsemi系列下的产品,官方通常会提供详尽的数据手册来指导开发者如何集成此PHY设备至基于RK SoC的应用场景中。遗憾的是,在当前提供的参考资料列表里并未直接提及有关JLsemi的具体文档链接或详情说明[^1][^3][^4]。 然而,一般而言,要获得特定厂商生产的PHY芯片(比如JLsemi)的相关技术文档,建议采取如下方式: - **访问官方网站**:前往JLsemi公司的官网查找对应产品的页面,那里往往会有最新的版本发布和技术白皮书可供下载。 - **联系销售代表**:如果无法在线找到所需资源,则可以通过邮件或其他联系方式向供应商请求获取必要的开发材料。 - **开源社区贡献者**:有时GitHub等平台上活跃着许多参与过相似项目的工程师们,他们可能会分享一些实用的经验贴或是非正式渠道得到的手册副本。 为了更好地理解PHY的工作原理及其同MAC之间的交互机制,可以参考已有的公开案例研究,例如Realtek RTL8211F千兆以太网PHY芯片的数据手册提供了丰富的背景知识以及应用实例;而对于RK3568这样的SoC来说,了解其内置或者外接PHY的操作流程也非常重要,这方面的信息可以在相关论坛讨论帖、教程文章甚至是某些Linux内核补丁集中发现有用线索[^3]。 ```bash # 使用phytool工具读取PHY寄存器示例命令 phytool read eth1/0/2 # 读取指定PHY上的某个寄存器值作为验证手段 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值