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.

[参考译文] DP83825I:Linux 内核4.18中是否支持此驱动程序?

Guru**** 2448780 points
Other Parts Discussed in Thread: DP83825I

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1487296/dp83825i-is-this-driver-support-in-linux-kernel-4-18

器件型号:DP83825I

工具/软件:

Linux 内核4.18是否包括对 DP83825I PHY 驱动程序的支持? 如果不是、需要什么修补程序集? 是否需要提交"net:phy:dp83822:在 DP83825器件上配置 RMII 模式"、如果需要、能否提供与内核4.18兼容的补丁集?

谢谢。

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

    您好、

    您可以使用此链接从4.18 Linux 内核中拉取 DP83825 Phy 驱动程序。 此驱动程序应与内核4.18兼容。

    即使 此驱动程序标有 "D-P83822"、它也可以与 DP83825配合使用。

    此致、

    Shane

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

    嗨、Shane、

    感谢您的答复。 正如您提到的、DP83822支持 DP83825、但需要进行任何更改吗? 与寄存器 ID (#define DP83825I PHY_ID   0x2000a150)或任何其他格式类似  

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

    您好、

    我不知道要让该驱动器与 DP83825配合使用、需要进行任何更改。 使用此驱动程序时是否遇到问题?

    此致、

    Shane

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

    您好、

    我计划使用 DP83825I 驱动程序、但担心可能会忽略一些问题。 我找到了这个补丁集(github.com/.../06acc17a96215a11134114aee26532b12dc8fde1 )—是否有其它任何成功启动驱动程序的先决条件?

    谢谢。

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

    很棒的景点 查看4.18驱动器、我看不到 DP83825的定义。 此驱动程序似乎在较新版本中进行了更新。

    我建议使用您链接的补丁集、以便为此驱动程序添加 DP83825支持。 如果您遇到与此相关的任何问题、请告诉我。

    此致、

    Shane

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

    您好、感谢您的确认。

    我已经为 DP83825I PHY 开发了器件树、希望您协助验证其正确性、尤其是"兼容"属性。

    &MDIO{
    pinctrl-names ="default";
    pinctrl-0 =<&MDIO_pin>;
    bus_freq =<2200000>;
    状态="正常";
    phy1:Ethernet-phy@2{
    兼容="ti、dp83825i"、"ethernet-phy-IEEE802.3-C22";//兼容="ti、dp83822"、"ethernet-phy-IEEE802.3-C22";
    reg =<0x2>;/* PHY 地址*/
    };
    phy2:Ethernet-phy@3{
    兼容="ti、dp83825i"、"ethernet-phy-IEEE802.3-C22";//兼容="ti、dp83822"、"ethernet-phy-IEEE802.3-C22";
    REG =<0x3>;/* PHY 地址*/
    };
    };

    &PMX_core{
    状态="正常";
    RMII_PINS:pinmux_RMII_PINS{
    pinctrl-single、bits =<
    /*
    * RMII_TXD_1、RMII_TXD_0、RMII_TXEN
    * RMII_RXD_1、RMII_RXN_0、RMII_RXER
    */
    0x38 0x88888888800 0xffffff00
    /*
    * RMII_MHz_50_CLK、RMII_CRS_DV
    */
    0x3c 0x00000080 0x000000ff
    >;
    };
    };

    &Eth0{
    pinctrl-names ="default";
    pinctrl-0 =<&RMII_PINs>;
    TI、davinci-RI-en =/bits/8 <1>;
    PHY-MODE ="RMII";
    phy-handle =<&phy1>;
    状态="正常";
    };

     

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

    您显示的兼容字段相对于补丁看起来正确。

    如果没有兼容字段、 设备树仍将探测 reg =处的 PHY 地址 并识别此地址处的 PHY ID、加载相应的驱动程序。

    基本上、该字段不是必需的、如果不正确、则不应受到伤害。

    此致、

    Shane

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

    感谢您的确认。

    还有一个关于驱动程序的问题、如何在设备树中指定使用轮询或中断模式? 它的默认模式是什么?

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

    驱动程序中不应有"轮询模式"或"中断模式"。 处理 数据的轮询与中断方法将分别根据每个函数进行设置。  

    此 PHY 的驱动程序在某些情况下会使用中断、但不使用轮询。

    此致、

    Shane

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

    我明白了。 那么、我们是否有像以下示例这样的测试脚本来测试 DP83825I?  
    Chrome 扩展://efaidnbmnnnibpcajpcglclefindmkaj/www.ti.com/.../snlu197.pdf

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

    我很难打开您提供的铬扩展链接、但我看到其中包含了 USB2MDIO 用户指南。

    您是否需要与 USB2MDIO 用户指南中的示例类似的测试脚本?

    此致、

    Shane

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

    嗨、Shane、

    Ya. 我需要 USB2MDIO 中适用于 DP83825I 的测试脚本、因为该示例适用于 DP83867。

    谢谢

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

    我使用该示例脚本进行了调整、使其适合 DP83825I 寄存器映射。 如果您遇到问题、请尝试以下操作并告诉我:

    开始

    //延迟100
    001f 8000 //重新启动内核

    0000 2100 //强制100Mbps、全双工

    0019 0021 // 0021 - MDI、 4021 - MDIX

    //启用 BIST 模式
    //echo BIST
    0016 7008 //使用 RJ45外的端接、模拟环回//连续 PRBS、启用校验器、启用 PRBS、发送64个数据包

    001f 4000
    //延迟200

    //回路5
    //读取 GEN_STATUS
    //注意:第一次读取清除 LH、第二次读取具有实际状态
    //值应为7A08、PBRS 校验器已锁定并同步
    0016
    0016
    //注意:第一次读取清除 LL、第二次读取具有实际状态
    //0001 //位2将指示链路是否失败
    //0001
    001b 807D //锁定和清除 PRBS 计数器
    001C //确实接收到用于观察字节的第2字节计数器
    001b //顺序错误计数器。 应读为0
    //结束循环

    0000

    结束

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

    嗨、Shane、正如您提到的、它不使用 dp83825I 的轮询方法。 如果我想在链路状态发生变化时使用户空间中断、我是否应该修改任何内容来实现这一点?

    这是我得到的设备树。
    Phy:Ethernet-phy@0{
    兼容="Ethernet-phy-IEEE802.3-C22";//兼容="ti、dp83822"、"Ethernet-phy-IEEE802.3-C22";
    reg =<0x0>;/* PHY 地址*/
    Interrupt-parent =<&GPIO>;
    中断=<127 IRQ_TYPE_LEVEL_LOW>;
    };

    .flags = PHY_has_interrupt。
    如果链路状态发生变化、会中断引脚吗?
    谢谢
    此致、
    Weihan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Weihan:

    825驱动程序不包含任何打印内核日志/用户空间以指示链路状态中断更改-这可能是由 MAC 驱动程序处理的。

    PHY 驱动程序负责在 PHY 上配置正确的中断并将链路状态报告给 MAC 驱动程序。 启动后、您能否读取 PHY 中断寄存器以确认 器件树设置预期的中断模式?

    此致、

    Shane