主题中讨论的其他器件: DRA821
工具与软件:
您好、DRA821U 变形!
"如何在 DRA821上为 SGMII、RMII 启用 CPSw5g Linux 本机以太网"
关于最初的主题、已通过 E2E 主题对 TanMay 进行了跟进、
我试图通过消息联系他、但他本周没有机会联系。
您能否检查原始主题并提供相应的有用操作?
谢谢。
此致、
插孔
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.
您好!
从之前/更早的线程中、我可以看到您使用的是 SDK 9.0。
有关为 CPSW5G 启用原生 Linux 驱动程序的信息、请参阅以下常见问题解答。
e2e.ti.com/.../faq-how-do-i-bring-brought-up-ethernet-interfaces-for-main-domain-cpswng-in-linux-from-sdk-version-9-0-and-above
此外、根据所需的接口更新器件树。
如果您遇到任何问题、请分享 Linux 日志。
此致、
Sudheer
您好!
>> serdes0_usb_link:phy@2 {
REG =<3>;
上面使用 phy@3、因为使用串行器/解串器通道3。
>>phy-names ="portmode"、"SerDes-phy";
将上述内容更改为 "Phy-names ="portmode"、"SerDes";
根据 TI SDK 9.1、检查串行器/解串器配置的名称。
此外、请确保从 u-boot 禁用串行器/解串器配置。
默认情况下、串行器/解串器0通过 u-boot 为 PCIe + QSGMII 配置。
另外请注意、SDK 9.1不支持 MDIO 的 C45模式。
由于 MDIO 勘误表 i2329、MDIO 使用位拆裂在手动模式下运行、它仅支持 C22、不支持 C45。
此致、
Sudheer
您好!
您能否请 u-boot 和 Linux 终端日志?
此外、您能否请 CPSW SGMII 端口寄存器。
状态寄存器:0x0C000114 + 0x100 *(x)//x 为端口号:0、1、2、3。
控制寄存器:0x0C000110h + 0x100 *(x)
MR ADV 寄存器:0x0C000118h + 0x100 *(x)
此外、串行器/解串器通道控制寄存器:
通道0:0x00104080
通道1:0x00104084
通道2:0x00104088
通道3:0x0010408C
此外、ENET 端口控制寄存器:
端口1:0x00104044
端口2:0x00104048
端口3:0x0010404C
端口4:0x00104050
此外、串行器/解串器 PLL 锁定状态:
0x0506E000
此致、
Sudheer
您好!
很抱歉这么晚才回复。
有关登记册查询的结果如下。
状态寄存器
root@TGU:~# devmem2 0x0C000114 w
/dev/mem 打开。
已将存储器映射至地址0xff83aae000。
在地址0x0C000114 (0xffffff83aae114)处读取:0x00000031
root@TGU:~# devmem2 0x0C000214 w
/dev/mem 打开。
已将内存映射至地址0xffffb3575000。
在地址0x0C000214 (0xffffff3575214)处读取:0x00000022
root@TGU:~# devmem2 0x0C000314 w
/dev/mem 打开。
已将存储器映射至地址0xFFffb9732000。
在地址0x0C000314 (0xFFffb9732314)处读取:0x0000002A
root@TGU:~# devmem2 0x0C000414 w
/dev/mem 打开。
存储器映射在地址0xffa33e1000。
在地址0x0C000414 (0xffffff33e1414)处读取:0x00000031
控制寄存器
root@TGU:~# devmem2 0x0C000110 w
/dev/mem 打开。
存储器映射在地址0xffbe0be000。
在地址0x0C000110 (0xffffffbe0be110)处读取:0x00000000
root@TGU:~# devmem2 0x0C000210 w
/dev/mem 打开。
映射到地址0xffffb1f23000处的存储器。
在地址0x0C000210 (0xffffff1f23210)处读取:0x00000000
root@TGU:~# devmem2 0x0C000310 w
/dev/mem 打开。
存储器映射在地址0xff91fca000处。
在地址0x0C000310 (0xFFff91fca310):0x00000000处读取
root@TGU:~# devmem2 0x0C000410 w
/dev/mem 打开。
存储器映射在地址0xff88522000处。
在地址0x0C000410 (0xffffff88522410)处读取:0x00000000
MR ADV 寄存器
root@TGU:~# devmem2 0x0C000118 w
/dev/mem 打开。
存储器映射在地址0xff94181000处。
在地址0x0C000118 (0xffffff94181118)上读取:0x00000000
root@TGU:~# devmem2 0x0C000218 w
/dev/mem 打开。
存储器映射在地址0xfffbd3f5000处。
在地址0x0C000218 (0xFFFffbd3f5218):0x00000000处读取
root@TGU:~# devmem2 0x0C000318 w
/dev/mem 打开。
存储器映射在地址0xff8c42d000处。
在地址0x0C000318 (0xffffff8c42d318)上读取:0x00000000
root@TGU:~# devmem2 0x0C000418 w
/dev/mem 打开。
地址0xffffff8af46000处映射了存储器。
在地址0x0C000418 (0xffffff8af46418)上读取:0x00000000
串行器/解串器通道控制寄存器
root@TGU:~# devmem2 0x00104080 w
/dev/mem 打开。
存储器映射在地址0xff98c1f000处。
在地址0x00104080 (0xffffff98c1f080)上读取:0x00000002
root@TGU:~# devmem2 0x00104084 w
/dev/mem 打开。
存储器映射在地址0xff8dae3000。
在地址0x00104084 (0xffffff8dae3084)处读取:0x00000000
root@TGU:~# devmem2 0x00104088 w
/dev/mem 打开。
存储器映射在地址0xff9e8b5000处。
在地址0x00104088 (0xffffff9e8b5088):0x00000000处读取
root@TGU:~# devmem2 0x0010408c w
/dev/mem 打开。
存储器映射在地址0xff85610000处。
在地址0x0010408C (0xffffff8561008c)处读取:0x00000002
ENET 端口控制寄存器
root@TGU:~# devmem2 0x00104044 w
/dev/mem 打开。
映射到地址0xffffb23de000处的存储器。
在地址0x00104044 (0xffffb23de044):0x00000003处读取
root@TGU:~# devmem2 0x00104048 w
/dev/mem 打开。
存储器映射在地址0xff8c1ee000。
在地址0x00104048 (0xffffff8c1ee048)上读取:0x00000002
root@TGU:~# devmem2 0x0010404c w
/dev/mem 打开。
存储器映射在地址0xff7fff2000处。
在地址0x0010404C (0xffffff7fff204c)处读取:0x00000002
root@TGU:~# devmem2 0x00104050 w
/dev/mem 打开。
已在地址0xFFffb9aa1000处映射内存。
在地址0x00104050 (0xFFffb9aa1050)处读取:0x00000003
串行器/解串器 PLL 锁定状态
root@TGU:~# devmem2 0x0506E000 w
/dev/mem 打开。
存储器映射在地址0xff8591f000处。
在地址0x0506E000 (0xffffff8591f000)处读取:0x00C30011
此致、
Dohyeon.Kim
您好!
从寄存器转储来看、SerDes PLL 似乎已锁定。
CPSW 端口1、4配置为 SGMII 模式。
串行器/解串器通道控制也与连接有关、即 SGMII 中的通道1、通道2和 USB 中的通道3。
从 CPSW SGMII 状态寄存器来看、似乎自协商未完成。
此外、从 CPSW SGMII 控制寄存器开始、不启用自动协商。
您是否可以通过在驱动程序中添加打印内容来检查 am65-cpsw-nuss 驱动程序是否为 SGMII 配置。
此外、我无法从端口1、端口4观察到任何日志(具有 PHY 5、6)从 您的日志建立链路。
将上述内容更改为 "Phy-names ="portmode"、"SerDes";
根据 TI SDK 9.1、检查串行器/解串器配置的名称。[/QUOT]完成上述更改后、您能否共享 Linux 日志?
此致、
Sudheer
您好!
无法从日志中看到 PHY5、6链接。
>> serdes0_usb_link:phy@2 {
REG =<3>;
上面使用 phy@3、因为使用串行器/解串器通道3。
>>phy-names ="portmode"、"SerDes-phy";
将上述内容更改为 "Phy-names ="portmode"、"SerDes";
您能否也为端口1添加"phy-names"。
此外、您能否分享以下命令日志。
#ifconfig -A
此致、
Sudheer
您好!
是否是我在检测到 PHY 日志之前附加的日志的以下项?
[ 0.901186] Davinci_MDIO c000f00.MDIO:PHY[5]:器件 c000f00.MDIO:05、驱动程序 mv88q2221
[ 0.905205] Davinci_MDIO c000f00.MDIO:PHY[6]:器件 c000f00.MDIO:06、驱动程序 mv88q2221
我需要有关 PHY 的什么日志?
root@tgu:~# ifconfig -a
can1 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
UP RUNNING NOARP MTU:16 Metric:1
RX packets:0 errors:0 dropped:2 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Interrupt:22
can2 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
UP RUNNING NOARP MTU:16 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Interrupt:25
can3 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
UP RUNNING NOARP MTU:16 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Interrupt:28
can4 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
UP RUNNING NOARP MTU:16 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Interrupt:30
can5 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
UP RUNNING NOARP MTU:72 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Interrupt:31
can6 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
UP RUNNING NOARP MTU:72 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Interrupt:32
eth0 Link encap:Ethernet HWaddr A0:B0:C0:D0:E0:F0
inet addr:192.168.218.254 Bcast:0.0.0.0 Mask:255.255.255.0
inet6 addr: fe80::a2b0:c0ff:fed0:e0f0/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:53 errors:0 dropped:0 overruns:0 frame:0
TX packets:23 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:3388 (3.3 KiB) TX bytes:1752 (1.7 KiB)
eth1 Link encap:Ethernet HWaddr 22:DE:27:A9:5C:4A
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
eth2 Link encap:Ethernet HWaddr 4A:38:66:1A:98:D0
inet6 addr: fe80::4838:66ff:fe1a:98d0/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:13 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:1105 (1.0 KiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:48702 errors:0 dropped:0 overruns:0 frame:0
TX packets:48702 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:3108351 (2.9 MiB) TX bytes:3108351 (2.9 MiB)
root@tgu:~# ifconfig eth1 up
[ 620.922265] mv88q2221_config speed 1000 ----------
[ 620.935149] PHY 5: rev B0 for initial PHY
[ 621.203735] >> Link Status: Down
[ 621.205660] >> Latched Link Status 1: Down
[ 621.208886] >> Real Time Link Status: Down
[ 621.211285] >> Latched Link Status 2: Down
[ 621.213355] >> Master/Slave: Master
[ 621.215098] >> Speed: GE/1000
[ 621.216592] am65-cpsw-nuss c000000.ethernet eth1: PHY [c000f00.mdio:05] driver [mv88q2221] (irq=POLL)
[ 621.221228] am65-cpsw-nuss c000000.ethernet eth1: configuring for phy/sgmii link mode
root@tgu:~# ifconfig eth2 up
[ 624.868760] mv88q2221_config speed 1000 ----------
[ 624.883222] PHY 6: rev B0 for initial PHY
[ 625.151812] >> Link Status: Up
[ 625.153698] >> Latched Link Status 1: Down
[ 625.156933] >> Real Time Link Status: Up
[ 625.159257] >> Latched Link Status 2: Up
[ 625.161235] >> Master/Slave: Master
[ 625.162979] >> Speed: GE/1000
[ 625.164472] am65-cpsw-nuss c000000.ethernet eth2: PHY [c000f00.mdio:06] driver [mv88q2221] (irq=POLL)
[ 625.169092] am65-cpsw-nuss c000000.ethernet eth2: configuring for phy/sgmii link mode
root@tgu:~# [ 625.230622] am65-cpsw-nuss c000000.ethernet eth2: Link is Up - 1Gbps/Full - flow control off
root@tgu:~# ethtool eth1
Settings for eth1:
Supported ports: [ ]
Supported link modes: 100baseT1/Full
1000baseT1/Full
Supported pause frame use: Symmetric
Supports auto-negotiation: No
Supported FEC modes: Not reported
Advertised link modes: 100baseT1/Full
1000baseT1/Full
Advertised pause frame use: Symmetric
Advertised auto-negotiation: No
Advertised FEC modes: Not reported
Speed: 1000Mb/s
Duplex: Full
Auto-negotiation: off
Port: Twisted Pair
PHYAD: 5
Transceiver: external
MDI-X: Unknown
Supports Wake-on: d
Wake-on: d
Current message level: 0x000020f7 (8439)
drv probe link ifdown ifup rx_err tx_err hw
Link detected: no
SQI: 0/15
root@tgu:~#
root@tgu:~# ethtool eth2
Settings for eth2:
Supported ports: [ ]
Supported link modes: 100baseT1/Full
1000baseT1/Full
Supported pause frame use: Symmetric
Supports auto-negotiation: No
Supported FEC modes: Not reported
Advertised link modes: 100baseT1/Full
1000baseT1/Full
Advertised pause frame use: Symmetric
Advertised auto-negotiation: No
Advertised FEC modes: Not reported
Speed: 1000Mb/s
Duplex: Full
Auto-negotiation: off
Port: Twisted Pair
PHYAD: 6
Transceiver: external
MDI-X: Unknown
Supports Wake-on: d
Wake-on: d
Current message level: 0x000020f7 (8439)
drv probe link ifdown ifup rx_err tx_err hw
Link detected: yes
SQI: 15/15
root@tgu:~#
此致、
Dohyeon.Kim
您好!
关于 PHY 我需要什么日志?
我的预期日志如下所示。 PHY 配置为 SGMII 模式并且链路接通。
[ 625.164472] am65-cpsw-nuss c000000.ethernet eth2:phy [c000f00.mDIO:06]驱动器[mv88q2221](IRQ=poll)
[ 625.169092] am65-cpsw-nuss c000000.ethernet eth2:配置 phy/SGMII 链路模式
root@TGU:~#[ 625.230622] am65-cpsw-nuss c000000.ethernet eth2:链路接通- 1Gbps/全-流量控制关闭
如果 MAC 端口4连接到外部设备?
端口链路建立后、我可以从 eth2 ifconfig 日志中看到 TX 数据包计数。
您是否可以通过将端口4连接到 DHCP 网络来检查 ping。
另外、检查 CPSW 统计信息以确认数据包传输和接收到端口4。
#ethtool -S eth2
此外、我可以观察到 PHY-5未建立链路、因此无法与外部网络通信。
此致、
Sudheer
您好!
我把它理解为下面的图片。
是否有误解?

DRA821 eth2 IP 地址:192.168.200.1/24
PC IP 地址:192.168.200.254/24
在 PC 上、Wireshark 如下所示。

位于 DRA821 eth2 tcpdump 中

在 DRA821 ethtool -S eth2上
root@tgu:~# ethtool -S eth2
NIC statistics:
p0_rx_good_frames: 582
p0_rx_broadcast_frames: 457
p0_rx_multicast_frames: 125
p0_rx_crc_errors: 0
p0_rx_oversized_frames: 0
p0_rx_undersized_frames: 0
p0_ale_drop: 0
p0_ale_overrun_drop: 0
p0_rx_octets: 38771
p0_tx_good_frames: 0
p0_tx_broadcast_frames: 0
p0_tx_multicast_frames: 0
p0_tx_octets: 0
p0_tx_64B_frames: 459
p0_tx_65_to_127B_frames: 123
p0_tx_128_to_255B_frames: 0
p0_tx_256_to_511B_frames: 0
p0_tx_512_to_1023B_frames: 0
p0_tx_1024B_frames: 0
p0_net_octets: 38771
p0_rx_bottom_fifo_drop: 0
p0_rx_port_mask_drop: 0
p0_rx_top_fifo_drop: 0
p0_ale_rate_limit_drop: 0
p0_ale_vid_ingress_drop: 0
p0_ale_da_eq_sa_drop: 0
p0_ale_block_drop: 0
p0_ale_secure_drop: 0
p0_ale_auth_drop: 0
p0_ale_unknown_ucast: 0
p0_ale_unknown_ucast_bytes: 0
p0_ale_unknown_mcast: 0
p0_ale_unknown_mcast_bytes: 0
p0_ale_unknown_bcast: 0
p0_ale_unknown_bcast_bytes: 0
p0_ale_pol_match: 0
p0_ale_pol_match_red: 0
p0_ale_pol_match_yellow: 0
p0_ale_mcast_sa_drop: 0
p0_ale_dual_vlan_drop: 0
p0_ale_len_err_drop: 0
p0_ale_ip_next_hdr_drop: 0
p0_ale_ipv4_frag_drop: 0
p0_tx_mem_protect_err: 0
p0_tx_pri0: 0
p0_tx_pri1: 0
p0_tx_pri2: 0
p0_tx_pri3: 0
p0_tx_pri4: 0
p0_tx_pri5: 0
p0_tx_pri6: 0
p0_tx_pri7: 0
p0_tx_pri0_bcnt: 0
p0_tx_pri1_bcnt: 0
p0_tx_pri2_bcnt: 0
p0_tx_pri3_bcnt: 0
p0_tx_pri4_bcnt: 0
p0_tx_pri5_bcnt: 0
p0_tx_pri6_bcnt: 0
p0_tx_pri7_bcnt: 0
p0_tx_pri0_drop: 0
p0_tx_pri1_drop: 0
p0_tx_pri2_drop: 0
p0_tx_pri3_drop: 0
p0_tx_pri4_drop: 0
p0_tx_pri5_drop: 0
p0_tx_pri6_drop: 0
p0_tx_pri7_drop: 0
p0_tx_pri0_drop_bcnt: 0
p0_tx_pri1_drop_bcnt: 0
p0_tx_pri2_drop_bcnt: 0
p0_tx_pri3_drop_bcnt: 0
p0_tx_pri4_drop_bcnt: 0
p0_tx_pri5_drop_bcnt: 0
p0_tx_pri6_drop_bcnt: 0
p0_tx_pri7_drop_bcnt: 0
rx_good_frames: 0
rx_broadcast_frames: 0
rx_multicast_frames: 0
rx_pause_frames: 0
rx_crc_errors: 0
rx_align_code_errors: 0
rx_oversized_frames: 0
rx_jabber_frames: 0
rx_undersized_frames: 0
rx_fragments: 0
ale_drop: 0
ale_overrun_drop: 0
rx_octets: 0
tx_good_frames: 582
tx_broadcast_frames: 457
tx_multicast_frames: 125
tx_pause_frames: 0
tx_deferred_frames: 0
tx_collision_frames: 0
tx_single_coll_frames: 0
tx_mult_coll_frames: 0
tx_excessive_collisions: 0
tx_late_collisions: 0
rx_ipg_error: 0
tx_carrier_sense_errors: 0
tx_octets: 38771
tx_64B_frames: 459
tx_65_to_127B_frames: 123
tx_128_to_255B_frames: 0
tx_256_to_511B_frames: 0
tx_512_to_1023B_frames: 0
tx_1024B_frames: 0
net_octets: 38771
rx_bottom_fifo_drop: 0
rx_port_mask_drop: 0
rx_top_fifo_drop: 0
ale_rate_limit_drop: 0
ale_vid_ingress_drop: 0
ale_da_eq_sa_drop: 0
ale_block_drop: 0
ale_secure_drop: 0
ale_auth_drop: 0
ale_unknown_ucast: 0
ale_unknown_ucast_bytes: 0
ale_unknown_mcast: 0
ale_unknown_mcast_bytes: 0
ale_unknown_bcast: 0
ale_unknown_bcast_bytes: 0
ale_pol_match: 0
ale_pol_match_red: 0
ale_pol_match_yellow: 0
ale_mcast_sa_drop: 0
ale_dual_vlan_drop: 0
ale_len_err_drop: 0
ale_ip_next_hdr_drop: 0
ale_ipv4_frag_drop: 0
iet_rx_assembly_err: 0
iet_rx_assembly_ok: 0
iet_rx_smd_err: 0
iet_rx_frag: 0
iet_tx_hold: 0
iet_tx_frag: 0
tx_mem_protect_err: 0
tx_pri0: 582
tx_pri1: 0
tx_pri2: 0
tx_pri3: 0
tx_pri4: 0
tx_pri5: 0
tx_pri6: 0
tx_pri7: 0
tx_pri0_bcnt: 38771
tx_pri1_bcnt: 0
tx_pri2_bcnt: 0
tx_pri3_bcnt: 0
tx_pri4_bcnt: 0
tx_pri5_bcnt: 0
tx_pri6_bcnt: 0
tx_pri7_bcnt: 0
tx_pri0_drop: 0
tx_pri1_drop: 0
tx_pri2_drop: 0
tx_pri3_drop: 0
tx_pri4_drop: 0
tx_pri5_drop: 0
tx_pri6_drop: 0
tx_pri7_drop: 0
tx_pri0_drop_bcnt: 0
tx_pri1_drop_bcnt: 0
tx_pri2_drop_bcnt: 0
tx_pri3_drop_bcnt: 0
tx_pri4_drop_bcnt: 0
tx_pri5_drop_bcnt: 0
tx_pri6_drop_bcnt: 0
tx_pri7_drop_bcnt: 0
root@tgu:~#
我认为 DRA821中的数据包是从 MAC 到 PHY 的 TX/RX。
SGMII 类型的连接是否存在问题?
请检查。
此致、
Dohyeon.Kim
您好!
我理解这是下图。
是否存在任何误解?
"不,我不是这个意思。"
Unknown 说:要查看数据包、可使用以下命令。
# tcpdump -i eth2 -xx我不认为数据包是 DRA821中从 MAC 到 PHY 的 TX/RX从统计数据转储来看、ETH2 Tx 数据包计数似乎在增加、但 Rx 数据包计数为0。 即 MAC 端口未接收到数据包。
此致、
Sudheer
您好!
由于 ethtool 的统计信息是从 MAC 获得的、因此在 PHY 之前无法确定数据包是 TX。
是的、由于接口的链路已接通、网络堆栈将数据包推入驱动程序、并且基于 ALE 的数据包将从 MAC 端口发送。
不保证这些都会从 PHY 发出。
通过设置 PHY 的本地环回功能进行测试时、该文件不会成为数据包 RX。
理想情况下、该值应变为 Rx、因为启用了环回。 如果 PHY 到 MAC 连接正常、则至少应增加 MAC 的 Rx 统计信息。
设置远程环回后、PC 上的数据包 TXed 正常为 RX。
在这里、您是从 PC 端或 TI SOC 端设置它。
我可以在设置之间看到介质转换器。 您是否连接了 PHY5、PHY6环回或什么?
"MAC <-SGMII->PHY"配置似乎有问题
SERDES 配置为 SGMII、且 PLL 也锁定。 我们需要从 CPSW 驱动程序侧检查端口模式配置。
当端口配置为 SGMII 模式时、我们观察到了调试输出。
您是否可以转储 CPSW SGMII 状态寄存器、广播寄存器和 SGMII 控制寄存器?
此致、
Sudheer
您好!
这是我之前在我的回复中发布的内容。
您是否需要其他寄存器信息?
SGMII 状态寄存器
root@TGU:~# devmem2 0x0C000114 w
/dev/mem 打开。
已将存储器映射至地址0xff83aae000。
在地址0x0C000114 (0xffffff83aae114)处读取:0x00000031
root@TGU:~# devmem2 0x0C000214 w
/dev/mem 打开。
已将内存映射至地址0xffffb3575000。
在地址0x0C000214 (0xffffff3575214)处读取:0x00000022
root@TGU:~# devmem2 0x0C000314 w
/dev/mem 打开。
已将存储器映射至地址0xFFffb9732000。
在地址0x0C000314 (0xFFffb9732314)处读取:0x0000002A
root@TGU:~# devmem2 0x0C000414 w
/dev/mem 打开。
存储器映射在地址0xffa33e1000。
在地址0x0C000414 (0xffffff33e1414)处读取:0x00000031
SGMII 控制寄存器
root@TGU:~# devmem2 0x0C000110 w
/dev/mem 打开。
存储器映射在地址0xffbe0be000。
在地址0x0C000110 (0xffffffbe0be110)处读取:0x00000000
root@TGU:~# devmem2 0x0C000210 w
/dev/mem 打开。
映射到地址0xffffb1f23000处的存储器。
在地址0x0C000210 (0xffffff1f23210)处读取:0x00000000
root@TGU:~# devmem2 0x0C000310 w
/dev/mem 打开。
存储器映射在地址0xff91fca000处。
在地址0x0C000310 (0xFFff91fca310):0x00000000处读取
root@TGU:~# devmem2 0x0C000410 w
/dev/mem 打开。
存储器映射在地址0xff88522000处。
在地址0x0C000410 (0xffffff88522410)处读取:0x00000000
SGMII MR ADV 寄存器
root@TGU:~# devmem2 0x0C000118 w
/dev/mem 打开。
存储器映射在地址0xff94181000处。
在地址0x0C000118 (0xffffff94181118)上读取:0x00000000
root@TGU:~# devmem2 0x0C000218 w
/dev/mem 打开。
存储器映射在地址0xfffbd3f5000处。
在地址0x0C000218 (0xFFFffbd3f5218):0x00000000处读取
root@TGU:~# devmem2 0x0C000318 w
/dev/mem 打开。
存储器映射在地址0xff8c42d000处。
在地址0x0C000318 (0xffffff8c42d318)上读取:0x00000000
root@TGU:~# devmem2 0x0C000418 w
/dev/mem 打开。
地址0xffffff8af46000处映射了存储器。
在地址0x0C000418 (0xffffff8af46418)上读取:0x00000000
此致、
Dohyeon.Kim
您好!
[报价 userid="540868" url="~/support/processors-group/processors/f/processors-forum/1443249/dra821u-activating-cpsw5g-linux-native-ethernet-for-sgmii-rmii/5545753 #5545753"]从 CPSW SGMII 状态寄存器看、自协商似乎未完成。我之前做了一些注释、说明 SGMII 控制寄存器未启用自动协商功能、在相同的广播寄存器中也是零。
请在链路建立后进行相同检查。
此致、
Sudheer
您好!
当查询 eth1和 eth2链路建立后、如下所示。
SGMII 控制寄存器
root@TGU:~# devmem2 0x0C000110 w
/dev/mem 打开。
存储器映射在地址0xff8c54e000。
在地址0x0C000110 (0xffffff8c54e110)处读取:0x00000001
root@TGU:~# devmem2 0x0C000210 w
/dev/mem 打开。
已将存储器映射至地址0xffa3686000。
在地址0x0C000210 (0xffffff3686210)处读取:0x00000000
root@TGU:~# devmem2 0x0C000310 w
/dev/mem 打开。
在地址0xff9da42000处映射存储器。
在地址0x0C000310 (0xffffff9da42310)上读取:0x00000000
root@TGU:~# devmem2 0x0C000410 w
/dev/mem 打开。
存储器映射在地址0xff8bcac000处。
在地址0x0C000410 (0xffffff8bcac410)处读取:0x00000001
根@TGU:~#
SGMII 状态寄存器
root@TGU:~# devmem2 0x0C000114 w
/dev/mem 打开。
已映射地址0xffabbcc000处的存储器。
在地址0x0C000114 (0xFFffabbcc114)处读取:0x0000003D
root@TGU:~# devmem2 0x0C000214 w
/dev/mem 打开。
存储器映射在地址0xff990b4000处。
在地址0x0C000214 (0xffffff990b4214)处读取:0x00000022
root@TGU:~# devmem2 0x0C000314 w
/dev/mem 打开。
映射到地址0xffa909b000处的存储器。
在地址0x0C000314 (0xffa909b314):0x0000002A 处读取
root@TGU:~# devmem2 0x0C000414 w
/dev/mem 打开。
存储器映射在地址0xff89d72000处。
在地址0x0C000414 (0xffffff89d72414)处读取:0x0000003D
根@TGU:~#
SGMII MR ADV 寄存器
root@TGU:~# devmem2 0x0C000118 w
/dev/mem 打开。
存储器映射在地址0xff9bbc8000处。
在地址0x0C000118 (0xffffff9bbc8118)处读取:0x00000001
root@TGU:~# devmem2 0x0C000218 w
/dev/mem 打开。
存储器映射在地址0xffa184b000。
在地址0x0C000218 (0xFFffa184b218)处读取:0x00000000
root@TGU:~# devmem2 0x0C000318 w
/dev/mem 打开。
存储器映射在地址0xff92fd0000处。
在地址0x0C000318 (0xffffff92fd0318)上读取:0x00000000
root@TGU:~# devmem2 0x0C000418 w
/dev/mem 打开。
存储器映射在地址0xffa3542000处。
在地址0x0C000418 (0xffa3542418)处读取:0x00000001
根@TGU:~#
此致、
Dohyeon.Kim
您好!
请告诉我可以检查 CPSW 统计信息的命令或寄存器
# ethtool -S
可以在 eth2中使用端口的接口名称。 上面将转储对应于接口/端口的统计数据。
此外、您可以转储以下时钟信息吗?
CPSW5G 时钟转储
#k3conf 转储时钟19.
串行器/解串器时钟转储
第292.
此致、
Sudheer
您好!
在"统计信息"中、我看不到来自 MAC 端口的 Rx 帧。 这意味着 MAC 没有接收到帧。
您是否还能提供串行器/解串器时钟转储。
此致、
Sudheer
您好!
我按如下所示应用它、但 RX 计数没有增加。

root@tgu:~# ifconfig eth2
eth2 Link encap:Ethernet HWaddr D2:DD:98:8E:51:18
inet addr:192.168.200.1 Bcast:192.168.200.255 Mask:255.255.255.0
inet6 addr: fe80::d0dd:98ff:fe8e:5118/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:513 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:22316 (21.7 KiB)
root@tgu:~# ifconfig eth2
eth2 Link encap:Ethernet HWaddr D2:DD:98:8E:51:18
inet addr:192.168.200.1 Bcast:192.168.200.255 Mask:255.255.255.0
inet6 addr: fe80::d0dd:98ff:fe8e:5118/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:514 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:22358 (21.8 KiB)
root@tgu:~# ifconfig eth2
eth2 Link encap:Ethernet HWaddr D2:DD:98:8E:51:18
inet addr:192.168.200.1 Bcast:192.168.200.255 Mask:255.255.255.0
inet6 addr: fe80::d0dd:98ff:fe8e:5118/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:514 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:22358 (21.8 KiB)
root@tgu:~# ethtool -S eth2
NIC statistics:
p0_rx_good_frames: 537
p0_rx_broadcast_frames: 515
p0_rx_multicast_frames: 22
p0_rx_crc_errors: 0
p0_rx_oversized_frames: 0
p0_rx_undersized_frames: 0
p0_ale_drop: 0
p0_ale_overrun_drop: 0
p0_rx_octets: 34754
p0_tx_good_frames: 0
p0_tx_broadcast_frames: 0
p0_tx_multicast_frames: 0
p0_tx_octets: 0
p0_tx_64B_frames: 517
p0_tx_65_to_127B_frames: 20
p0_tx_128_to_255B_frames: 0
p0_tx_256_to_511B_frames: 0
p0_tx_512_to_1023B_frames: 0
p0_tx_1024B_frames: 0
p0_net_octets: 34754
p0_rx_bottom_fifo_drop: 0
p0_rx_port_mask_drop: 0
p0_rx_top_fifo_drop: 0
p0_ale_rate_limit_drop: 0
p0_ale_vid_ingress_drop: 0
p0_ale_da_eq_sa_drop: 0
p0_ale_block_drop: 0
p0_ale_secure_drop: 0
p0_ale_auth_drop: 0
p0_ale_unknown_ucast: 0
p0_ale_unknown_ucast_bytes: 0
p0_ale_unknown_mcast: 0
p0_ale_unknown_mcast_bytes: 0
p0_ale_unknown_bcast: 0
p0_ale_unknown_bcast_bytes: 0
p0_ale_pol_match: 0
p0_ale_pol_match_red: 0
p0_ale_pol_match_yellow: 0
p0_ale_mcast_sa_drop: 0
p0_ale_dual_vlan_drop: 0
p0_ale_len_err_drop: 0
p0_ale_ip_next_hdr_drop: 0
p0_ale_ipv4_frag_drop: 0
p0_tx_mem_protect_err: 0
p0_tx_pri0: 0
p0_tx_pri1: 0
p0_tx_pri2: 0
p0_tx_pri3: 0
p0_tx_pri4: 0
p0_tx_pri5: 0
p0_tx_pri6: 0
p0_tx_pri7: 0
p0_tx_pri0_bcnt: 0
p0_tx_pri1_bcnt: 0
p0_tx_pri2_bcnt: 0
p0_tx_pri3_bcnt: 0
p0_tx_pri4_bcnt: 0
p0_tx_pri5_bcnt: 0
p0_tx_pri6_bcnt: 0
p0_tx_pri7_bcnt: 0
p0_tx_pri0_drop: 0
p0_tx_pri1_drop: 0
p0_tx_pri2_drop: 0
p0_tx_pri3_drop: 0
p0_tx_pri4_drop: 0
p0_tx_pri5_drop: 0
p0_tx_pri6_drop: 0
p0_tx_pri7_drop: 0
p0_tx_pri0_drop_bcnt: 0
p0_tx_pri1_drop_bcnt: 0
p0_tx_pri2_drop_bcnt: 0
p0_tx_pri3_drop_bcnt: 0
p0_tx_pri4_drop_bcnt: 0
p0_tx_pri5_drop_bcnt: 0
p0_tx_pri6_drop_bcnt: 0
p0_tx_pri7_drop_bcnt: 0
rx_good_frames: 0
rx_broadcast_frames: 0
rx_multicast_frames: 0
rx_pause_frames: 0
rx_crc_errors: 0
rx_align_code_errors: 0
rx_oversized_frames: 0
rx_jabber_frames: 0
rx_undersized_frames: 0
rx_fragments: 0
ale_drop: 0
ale_overrun_drop: 0
rx_octets: 0
tx_good_frames: 537
tx_broadcast_frames: 515
tx_multicast_frames: 22
tx_pause_frames: 0
tx_deferred_frames: 0
tx_collision_frames: 0
tx_single_coll_frames: 0
tx_mult_coll_frames: 0
tx_excessive_collisions: 0
tx_late_collisions: 0
rx_ipg_error: 0
tx_carrier_sense_errors: 0
tx_octets: 34754
tx_64B_frames: 517
tx_65_to_127B_frames: 20
tx_128_to_255B_frames: 0
tx_256_to_511B_frames: 0
tx_512_to_1023B_frames: 0
tx_1024B_frames: 0
net_octets: 34754
rx_bottom_fifo_drop: 0
rx_port_mask_drop: 0
rx_top_fifo_drop: 0
ale_rate_limit_drop: 0
ale_vid_ingress_drop: 0
ale_da_eq_sa_drop: 0
ale_block_drop: 0
ale_secure_drop: 0
ale_auth_drop: 0
ale_unknown_ucast: 0
ale_unknown_ucast_bytes: 0
ale_unknown_mcast: 0
ale_unknown_mcast_bytes: 0
ale_unknown_bcast: 0
ale_unknown_bcast_bytes: 0
ale_pol_match: 0
ale_pol_match_red: 0
ale_pol_match_yellow: 0
ale_mcast_sa_drop: 0
ale_dual_vlan_drop: 0
ale_len_err_drop: 0
ale_ip_next_hdr_drop: 0
ale_ipv4_frag_drop: 0
iet_rx_assembly_err: 0
iet_rx_assembly_ok: 0
iet_rx_smd_err: 0
iet_rx_frag: 0
iet_tx_hold: 0
iet_tx_frag: 0
tx_mem_protect_err: 0
tx_pri0: 537
tx_pri1: 0
tx_pri2: 0
tx_pri3: 0
tx_pri4: 0
tx_pri5: 0
tx_pri6: 0
tx_pri7: 0
tx_pri0_bcnt: 34754
tx_pri1_bcnt: 0
tx_pri2_bcnt: 0
tx_pri3_bcnt: 0
tx_pri4_bcnt: 0
tx_pri5_bcnt: 0
tx_pri6_bcnt: 0
tx_pri7_bcnt: 0
tx_pri0_drop: 0
tx_pri1_drop: 0
tx_pri2_drop: 0
tx_pri3_drop: 0
tx_pri4_drop: 0
tx_pri5_drop: 0
tx_pri6_drop: 0
tx_pri7_drop: 0
tx_pri0_drop_bcnt: 0
tx_pri1_drop_bcnt: 0
tx_pri2_drop_bcnt: 0
tx_pri3_drop_bcnt: 0
tx_pri4_drop_bcnt: 0
tx_pri5_drop_bcnt: 0
tx_pri6_drop_bcnt: 0
tx_pri7_drop_bcnt: 0
root@tgu:~#
此致、
Dohyeon.Kim
您好!
使用 EthFW 时、通常执行数据包 TX/RX。
在这里、您的意思是什么、使用 ETHFW、您可以成功地从上面进行传输和接收。
为本机 Linux 驱动程序配置时、是否可以交叉检查 ETHFW 是否未加载? 您能不能检查 ETHFW 和 Linux 驱动器中 PHY 配置的任何差异?
此致、
Sudheer
您好!
当我禁用本机以太网(使用 EthFW)时、数据包 TX/RX 运行良好。
EthFW 的停用设置已确认如下。
root@tgu:~# cat /sys/kernel/debug/remoteproc/remoteproc0/trace0 Sciclient_boardCfgRm init Passed DM Built On: Oct 31 2023 18:10:42 Sciserver Version: v2023.10.0.0-SYSFW_09.01.02.01-1-g40182 RM_PM_HAL Version: v09.01.02+ Starting Sciserver..... PASSED IPC_echo_test (core : mcu1_0) ..... mcu1_0 <--> mcu2_0, Ping- 10000, pong - 10000 completed mcu1_0 <--> mcu2_1, Ping- 10000, pong - 10000 completed root@tgu:~# cat /sys/kernel/debug/remoteproc/remoteproc1/trace0 cat: can't open '/sys/kernel/debug/remoteproc/remoteproc1/trace0': No such file or directory root@tgu:~# cat /sys/kernel/debug/remoteproc/remoteproc2/trace0 IPC_echo_test (core : mcu2_0) ..... mcu2_0 <--> mcu2_1, Ping- 10000, pong - 10000 completed mcu2_0 <--> mcu1_0, Ping- 10000, pong - 10000 completed root@tgu:~# cat /sys/kernel/debug/remoteproc/remoteproc3/trace0 IPC_echo_test (core : mcu2_1) ..... mcu2_1 <--> mcu2_0, Ping- 10000, pong - 10000 completed mcu2_1 <--> mcu1_0, Ping- 10000, pong - 10000 completed root@tgu:~#
EthFW 的 PHY 驱动程序和本机 Linux 驱动程序是相同的。
在 AP 上设置 SGMII 是否有任何问题?
此致、
Dohyeon.Kim
您好!
当我禁用本机以太网(使用 EthFW)时、数据包 TX/RX 可以正常工作。
SERDES 是通过 Linux 进行配置的吗? 默认情况下、串行器/解串器是在 u-boot/Linux 中配置的。 ETHFW 不会配置串行器/解串器。
EthFW 的 PHY 驱动程序和本机 Linux 驱动程序是相同的。
您是否验证了 PHY 寄存器配置?
在 AP 上设置 SGMII 时是否有任何问题?
否、默认情况下、Linux 端支持 SGMII。
您能在 ETHFW 示例和本机 Linux 驱动程序中查看 SGMII 控制寄存器和状态寄存器吗?
此致、
Sudheer
您好!
请参阅下表。
| 原生以太网 | EthFW | |
| 控制寄存器 | root@TGU:~# devmem2 0x0C000110 w /dev/mem 打开。 存储器映射在地址0xff8c54e000。 在地址0x0C000110 (0xffffff8c54e110)处读取:0x00000001 root@TGU:~# devmem2 0x0C000210 w /dev/mem 打开。 已将存储器映射至地址0xffa3686000。 在地址0x0C000210 (0xffffff3686210)处读取:0x00000000 root@TGU:~# devmem2 0x0C000310 w /dev/mem 打开。 在地址0xff9da42000处映射存储器。 在地址0x0C000310 (0xffffff9da42310)上读取:0x00000000 root@TGU:~# devmem2 0x0C000410 w /dev/mem 打开。 存储器映射在地址0xff8bcac000处。 在地址0x0C000410 (0xffffff8bcac410)处读取:0x00000001 根@TGU:~# |
root@TGU:~# devmem2 0x0C000110 w /dev/mem 打开。 已映射地址0xffa5c28000处的存储器。 在地址0x0C000110 (0xffffff5c28110)处读取:0x00000000 root@TGU:~# devmem2 0x0C000210 w /dev/mem 打开。 在地址0xffb00b6000处映射存储器。 在地址0x0C000210 (0xFFffb00b6210):0x00000000处读取 root@TGU:~# devmem2 0x0C000310 w /dev/mem 打开。 已在地址0xfffbf1af000处映射内存。 在地址0x0C000310 (0xfffffff1af310)上读取:0x00000000 root@TGU:~# devmem2 0x0C000410 w /dev/mem 打开。 已将内存映射至地址0xffffb8917000。 在地址0x0C000410 (0xFFffb8917410)处读取:0x00000000 根@TGU:~# |
| 状态寄存器 | root@TGU:~# devmem2 0x0C000114 w /dev/mem 打开。 已映射地址0xffabbcc000处的存储器。 在地址0x0C000114 (0xFFffabbcc114)处读取:0x0000003D root@TGU:~# devmem2 0x0C000214 w /dev/mem 打开。 存储器映射在地址0xff990b4000处。 在地址0x0C000214 (0xffffff990b4214)处读取:0x00000022 root@TGU:~# devmem2 0x0C000314 w /dev/mem 打开。 映射到地址0xffa909b000处的存储器。 在地址0x0C000314 (0xffa909b314):0x0000002A 处读取 root@TGU:~# devmem2 0x0C000414 w /dev/mem 打开。 存储器映射在地址0xff89d72000处。 在地址0x0C000414 (0xffffff89d72414)处读取:0x0000003D 根@TGU:~# |
root@TGU:~# devmem2 0x0C000114 w /dev/mem 打开。 在地址0xff9ef20000处映射存储器。 在地址0x0C000114 (0xffffff9ef20114)处读取:0x00000031 root@TGU:~# devmem2 0x0C000214 w /dev/mem 打开。 已将内存映射至地址0xff89ae1000。 在地址0x0C000214 (0xffffff89ae1214)上读取:0x00000000 root@TGU:~# devmem2 0x0C000314 w /dev/mem 打开。 存储器映射在地址0xffafc19000。 在地址0x0C000314 (0xffffffc19314)处读取:0x00000028 root@TGU:~# devmem2 0x0C000414 w /dev/mem 打开。 存储器映射在地址0xff8e916000处。 在地址0x0C000414 (0xffffff8e916414)处读取:0x00000031 根@TGU:~# |
| 功能寄存器中 | root@TGU:~# devmem2 0x0C000118 w /dev/mem 打开。 存储器映射在地址0xff9bbc8000处。 在地址0x0C000118 (0xffffff9bbc8118)处读取:0x00000001 root@TGU:~# devmem2 0x0C000218 w /dev/mem 打开。 存储器映射在地址0xffa184b000。 在地址0x0C000218 (0xFFffa184b218)处读取:0x00000000 root@TGU:~# devmem2 0x0C000318 w /dev/mem 打开。 存储器映射在地址0xff92fd0000处。 在地址0x0C000318 (0xffffff92fd0318)上读取:0x00000000 root@TGU:~# devmem2 0x0C000418 w /dev/mem 打开。 存储器映射在地址0xffa3542000处。 在地址0x0C000418 (0xffa3542418)处读取:0x00000001 根@TGU:~# |
root@TGU:~# devmem2 0x0C000118 w /dev/mem 打开。 存储器映射在地址0xff839f5000处。 在地址0x0C000118 (0xffffff839f5118)处读取:0x00009801 root@TGU:~# devmem2 0x0C000218 w /dev/mem 打开。 存储器映射在地址0xffa8491000处。 在地址0x0C000218 (0xFFFWA8491218)处读取:0x00000000 root@TGU:~# devmem2 0x0C000318 w /dev/mem 打开。 存储器映射在地址0xff9a59b000。 在地址0x0C000318 (0xffffff9a59b318)上读取:0x00000000 root@TGU:~# devmem2 0x0C000418 w /dev/mem 打开。 在地址0xffac149000处映射存储器。 在地址0x0C000418 (0xffffff149418)上读取:0x00009801 根@TGU:~# |
此致、
Dohyeon.Kim
您好!
[报价 userid="540868" url="~/support/processors-group/processors/f/processors-forum/1443249/dra821u-activating-cpsw5g-linux-native-ethernet-for-sgmii-rmii/5581026 #5581026"]当我禁用本机以太网(使用 EthFW)时、数据包 TX/RX 运行良好。
SERDES 是通过 Linux 进行配置的吗? 默认情况下、串行器/解串器是在 u-boot/Linux 中配置的。 ETHFW 不会配置串行器/解串器。
[报价]您能否确认 ETHFW 应用的串行器/解串器配置。
[报价 userid="540868" url="~/support/processors-group/processors/f/processors-forum/1443249/dra821u-activating-cpsw5g-linux-native-ethernet-for-sgmii-rmii/5581026 #5581026"]EthFW 的 PHY 驱动程序和本机 Linux 驱动程序是相同的。
您是否验证了 PHY 寄存器配置?
[报价]您是否确认了 PHY 寄存器?
此外、您是否可以将 am65-cpsw-nuss 驱动程序中的"advertise_SGMII"更改为0x9801而不是0x1并检查一次。
此致、
Sudheer
您好!
您能否确认 ETHFW 应用的串行器/解串器配置。
=>应该在哪里检查 EthFW 的配置?
您是否确认了 PHY 寄存器?
=> 我检查了与链路相关的寄存器、两个值是相同的。 我还会检查寄存器的其余部分。
此外、您是否可以将 am65-cpsw-nuss 驱动程序中的"advertise_SGMII"更改为0x9801而不是0x1并检查一次。
=> 按照如下所示、我通过在 am65-cpsw-nuss.c 中将 AM65_CPSW_SGMII_MR_ADV_ABILITY_REG 设置为0x9801进行了检查、但它不起作用 TX/RX。

此致、
Dohyeon.Kim
您好!
[报价 userid="597236" url="~/support/processors-group/processors/f/processors-forum/1443249/dra821u-activating-cpsw5g-linux-native-ethernet-for-sgmii-rmii/5583763 #5583763"]您能否确认 ETHFW 应用的串行器/解串器配置。
=>应该在哪里检查 EthFW 的配置?
[报价]我想问的是、串行器/解串器由谁配置、是 ETHFW、U-boot 还是 Linux。
默认情况下、TI SDK 支持适用于 QSGMII + PCIe 的串行器/解串器。 根据您的用例、串行器/解串器应配置为 USB + SGMII
如果串行器/解串器配置为 U-BOOT/Linux、那么即使在本机 Linux 驱动器模式下、串行器/解串器配置也不会出现问题。
您是否确认了 PHY 寄存器?
=> 我检查了与链路相关的寄存器、两个值是相同的。 我还会检查寄存器的其余部分。
[报价]如果 PHY 侧链路正常、则可能是与链路伙伴建立链路。
请检查 PHY 配置寄存器、是否已启用 SGMII 模式。
此外、您是否可以将 am65-cpsw-nuss 驱动程序中的"advertise_SGMII"更改为0x9801而不是0x1并检查一次。
=> 按照如下所示、我通过在 am65-cpsw-nuss.c 中将 AM65_CPSW_SGMII_MR_ADV_ABILITY_REG 设置为0x9801进行了检查、但它不起作用 TX/RX。
[报价]如果您仍然不观察 Rx 数据包计数、则主要是 PHY 问题。
我们按预期配置了寄存器值、此外、如果在用作本机 Linux 驱动程序用例的工作案例中将串行器/解串器配置为 U-BOOT/Linux、那么串行器/解串器侧也不会有问题。
对于 ETHFW 与原生 Linux 驱动程序而言、只有变量是 PHY 驱动程序。
此致、
Sudheer
您好!
当我禁用本地以太网时(应用 EthFW 时)、内核中的 DTS 设置如下。
内核 dts 没有 CPSW5G 设置。
&serdes_ln_ctrl {
idle-states = <J7200_SERDES0_LANE0_IP3_UNUSED>, <J7200_SERDES0_LANE1_QSGMII_LANE4>,
<J7200_SERDES0_LANE2_QSGMII_LANE1>, <J7200_SERDES0_LANE3_USB>;
};
&serdes0 {
#address-cells = <1>;
#size-cells = <0>;
serdes0_sgmii_link: phy@1 {
reg = <1>;
cdns,num-lanes = <2>;
#phy-cells = <0>;
cdns,phy-type = <PHY_TYPE_SGMII>;
resets = <&serdes_wiz0 2>, <&serdes_wiz0 3>;
};
serdes0_usb_link: phy@2 {
reg = <3>;
cdns,num-lanes = <1>;
#phy-cells = <0>;
cdns,phy-type = <PHY_TYPE_USB3>;
resets = <&serdes_wiz0 4>;
};
};
我已经检查 PHY 中的 SGMII 控制、SGMII 状态和 SGMII 广播寄存器、但找不到任何错误。
我认为、下周会在 EthFW 激活后进行寄存器比较。
由于 EthFW 中使用的 PHY 驱动程序已应用于内核、因此我预计不会有差异。 但是、我将转储所有寄存器、并在下周进行比较。
此致、
Dohyeon.Kim
您好!
[报价 userid="597236" url="~/support/processors-group/processors/f/processors-forum/1443249/dra821u-activating-cpsw5g-linux-native-ethernet-for-sgmii-rmii/5583824 #5583824"]当我禁用本地以太网时(应用 EthFW 时)、内核中的 DTS 设置如下。
内核 dts 没有 CPSW5G 设置。
[报价]似乎您是从 Linux 配置 SerDes、即使在 ETHFW 中也是如此。
因此、对于串行器/解串器、不需要进行任何更改、因为 ETHFW 案例 SGMII 按预期工作。
我们还确认了 CPSW 端口寄存器、SGMII 控制寄存器和状态寄存器从 MAC 端接通。
因此、唯一需要确认的变量是 PHY 驱动程序。 如果从 PDK Enet 模块配置 ETHFW PHY、则必须在该模块中集成 PHY 驱动程序。
请重新确认 ETHFW 和本机 Linux 中使用的 PHY 驱动程序是否与 PHY 配置相同。
我认为、下周会在 EthFW 激活后进行寄存器比较。
由于 EthFW 中使用的 PHY 驱动程序已应用于内核、因此我预计不会有差异。 但是、我将转储所有寄存器、并在下周进行比较。
[报价]请检查并告知我们更新。
此致、
Sudheer