1296移植过程中设置8168网口灯状态
板子上有两个网口,其中一个属于soc,另一个是外置phy,也就是接下来说到的8168。
我们知道,移植过程中调试网口通常是调试phy,soc中要支持与多种phy芯片沟通。
那么首先要找到8168所使用的驱动程序是哪个,这个寻找的过程就不再赘述了。
我这里找到的是厂家提供的固件中【linux-4.4.18/drivers/net/ethernet/realtek/r8168】,这个目录中的内容如图所示。
涉及到的两个文件是r8168.h和r8168_n.c。
首先说明一下关于网口灯的需求,我当前的需求是:
1. 任何条件下,通信时橙色灯闪烁。
2. 1000M情况下,绿灯常亮。
根据我的需求,从厂家提供的关于网口灯的文档可知,【offset 0x18】是网口灯状态相关设定
因此继续查看文档后续内容,可以知道,根据我的需求,我需要的网口灯状态值是【0x40F】
那么有了这两个数据,就是要找修改点了。最终修改如下
这样看起来或许有些不明白,可以看下定义
有了这两个定义可能就容易理解多了。至于定义中的【ioaddr】其实指的就是【void __iomem *ioaddr = tp->mmio_addr;】这个了。
本次移植过程参考【https://blog.csdn.net/changqing1990/article/details/106545537】,在此基础上得以完成本次网卡灯状态设定。