Hi esteemed NVIDIA team, we are using Xavier and Jetpack 5.1.1 external Marvell’s mv88ea6321 switch, using a ‘fixed link’ RGMII 1Gbps connection. Occasionally, we may encounter network connectivity issues after power on. I have also tested the Ethernet controller driver version back to 5.1.0, and this issue also occurred. Using the same Jetpack 5.1.0 Ethernet controller driver and Orin environment, the network is fine and has been connected and tested 60 times without encountering any issues. May I ask how to solve occasional network issues when using Xavier and Jetpack 5.1.1? Thank you!
When encountering network problems, it is highly likely to encounter ‘rx_frame_error’.
By tracking the source code kernel/nvethernetrm/osi/dma/osi_dma_txrx.c function osi_process_rx_completions() The error type provided is “RDES3-ERR-RE”.
define RDES3_ERR_CRC OSI_BIT(24)
define RDES3_ERR_GP OSI_BIT(23)
define RDES3_ERR_WD OSI_BIT(22)
define RDES3_ERR_ORUN OSI_BIT(21)
define RDES3_ERR_RE OSI_BIT(20)
define RDES3_ERR_DRIB OSI_BIT(19)
/** Error Summary bits for Received packet */
define RDES3_ES_BITS (RDES3_ERR_CRC | RDES3_ERR_GP | RDES3_ERR_WD | RDES3_ERR_ORUN | RDES3_ERR_RE | RDES3_ERR_DRIB)
if ((rx_desc->rdes3 & RDES3_LD) == RDES3_LD) {
if ((rx_desc->rdes3 & (((osi_dma->mac == OSI_MAC_HW_MGBE) ?
RDES3_ES_MGBE : RDES3_ES_BITS))) != 0U) {
/* reset validity if any of the error bits are set */
rx_pkt_cx->flags &= ~OSI_PKT_CX_VALID;
d_ops[ip_type].update_rx_err_stats(rx_desc, &osi_dma->pkt_err_stats);
}
}