This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] DP83869HM:DP83869 Linux 驱动程序安装

Guru**** 2455360 points
Other Parts Discussed in Thread: DP83869HM

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/915972/dp83869hm-dp83869-linux-driver-installation

器件型号:DP83869HM
主题中讨论的其他器件:DP83869

你好

请说明如何在 RPi 3+计算模块上安装 Linux 驱动程序?

对于驱动程序、您提供了源代码 dp83869.c. 我还在 https://lore.kernel.org/patchwork/patch/1148980/上找到了补丁

我发现、驱动程序本身位于 Linux 内核5.5+中。 我只能在 RPi 内核5.4上安装、尽可能是最新的。

我已尝试对 Rpi 内核源代码4.19.127应用修补程序。 我错过了 Whitch 文件夹中的应用修补程序。 添加哪个选项以应用修补程序。 当然、我只能编译和运行 Linux 内核4.19.127、而无需添加 dp83869驱动程序支持。 当我在"make menuconfig"中添加驱动程序支持时、我会收到错误(下图)。

感谢你的任何帮助

此致

Michael Dvoracek

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Michael、

    您能否检查是否可以在 RPi 3+上安装 Linux 内核5.5+? 当我们发布新的 Linux 驱动程序时、我们会针对当前版本发布该驱动程序、并上传源代码。 对于将来的版本、驱动程序会自动移植。  

    我可以检查我们是否有5.4内核兼容的驱动程序。

    此致

    Aniruddha

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Michael、

    我们的 Linux 驱动程序开发人员能够回答这个问题。 似乎缺少一些核心 Linux 内核补丁。 要清除 SET/CLEAR_BITS、您可以 从上游选择补丁。 以下 内容已在本地进行检查、并且回退端口已完全完成。

    Git chere-pick 1878f0dcbff0cd07f62602deb160a44d69a8f146


    要修复 PHY_Gbit_Fibre 功能、您可以将其替换为
    .features = PHY_Gbit_features | Supported_Fiber、

    请注意、我们可以提供有限的反向移植支持。 这仅是编译检查、未在系统上进行全面测试。

    此致

    Aniruddha

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好,Aniruddha

    很抱歉耽误你的回答。 最后、我可以从您的论坛 e2e.ti.com/.../809516应用补丁

    此外、我还可以使用 Linux 内核5.6下载未经测试的 RPi 分支源。 我可以编译并运行该内核。

    我还使用内核5.7测试了 Ubuntu 上的 NIC。 我也没有从路由器接收 IP 地址。

    对于应用的补丁或更新的内核、我在"dmesg" cmd 中再也没有看到关于缺少驱动程序 phy 芯片的内容。

    因此、这可能不是缺少驱动程序 DP83869HM 的问题。 我们有带 Mac 芯片的 NIC:Microchip LAN7801和 phy 芯片:DP83869HM。 它具有 SFP 模块、并通过光纤连接到路由器 Mikrotik。 在 Windows 10上、此网卡可以正常工作、在 Linux 上则不能正常工作、使用相同的寄存器设置。 在 winbox 中,我可以看到,在 Windows 10下,路由器将 IP 地址分配给 NIC。 在 Linux (RPi OS、Ubuntu)下、路由器不会向 NIC 提供 IP。

    我可以在这里添加 ethtool 中的信息。

    pi@raspberrypi:~$ ethtool -i eth0
    驱动程序:lan78xx
    版本:5.6.19-v7+
    固件版本:
    扩展 ROM 版本:
    总线信息:usb-3f980000.usb-1.4
    支持统计信息:是
    支持-测试:否
    支持 EEPROM 访问:可以
    支持寄存器转储:是
    supports-priv-flags:否

    pi@raspberrypi:~$ ethtool eth0
    eth0的设置:
    支持的端口:[ TP MII]
    支持的链路模式:1000BaseT /全双工
    支持的暂停帧使用:仅对称接收
    支持自动协商:是
    支持的 FEC 模式:未报告
    通告的链路模式:1000BaseT /全双工
    通告的暂停帧使用:对称
    广播自协商:是
    通告的 FEC 模式:未报告
    速度:1000Mb/s
    双工:全双工
    端口:MII
    PHYAD:0
    收发器:内部
    自协商:开
    无法获取局域网唤醒设置:不允许操作
    当前消息级别:0x00000007 (7)
    DRV 探头链路
    检测到链接:是

    pi@raspberrypi:~$ sudo ethtool -e eth0
    偏移值
    ---- ----
    0x0000:A5 00 80 0f 78 00 AD 00 06 00 0f C1 80 00
    0x0010:01 04 06 07 a0 D3 07 80 67 31 00 80 01 00 0A
    0x0020:00 1e 00 09 04 14 60 10 6a 1a 72 16 7f 06 8a 16
    0x0030:31 12 3c 12 45 12 4e 12 57 12 4e 12 57 00 00
    0x0040:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff
    0x0050:00 00 00 00 00 00 00 08 04 00 00 00 00 31 80
    0x0060:00 4F 05 0f 16 00 02 07 10 02 0e 01 00 0A 10
    0x0070:03 02 0e 00 01 0A dc 05 12 01 10 03 ff 00 ff 09
    0x0080:24 04 01 78 00 02 01 03 01 09 02 39 00 01
    0x0090:00 e0 0A 09 04 00 03 ff 00 00 ff 00 12 01 10 02
    0x00a0:FF 00 ff 40 24 04 01 78 00 02 01 02 03 01 09 02
    0x00b0:27 00 01 01 00 e0 0A 09 04 00 03 ff 00 00 ff 00
    0x00c0:14 03 4D 00 69 00 63 00 72 00 6F 00 63 00 68 00
    0x00d0:69 00 70 00 10 03 4c 00 41 00 4e 00 37 00 38 00
    0x00e0:30 00 31 00 1a 03 30 00 30 00 38 00 30 00 30 00
    0x00f0:46 00 37 00 38 00 30 00 30 00 41 00 42 00 16 03
    0x0100:4A 00 52 00 65 00 70 00 63 00 69 00 6B 00 2D 00
    0x0110:41 00 42 00 06 03 07 00 67 00关断关断 FF
    0x0120:FF 关断关断 FF ff ff ff ff ff ff ff ff ff (FF 关闭 FF ff ff ff ff ff ff ff ff ff (FF 关闭 FF
    0x0130:FF 关断关断 FF ff ff ff ff ff ff ff ff ff (FF 关闭 FF ff ff ff ff ff ff ff ff ff (FF 关闭 FF
    0x0140:FF 关断关断 FF ff ff ff ff ff ff ff ff ff (FF 关闭 FF ff ff ff ff ff ff ff ff ff (FF 关闭 FF
    0x0150:FF 关闭 FF ff ff ff ff ff ff ff ff ff (FF 关闭 FF ff ff ff ff ff ff ff ff ff (FF 关闭 FF
    0x0160:FF 关断关断 FF ff ff ff ff ff ff ff ff ff (FF 关闭 FF ff ff ff ff ff ff ff ff ff (FF 关闭 FF
    0x0170:FF 关断关断 FF ff ff ff ff ff ff ff ff ff (FF 关闭 FF ff ff ff ff ff ff ff ff ff (FF 关闭 FF
    0x0180:FF 关断关断 FF ff ff ff ff ff ff ff ff ff (FF 关闭 FF ff ff ff ff ff ff ff ff ff (FF 关闭 FF
    0x0190:FF 关断关断 FF ff ff ff ff ff ff ff ff ff (FF 关闭 FF ff ff ff ff ff ff ff ff ff (FF 关闭 FF
    0x01a0:FF 关断关断 FF ff ff ff ff ff ff ff ff ff (FF 关闭 FF ff ff ff ff ff ff ff ff ff (FF 关闭 FF
    0x01b0:FF 关断关断 FF ff ff ff ff ff ff ff ff ff (FF 关闭 FF ff ff ff ff ff ff ff ff ff (FF 关闭 FF
    0x01c0:FF ff ff ff ff ff ff FF ff ff ff ff ff ff ff ff ff (FF 关闭 FF ff ff ff ff ff ff ff ff ff (FF 关闭 FF
    0x01d0:FF 关断关断 FF ff ff ff ff ff ff ff ff ff (FF 关闭 FF ff ff ff ff ff ff ff ff ff (FF 关闭 FF
    0x01e0:FF 关断关断 FF ff ff ff ff ff ff ff ff ff (FF 关闭 FF ff ff ff ff ff ff ff ff ff (FF 关闭 FF
    0x01f0:FF 关断关断 FF ff ff ff ff ff ff ff ff ff (FF 关闭 FF ff ff ff ff ff ff ff ff ff (FF 关闭 FF
    pi@raspberrypi:~$ ifconfig eth0
    eth0:flags=4163 MTU 1500
    乙醚00:80:0f:78:00:ad txqueuelen 1000 (以太网)
    RX 数据包1555字节244333 (238.5 KiB)
    RX 错误0丢弃0超限0帧0
    TX 数据包8996字节1573661 (1.5 MIB)
    TX 错误0丢弃0溢出0载波0冲突0

    感谢您提供任何帮助或提示、帮助您向前迈进

    此致

    Michael

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Michael、

    分配 IP 是一个更高层的应用程序、涉及的步骤远不止使 PHY 正常运行。 对于此线程、我们需要限制范围以确保 PHY 按需要工作。 当您说应用程序是针对 Windows 而不是 Linux 运行时、您是否看到在使用 Linux 时链路 LED 亮起?  

    上面提供的寄存器转储有点令人困惑、PHY 寄存器是16位、但上面的数据显示了8位。 您能否仔细检查并提供 DP83869的寄存器值?

    此致

    Aniruddha