0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于RV1126开发板修改Ethernet内核设备树

ljx2016 来源:ljx2016 作者:ljx2016 2025-04-17 10:30 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

1. PHY芯片简介

wKgZO2gAZ9KARJCqAABK2urpQSA017.png

phy:工作在网络模型的物理层,是IEEE802.3规定的一个标准模块。IEEE802.3规定了 地址0~15共16个通用寄存器,只要配置好这些通用寄存器就能保证phy芯片正常工作。16~31地址的寄存器有厂家自行定义。

mac:工作在网络模型的数据链路层,通过rgmii或rmii接口连接phy,mac控制器中的mdio控制器提供mdio接口,用于访问phy寄存器。

MDIO:Management Data Input/Output的缩写。MDIO接口包含在IEEE802.3协议中,是专用于MAC与PHY管理的串行总线接口。主要用于配置PHY芯片状态、读取寄存器、读取PHY地址、获取LINK状态等操作。与网口MII、RMII(TX_CLK、RX_CLK)等数据通讯无关。MDIO接口最多可以挂载32个PHY设备。

2. 驱动修改指南

2.1 驱动代码说明

执行以下命令进入net/phy文件夹查看跟以太网驱动程序相关的源码。

cd ~/EASY-EAI-kernel/kernel/drivers/net/phy
ls
wKgZPGgAZ9KAPOdEAANcgW0UT2c107.png

2.2 驱动代码修改

源代码修改:

把xxx.c(比如motorcomm.c)放到kernel/drivers/net/phy

把xxx.h(比如motorcomm_phy.h)放到kernel/drivers/include/linux

Makefile修改:

cd ~/EASY-EAI-kernel/kernel/drivers/net/phy
vim Makefile

加入以下内容:

obj-$(CONFIG_MICROCHIP_PHY)     += microchip.o
obj-$(CONFIG_MOTORCOMM_PHY)     += motorcomm.o
wKgZO2gAZ9OASMaAAACvy-VlmlU629.png

Kconfig修改(这样几可以从make menuconfig找到新加的驱动配置项)

vim Kconfig

在PHYLIB之间(如下所示)加入以下内容:

config MOTORCOMM_PHY
        tristate "Motorcomm PHYs"
        ---help---
          Supports the YT8010, YT8510, YT8511, YT8512 PHYs.
wKgZPGgAZ9OATidAAABAnfJRkfQ071.png

2.3 驱动配置

回到kernel目录,执行make menuconfig:

cd ~/EASY-EAI-kernel/kernel/
make menuconfig

注意:ARCH、GCC_FULLPATH、CROSS_COMPILE三个环境变量。具体的值可以参考build-kernel.sh脚本。

wKgZO2gAZ9OABS_fAAB8SzVGT60508.pngwKgZPGgAZ9SAN3hVAAG9UhvyOk8746.png

3. 设备树修改指南

执行以下命令进入/arch/arm/boot/dts文件夹查看rv1126相关的设备树配置。

cd ~/EASY-EAI-kernel/kernel/arch/arm/boot/dts
ls -l rv1126-nano*
wKgZO2gAZ9SANRmfAAB_ooNjfLg506.png

3.1 设备节点位置说明

打开设备树找到以太网卡相关的位置。

vim rv1126-nano.dts
wKgZPGgAZ9SACBOkAAGlg9mHXCY111.png

3.2 设备树节点参数说明

PHY ID(以YT8512H百兆PHY为例):

wKgZO2gAZ9SAUG5PAAAWK6X374c385.png

寄存器ID(以YT8512H百兆PHY为例):

wKgZPGgAZ9aAPDUtAAB1x-GLTuE789.png

因此设备树【mdio】要填:

wKgZO2gAZ9aAXlR-AABU7spo9wY612.png

因此设备树【gmac】要填:

wKgZPGgAZ9eAAx-GAAJ_KmFHu-E528.png

4. 编译及验证设计

4.1 编译

编译及烧录见《嵌入式底层开发/内核驱动/内核开发流程说明》。

4.2 查看设备情况

adb shell进入开发板,看驱动是否正确加载:

dmesg | grep -i eth

若出现下列信息(以YT8512H为例),则说明驱动被正确加载:

