我最近研究Linux phy驱动程序,我有一些需要帮助的问题。
例如:我的以太网phy是Marvell Alaska 88E1548我怎么知道内核是否支持这个phy?我找到 …
移植PHYS的一般程序是寻找完全或部分兼容的现有物理,如 http://git.emacinc.com/Linux-Kernel/linux-emac/commit/819ec8e1f349f73bdf65bf33a364538e59007a9a
根据数据表和产品简介( https://www.marvell.com/transceivers/assets/Marvell-Alaska-88E1548-48P-Product-Brief.pdf , https://www.marvell.com/documents/ymlgvtjaejhhxflojtro/ )88E1548具有比88E1545更广泛的功能。它结合了88E1543和88E1545的功能,但是寄存器名称,通信协议...... ......大致相同......
在 https://github.com/torvalds/linux/blob/v4.18/drivers/net/phy/marvell.c 88E1545不支持88E1545(可能兼容,没有时间在数据表中进行比较)。我不知道88E1548与之前的Marvell芯片是否兼容(我没时间比较数据表...),88E1548肯定有额外的功能。但是,在阿拉斯加的产品简介中提到了88E1548 完整的软件兼容性 ( https://www.marvell.com/transceivers/assets/Marvell-Alaska-88E1548-48P-Product-Brief.pdf )...
一般来说,检查linux是否加载了Alaska 88E1548运行的驱动程序 dmesg | grep 'Ethernet driver'
dmesg | grep 'Ethernet driver'
如果有正输出,88E1548与此驱动程序中列出的其中一个设备兼容,如果没有,则设备尚未完全支持...