Part Number: TDA4VM
Other Parts Discussed in Thread: TDA4VL
Hi Team,
Environment: J721E EVM, self-compiling SBL boot version
Issue: Eth0 network port exists, but after the IP address is configured, communication with the outside world is not possible.
Troubleshooting:
1) TCP/IP is good: Ifconfig eth0 port exists and TX packets count is increasing when ping packets, 127.0.0.1 can be pinged.
2) Network interface PHY is working properly: J721E EVM and PC are connected via 1000M Ethernet cable, log port has printed eth0: "link becomes ready", and "m65-cpsw-nuss 46000000.ethernet eth0: Link is Up - 1Gbps/Full - flow control rx/tx”, link up also can be seen at ethtool eth0.
3) The network transmit DMA should have no problem:
A. Interrupt number registered successfully: In am65_cpsw_nuss_ndev_add_tx_napi function, tx_chn->irq=63; in am65_cpsw_nuss_init_rx_chns function, rx_chn->irq=65.
B. am65_cpsw_nuss_TX_compll_packets function can run, and the delivery looks good with the first res sent in each packet while returning 0 and the second res returning -ENODATA.
Issue:
a. ethtool -S eth0 found tx_good_frames=0. By checking the code of the am65-cpsw-ethtool.c, it was found that tx_good_frames read the register values directly.
b. After ifconfig -a, only two network cards are found, eth0 and lo. No other Virtual cards are found.
c. After sending the packet, the following error message is as follows: "am65-cpsw-nuss 46000000.ethernet eth0: txq:0 DRV_XOFF:0 tmo:482336 dql_avail:-6 free_desc:508"
d. The device tree used by the customer is the k3-j721e-mcu-wakeup.dtsi, the eth0 device tree is as follows:
mcu_cpsw: ethernet@46000000 {
compatible = "ti,j721e-cpsw-nuss";
#address-cells = <2>;
#size-cells = <2>;
reg = <0x0 0x46000000 0x0 0x200000>;
reg-names = "cpsw_nuss";
ranges = <0x0 0x0 0x0 0x46000000 0x0 0x200000>;
dma-coherent;
clocks = <&k3_clks 18 22>;
clock-names = "fck";
power-domains = <&k3_pds 18 TI_SCI_PD_EXCLUSIVE>;
dmas = <&mcu_udmap 0xf000>,
<&mcu_udmap 0xf001>,
<&mcu_udmap 0xf002>,
<&mcu_udmap 0xf003>,
<&mcu_udmap 0xf004>,
<&mcu_udmap 0xf005>,
<&mcu_udmap 0xf006>,
<&mcu_udmap 0xf007>,
<&mcu_udmap 0x7000>;
dma-names = "tx0", "tx1", "tx2", "tx3",
"tx4", "tx5", "tx6", "tx7",
"rx";
ethernet-ports {
#address-cells = <1>;
#size-cells = <0>;
cpsw_port1: port@1 {
reg = <1>;
ti,mac-only;
label = "port1";
ti,syscon-efuse = <&mcu_conf 0x200>;
phys = <&phy_gmii_sel 1>;
};
};
davinci_mdio: mdio@f00 {
compatible = "ti,cpsw-mdio","ti,davinci_mdio";
reg = <0x0 0xf00 0x0 0x100>;
#address-cells = <1>;
#size-cells = <0>;
clocks = <&k3_clks 18 22>;
clock-names = "fck";
bus_freq = <1000000>;
};
cpts@3d000 {
compatible = "ti,am65-cpts";
reg = <0x0 0x3d000 0x0 0x400>;
clocks = <&k3_clks 18 2>;
clock-names = "cpts";
interrupts-extended = <&gic500 GIC_SPI 858 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "cpts";
ti,cpts-ext-ts-inputs = <4>;
ti,cpts-periodic-outputs = <2>;
};
};
Could you help check this case? Thanks.
Best Regards,
Cherry