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.

[参考译文] DP83849C:驱动器未检测到 PHY

Guru**** 666710 points
Other Parts Discussed in Thread: DP83849C, DP83848C, DP83849I, DP83620
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1298507/dp83849c-phy-not-getting-detected-in-driver

器件型号:DP83849C
主题中讨论的其他器件: DP83848CDP83849IDP83620

您好!

   我们在 i.MX6Solo 上使用 Linux LTS v6.1.58、其中的 SJA1105Q 开关连接到双端口 DP83849C PHY。

开关 SJA1105Q 通过端口@2、@3和启用的 Linux 网络 PHY 驱动程序 CONFIG_DP83848_PHY 在 DTS 中使用 DP83849C PHY 进行配置。

 配置的 DT:

https://gist.github.com/openedev/01d96917118de24e9e42c33649422367


我们认为 DP83848是一个与 DP83849 IC 兼容的驱动程序、但是我们无法检测到

登录如下:  
[ 21.783450] sja1105 spi1.0:探测开关芯片:SJA1105Q
[ 21.914146] sja1105 spi1.0:为固定/mii 链路模式配置
[ 21.928109] sja1105 spi1.0:链路接通- 100Mbps/全-流控关闭
[ 21.954012] sja1105 spi1.0 ethphy0 (未初始化):无法连接到 PHY:-ENODEV
[ 21.962173] sja1105 spi1.0 ethphy0 (未初始化):错误-19为树0、交换机0、端口2设置 PHY
[ 22.004246] sja1105 spi1.0 ethphy1 (未初始化):无法连接到 PHY:-ENODEV
[ 22.012127] sja1105 spi1.0 ethphy1 (未初始化):错误-19:为树0、交换机0、端口3设置 PHY
[ 22.079503]设备 eth0已进入混杂模式

请告知我们、DP83848是否是与 DP83849 IC 兼容的驱动程序、或者是否需要编写新的驱动程序 DP83849。

请帮助我们解决此问题。

此致、