[   68.212302] YT8512B Ethernet stmmac-0:01: attached PHY driver [YT8512B Ethernet] (mii_bus:phy_addr=stmmac-0:01, irq=POLL)

通过执行以下命令,确认驱动工作正常:

ifconfig

若IP地址被成功分配,则说明PHY网卡可正常使用(设备通常是eth0,但要以MAC地址为准)

eth0      Link encap:Ethernet  HWaddr 4A:EF:6D:E8:5C:BA  
          inet addr:192.168.1.168  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
          Interrupt:63 

最后ping一下局域网内任意一台主机(如果是PC,注意一下防火墙),进行联网测试:

ping 192.168.1.191 -I eth0

返回以下信息,则说明网卡能够正常联网:

PING 192.168.1.191 (192.168.1.191) 56(84) bytes of data.
64 bytes from 192.168.1.191: icmp_seq=1 ttl=64 time=1.03 ms
64 bytes from 192.168.1.191: icmp_seq=2 ttl=64 time=1.55 ms
64 bytes from 192.168.1.191: icmp_seq=3 ttl=64 time=2.00 ms
64 bytes from 192.168.1.191: icmp_seq=4 ttl=64 time=1.51 ms
64 bytes from 192.168.1.191: icmp_seq=5 ttl=64 time=1.52 ms

5. 常见问题排查

5.1 找不到PHY

错误提示如下:

[    5.217653] rk_gmac-dwmac ffc40000.ethernet eth0: Could not attach to PHY
[    5.219021] rk_gmac-dwmac ffc40000.ethernet eth0: stmmac_open: Cannot attach to PHY (error: -19)

硬件角度排查:确认原理图是否与手上的硬件对应(含图纸版本是否与硬件匹配、无聊参数是否与硬件一致)?排查phy芯片供电是否正常?排查RST引脚是否有按规格书所描述的要求进行控制?【若有】排查外部晶振是否起振?

软件角度排查:设备树中mdio中的phyid是否填对?mdio中的reg是否有根据硬件的实际情况配置?

5.2 网卡功能异常

具体异常表现为:

* 无法DHCP。

* 用ifconfig手动配置IP,能配置成功,但通信异常。

原因:大概率是因为驱动不兼容,具体做法如下:

* 把mdio的compatible改成"ethernet-phy-ieee802.3-c22"。

