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.

[参考译文] PROCESSOR-SDK-AM64X:AM6442 ICSSG1连接到2个 PHY

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1116655/processor-sdk-am64x-am6442-icssg1-connected-to-2-phys

器件型号:PROCESSOR-SDK-AM64X
主题中讨论的其他器件:DP83869HM

我有一个带 AM64X 处理器的定制硬件。

我的软件是 Linux 内核5.10.41。

我有2个 DP83869HM PHY 连接到 ICSSG1-pru1和 ICSSG1-pru0

我正在使用  08.04.00.003中的 am65x-sr2-固件:   

am65x-sr2-pru0-prueth-Fw.elf   am65x-sr2-rtu1-prueth-Fw.elf
am65x-sr2-pru1-prueth-Fw.elf  am65x-sr2-txpru0-prueth-Fw.elf
am65x-sr2-rtu0-prueth-Fw.elf  am65x-sr2-txpru1-prueth-Fw.elf

我可以检测 MDIO 总线上2个 PHY 的链路 、但无法通过 MII 总线(RGMII)发送/接收数据。

我想器件树中的某些内容未正确定义、或者我使用了错误的固件。

当我尝试 ping 外部时、TX 计数器会增加、但 RX 计数器保持为0。

在另一台计算机上使用 tcpdump、我验证了硬件中的数据实际上没有发送。

设备树:

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// SPDX-License-Identifier: GPL-2.0
/*
* Copyright (C) 2020-2021 Texas Instruments Incorporated - https://www.ti.com/
*/
/dts-v1/;
#include <dt-bindings/phy/phy.h>
#include <dt-bindings/mux/ti-serdes.h>
#include <dt-bindings/leds/common.h>
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/net/ti-dp83869.h>
#include "k3-am642.dtsi"
/ {
compatible = "ti,am642-evm", "ti,am642";
model = "Texas Instruments AM642 SolidRun Board";
chosen {
stdout-path = "serial2:115200n8";
bootargs = "console=ttyS2,115200n8 earlycon=ns16550a,mmio32,0x02800000";
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

相关引导日志部件:

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# ifconfig eth1 up
[ 79.841549] remoteproc remoteproc10: powering up 300b4000.pru
[ 79.851856] remoteproc remoteproc10: Booting fw image ti-pruss/am65x-sr2-pru0-prueth-fw.elf, size 37644
[ 79.861316] remoteproc remoteproc10: unsupported resource 5
[ 79.866920] remoteproc remoteproc10: remote processor 300b4000.pru is now up
[ 79.874001] remoteproc remoteproc11: powering up 30084000.rtu
[ 79.883143] remoteproc remoteproc11: Booting fw image ti-pruss/am65x-sr2-rtu0-prueth-fw.elf, size 30860
[ 79.892609] remoteproc remoteproc11: remote processor 30084000.rtu is now up
[ 79.899693] remoteproc remoteproc12: powering up 3008a000.txpru
[ 79.908897] remoteproc remoteproc12: Booting fw image ti-pruss/am65x-sr2-txpru0-prueth-fw.elf, size 36948
[ 79.918520] remoteproc remoteproc12: remote processor 3008a000.txpru is now up
[ 79.927114] pps pps1: new PPS source ptp2
[ 79.932895] TI DP83869 300b2400.mdio:0f: attached PHY driver [TI DP83869] (mii_bus:phy_addr=300b2400.mdio:0f, irq=POLL)
[ 79.943998] net eth1: started
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Fullscreen
1
2
3
4
5
6
7
8
# dmesg | grep davinci
[ 0.182966] davinci_mdio 4a10100000001000.mdio: failed to get device clock
[ 0.182994] davinci_mdio: probe of 4a10100000001000.mdio failed with error -2
[ 0.391513] davinci_mdio 300b2400.mdio: davinci mdio revision 1.7, bus freq 1000000
[ 0.408862] davinci_mdio 300b2400.mdio: phy[3]: device 300b2400.mdio:03, driver TI DP83869
[ 0.408886] davinci_mdio 300b2400.mdio: phy[15]: device 300b2400.mdio:0f, driver TI DP83869
[ 2.339512] davinci_mdio 8000f00.mdio: davinci mdio revision 9.7, bus freq 1000000
[ 2.356371] davinci_mdio 8000f00.mdio: phy[0]: device 8000f00.mdio:00, driver TI DP83869
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# ethtool eth1
Settings for eth1:
Supported ports: [ TP MII ]
Supported link modes: 10baseT/Full
100baseT/Full
1000baseT/Full
1000baseX/Full
Supported pause frame use: No
Supports auto-negotiation: Yes
Supported FEC modes: Not reported
Advertised link modes: 10baseT/Full
100baseT/Full
1000baseT/Full
1000baseX/Full
Advertised pause frame use: No
Advertised auto-negotiation: Yes
Advertised FEC modes: Not reported
Link partner advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Link partner advertised pause frame use: No
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# ethtool -S eth1
NIC statistics:
rx_good_frames: 0
rx_broadcast_frames: 0
rx_multicast_frames: 0
rx_crc_error_frames: 0
rx_mii_error_frames: 0
rx_odd_nibble_frames: 0
rx_frame_max_size: 2000
rx_max_size_error_frames: 0
rx_frame_min_size: 64
rx_min_size_error_frames: 16
rx_overrun_frames: 0
rx_class0_hits: 16
rx_class1_hits: 0
rx_class2_hits: 0
rx_class3_hits: 0
rx_class4_hits: 0
rx_class5_hits: 0
rx_class6_hits: 0
rx_class7_hits: 0
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

完整引导日志  

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
U-Boot 2021.01-00014-gf70147e0-dirty (Jul 10 2022 - 18:31:56 +0000)
SoC: AM64X SR1.0
Model: Texas Instruments AM642 SolidRun Board
DRAM: 1 GiB
MMC: mmc@fa10000: 0, mmc@fa00000: 1
In: serial@2800000
Out: serial@2800000
Err: serial@2800000
No MAC address 1 in EEPROM, using random MAC address.
No MAC address 2 in EEPROM, using random MAC address.
No MAC address 3 in EEPROM, using random MAC address.
Net: eth0: ethernet@8000000
Hit any key to stop autoboot: 0
19950080 bytes read in 858 ms (22.2 MiB/s)
53852 bytes read in 5 ms (10.3 MiB/s)
## Flattened Device Tree blob at 88000000
Booting using the fdt blob at 0x88000000
Loading Device Tree to 000000008ffef000, end 000000008ffff25b ... OK
Starting kernel ...
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

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

    您好!

    抱歉、由于回复延迟、您的问题被分配给了错误的员工。 今天稍后、我将尝试回圈并进行更仔细的研究。 如果您明天尚未收到响应、请对该主题执行 Ping 操作。

    此致、

    Nick

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

    您好、Nick、

    我还没有收到任何回复。