工具/软件:
Linux 内核4.18是否包括对 DP83825I PHY 驱动程序的支持? 如果不是、需要什么修补程序集? 是否需要提交"net:phy:dp83822:在 DP83825器件上配置 RMII 模式"、如果需要、能否提供与内核4.18兼容的补丁集?
谢谢。
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.
您好、
您可以使用此链接从4.18 Linux 内核中拉取 DP83825 Phy 驱动程序。 此驱动程序应与内核4.18兼容。
即使 此驱动程序标有 "D-P83822"、它也可以与 DP83825配合使用。
此致、
Shane
您好、
我计划使用 DP83825I 驱动程序、但担心可能会忽略一些问题。 我找到了这个补丁集(github.com/.../06acc17a96215a11134114aee26532b12dc8fde1 )—是否有其它任何成功启动驱动程序的先决条件?
谢谢。
您好、感谢您的确认。
我已经为 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>;
状态="正常";
};
我使用该示例脚本进行了调整、使其适合 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>;
};