比特什

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

    尊敬的 Bitesh:

    我认为 DP83848驱动器不会与双端口 DP83849兼容。 我认为您需要创建一个新的驱动程序。 请允许我再有一天确认。

    此致、

    阿尔瓦罗

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

    尊敬的 Alvaro:

           感谢您的答复。 您能告诉我可以从何处开始使用   DP83849驱动程序吗?  

    此致、

    比特什

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

    尊敬的 Bitesh:

    很遗憾、我们目前没有一个。

    此致、

    阿尔瓦罗

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

    您好!

      我们正在使用  DP83848、它进行了一些修改并取得了一些进展。 但是、 在进行以太网测试时、我们将关闭 phy0电源。 以下是使用 MDIO 工具读取 PHY 寄存器的日志。

    $ MDIO

    $ MDIO 2188000.Ethernet-1 phy 0原始0x0

    0x3900

    $ MDIO 2188000.Ethernet-1 phy 1原始0x0

    0x3100

    对于正确的操作内容应为 0x3100、但对于 Phy0 、我们获取0x3900。

    您能告诉我们如何解决这个问题吗?

    我针对这个问题提出了一个单独的话题。  

    https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1299303/dp83849i-phy0-power-down---schematic-review

    此致、

    比特什

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

    尊敬的 Biteshnath:

    其他人目前正在查看您新发布的有关原理图的 E2E 主题。 我将关闭该主题、让我的团队成员继续处理您链接的新主题。

    此致、

    阿尔瓦罗

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

    您好!

        您能在以下链接中看到 TI 的 Nikhil 在其中回复 DP83848与 DP83849兼容吗?

    DP83849I:以太网 PHY 芯片器件驱动程序的可用性-接口论坛-接口- TI E2E 支持论坛

    请告诉我、是否可以直接使用 DP83848。 或者让我知道我需要在遵循驱动程序中进行哪些更改。

    https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/net/phy/dp83848.c

    此致、

    比特什

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

    尊敬的 Bitesh:

    现在、我们没有测试驱动程序所需的硬件。 我不知道848驱动程序初始化将如何处理双端口功能。

    目前我们不支持此查询。

    此致、

    阿尔瓦罗  

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

    您好!

      您能否告诉我、TI 是否向客户销售 DP83849器件、这是他们期望客户能做的驱动程序?

    为什么 TI 网站上的驱动程序不可用以及 TI 不支持相关查询?

    此致、

    比特什  

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

    您好、Bitesh。

    恐怕这是一个支持有限的旧器件。 此处不再显示最初处理此器件的团队成员。

    目前我们没有驱动程序解决方案、但如果您尝试编辑 DP83849 的 DP83848驱动程序 、我可以尽我所能提供帮助。 我想重申一遍、我们没有用于测试它的硬件。  

    此致、

    阿尔瓦罗

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

    尊敬的 Alvaro:

            感谢您的答复。 您能否告诉我、为了让 DP83849正常使用、需要遵循 TI 网站上提供的 DP83848驱动程序进行哪些更改?

    https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/net/phy/dp83848.c

    此致、

    比特什

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

    尊敬的 Bitesh:

    第一步是定义 DP83849_PHY_ID、这可以通过读取寄存器02和0x3来实现。

        完成以下步骤后、搜索 DP83848C_PHY_ID 的所有实例并添加 DP83849_PHY_ID。

    示例:

    在实验中、我抓取了 DP83849IFVS-EVK 以检查寄存器值。

    • 寄存器0x2 = 2000
    • 寄存器0x3 = 5CA2
    • PHY_ID = 20005CA2

    请注意、我读取的值与当前数据表的默认值不匹配、这意味着我有一个较旧的器件版本。 请读取这些寄存器并验证您拥有的模型。

    请参考 本文档的第4.3节 、了解一些基本命令和输出、以尝试验证是否识别了驱动器。

    此致、

    阿尔瓦罗

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

    您好!

      我使用了相同的 DP83848驱动程序、初始化后将获得以下日志。 端口的物理地址为0x00和0x01

    开发  PHY-ID       链接
    0x00  0x20005CA2  上升
    0x01  0x20005CA2  上升

    两个端口的 PHY-ID 与0x20005ca2相同是否正确?

    我还尝试从 PC ping 我的电路板、但它显示 Destination host unreachable 作为日志。

    我已经使用以太网电缆将 PC 连接到电路板、并且在两侧正确设置 IP 设置。

    然后、我通过电缆连接了2个电路板的以太网端口、并尝试相互 ping、但 ping 仍无法正常工作。

    电路板 SL#1日志:  

    root@ltts-imx6solo:~# ip addr add dev ethphy1 192.168.1.5/16
    root@ltts-imx6SOLO:~# ip link set dev eth0 up
    [ 207.911113](空):RET 0
    [ 207.914056] TI DP83849I 10/100Mbps PHY 2188000.Ethernet-1:00:连接的 PHY 驱动程序(MII_BUS:phy_addr=2188000.Ethernet-1:00、IRQ=POLL)
    root@ltts-imx6SOLO:~# ip link set dev ethphy0 up
    [ 216.25001] sja1105 spi1.0 ethphy0:为 phy/mii 链路模式进行配置
    [216.261025]------- [剪切此处]-------
    [216.265962]警告:CPU:0 PID:321 at drivers/net/phy/phy.c:1157 phy_start+0x58/0xb4
    [216.274115]从状态 NOLINK 调用
    [216.277712]模块链接如下: mdio_netlink (O) bnep tag_sja1105 sja1105 pcs_xpcs brcmfmac brcmutil imx_sdma coda_vpu v4l2_jpeg imx_vdoa evbug
    [216.290622] CPU:0 PID:321 Comm:IP Doyed:G O 6.1.58 #1
    [ 216.297605]硬件名称:Freescale i.MX6 Quad/DualLite (设备树)
    [216.304148]从 show_stack+0x10/0x14释放
    [ 216.309405] show_stack from dump_stack_lvl+0x58/0x70
    [ 216.314486] dump_stack_lvl from __warn+0x70/0x1a4
    [ 216.319306]__WARN from WARN_slowpath_fmt+0x1bc/0x270
    [ 216.324463]来自 phy_start+0x58/0xb4的 warn_sleppath_fmt
    [ 216.329712] phy_start from DSA_PORT_ENABLE_RT+0x54/0x9C
    [ 216.335047]从 DSA_SLAVE_OPEND+0xb8/0x17c 的 DSA_PORT_ENABLE_RT
    [216.340907] DSA_slave_open (从_dev_open+0xec/0x1ac 开始)
    [ 216.346069]__ DEV_open from _ DEV_CHANGE_FLAGS+0x18c/0x224
    [ 216.351659]_DEV_CHANGE_FLAGS+0x14/0x44
    [ 216.357594]从 do_setlink+0x254/0xe4c 中的 dev_change_flags
    [ 216.363018] DO_setlink from rtnl_newlink+0x598/0x80c
    [ 216.368091] rtnl_newlink from rtnetlink_rcv_msg+0x168/0x574
    [ 216.373767]来自 netlink_rcv_skb+0xb8/0x11c 的 rtnetlink_rcv_msg
    [ 216.379617] netlink_rcv_skb from netlink_unicast+0x1a8/0x2dc
    [216.385387]来自 netlink_sendmsg+0x1d8/0x450的 netlink_unicast
    [216.39116] netlink_sendmsg from __sys_sendmsg+0x188/0x258
    [ 216.396932]___sys_sendmsg from __sys_sendmsg+0x6c/0xa4
    [ 216.402438]__sys_sendmsg from sys_sendmsg+0x50/0x98
    [ 216.407597] sys_sendmsg from ret_fast_syscall+0x0/0x1c
    [ 216.412842]异常堆栈(0xf1145fa8至0xf1145ff0)
    [216.417909] 5fa0:00000000 00000001 00000003 beedc710 00000000 00000000
    [ 216.426100] 5fc0:00000000 00000001 b6fb75a0 00000128 626adb9a 00000000 00561cc0 00561cc0
    [216.434288] 5fe0: 00000128 beedc6b0 b6ebf6d3 b6e31ae6
    [216.439419] IRQ 事件戳:3265
    [216.442803] hardirqs last enabled at (3275):[ ]___UP_CONSOLE_SEM+0x50/0x60
    [216.450666] hardirqs Last disabled at (3282):[ ]___up_console_sem+0x3c/0x60
    [216.458576]最近启用的软件(3162):[ ]__do_softirq+0x2c0/0x57c
    [216.466313]上次禁用时间:(3123):[ ]__IRQ_EXIT_RCU+0x138/0x17c
    [ 216.474229]--[结束布线0000000000000000]---
    root@ltts-imx6SOLO:~# ip link set dev ethphy1 up
    [ 223.997870] sja1105 spi1.0 ethphy1:为 phy/mii 链路模式配置
    root@ltts-imx6Solo:~#[226.081937] sja1105 spi1.0 ethphy1:链路已接通- 100Mbps/完整-流控关闭
    [ 226.08944] IPv6:ADDRCONF (NETDEV_CHANGE):ethphy1:链路就绪

    root@ltts-imx6SOLO:~#[331.121283] sja1105 spi1.0 ethphy1: link is down
    [ 333.201772] sja1105 spi1.0 ethphy1:链路接通- 100Mbps/全-流控关闭
    [ 344.641192] sja1105 spi1.0 ethphy1:链路断开
    [ 348.321311] FEC 2188000.以太网 eth0:链路已接通- 100Mbps/全-流量控制已关闭
    [ 348.329630] IPv6:ADDRCONF (NETDEV_CHANGE):ETH0:链路就绪

    root@ltts-imx6SOLO:~# MDIO 2188000.ETHERNET-1
    开发 PHY-ID 链接
    0x00 0x20005CA2上升
    0x01 0x20005CA2递减
    root@ltts-imx6SOLO:~# ifconfig
    ETH0:flags=4163 MTU 1504
    inet6 fe80::5019:f0ff:fe3f:e61a prefixlen 64 scopeid 0x20
    乙醚52:19:f0:3f:e6:1a txqueuelen 1000 (以太网)
    RX 数据包0字节0 (0.0B)
    RX 错误0丢弃0溢出0帧0
    TX 数据包0字节0 (0.0B)
    TX 错误0丢弃0溢出0载波0冲突0

    ethphy0:flags=4099 MTU 1500
    INET 192.168.1.1网络掩码255.255.0.0广播0.0.0.0
    乙醚00:11:22:33:44:55 txqueuelen 1000 (以太网)
    RX 数据包0字节0 (0.0B)
    RX 错误0丢弃0溢出0帧0
    TX 数据包0字节0 (0.0B)
    TX 错误0丢弃0溢出0载波0冲突0

    ethphy1:flags=4099 MTU 1500
    INET 192.168.1.5网络掩码255.255.0.0广播0.0.0.0
    inet6 fe80::211:22ff:fe33:4466 prefixlen 64 scopeid 0x20
    乙醚00:11:22:33:44:66 txqueuelen 1000 (以太网)
    RX 数据包0字节0 (0.0B)
    RX 错误0丢弃0溢出0帧0
    TX 数据包42字节5164 (5.0 KiB)
    TX 错误0丢弃0溢出0载波0冲突0

    LO:flags=73 MTU 65536
    iNet 127.0.0.1网络掩码255.0.0.0
    inet6 :: 1 prefixlen 128 scopeid 0x10
    循环 txqueuelen 1000 (本地回送)
    RX 数据包89字节7675 (7.4 KiB)
    RX 错误0丢弃0溢出0帧0
    TX 数据包89字节7675 (7.4 KiB)
    TX 错误0丢弃0溢出0载波0冲突0

    root@ltts-imx6solo:~# ping 192.168.1.6
    Ping 192.168.1.6 (192.168.1.6):56个数据字节
    ^C
    192.168.1.6 ping 统计信息---
    发送4个数据包、接收0个数据包、100%数据包丢失
    root@ltts-imx6SOLO:~#^C
    root@ltts-imx6SOLO:~#

    电路板 SL#2日志:  

    ltts-imx6solo 登录: root
    root@ltts-imx6SOLO:~# MDIO
    [ 94.648231] MDIO_netlink:加载树外模块会损害内核。
    2188000.以太网-1
    固定0
    root@ltts-imx6SOLO:~# ip link set dev eth0 down
    root@ltts-imx6SOLO:~# ip link set dev ethphy0 down
    root@ltts-imx6SOLO:~# ip link set dev ethphy1 down
    root@ltts-imx6SOLO:~# ip link set dev ethphy0 address 00:11:22:33:44:77
    root@ltts-imx6SOLO:~# ip link set dev ethphy1 address 00:11:22:33:44:88
    root@ltts-imx6solo:~# ip addr add dev ethphy0 192.168.1.2/16
    root@ltts-imx6solo:~# ip addr add dev ethphy1 192.168.1.6/16
    root@ltts-imx6SOLO:~# ip link set dev eth0 up
    [ 297.602363] dp83848_config_init:BMCR 0x3100
    [ 297.606710] dp83848_config_init:状态0x0
    [ 297.610985] dp83848_config_init:BMCR 0x3100
    [ 297.622350] dp83848_config_init:status 0x0
    [ 297.626609] dp83848_config_intr:status 0x0
    [ 297.631150] TI DP83848C 10/100Mbps PHY 2188000.Ethernet-1:00:连接的 PHY 驱动程序(MII_BUS:phy_addr=2188000.Ethernet-1:00、IRQ=POLL)
    root@ltts-imx6SOLO:~# ip link set dev ethphy0 up
    [ 307.220431] sja1105 spi1.0 ethphy0:为 phy/mii 链路模式配置
    [307.232338]------- [剪切此处]-------
    [ 307.237280]警告:CPU:0 PID:320 at drivers/net/phy/phy.c:1157 phy_start+0x58/0xb4
    [ 307.245440]从状态 NOLINK 调用
    [ 307.249036]模块链接如下: mdio_netlink (O) bnep tag_sja1105 sja1105 pcs_xpcs brcmfmac brcmutil imx_sdma coda_vpu v4l2_jpeg imx_vdoa evbug
    [307.261946] CPU:0 PID:320 Comm:IP 污染:G O 6.1.58 #1
    [ 307.268927]硬件名称:Freescale i.MX6 Quad/DualLite (设备树)
    [ 307.275469]从 show_stack+0x10/0x14释放
    [ 307.280726]从 dump_stack_lvl+0x58/0x70显示堆栈
    [ 307.285806] dump_stack_lvl from _warn+0x70/0x1a4
    [ 307.290626]___WARN from WARN_slowpath_fmt+0x1bc/0x270
    [ 307.295783]来自 phy_start+0x58/0xb4的 warn_sleppath_fmt
    [ 307.301029] phy_start from DSA_PORT_ENABLE_RT+0x54/0x9C
    [ 307.306367] DSA_PORT_ENABLE_RT (来自 DSA_SLAVE_OPEN+0xb8/0x17c)
    [ 307.312226] DSA_SLAVE_OPEN:从_DEV_OPEN+0xec/0x1ac 开始
    [ 307.317390]_DEV_open from _DEV_CHANGE_FLAGS+0x18c/0x224
    [ 307.322978]从 DEV_CHANGE_FLAGS+0x14/0x44中删除_ DEV_CHANGE_FLAGS
    [ 307.328914]从 do_setlink+0x254/0xe4c 中的 DEV_CHANGE_FLAGS
    [ 307.33439]来自 rtnl_newlink+0x598/0x80c 的 DO_setlink
    [ 307.339414]来自 rtnetlink_rcv_msg+0x168/0x574的 rtnl_newlink
    [ 307.345089] rtnetlink_rcv_msg from netlink_rcv_skb+0xb8/0x11c
    [ 307.350940] netlink_rcv_skb from netlink_unicast+0x1a8/0x2dc
    [ 307.356709]来自 netlink_sendmsg+0x1d8/0x450的 netlink_unicast
    [ 307.362483] netlink_sendmsg from __sys_sendmsg+0x188/0x258
    [ 307.368256]___sys_sendmsg from __sys_sendmsg+0x6c/0xa4
    [ 307.373763]__sys_sendmsg from sys_sendmsg+0x50/0x98
    [ 307.378923]从 ret_fast_syscall+0x0/0x1c 获取的 sys_sendmsg
    [ 307.384168]异常堆栈(0xf1129fa8至0xf1129ff0)
    [ 307.389235] 9fa0:00000000 00000001 00000003 be91f740 00000000 00000000
    [ 307.397425] 9fc0:00000000 00000001 b6eff5a0 00000128 65806370 00000000 004b1cc0 004b1cc0
    [ 307.405614] 9fe0:00000128 be91f6e0 b6dff6d3 b6d71ae6
    [307.410745] IRQ 事件戳:3409
    [ 307.414124] hardirqs Last enabled at (3419):[ ]___UP_CONSOLE_SEM+0x50/0x60
    [307.421989] hardirqs Last disabled at (3426):[ ]___up_console_sem+0x3c/0x60
    [ 307.429898]上次启用时间(3306):[ ]__do_softirq+0x2c0/0x57c
    [ 307.437634]上次禁用时间(3263):[ ]__IRQ_EXIT_RCU+0x138/0x17c
    [ 307.445550]--[结束跟踪000000000000]---
    root@ltts-imx6SOLO:~# ip link set dev ethphy1 up
    [ 320.439141] sja1105 spi1.0 ethphy1:为 phy/mii 链路模式配置
    root@ltts-imx6SOLO:~#[322.563253] sja1105 spi1.0 ethphy1:链路为上- 100Mbps/全-流控关闭
    [ 322.570766] IPv6:ADDRCONF (NETDEV_CHANGE):ethphy1:链路就绪

    root@ltts-imx6SOLO:~#[335.042538] sja1105 spi1.0 ethphy1: link is down (根:ltts-imx6SOLO:)
    [ 338.163096] sja1105 spi1.0 ethphy1:链路已接通- 100Mbps/全-流控制已关闭

    root@ltts-imx6SOLO:~# MDIO 2188000.ETHERNET-1
    开发 PHY-ID 链接
    0x00 0x20005CA2向下
    0x01 0x20005CA2上升
    root@ltts-imx6solico:~# ifocnfig
    -sh: ifocnfig:找不到命令
    root@ltts-imx6SOLO:~# ifconfig
    ETH0:flags=4099 MTU 1504
    乙醚16:5F:0A:5c:D1:ca txqueuelen 1000 (以太网)
    RX 数据包0字节0 (0.0B)
    RX 错误0丢弃0溢出0帧0
    TX 数据包0字节0 (0.0B)
    TX 错误0丢弃0溢出0载波0冲突0

    ethphy0:flags=4099 MTU 1500
    iNet 192.168.1.2网络掩码255.255.0.0广播0.0.0.0
    乙醚00:11:22:33:44:77 txqueuelen 1000 (以太网)
    RX 数据包0字节0 (0.0B)
    RX 错误0丢弃0溢出0帧0
    TX 数据包0字节0 (0.0B)
    TX 错误0丢弃0溢出0载波0冲突0

    ethphy1:flags=4163 MTU 1500
    iNet 192.168.1.6网络掩码255.255.0.0广播0.0.0.0
    inet6 fe80::211:22ff:fe33:4488 prefixlen 64 scopeid 0x20
    乙醚00:11:22:33:44:88 txqueuelen 1000 (以太网)
    RX 数据包0字节0 (0.0B)
    RX 错误0丢弃0溢出0帧0
    TX 数据包41字节5094 (4.9 KiB)
    TX 错误0丢弃0溢出0载波0冲突0

    LO:flags=73 MTU 65536
    iNet 127.0.0.1网络掩码255.0.0.0
    inet6 :: 1 prefixlen 128 scopeid 0x10
    循环 txqueuelen 1000 (本地回送)
    RX 数据包89字节7675 (7.4 KiB)
    RX 错误0丢弃0溢出0帧0
    TX 数据包89字节7675 (7.4 KiB)
    TX 错误0丢弃0溢出0载波0冲突0

    root@ltts-imx6solo:~# ping 192.168.1.1
    Ping 192.168.1.1 (192.168.1.1):56个数据字节
    ^C
    192.168.1.1 ping 统计信息---
    发送7个数据包、接收0个数据包、100%数据包丢失
    root@ltts-imx6SOLO:~#

    链接已建立,但 ping 功能不起作用,因此我可以研究什么来调试此问题?

    此致、

    比特什

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

    尊敬的 Bitesh:

    Alvaro 目前不在办公室。 他会在回到办公室后立即与您联系。

    --

    此致、

    林希尔曼

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

    你好,林希尔曼:

               您可以帮助解决此问题吗?

    此致、

    比特什

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

    尊敬的 Bitesh:

    目前阿尔瓦罗·雷耶斯是圣诞节假期,将在假期后回来. 我们的团队在此期间可以提供帮助、但正如 Alvaro 所述、这是一款旧器件、仅支持数据表和通用知识。 另请注意、美国办事处将从下星期一和星期二以及下星期一开始关闭(节假日)。 随着人们开始度假、支持将受到限制。

    据我了解、您的定制电路板上有 DP83849、是否存在 ping 问题? 如果您能够(通过 Reg 0x1[2])确认链路,我会怀疑 MAC 接口存在问题。 您可以尝试使用 MAC 生成数据包并使用 MII 环回(寄存器0x0[14])循环回数据包,并确认该接口是问题所在。

    此致、

    格罗姆

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

    您好、Gerome Cacho、

                   感谢您的答复。 成功建立、我们可以通过日志进行确认。

    Alvaro 在之前的答复提到了 PHYID 变化。 我们修改了、但没有成功。

    请在下面找到我们的代码:

    代码:

     

    diff --git a/drivers/net/phy/dp83848.c b/drivers/net/phy/dp83848.c 索引 c38d33fd3706..c2c82ce5bb41 100644

    --a/drivers/net/phy/dp83848.c

    ++ b/drivers/net/phy/dp83848.c

    @@-8、6 +@@μ A

     #包含

     #包含

     

    +#define TI_DP83849I_PHY_ID            0x20005ca2

     #define TI_DP83848C_PHY_ID            0x20005ca0

     #define TI_DP83620_PHY_ID             0x20005ce0

     #define NS_DP83848C_PHY_ID            0x20005c90

    @@-173,6+174,8 @@ module_device_table (mDIO、dp83848_tbl);

           }

     

     静态结构 phy_driver dp83848_driver[]={

    +      DP83848_PHY_DRIVER (TI_DP83849I_PHY_ID、"TI DP83849I 10/100Mbps PHY"、

    +                         NULL)、

           DP83848_PHY_DRIVER (TI_DP83848C_PHY_ID、"TI DP83848C 10/100Mbps PHY"、

                              null)、

           DP83848_PHY_DRIVER (NS_DP83848C_PHY_ID、"NS DP83848C 10/100Mbps PHY"、

    登录定制板:

    日志:

    root@ltts-imx6SOLO:~# dmesg | grep SJA

    [  23.765086] sja1105 spi1.0:SPI_IMX_setup:模式1、8 BPW、4000000 Hz

    [  23.765164] sja1105 spi1.0:设置模式1,8位/w,最大4000000 Hz --> 0

    [  23.766160] sja1105 spi1.0:探测开关芯片:SJA1105Q

    [  24.037103] sja1105 spi1.0:为固定/mii 链路模式配置

    [  24.119891] sja1105 spi1.0 ethphy0 (未初始化):Phy

    [2188000.Ethernet-1:00]驱动程序[TI DP83849I 10/100Mbps PHY]

    (IRQ =轮询)

    [  24.279129] sja1105 spi1.0 ethphy1 (未初始化):PHY

    [2188000.Ethernet-1:01]驱动程序[TI DP83849I 10/100Mbps PHY]

    (IRQ =轮询)

    [26.406998]  sja1105 spi1.0:链路接通- 100Mbps/全-流控关闭

     

    PHY0链路未启动、它一开始显示 NOLINK。

     

    下面是 MDIO 寄存器集和链路配置。

    root@ltts-imx6soro:~# cat /usr/phy.sh

    #!/bin/sh

     

    回声========= MDIO:PHY0 =========

    MDIO 2188000.Ethernet-1 phy 0原始0x0

    MDIO 2188000.Ethernet-1 phy 0原始0x1

    MDIO 2188000.Ethernet-1 phy 0原始0x2

    MDIO 2188000.Ethernet-1 phy 0原始0x3

    MDIO 2188000.Ethernet-1 phy 0原始0x4

    MDIO 2188000.Ethernet-1 phy 0原始0x5

    MDIO 2188000.Ethernet-1 phy 0原始0x6

    MDIO 2188000.Ethernet-1 phy 0原始0x7

    MDIO 2188000.Ethernet-1 phy 0原始0x10

    MDIO 2188000.Ethernet-1 phy 0原始0x19

     

    回声========= MDIO:PHY1 =========

    MDIO 2188000.Ethernet-1 phy 1原始0x0

    MDIO 2188000.Ethernet-1 phy 1原始0x1

    MDIO 2188000.Ethernet-1 phy 1原始0x2

    MDIO 2188000.Ethernet-1 phy 1原始0x3

    MDIO 2188000.Ethernet-1 phy 1原始0x4

    MDIO 2188000.Ethernet-1 phy 1原始0x5

    MDIO 2188000.Ethernet-1 phy 1原始0x6

    MDIO 2188000.Ethernet-1 phy 1原始0x7

    MDIO 2188000.Ethernet-1 phy 1原始0x10

    MDIO 2188000.Ethernet-1 phy 1原始0x19

     

    ip link set dev eth0 down

    IP 链路设置 DEV ethphy0 down

    IP 链路设置 DEV ethphy1 down

     

    IP link set dev ethphy0地址00:11:22:33:44:55 IP link set dev ethphy1地址00:11:22:33:44:66

     

    ip addr add dev ethphy0 169.254.178.1/16 ip addr add dev ethphy1 169.253.1782/16

     

    ip link set dev eth0 up

    IP 链路设置 DEV ethphy0 up

    IP 链路设置 DEV ethphy1 up

     

    回波###################### MDIO:PHY0##############

    MDIO 2188000.Ethernet-1 phy 0原始0x0

    MDIO 2188000.Ethernet-1 phy 0原始0x1

    MDIO 2188000.Ethernet-1 phy 0原始0x2

    MDIO 2188000.Ethernet-1 phy 0原始0x3

    MDIO 2188000.Ethernet-1 phy 0原始0x4

    MDIO 2188000.Ethernet-1 phy 0原始0x5

    MDIO 2188000.Ethernet-1 phy 0原始0x6

    MDIO 2188000.Ethernet-1 phy 0原始0x7

    MDIO 2188000.Ethernet-1 phy 0原始0x10

    MDIO 2188000.Ethernet-1 phy 0原始0x19

     

    回波###################### MDIO:PHY1################

    MDIO 2188000.Ethernet-1 phy 1原始0x0

    MDIO 2188000.Ethernet-1 phy 1原始0x1

    MDIO 2188000.Ethernet-1 phy 1原始0x2

    MDIO 2188000.Ethernet-1 phy 1原始0x3

    MDIO 2188000.Ethernet-1 phy 1原始0x4

    MDIO 2188000.Ethernet-1 phy 1原始0x5

    MDIO 2188000.Ethernet-1 phy 1原始0x6

    MDIO 2188000.Ethernet-1 phy 1原始0x7

    MDIO 2188000.Ethernet-1 phy 1原始0x10

    MDIO 2188000.Ethernet-1 phy 1原始0x19

     

     

    root@lts-imx6SOLO:~# mdio 2188000.Ethernet-1 phy 0 RAW 0x0

    0x3900

    root@lts-imx6SOLO:~# MDIO 2188000.Ethernet-1 phy 1 RAW 0x0

    0x3100

    root@ltts-imx6soro:~# bash /usr/phy.sh

    ========= MDIO:PHY0 =========

    0x3900

    0x7849

    0x2000

    0x5ca2

    0x01e1

    0x45e1

    0x0006

    0x2001

    0x0000

    0x8020

    ========= MDIO:PHY1 =========

    0x3100

    0x786d

    0x2000

    0x5ca2

    0x01e1

    0x45e1

    0x0007

    0x2801

    0x0015

    0x8021

    [ 1254.925153] dp83848_config_init:RET 0 [ 1254.929229] TI DP83849I 10/100Mbps PHY 2188000.Ethernet-1:00:

    连接的 PHY 驱动程序(MII_BUS:phy_addr=2188000.Ethernet-1:00、IRQ=POLL )[ 1254.993819] sja1105 spi1.0 ethphy0:配置 phy/mii 链路模式[ 1255.005027]------ [剪切此处]------- [1255.009962]警告:CPU:0 PID:374 at drivers/net/phy/phy.c:1157

    PHY_START+0x58/0xb4

    [1255.018062]从状态 NOLINK 调用

    [ 1255.021656]模块链接在: MDIO_netlink (O) bnep tag_sja1105

    sja1105 pcs_xpcs brcmfmac brcmutil imx_sdma coda_vpu v4l2_jpeg imx_vdoa evbug

    [1255.034578] CPU: 0 PID: 374 Comm : IP Insided : G          O      6.1.58 #1

    [ 1255.041560]硬件名称:Freescale i.MX6 Quad/DualLite (设备树)          从 show_stack+0x10/0x14 [1255.053361] show_stack from dump_stack_lvl+0x58/0x70 [1255.058441] dsp_stack_lvl from show_warn+0x70/0x1a4[5.0632258]  来自 do_setlink+0x254/0xe4c [1255.106974]  来自 rtnl_newlink+0x598/0x80c [1255.112048] rtnl_newlink         [ 1255.156801]异常堆栈(0xf10c9fa8到0xf10c9ff0)

    [ 1255.161867] 9fa0:                  00000000 00000001 00000003

    beef2730 00000000 00000000

    [ 1255.170057] 9fc0:00000000 00000001 b6f9e5a0 00000128 626adc51

    00000000 004d1cc0 004d1cc0

    [1255.178244] 9fe0: 00000128 beef26d0 b6e9f6d3 b6e11ae6 [1255.183469] IRQ 事件戳 : 3345 [1255.186852] hardirqs Last enabled at (3355):[ ]

    __UP_CONSOLE_SEM+0x50/0x60

    [1255.194715] hardirqs Last disabled at (3362):[ ]

    __up_console_sem+0x3c/0x60

    [1255.202628]上次 启用时间(3344):[ ]__do_softirq+0x2c0/0x57c [ 1255.210365] softirqs Last disabled at (3325):[ ]__IRQ_EXIT_RCU+0x138/0x17c [ 1255.218281]--[结束跟踪000000000000 ]--[ 1255.293759] sja1105 spi1.0 ethphy1:为 phy/mii 链路模式配置

     

    0x3100

    0x7849

    0x2000

    0x5ca2

    0x05e1

    0x0000

    0x0004

    0x2001

    0x0000

    0x8020

     

    0x3100

    0x7849

    0x2000

    0x5ca2

    0x0141

    0x0000

    0x0005

    0x2801

    0x0000

    0x8021

    root@ltts-imx6SOLO:~#[ 1257.045875] fec 2188000.Ethernet eth0:链路为上- 100Mbps/全-流控制 Rx/TX [ 1257.054008] ipv6:ADDRCONF (NETDEV_CHANGE):eth0:链路已就绪[ 7.NET971] sja1105 spi1.0 ethphy1:链路已就绪- floeV[ ADDR357EV_f]:链路已就绪- fl:fl (NETDEV_CHANGE):fLIFE:fLIFE:fLIFE:ADDRFULL:ADDRCONF:

     

    root@ltts-imx6SOLO:~# ifconfig -a

    ETH0:flags=4163  MTU 1504

           inet6 fe80::7c4c:1aff:fe5e:cbf0 prefixlen 64 scopeid 0x20

           乙醚7e:4c:1a:5e:cb:f0 txqueuelen 1000 (以太网)

           RX 数据包0 字节0 (0.0B)

           RX 错误0 丢弃0 溢出0 帧0

           TX 数据包0 字节0 (0.0B)

           TX 错误0 丢弃0溢出0 载波0 冲突0

     

    ethphy0:flags=4099  MTU 1500

           iNet 169.254.178.1 netmask 255.255.0.0 broadcast 0.0.0.0

           乙醚00:11:22:33:44:55 txqueuelen 1000 (以太网)

           RX 数据包0 字节0 (0.0B)

           RX 错误0 丢弃0 溢出0 帧0

           TX 数据包0 字节0 (0.0B)

           TX 错误0 丢弃0溢出0 载波0 冲突0

     

    ethphy1:flags=4163  MTU 1500

           iNet 169.253.178.2 网络掩码255.255.0.0 广播0.0.0.0

           inet6 fe80::211:22ff:fe33:4466 prefixlen 64 scopeid 0x20

           乙醚00:11:22:33:44:66 txqueuelen 1000 (以太网)

           RX 数据包0 字节0 (0.0B)

           RX 错误0 丢弃0 溢出0 帧0

           TX 数据包32 字节4211 (4.1 KiB)

           TX 错误0 丢弃0溢出0 载波0 冲突0

     

    LO:flags=73  MTU 65536

           iNet 127.0.0.1 网络掩码255.0.0.0

           inet6 :: 1 prefixlen 128 scopeid 0x10

           循环 txqueuelen 1000 (本地回送)

           RX 数据包91 字节7801 (7.6 KiB)

           RX 错误0 丢弃0 溢出0 帧0

           TX 数据包91 字节7801 (7.6 KiB)

           TX 错误0 丢弃0溢出0 载波0 冲突0

     

    sit0:标志=128  MTU 1480

           Unspec 00-00-00-00-00-31-00-00-4A-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00

    txqueuelen 1000 (UNSPEC)

           RX 数据包0 字节0 (0.0B)

           RX 错误0 丢弃0 溢出0 帧0

           TX 数据包0 字节0 (0.0B)

           TX 错误0 丢弃0溢出0 载波0 冲突0

     

    wlan0:flags=4098  MTU 1500

           乙醚 c0:ee:40:82:2f:fc txqueuelen 1000 (以太网)

           RX 数据包0 字节0 (0.0B)

           RX 错误0 丢弃0 溢出0 帧0

           TX 数据包0 字节0 (0.0B)

           TX 错误0 丢弃0溢出0 载波0 冲突0

     

    root@ltts-imx6SOLO:~# MDIO 2188000.ETHERNET-1

     开发     PHY-ID 链接

    0x00 0x20005CA2 上升

    0x01 0x20005CA2 上升

     

    您能看到日志吗、让我们知道为什么我们在开始时收到警告、PHY 0没有启动。 如果您在日志中发现任何异常、请告诉我。

    此致、

    比特什

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

    尊敬的 Bitesh:

    遗憾的是、我不擅长软件、不擅长硬件、因此我无法进行完整的分析。 不过、我确实看到 PHY0链路直到最后一部分才建立、而 PHY1链路是间歇性的。 虽然我不确定日志记录期间会发生什么情况、但由于 PHY 链路在最后一个段中已建立、您能否确认链路已建立?  

    此致、

    格罗姆

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

    e2e.ti.com/.../5226.ethernet-section-schematic.pdfHiGerome Cacho,

                    感谢您的答复。 为 PHY 0和 PHY 1建立链路、但在初始化期间没有建立链路。 PHY 0抛出警告。

    我们给电路板上电并读取 PHY 0寄存器的地址0x00时、我们读数为0x3900 (这表示断电位为高电平)

    但 PHY 1寄存器地址0x00的内容是0x3100 (正常操作)。

    我们 在原理图中将 PWRDOWN_INT_A (引脚18)和 PWRDOWN_INT_B (引脚44)悬空。 如上所述, Phy 0和 Phy 1的地址0x00的内容是否有变化? 或者我们必须注意软件驱动器中的某个器件。  

    当我们发出 PHY 0 up 命令时、我们会得到如下警告日志:  

    root@ltts-imx6SOLO:~# ip link set dev ethphy0 up
    [ 216.25001] sja1105 spi1.0 ethphy0:为 phy/mii 链路模式进行配置
    [216.261025]------- [剪切此处]-------
    [216.265962]警告:CPU:0 PID:321 at drivers/net/phy/phy.c:1157 phy_start+0x58/0xb4
    [216.274115]从状态 NOLINK 调用
    [216.277712]模块链接如下: mdio_netlink (O) bnep tag_sja1105 sja1105 pcs_xpcs brcmfmac brcmutil imx_sdma coda_vpu v4l2_jpeg imx_vdoa evbug
    [216.290622] CPU:0 PID:321 Comm:IP Doyed:G O 6.1.58 #1
    [ 216.297605]硬件名称:Freescale i.MX6 Quad/DualLite (设备树)
    [216.304148]从 show_stack+0x10/0x14释放
    [ 216.309405] show_stack from dump_stack_lvl+0x58/0x70
    [ 216.314486] dump_stack_lvl from __warn+0x70/0x1a4
    [ 216.319306]__WARN from WARN_slowpath_fmt+0x1bc/0x270
    [ 216.324463]来自 phy_start+0x58/0xb4的 warn_sleppath_fmt
    [ 216.329712] phy_start from DSA_PORT_ENABLE_RT+0x54/0x9C
    [ 216.335047]从 DSA_SLAVE_OPEND+0xb8/0x17c 的 DSA_PORT_ENABLE_RT
    [216.340907] DSA_slave_open (从_dev_open+0xec/0x1ac 开始)
    [ 216.346069]__ DEV_open from _ DEV_CHANGE_FLAGS+0x18c/0x224
    [ 216.351659]_DEV_CHANGE_FLAGS+0x14/0x44
    [ 216.357594]从 do_setlink+0x254/0xe4c 中的 dev_change_flags
    [ 216.363018] DO_setlink from rtnl_newlink+0x598/0x80c
    [ 216.368091] rtnl_newlink from rtnetlink_rcv_msg+0x168/0x574
    [ 216.373767]来自 netlink_rcv_skb+0xb8/0x11c 的 rtnetlink_rcv_msg
    [ 216.379617] netlink_rcv_skb from netlink_unicast+0x1a8/0x2dc
    [216.385387]来自 netlink_sendmsg+0x1d8/0x450的 netlink_unicast
    [216.39116] netlink_sendmsg from __sys_sendmsg+0x188/0x258
    [ 216.396932]___sys_sendmsg from __sys_sendmsg+0x6c/0xa4
    [ 216.402438]__sys_sendmsg from sys_sendmsg+0x50/0x98
    [ 216.407597] sys_sendmsg from ret_fast_syscall+0x0/0x1c
    [ 216.412842]异常堆栈(0xf1145fa8至0xf1145ff0)
    [216.417909] 5fa0:00000000 00000001 00000003 beedc710 00000000 00000000
    [ 216.426100] 5fc0:00000000 00000001 b6fb75a0 00000128 626adb9a 00000000 00561cc0 00561cc0
    [216.434288] 5fe0: 00000128 beedc6b0 b6ebf6d3 b6e31ae6
    [216.439419] IRQ 事件戳:3265
    [216.442803] hardirqs last enabled at (3275):[ ]___UP_CONSOLE_SEM+0x50/0x60
    [216.450666] hardirqs Last disabled at (3282):[ ]___up_console_sem+0x3c/0x60
    [216.458576]最近启用的软件(3162):[ ]__do_softirq+0x2c0/0x57c
    [216.466313]上次禁用时间:(3123):[ ]__IRQ_EXIT_RCU+0x138/0x17c
    [ 216.474229]--[结束布线0000000000000000]---

    您能告诉我们您的软件同事为什么会收到此警告以及如何修复它吗?

    当我们 向 PHY 1发出命令时、它不会在日志中提供任何警告、并且会如下面所述完美运行。  

    root@ltts-imx6SOLO:~# ip link set dev ethphy1 up
    [ 223.997870] sja1105 spi1.0 ethphy1:为 phy/mii 链路模式配置
    root@ltts-imx6Solo:~#[226.081937] sja1105 spi1.0 ethphy1:链路已接通- 100Mbps/完整-流控关闭
    [ 226.089444] IPv6:ADDRCONF (NETDEV_CHANGE):ethphy1:链路变为读取

    您还可以查看我们的原理图,特别是变压器部分,并告诉我们是否有任何错误? 我们在 TPTDP、TPTDM、TPRDP、TPRDM 线路上增加了50欧姆上拉电阻到3.3V、这在原理图中没有提及。 请检查是否有任何其他连接丢失。

    提前感谢。

    此致、

    比特什

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

    尊敬的 Bitesh:

    由于节假日即将到来、最早到明年年初才会提供软件支持。 我建议使用 SoC 进行签入、以调试这些基于日志的问题、看看它们总体上是否具备更好的能力来处理此类查询。  

    关于变压器选型、这里唯一支持的是将给定变压器与数据表中的变压器进行比较。 根据对 H1174与 H1102的比较、高频时的回波损耗低于1102。 不过、正如数据表中所述、最好进行验证、以了解这种差异是否对操作至关重要。

    什么是 U36和37? 是这些 ESD 二极管吗?

    变压器的中心抽头也应上拉至 VCC。

    此致、

    格罗姆