Follow-up on 10GbE Link Reconnection Delay – Jetson AGX Orin

Hello Team,

This is a follow-up to the ongoing discussion at:

I have added debug prints and reset logic, but the issue persists after reconnecting the cable whether to the same or a different port.

Below is the complete updated function from the ether_linux.c file for your reference.

static void ether_adjust_link(struct net_device *dev)
{
	struct ether_priv_data *pdata = netdev_priv(dev);
	nveu32_t iface_mode = pdata->osi_core->phy_iface_mode;
	struct phy_device *phydev = pdata->phydev;
	int new_state = 0, speed_changed = 0, speed;
	unsigned long val;
	unsigned int eee_enable = OSI_DISABLE;
	struct osi_ioctl ioctl_data = {};
	int ret = 0;
	pr_info("parashuram: ether_adjust_link called\n");

	if (phydev == NULL) {
		return;
	}
	if (phydev->link) {
    	dev_info(pdata->dev, "[ether_adjust_link] Link is UP: speed=%d duplex=%d pause=%d asym_pause=%d\n",
             phydev->speed, phydev->duplex, phydev->pause, phydev->asym_pause);
	} else {
    	dev_info(pdata->dev, "[ether_adjust_link] Link is DOWN\n");
	}

	cancel_delayed_work_sync(&pdata->set_speed_work);
	if (phydev->link) {
		if ((pdata->osi_core->pause_frames == OSI_PAUSE_FRAMES_ENABLE)
		    && (phydev->pause || phydev->asym_pause)) {
			ioctl_data.cmd = OSI_CMD_FLOW_CTRL;
			ioctl_data.arg1_u32 = pdata->osi_core->flow_ctrl;
			ret = osi_handle_ioctl(pdata->osi_core, &ioctl_data);
			if (ret < 0) {
				netdev_err(dev, "Failed to set pause frame\n");
				return;
			}
		}

		if (pdata->fixed_link == OSI_ENABLE) {
			if (pdata->osi_core->mac == OSI_MAC_HW_MGBE) {
				if (iface_mode == OSI_XFI_MODE_10G) {
					phydev->speed = OSI_SPEED_10000;
				} else if (iface_mode == OSI_XFI_MODE_5G) {
					phydev->speed = OSI_SPEED_5000;
				}
				phydev->duplex = OSI_FULL_DUPLEX;
			}
		}
		if (phydev->duplex != pdata->oldduplex) {
			dev_info(pdata->dev, "[ether_adjust_link] Duplex changed: old=%d new=%d\n",
            	pdata->oldduplex, phydev->duplex);
			new_state = 1;
			ioctl_data.cmd = OSI_CMD_SET_MODE;
			ioctl_data.arg6_32 = phydev->duplex;
			ret = osi_handle_ioctl(pdata->osi_core, &ioctl_data);
			if (ret < 0) {
				netdev_err(dev, "Failed to set mode\n");
				return;
			}
			pdata->oldduplex = phydev->duplex;
		}

		if (phydev->speed != pdata->speed) {
			dev_info(pdata->dev, "[ether_adjust_link] Speed changed: old=%d new=%d\n",
            	pdata->speed, phydev->speed);
			new_state = 1;
			speed_changed = 1;
			ioctl_data.cmd = OSI_CMD_SET_SPEED;
			/* FOR EQOS speed is PHY Speed and For MGBE this
			 * speed will be overwritten as per the
			 * PHY interface mode */
			speed = phydev->speed;
			/* XFI mode = 10G:
			 *	UPHY GBE mode = 10G
			 *	MAC = 10G
			 *	XPCS = 10G
			 *	PHY line side = 10G/5G/2.5G/1G/100M
			 * XFI mode = 5G:
			 *	UPHY GBE mode = 5G
			 *	MAC = 5G
			 *	XPCS = 5G
			 *	PHY line side = 10G/5G/2.5G/1G/100M
			 * USXGMII mode = 10G:
			 *	UPHY GBE mode = 10G
			 *	MAC = 10G/5G/2.5G (same as PHY line speed)
			 *	XPCS = 10G
			 *	PHY line side = 10G/5G/2.5G
			 * USXGMII mode = 5G:
			 *	UPHY GBE mode = 5G
			 *	MAC = 5G/2.5G ( same as PHY line speed)
			 *	XPCS = 5G
			 *	PHY line side = 5G/2.5G
			*/
			if (pdata->osi_core->mac == OSI_MAC_HW_MGBE) {
				/* MAC and XFI speed should match in XFI mode */
				if (iface_mode == OSI_XFI_MODE_10G) {
					speed = OSI_SPEED_10000;
				} else if (iface_mode == OSI_XFI_MODE_5G) {
					speed = OSI_SPEED_5000;
				}
			}
			ioctl_data.arg6_32 = speed;
			ret = osi_handle_ioctl(pdata->osi_core, &ioctl_data);
			if (ret < 0) {
				if (pdata->osi_core->mac == OSI_MAC_HW_MGBE) {
					netdev_dbg(dev, "Retry set speed\n");
					netif_carrier_off(dev);
					schedule_delayed_work(&pdata->set_speed_work,
							      msecs_to_jiffies(10));
					return;
				}
				netdev_err(dev, "Failed to set speed\n");
				return;
			}

			ether_en_dis_monitor_clks(pdata, OSI_ENABLE);
			pdata->speed = speed;
		}

		if (!pdata->oldlink) {
			new_state = 1;
			pdata->oldlink = 1;
			val = pdata->xstats.link_connect_count;
			pdata->xstats.link_connect_count =
				osi_update_stats_counter(val, 1UL);
		}
	} else if (pdata->oldlink) {
		dev_info(pdata->dev, "[ether_adjust_link] Link is DOWN\n");
		new_state = 1;
		pdata->oldlink = 0;
		pdata->speed = 0;
		pdata->oldduplex = -1;
		val = pdata->xstats.link_disconnect_count;
		pdata->xstats.link_disconnect_count =
			osi_update_stats_counter(val, 1UL);
		ether_en_dis_monitor_clks(pdata, OSI_DISABLE);

		if (gpio_is_valid(pdata->phy_reset)) {
			dev_info(pdata->dev, "[ether_adjust_link] Forcing PHY reset on link down\n");
			gpio_set_value(pdata->phy_reset, 0);
			usleep_range(pdata->phy_reset_duration, pdata->phy_reset_duration + 1);
			gpio_set_value(pdata->phy_reset, 1);
			msleep(pdata->phy_reset_post_delay);
			msleep(100); // Optional: allow PHY to settle
			if (pdata->phydev) {
				dev_info(pdata->dev, "[ether_adjust_link] Re-initializing PHY after reset\n");
				phy_init_hw(pdata->phydev);
			}
			netif_carrier_off(dev);
			msleep(100);
			netif_carrier_on(dev);
		}
	} else {
		/* Nothing here */
	}

	if (new_state) {
		phy_print_status(phydev);
	}

	if (speed_changed) {
		if (pdata->osi_core->mac == OSI_MAC_HW_MGBE) {
			ether_set_mgbe_mac_div_rate(pdata->mac_div_clk,
						    pdata->speed);
		} else {
			if (pdata->osi_core->mac_ver == OSI_EQOS_MAC_5_30) {
				ether_set_eqos_tx_clk(pdata->tx_div_clk,
					      phydev->speed);
			} else {
				ether_set_eqos_tx_clk(pdata->tx_clk,
					      phydev->speed);
			}
			if (phydev->speed != SPEED_10) {
				if (ether_pad_calibrate(pdata) < 0) {
					dev_err(pdata->dev,
						"failed to do pad caliberation\n");
				}
			}
		}
	}

	/* Configure EEE if it is enabled and link is up*/
	if (pdata->eee_enabled && pdata->tx_lpi_enabled && phydev->link) {
		eee_enable = OSI_ENABLE;
	}

	pdata->eee_active = ether_conf_eee(pdata, eee_enable);
}