* 使用通用网卡驱动(通过make menuconfig把motorcomm的驱动去掉)。

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 开发板
    +关注

    关注

    25

    文章

    6122

    浏览量

    113317
  • rv1126
    +关注

    关注

    0

    文章

    115

    浏览量

    4081
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    分享一份有关TB-RV1126Ds开发板硬件的规格书

    产品介绍TB-RV1126Ds开发板是硬件针对瑞芯微RV1126芯片的开发参考设计、芯片调试和测试、实现真正一体的开发板使用,瑞芯微
    发表于 06-16 17:22

    RV1126开发板数据手册

    本产品是基于瑞芯微 RV1126 媒体处理芯片开发的 IPC 开发板,分为核心和底板, 且 RV1126
    发表于 08-28 11:09 20次下载

    rv1126和rk3568对比

    视频编解码。而RK3568开发板创龙科技旗下工业开发板,基于瑞芯微RK3568J/RK3568B2处理器设计,四核ARM Cortex-A55,每核主频高达1.8GHz/2.0GHz。 rv1126
    的头像 发表于 01-23 18:05 1.5w次阅读
    <b class='flag-5'>rv1126</b>和rk3568对比

    RV1126 实现人脸检测方案

    基于RV1126开发板实现人脸检测方案,充分体现了电子方面的实践经验和目标检测技术。
    的头像 发表于 04-14 09:25 686次阅读
    <b class='flag-5'>RV1126</b> 实现人脸检测方案

    基于RV1126开发板的人脸检测算法开发

    RV1126开发人脸检测算法组件
    的头像 发表于 04-14 10:19 742次阅读
    基于<b class='flag-5'>RV1126</b><b class='flag-5'>开发板</b>的人脸检测算法<b class='flag-5'>开发</b>

    基于RV1126开发板的人员检测算法开发

    RV1126开发人员检测AI算法组件
    的头像 发表于 04-14 13:56 629次阅读
    基于<b class='flag-5'>RV1126</b><b class='flag-5'>开发板</b>的人员检测算法<b class='flag-5'>开发</b>

    基于RV1126开发板网络配置方法

    RV1126开发板网络硬件资源有:以太网、WiFi,采用的网络配置方案是:Netplan。        Netplan是一个用于配置Linux网络的简单工具。用户只需要一个yaml格式的文件去
    的头像 发表于 04-15 14:57 706次阅读
    基于<b class='flag-5'>RV1126</b><b class='flag-5'>开发板</b>网络配置方法

    基于RV1126开发板的按键测试方法与例程

    RV1126开发板的按键测试方法与例程详细描述
    的头像 发表于 04-15 17:03 831次阅读
    基于<b class='flag-5'>RV1126</b><b class='flag-5'>开发板</b>的按键测试方法与例程

    基于RV1126开发板修改GPIO内核设备

    编辑设备文件,执行以下指令可以修改nano的级头文件,如图所示。(比如把复用为SPI1的硬件资源改成通用的GPIO对源代码进行修改
    的头像 发表于 04-17 10:00 596次阅读
    基于<b class='flag-5'>RV1126</b><b class='flag-5'>开发板</b><b class='flag-5'>修改</b>GPIO<b class='flag-5'>内核</b><b class='flag-5'>设备</b><b class='flag-5'>树</b>

    基于RV1126开发板修改CAN内核设备

    编辑设备文件,执行以下指令可以修改nano的级头文件,如下图所示。(比如基于MCP2515把复用为SPI1的硬件资源转成CAN对源代码进行修改
    的头像 发表于 04-17 10:10 625次阅读
    基于<b class='flag-5'>RV1126</b><b class='flag-5'>开发板</b><b class='flag-5'>修改</b>CAN<b class='flag-5'>内核</b><b class='flag-5'>设备</b><b class='flag-5'>树</b>

    基于RV1126开发板实现驾驶员行为检测方案

    RV1126开发板上实现驾驶员行为检测:通过图像识别出这几种行为:打电话、抽烟、疲劳驾驶。
    的头像 发表于 04-18 17:47 354次阅读
    基于<b class='flag-5'>RV1126</b><b class='flag-5'>开发板</b>实现驾驶员行为检测方案

    基于RV1126开发板实现人脸识别方案

    RV1126开发板上实现人脸识别:在图像中找出人脸,并与数据库进行比对,得出该人脸对应的身份信息。 方案设计逻辑流程图,方案代码分为分为三个业务流程,主体代码负责抓取、合成图像,算法代码负责人脸识别功能,按键监听负责修改
    的头像 发表于 04-21 10:24 107次阅读
    基于<b class='flag-5'>RV1126</b><b class='flag-5'>开发板</b>实现人脸识别方案

    基于RV1126开发板实现人脸检测方案

    RV1126开发板上实现人脸检测:在图像中找出人脸,以及每张人脸的landmarks位置。 方案设计逻辑流程图,方案代码分为分为两个业务流程,主体代码负责抓取、合成图像, 算法代码负责人脸检测功能。
    的头像 发表于 04-21 14:00 13次阅读
    基于<b class='flag-5'>RV1126</b><b class='flag-5'>开发板</b>实现人脸检测方案

    基于RV1126开发板实现人脸检测方案

    RV1126开发板上实现人脸检测:在图像中找出人脸,以及每张人脸的landmarks位置。 方案设计逻辑流程图,方案代码分为分为两个业务流程,主体代码负责抓取、合成图像, 算法代码负责人脸检测功能。
    的头像 发表于 04-21 17:59 862次阅读
    基于<b class='flag-5'>RV1126</b><b class='flag-5'>开发板</b>实现人脸检测方案

    RV1126系列选型指南:从RV1126RV1126B,一文看懂升级差异

    2025年7月,瑞芯微正式发布新一代AI视觉芯片RV1126B。作为其金牌方案商,EASYEAI灵眸科技同步推出搭载该芯片的AIoT核心EAI1126B-Core-T。相较于前代RV1126
    的头像 发表于 09-04 10:50 3483次阅读
    <b class='flag-5'>RV1126</b>系列选型指南:从<b class='flag-5'>RV1126</b>到<b class='flag-5'>RV1126</b>B,一文看懂升级差异