Re: [PATCH v13 6/8] ethdev: redesign link speed config
From: Xing, Beilei <hidden>
Date: 2016-03-29 06:18:36
-----Original Message----- From: Marc Sune [mailto:marcdevel@gmail.com] Sent: Saturday, March 26, 2016 9:27 AM To: Thomas Monjalon <redacted>; Xu, Qian Q [off-list ref]; Xing, Beilei [off-list ref]; dev@dpdk.org; Ananyev, Konstantin [off-list ref]; Lu, Wenzhuo [off-list ref]; Richardson, Bruce [off-list ref]; Glynn, Michael J [off-list ref] Cc: Marc Sune <redacted> Subject: [PATCH v13 6/8] ethdev: redesign link speed config
quoted hunk ↗ jump to hunk
a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c index a98e8eb..6cc2da0 100644--- a/drivers/net/ixgbe/ixgbe_ethdev.c +++ b/drivers/net/ixgbe/ixgbe_ethdev.c@@ -2193,32 +2195,21 @@ ixgbe_dev_start(struct rte_eth_dev *dev) if (err) goto error; + speed = 0x0; + if (*link_speeds & ETH_LINK_SPEED_10G) + speed |= IXGBE_LINK_SPEED_10GB_FULL; + if (*link_speeds & ETH_LINK_SPEED_1G) + speed |= IXGBE_LINK_SPEED_1GB_FULL; + if (*link_speeds & ETH_LINK_SPEED_100M) + speed |= IXGBE_LINK_SPEED_100_FULL; + err = ixgbe_setup_link(hw, speed, link_up); if (err) goto error;
Hi Marc,
According to ixgbe HW, link speed shouldn't be 0 when setting up,
Otherwise device will start fail. So we need to set speed if link_speed
is ETH_LINK_SPEED_AUTONEG. Following code is for reference.
speed = 0x0;
if ((*link_speeds & 0x1) == ETH_LINK_SPEED_AUTONEG)
speed = (hw->mac.type != ixgbe_mac_82598EB) ?
IXGBE_LINK_SPEED_82599_AUTONEG :
IXGBE_LINK_SPEED_82598_AUTONEG;
else {
if (*link_speeds & ETH_LINK_SPEED_10G)
speed |= IXGBE_LINK_SPEED_10GB_FULL;
if (*link_speeds & ETH_LINK_SPEED_1G)
speed |= IXGBE_LINK_SPEED_1GB_FULL;
if (*link_speeds & ETH_LINK_SPEED_100M)
speed |= IXGBE_LINK_SPEED_100_FULL;
}
Beilei Xing
Thanks