Linux phy驱动程序

时间:2019-03-13 16:02:27

标签: linux linux-kernel linux-device-driver embedded-linux

我最近正在研究Linux phy驱动程序,并且我有一些需要帮助的问题。

例如:我的以太网phy是Marvell Alaska 88E1548

  1. 我如何知道内核是否支持此phy?
  2. 我在驱动程序/ net / phy(https://github.com/torvalds/linux/blob/v4.18/drivers/net/phy/marvell.c)中发现了marvell.c,但是没有定义88E1548,这意味着marvell.c不支持88E1548吗?还是通用驱动器?
  3. 如果当前内核不支持88E1548,我如何找到该phy驱动程序并移植到内核?

谢谢〜

1 个答案:

答案 0 :(得分:0)

移植PHYS的一般过程是寻找完全或部分兼容的现有PHYS,例如http://git.emacinc.com/Linux-Kernel/linux-emac/commit/819ec8e1f349f73bdf65bf33a364538e59007a9a

根据数据表和产品简介(https://www.marvell.com/transceivers/assets/Marvell-Alaska-88E1548-48P-Product-Brief.pdfhttps://www.marvell.com/documents/ymlgvtjaejhhxflojtro/),88E1548具有比88E1545更大的功能。它结合了88E1543和88E1545的功能,但是寄存器名称,通信协议,...在很大程度上是相同的...

https://github.com/torvalds/linux/blob/v4.18/drivers/net/phy/marvell.c中,不存在88E1543时将支持88E1545(可能兼容,没有时间在数据表中进行比较)。我不知道88E1548是否与早期的Marvell芯片兼容(我没有时间比较数据表...),因此88E1548肯定具有其他功能。但是,在阿拉斯加88E1548的产品简介中提到了完全的软件兼容性https://www.marvell.com/transceivers/assets/Marvell-Alaska-88E1548-48P-Product-Brief.pdf)...

通常检查Linux是否为运行dmesg | grep 'Ethernet driver'的Alaska 88E1548加载驱动程序

如果输出为正,则88E1548与该驱动程序中列出的设备之一兼容,如果还不完全支持该设备...