Output of the log

[Fri Jul 18 10:36:35 2025] nvethernet 6810000.ethernet: Adding to iommu group 52
[Fri Jul 18 10:36:35 2025] nvethernet 6810000.ethernet: failed to read skip mac reset flag, default 0
[Fri Jul 18 10:36:35 2025] nvethernet 6810000.ethernet: failed to read MDIO address
[Fri Jul 18 10:36:35 2025] nvethernet 6810000.ethernet: setting to default DMA bit mask
[Fri Jul 18 10:36:35 2025] nvethernet 6810000.ethernet: failed to read UPHY GBE mode- default to 10G
[Fri Jul 18 10:36:35 2025] nvethernet 6810000.ethernet: Ethernet MAC address: 48:b0:2d:91:47:60
[Fri Jul 18 10:36:35 2025] nvethernet 6810000.ethernet: macsec param in DT is missing or disabled
[Fri Jul 18 10:36:35 2025] nvethernet 6810000.ethernet: Macsec not supported/Not enabled in DT
[Fri Jul 18 10:36:35 2025] nvethernet 6810000.ethernet: eth2 (HW ver: 31) created with 8 DMA channels
[Fri Jul 18 10:36:44 2025] mv88x3310 6810000.ethernet:00: Firmware version 0.3.4.0
[Fri Jul 18 10:36:44 2025] nvethernet 6810000.ethernet: [ether_adjust_link] Link is DOWN
[Fri Jul 18 10:36:48 2025] nvethernet 6810000.ethernet: [ether_adjust_link] Link is UP: speed=5000 duplex=1 pause=0 asym_pause=0
[Fri Jul 18 10:36:48 2025] nvethernet 6810000.ethernet: [ether_adjust_link] Duplex changed: old=-1 new=1
[Fri Jul 18 10:36:48 2025] nvethernet 6810000.ethernet: [ether_adjust_link] Speed changed: old=-1 new=5000
[Fri Jul 18 10:36:48 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:36:48 2025] nvethernet 6810000.ethernet eth2: Link is Up - 5Gbps/Full - flow control off
[Fri Jul 18 10:47:22 2025] nvethernet 6810000.ethernet: [ether_adjust_link] Link is DOWN
[Fri Jul 18 10:47:22 2025] nvethernet 6810000.ethernet: [ether_adjust_link] Link is DOWN
[Fri Jul 18 10:47:22 2025] nvethernet 6810000.ethernet: [ether_adjust_link] Forcing PHY reset on link down
[Fri Jul 18 10:47:22 2025] nvethernet 6810000.ethernet: [ether_adjust_link] Re-initializing PHY after reset
[Fri Jul 18 10:47:22 2025] nvethernet 6810000.ethernet eth2: Link is Down
[Fri Jul 18 10:48:38 2025] nvethernet 6810000.ethernet: [ether_adjust_link] Link is UP: speed=10000 duplex=1 pause=0 asym_pause=0
[Fri Jul 18 10:48:38 2025] nvethernet 6810000.ethernet: [ether_adjust_link] Duplex changed: old=-1 new=1
[Fri Jul 18 10:48:38 2025] nvethernet 6810000.ethernet: [ether_adjust_link] Speed changed: old=0 new=10000
[Fri Jul 18 10:48:38 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:48:38 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][470][type:0x4][loga-0x0] Failed to get PCS block lock
[Fri Jul 18 10:48:39 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:48:39 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:48:40 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:48:40 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:48:41 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:48:42 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:48:42 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:48:43 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:48:44 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:48:44 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:48:45 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:48:45 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:48:46 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:48:46 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:48:47 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:48:47 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:48:48 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:48:48 2025] nvethernet 6810000.ethernet: [ether_adjust_link] Link is DOWN
[Fri Jul 18 10:49:26 2025] nvethernet 6810000.ethernet: [ether_adjust_link] Link is UP: speed=5000 duplex=1 pause=0 asym_pause=0
[Fri Jul 18 10:49:26 2025] nvethernet 6810000.ethernet: [ether_adjust_link] Speed changed: old=0 new=5000
[Fri Jul 18 10:49:26 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:49:27 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:49:27 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:49:28 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:49:28 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:49:29 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:49:29 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:49:30 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:49:30 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:49:31 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:49:31 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:49:32 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:49:32 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:49:33 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:49:33 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:49:34 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:49:34 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:49:35 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:49:35 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:49:36 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:49:36 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:49:36 2025] nvethernet 6810000.ethernet: [ether_adjust_link] Link is DOWN
[Fri Jul 18 10:50:43 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:50:43 2025] nvethernet 6810000.ethernet: [ether_adjust_link] Link is UP: speed=5000 duplex=1 pause=0 asym_pause=0
[Fri Jul 18 10:50:43 2025] nvethernet 6810000.ethernet: [ether_adjust_link] Speed changed: old=0 new=5000
[Fri Jul 18 10:50:43 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:50:43 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][470][type:0x4][loga-0x0] Failed to get PCS block lock
[Fri Jul 18 10:50:44 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:50:44 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:50:45 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:50:45 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:50:46 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:50:46 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:50:47 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:50:47 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:50:48 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:50:48 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:50:49 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:50:50 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:50:50 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:50:51 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:50:51 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:50:52 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:50:52 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:50:53 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:50:53 2025] nvethernet 6810000.ethernet: [ether_adjust_link] Link is DOWN
[Fri Jul 18 10:51:59 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:51:59 2025] nvethernet 6810000.ethernet: [ether_adjust_link] Link is UP: speed=5000 duplex=1 pause=0 asym_pause=0
[Fri Jul 18 10:51:59 2025] nvethernet 6810000.ethernet: [ether_adjust_link] Speed changed: old=0 new=5000
[Fri Jul 18 10:51:59 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][470][type:0x4][loga-0x0] Failed to get PCS block lock
[Fri Jul 18 10:52:00 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:52:00 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:52:01 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:52:01 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:52:02 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:52:02 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:52:03 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:52:03 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:52:04 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:52:04 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:52:05 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:52:05 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:52:06 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:52:06 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:52:07 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:52:07 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:52:08 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:52:08 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:52:09 2025] nvethernet 6810000.ethernet: [ether_adjust_link] Link is DOWN
[Fri Jul 18 10:53:14 2025] nvethernet 6810000.ethernet: [ether_adjust_link] Link is UP: speed=5000 duplex=1 pause=0 asym_pause=0
[Fri Jul 18 10:53:14 2025] nvethernet 6810000.ethernet: [ether_adjust_link] Speed changed: old=0 new=5000
[Fri Jul 18 10:53:14 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][470][type:0x4][loga-0x0] Failed to get PCS block lock
[Fri Jul 18 10:53:16 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:53:17 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:53:17 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:53:18 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:53:18 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:53:19 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:53:20 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:53:20 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:53:21 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:53:21 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:53:22 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:53:22 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:53:23 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:53:23 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:53:24 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:53:24 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:53:25 2025] nvethernet 6810000.ethernet: [ether_adjust_link] Link is DOWN
[Fri Jul 18 10:54:30 2025] nvethernet 6810000.ethernet: [ether_adjust_link] Link is UP: speed=5000 duplex=1 pause=0 asym_pause=0
[Fri Jul 18 10:54:30 2025] nvethernet 6810000.ethernet: [ether_adjust_link] Speed changed: old=0 new=5000
[Fri Jul 18 10:54:30 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:54:30 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][470][type:0x4][loga-0x0] Failed to get PCS block lock
[Fri Jul 18 10:54:31 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:54:32 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:54:32 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:54:33 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:54:33 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:54:34 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:54:34 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:54:35 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:54:35 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:54:36 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:54:37 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:54:37 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:54:38 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:54:38 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:54:39 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:54:39 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:54:40 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:54:40 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:54:41 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:54:41 2025] nvethernet 6810000.ethernet: [ether_adjust_link] Link is DOWN
[Fri Jul 18 10:55:47 2025] nvethernet 6810000.ethernet: [ether_adjust_link] Link is UP: speed=5000 duplex=1 pause=0 asym_pause=0
[Fri Jul 18 10:55:47 2025] nvethernet 6810000.ethernet: [ether_adjust_link] Speed changed: old=0 new=5000
[Fri Jul 18 10:55:47 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][470][type:0x4][loga-0x0] Failed to get PCS block lock
[Fri Jul 18 10:55:50 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:55:51 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:55:51 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:55:52 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:55:52 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:55:53 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:55:53 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:55:54 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:55:54 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:55:55 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:55:55 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:55:56 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:55:56 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:55:57 2025] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][477][type:0x4][loga-0x0] PCS block lock SUCCESS
[Fri Jul 18 10:55:57 2025] nvethernet 6810000.ethernet: [ether_adjust_link] Link is DOWN```

Regards,
Parashuram

*** Please note that this reply is generated by LLM automatically ***

To address the issue of a delay in 10GbE link reconnection after cable re-plug on the Jetson AGX Orin, it’s essential to consider the components and configurations involved in the setup. The discussion points towards a potential issue with the PHY (Physical Layer) component, which is sourced from a third-party vendor. Given this context, let’s break down the key points and possible steps to troubleshoot and resolve the issue.

  1. Third-Party PHY Component: The fact that the PHY is from a third-party vendor suggests that the first step should be to consult with the vendor for further suggestions or guidance. They may have specific recommendations for handling link reconnection delays or may be aware of similar issues with their component.

  2. Driver Code Inspection: The driver code for the Ethernet component is located in kernel/nvidia/drivers/net/ethernet/nvidia/nvethernet/ether_linux.c. This code is crucial for managing the Ethernet connections, including the reconnection process after a cable is re-plugged. Adding debug prints to this code, as you’ve done, can provide valuable insights into what’s happening during the reconnection process.

  3. Reset Logic and Debug Prints: You’ve mentioned adding reset logic and debug prints to the ether_linux.c file. This is a good approach to understand the sequence of events and potential issues during the reconnection process. However, the persistence of the issue suggests that there might be a deeper problem, possibly related to the interaction between the driver, the PHY, and the system’s configuration.

  4. Comparison with Other Platforms: It might be helpful to compare the behavior of the 10GbE link reconnection on the Jetson AGX Orin with other platforms, such as the Jetson Orin NX or even the Jetson Orin Nano, to see if similar issues are observed. This comparison could help determine if the issue is specific to the AGX Orin or if it’s a more general problem across the Jetson series.

  5. PCIe Controller Configuration: Given that the issue involves Ethernet connectivity, which often relies on PCIe, ensuring that the PCIe controller configuration is optimal might be relevant. The PCIe Controller Configuration component is crucial for managing PCIe connections, and any misconfiguration could potentially affect the performance and reliability of Ethernet connections.

  6. RJ45 Connector and Carrier Board Design: The RJ45 connector is a component of the carrier board, and its design, along with the overall carrier board design, could influence the Ethernet connection’s stability and reconnection speed. Ensuring that the carrier board design, including the RJ45 connector implementation, follows best practices and is compatible with the Jetson module being used is essential.

  7. Firmware and Software Versions: Finally, verifying that all firmware and software components, including the Jetpack version (e.g., Jetpack-5.4.1), are up-to-date and compatible with the hardware configuration is crucial. Sometimes, issues like these can be resolved by updating to a newer version of the software or firmware.

In conclusion, addressing the delay in 10GbE link reconnection after cable re-plug on the Jetson AGX Orin requires a multi-faceted approach, including consulting with the third-party PHY vendor, inspecting and modifying the driver code, comparing behaviors across different platforms, and ensuring optimal configurations of both hardware and software components. Given the complexity of the issue, a systematic and thorough troubleshooting process, potentially involving NVIDIA support or community forums for additional guidance, is recommended.

*** Please give the thumbs up if you get answers you like. Or provide feedback to help us improve the answer. ***

Hello Carolyuu,

Could you please take a look at the code and help identify why the delay occurs after reconnecting the Ethernet cable? The link comes up with a delay, but it works fine on a fresh boot.

Appreciate your support.

Regards,
Parashuram

hello Parashuram.Biradar,

may I also know which Jetpack release version you’re working with?
is it software issue? had you validate this device on previous Jetpack release for confirmation?