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.
您好、TI!
我使用 SDK :08_06_00_42
内核:TI-RT-Linux-5.10.y
我的定制电路板 使用 RMII ETH PHY RTL8201和 ETH PHY DP83822。
为了支持 PHY RTL8201和 DP83822,配置内核
CONFIG_NET_VENDOR_REALTEK=y CONFIG_DP83822_PHY=y CONFIG_REALTEK_PHY=y
并修改 k3-am62x-sk-common.dtsi、
&main_pmx0 { main_mdio1_pins_default: main-mdio1-pins-default { pinctrl-single,pins = < AM62X_IOPAD(0x160, PIN_OUTPUT, 0) /* (AD24) MDIO0_MDC */ AM62X_IOPAD(0x15c, PIN_INPUT, 0) /* (AB22) MDIO0_MDIO */ >; }; main_rmii1_pins_default: main-rmii1-pins-default { pinctrl-single,pins = < AM62X_IOPAD(0x14c, PIN_INPUT, 1) /* (AB17) RMII1_RXD0 */ AM62X_IOPAD(0x150, PIN_INPUT, 1) /* (AC17) RMII1_RXD1 */ AM62X_IOPAD(0x148, PIN_INPUT, 1) /* (AD17) RMII1_REF_CLK */ AM62X_IOPAD(0x144, PIN_INPUT, 1) /* (AE17) RMII1_RX_ER */ AM62X_IOPAD(0x134, PIN_OUTPUT, 1) /* (AE20) RMII1_TXD0 */ AM62X_IOPAD(0x138, PIN_OUTPUT, 1) /* (AD20) RMII1_TXD1 */ AM62X_IOPAD(0x130, PIN_OUTPUT, 1) /* (AE19) RMII1_CRS_DV */ AM62X_IOPAD(0x12c, PIN_OUTPUT, 1) /* (AD19) RMII1_TX_EN */ >; }; main_rmii2_pins_default: main-rmii2-pins-default { pinctrl-single,pins = < AM62X_IOPAD(0x184, PIN_INPUT, 1) /* (AE23) RMII2_RXD0 */ AM62X_IOPAD(0x188, PIN_INPUT, 1) /* (AB20) RMII2_RXD1 */ AM62X_IOPAD(0x180, PIN_INPUT, 1) /* (AD23) RMII2_REF_CLK */ AM62X_IOPAD(0x17c, PIN_INPUT, 1) /* (AD22) RMII2_RX_ER */ AM62X_IOPAD(0x16c, PIN_OUTPUT, 1) /* (Y18) RMII2_TXD0 */ AM62X_IOPAD(0x170, PIN_OUTPUT, 1) /* (AA18) RMII2_TXD1 */ AM62X_IOPAD(0x168, PIN_OUTPUT, 1) /* (AE21) RMII2_CRS_DV */ AM62X_IOPAD(0x164, PIN_OUTPUT, 1) /* (AA19) RMII2_TX_EN */ >; }; } &cpsw3g { pinctrl-0 = <&main_mdio1_pins_default &main_rmii1_pins_default &main_rmii2_pins_default>; }; &cpsw_port1 { phy-mode = "rmii"; phy-handle = <&cpsw3g_phy0>; }; &cpsw_port2 { phy-mode = "rmii"; phy-handle = <&cpsw3g_phy1>; }; &cpsw3g_mdio { #address-cells = <1>; #size-cells = <0>; cpsw3g_phy0: ethernet-phy@0 { reg = <0>; }; cpsw3g_phy1: ethernet-phy@1 { reg = <1>; rx-internal-delay-ps = <1>; tx-internal-delay-ps = <1>; }; };
tnen i boot board ,
1.
有一个特殊情况, 我只连接 一个端口上的 ethnet ,
但启动日志中显示 了两个端口检测 ethnet 连接 开启。
Dtsi 设置错误吗? 如何设置是正确的?
[ 9.754121] am65-cpsw-nuss 8000000.ethernet eth0: Link is Up - 100Mbps/Full - flow control rx/tx [ 9.754240] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready [ 10.617878] am65-cpsw-nuss 8000000.ethernet eth1: Link is Up - 100Mbps/Full - flow control rx/tx [ 10.617953] IPv6: ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready
2.
当我使用 ping 时,得到错误作为 folw,驱动程序是否有问题?
root@am62xx-evm:~# ifconfig eth0 192.168.1.55 root@am62xx-evm:~# ping 192.168.1.10 PING 192.168.1.10 (192.168.1.10): 56 data bytes [ 202.038374] ------------[ cut here ]------------ [ 202.038393] NETDEV WATCHDOG: eth1 (am65-cpsw-nuss): transmit queue 0 timed out [ 202.038478] WARNING: CPU: 1 PID: 22 at net/sched/sch_generic.c:467 dev_watchdog+0x374/0x380 [ 202.038509] Modules linked in: xhci_plat_hcd xhci_hcd usbcore rpmsg_char dwc3 udc_core usb_common cdns_csi2rx v4l2_fwnode irq_pruss_intc pru_rproc crct10dif_ce snd_soc_simple_card snd_soc_simple_card_utils ti_k3_r5_remoteproc virtio_rpmsg_bus dwc3_am62 rti_wdt ti_k3_m4_remoteproc j721e_csi2rx videobuf2_dma_contig sa2ul sha512_generic mcrc videobuf2_memops authenc cdns_dphy pruss videobuf2_v4l2 videobuf2_common tps6598x typec roles snd_soc_tlv320aic3x sch_fq_codel cryptodev(O) ipv6 [ 202.038608] CPU: 1 PID: 22 Comm: ksoftirqd/1 Tainted: G O 5.10.168-rt83-geae3e59505 #1 [ 202.038618] Hardware name: Texas Instruments AM625 SK (DT) [ 202.038623] pstate: 40000005 (nZcv daif -PAN -UAO -TCO BTYPE=--) [ 202.038630] pc : dev_watchdog+0x374/0x380 [ 202.038637] lr : dev_watchdog+0x374/0x380 [ 202.038642] sp : ffff800011473c20 [ 202.038644] x29: ffff800011473c20 x28: ffff0000013d7b00 [ 202.038650] x27: 0000000000000004 x26: 0000000000000180 [ 202.038656] x25: 00000000ffffffff x24: 0000000000000001 [ 202.038662] x23: ffff00000171f3e0 x22: ffff00000171f000 [ 202.038667] x21: ffff00000171f4b0 x20: ffff8000110e9000 [ 202.038673] x19: 0000000000000000 x18: 0000000000000000 [ 202.038679] x17: 0000000000000000 x16: 0000000000000000 [ 202.038684] x15: ffff000000160560 x14: ffffffffffffffff [ 202.038690] x13: ffff800011224b86 x12: ffff800011224b79 [ 202.038695] x11: 0000000000000001 x10: ffff80001110adc8 [ 202.038701] x9 : 00000000fffffffe x8 : 64656d6974203020 [ 202.038706] x7 : 6575657571207469 x6 : ffff800011473a70 [ 202.038712] x5 : ffff00003fda3b40 x4 : 0000000000000000 [ 202.038717] x3 : 0000000000000027 x2 : 0000000100000000 [ 202.038723] x1 : b415e6dc6b870e00 x0 : 0000000000000000 [ 202.038729] Call trace: [ 202.038733] dev_watchdog+0x374/0x380 [ 202.038739] call_timer_fn.isra.0+0x24/0x80 [ 202.038754] run_timer_softirq+0x4d4/0x548 [ 202.038761] efi_header_end+0x110/0x214 [ 202.038768] run_ksoftirqd+0x50/0xb8 [ 202.038775] smpboot_thread_fn+0x2e4/0x330 [ 202.038783] kthread+0x174/0x198 [ 202.038791] ret_from_fork+0x10/0x30 [ 202.038798] ---[ end trace 0000000000000002 ]--- [ 203.039052] am65-cpsw-nuss 8000000.ethernet eth1: txq:0 DRV_XOFF:0 tmo:9800 dql_avail:-2 free_desc:507 [ 207.926394] am65-cpsw-nuss 8000000.ethernet eth1: txq:0 DRV_XOFF:0 tmo:14688 dql_avail:-2 free_desc:507 [ 213.046388] am65-cpsw-nuss 8000000.ethernet eth1: txq:0 DRV_XOFF:0 tmo:19808 dql_avail:-2 free_desc:507 [ 217.910390] am65-cpsw-nuss 8000000.ethernet eth1: txq:0 DRV_XOFF:0 tmo:24672 dql_avail:-2 free_desc:507 [ 223.030390] am65-cpsw-nuss 8000000.ethernet eth1: txq:0 DRV_XOFF:0 tmo:29792 dql_avail:-2 free_desc:507 [ 227.894387] am65-cpsw-nuss 8000000.ethernet eth1: txq:0 DRV_XOFF:0 tmo:34656 dql_avail:-2 free_desc:507 [ 233.014387] am65-cpsw-nuss 8000000.ethernet eth1: txq:0 DRV_XOFF:0 tmo:39776 dql_avail:-2 free_desc:507 [ 238.134391] am65-cpsw-nuss 8000000.ethernet eth1: txq:0 DRV_XOFF:0 tmo:44896 dql_avail:-2 free_desc:507 [ 242.998389] am65-cpsw-nuss 8000000.ethernet eth1: txq:0 DRV_XOFF:0 tmo:49760 dql_avail:-2 free_desc:507 [ 248.118390] am65-cpsw-nuss 8000000.ethernet eth1: txq:0 DRV_XOFF:0 tmo:54880 dql_avail:-2 free_desc:507 [ 252.982389] am65-cpsw-nuss 8000000.ethernet eth1: txq:0 DRV_XOFF:0 tmo:59744 dql_avail:-2 free_desc:507 [ 258.102389] am65-cpsw-nuss 8000000.ethernet eth1: txq:0 DRV_XOFF:0 tmo:64864 dql_avail:-2 free_desc:507 [ 262.966386] am65-cpsw-nuss 8000000.ethernet eth1: txq:0 DRV_XOFF:0 tmo:69728 dql_avail:-2 free_desc:507 [ 268.086392] am65-cpsw-nuss 8000000.ethernet eth1: txq:0 DRV_XOFF:0 tmo:74848 dql_avail:-2 free_desc:506 [ 271.926388] am65-cpsw-nuss 8000000.ethernet eth0: txq:0 DRV_XOFF:0 tmo:7600 dql_avail:-334 free_desc:506 [ 272.950388] am65-cpsw-nuss 8000000.ethernet eth1: txq:0 DRV_XOFF:0 tmo:79712 dql_avail:-2 free_desc:506 [ 277.046386] am65-cpsw-nuss 8000000.ethernet eth0: txq:0 DRV_XOFF:0 tmo:12720 dql_avail:-334 free_desc:506 [ 278.070390] am65-cpsw-nuss 8000000.ethernet eth1: txq:0 DRV_XOFF:0 tmo:84832 dql_avail:-2 free_desc:506 [ 281.910393] am65-cpsw-nuss 8000000.ethernet eth0: txq:0 DRV_XOFF:0 tmo:17584 dql_avail:-334 free_desc:506 [ 282.934388] am65-cpsw-nuss 8000000.ethernet eth1: txq:0 DRV_XOFF:0 tmo:89696 dql_avail:-2 free_desc:506 [ 287.030389] am65-cpsw-nuss 8000000.ethernet eth0: txq:0 DRV_XOFF:0 tmo:22704 dql_avail:-334 free_desc:506 [ 288.054389] am65-cpsw-nuss 8000000.ethernet eth1: txq:0 DRV_XOFF:0 tmo:94816 dql_avail:-2 free_desc:506 [ 291.894390] am65-cpsw-nuss 8000000.ethernet eth0: txq:0 DRV_XOFF:0 tmo:27568 dql_avail:-334 free_desc:506 [ 292.918391] am65-cpsw-nuss 8000000.ethernet eth1: txq:0 DRV_XOFF:0 tmo:99680 dql_avail:-2 free_desc:506
您好!
这需要与开发团队进行一些核实。 还可以附加 ethtool -S eth0的结果吗?
此致、
舒耶勒
尊敬的 Schuyler:
ethtool -S eth0 消息 :
root@am62xx-evm:~# ethtool -S eth0 NIC statistics: p0_rx_good_frames: 141 p0_rx_broadcast_frames: 85 p0_rx_multicast_frames: 56 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: 18324 p0_tx_good_frames: 0 p0_tx_broadcast_frames: 0 p0_tx_multicast_frames: 0 p0_tx_octets: 0 p0_tx_64B_frames: 65 p0_tx_65_to_127B_frames: 36 p0_tx_128_to_255B_frames: 17 p0_tx_256_to_511B_frames: 23 p0_tx_512_to_1023B_frames: 0 p0_tx_1024B_frames: 0 p0_net_octets: 18324 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: 0 tx_broadcast_frames: 0 tx_multicast_frames: 0 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: 0 tx_64B_frames: 0 tx_65_to_127B_frames: 0 tx_128_to_255B_frames: 0 tx_256_to_511B_frames: 0 tx_512_to_1023B_frames: 0 tx_1024B_frames: 0 net_octets: 0 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: 108 tx_pri1: 0 tx_pri2: 0 tx_pri3: 0 tx_pri4: 0 tx_pri5: 0 tx_pri6: 0 tx_pri7: 0 tx_pri0_bcnt: 12136 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
您好!
我同意如果只有一个 PHY 已连接、则两个 PHY 都不应显示链路状态。 我将进一步检查 DTS 设置并记录文件、然后在此处再次响应。 MAC 统计信息显示正在发送 TX 数据包。 未连接端口连接器上的 LED 是否显示已连接状态?
此致、
舒耶勒
尊敬的 Schuyler:
未连接的端口 指示灯熄灭。
MAIN_rmii1_PINS_DEFAULT 用于 RTL8201 PHY ( 端口1)、MAIN_rmii2_PINS_DEFAULT 用于 DP83822 (端口2)。
您好!
您是否还可以连接 ethtool -S eth1?
或许您要注释掉端口2的引脚、无论统计数据是否显示有任何变化?
请像您已经包含的其他文件一样附加完整的引导日志。
此致、
舒耶勒
您好!
查看 TI EVM 的引脚多路复用器定义、我发现 MDIO 引脚定义列在 MDIO 节点中。 作为一个实验、您可以将 MDIO 引脚多路复用器从 CPSW 节点移动到 MDIO。
这来自 AM625文件 arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi。
cpsw3g_mdio {
pinctrl-names = "default";
pinctrl-0 = <&main_mdio1_pins_default>;
};
此致、
舒耶勒
您好!
TI 不存在驱动程序问题。 我认为问题在于 DTS 文件。 我建议放置 MDIO 引脚定义、例如 TI 放置定义的方式。
目前我没有其他建议。 我会在接下来的几天离开办公室,然后在下周中旬回来。 然后我会再次答复。
此致、
舒耶勒