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】,在此基础上得以完成本次网卡灯状态设定。

相关