DPDK patches and discussions
 help / color / mirror / Atom feed
From: Xiao Wang <xiao.w.wang@intel.com>
To: wenzhuo.lu@intel.com
Cc: dev@dpdk.org, ferruh.yigit@intel.com, Xiao Wang <xiao.w.wang@intel.com>
Subject: [dpdk-dev] [PATCH v2 33/40] net/ixgbe/base: add X550em_a FW ALEF support
Date: Sun, 25 Sep 2016 17:00:10 +0800	[thread overview]
Message-ID: <1474794017-5896-34-git-send-email-xiao.w.wang@intel.com> (raw)
In-Reply-To: <1474794017-5896-1-git-send-email-xiao.w.wang@intel.com>

This patch adds X550em_a FW ALEF support. ALEF is the new unified FW.
The driver uses the KRM_PMD_RX_FLEX_PORT/FLX_MASK_ST20 registers to
configure the lane mode.

Signed-off-by: Xiao Wang <xiao.w.wang@intel.com>
---

v2: - Removed the term that's only used internally in the commit log.

---
 drivers/net/ixgbe/base/ixgbe_type.h |  16 +++
 drivers/net/ixgbe/base/ixgbe_x550.c | 223 ++++++++++++++++++++++++++----------
 2 files changed, 180 insertions(+), 59 deletions(-)

diff --git a/drivers/net/ixgbe/base/ixgbe_type.h b/drivers/net/ixgbe/base/ixgbe_type.h
index a3cc5e2..92c3e24 100644
--- a/drivers/net/ixgbe/base/ixgbe_type.h
+++ b/drivers/net/ixgbe/base/ixgbe_type.h
@@ -4162,9 +4162,25 @@ struct ixgbe_hw {
 #define IXGBE_KRM_DSP_TXFFE_STATE_5(P)	((P) ? 0x8638 : 0x4638)
 #define IXGBE_KRM_RX_TRN_LINKUP_CTRL(P)	((P) ? 0x8B00 : 0x4B00)
 #define IXGBE_KRM_PMD_DFX_BURNIN(P)	((P) ? 0x8E00 : 0x4E00)
+#define IXGBE_KRM_PMD_FLX_MASK_ST20(P)	((P) ? 0x9054 : 0x5054)
 #define IXGBE_KRM_TX_COEFF_CTRL_1(P)	((P) ? 0x9520 : 0x5520)
 #define IXGBE_KRM_RX_ANA_CTL(P)		((P) ? 0x9A00 : 0x5A00)
 
+#define IXGBE_KRM_PMD_FLX_MASK_ST20_SFI_10G_DA		~(0x3 << 20)
+#define IXGBE_KRM_PMD_FLX_MASK_ST20_SFI_10G_SR		(1u << 20)
+#define IXGBE_KRM_PMD_FLX_MASK_ST20_SFI_10G_LR		(0x2 << 20)
+#define IXGBE_KRM_PMD_FLX_MASK_ST20_SGMII_EN		(1u << 25)
+#define IXGBE_KRM_PMD_FLX_MASK_ST20_AN37_EN		(1u << 26)
+#define IXGBE_KRM_PMD_FLX_MASK_ST20_AN_EN		(1u << 27)
+#define IXGBE_KRM_PMD_FLX_MASK_ST20_SPEED_10M		~(0x7 << 28)
+#define IXGBE_KRM_PMD_FLX_MASK_ST20_SPEED_100M		(1u << 28)
+#define IXGBE_KRM_PMD_FLX_MASK_ST20_SPEED_1G		(0x2 << 28)
+#define IXGBE_KRM_PMD_FLX_MASK_ST20_SPEED_10G		(0x3 << 28)
+#define IXGBE_KRM_PMD_FLX_MASK_ST20_SPEED_AN		(0x4 << 28)
+#define IXGBE_KRM_PMD_FLX_MASK_ST20_SPEED_2_5G		(0x7 << 28)
+#define IXGBE_KRM_PMD_FLX_MASK_ST20_SPEED_MASK		(0x7 << 28)
+#define IXGBE_KRM_PMD_FLX_MASK_ST20_FW_AN_RESTART	(1u << 31)
+
 #define IXGBE_KRM_PORT_CAR_GEN_CTRL_NELB_32B		(1 << 9)
 #define IXGBE_KRM_PORT_CAR_GEN_CTRL_NELB_KRPCS		(1 << 11)
 
diff --git a/drivers/net/ixgbe/base/ixgbe_x550.c b/drivers/net/ixgbe/base/ixgbe_x550.c
index 19a554d..0cc7a3f 100644
--- a/drivers/net/ixgbe/base/ixgbe_x550.c
+++ b/drivers/net/ixgbe/base/ixgbe_x550.c
@@ -1607,6 +1607,53 @@ s32 ixgbe_setup_sfp_modules_X550em(struct ixgbe_hw *hw)
 }
 
 /**
+*  ixgbe_restart_an_internal_phy_x550em - restart autonegotiation for the
+*  internal PHY
+*  @hw: pointer to hardware structure
+**/
+STATIC s32 ixgbe_restart_an_internal_phy_x550em(struct ixgbe_hw *hw)
+{
+	s32 status;
+	u32 link_ctrl;
+
+	/* Restart auto-negotiation. */
+	status = hw->mac.ops.read_iosf_sb_reg(hw,
+				       IXGBE_KRM_LINK_CTRL_1(hw->bus.lan_id),
+				       IXGBE_SB_IOSF_TARGET_KR_PHY, &link_ctrl);
+
+	if (status) {
+		DEBUGOUT("Auto-negotiation did not complete\n");
+		return status;
+	}
+
+	link_ctrl |= IXGBE_KRM_LINK_CTRL_1_TETH_AN_RESTART;
+	status = hw->mac.ops.write_iosf_sb_reg(hw,
+					IXGBE_KRM_LINK_CTRL_1(hw->bus.lan_id),
+					IXGBE_SB_IOSF_TARGET_KR_PHY, link_ctrl);
+
+	if (hw->mac.type == ixgbe_mac_X550EM_a) {
+		u32 flx_mask_st20;
+
+		/* Indicate to FW that AN restart has been asserted */
+		status = hw->mac.ops.read_iosf_sb_reg(hw,
+				IXGBE_KRM_PMD_FLX_MASK_ST20(hw->bus.lan_id),
+				IXGBE_SB_IOSF_TARGET_KR_PHY, &flx_mask_st20);
+
+		if (status) {
+			DEBUGOUT("Auto-negotiation did not complete\n");
+			return status;
+		}
+
+		flx_mask_st20 |= IXGBE_KRM_PMD_FLX_MASK_ST20_FW_AN_RESTART;
+		status = hw->mac.ops.write_iosf_sb_reg(hw,
+				IXGBE_KRM_PMD_FLX_MASK_ST20(hw->bus.lan_id),
+				IXGBE_SB_IOSF_TARGET_KR_PHY, flx_mask_st20);
+	}
+
+	return status;
+}
+
+/**
  * ixgbe_setup_sgmii - Set up link for sgmii
  * @hw: pointer to hardware structure
  */
@@ -1614,7 +1661,7 @@ STATIC s32 ixgbe_setup_sgmii(struct ixgbe_hw *hw, ixgbe_link_speed speed,
 			     bool autoneg_wait)
 {
 	struct ixgbe_mac_info *mac = &hw->mac;
-	u32 lval, sval;
+	u32 lval, sval, flx_val;
 	s32 rc;
 
 	rc = mac->ops.read_iosf_sb_reg(hw,
@@ -1648,10 +1695,25 @@ STATIC s32 ixgbe_setup_sgmii(struct ixgbe_hw *hw, ixgbe_link_speed speed,
 	if (rc)
 		return rc;
 
-	lval |= IXGBE_KRM_LINK_CTRL_1_TETH_AN_RESTART;
+	rc = mac->ops.read_iosf_sb_reg(hw,
+				    IXGBE_KRM_PMD_FLX_MASK_ST20(hw->bus.lan_id),
+				    IXGBE_SB_IOSF_TARGET_KR_PHY, &flx_val);
+	if (rc)
+		return rc;
+
+	flx_val &= ~IXGBE_KRM_PMD_FLX_MASK_ST20_SPEED_MASK;
+	flx_val |= IXGBE_KRM_PMD_FLX_MASK_ST20_SPEED_1G;
+	flx_val &= ~IXGBE_KRM_PMD_FLX_MASK_ST20_AN_EN;
+	flx_val |= IXGBE_KRM_PMD_FLX_MASK_ST20_SGMII_EN;
+	flx_val |= IXGBE_KRM_PMD_FLX_MASK_ST20_AN37_EN;
+
 	rc = mac->ops.write_iosf_sb_reg(hw,
-					IXGBE_KRM_LINK_CTRL_1(hw->bus.lan_id),
-					IXGBE_SB_IOSF_TARGET_KR_PHY, lval);
+				    IXGBE_KRM_PMD_FLX_MASK_ST20(hw->bus.lan_id),
+				    IXGBE_SB_IOSF_TARGET_KR_PHY, flx_val);
+	if (rc)
+		return rc;
+
+	rc = ixgbe_restart_an_internal_phy_x550em(hw);
 	if (rc)
 		return rc;
 
@@ -1666,7 +1728,7 @@ STATIC s32 ixgbe_setup_sgmii_m88(struct ixgbe_hw *hw, ixgbe_link_speed speed,
 				 bool autoneg_wait)
 {
 	struct ixgbe_mac_info *mac = &hw->mac;
-	u32 lval, sval;
+	u32 lval, sval, flx_val;
 	s32 rc;
 
 	rc = mac->ops.read_iosf_sb_reg(hw,
@@ -1700,13 +1762,32 @@ STATIC s32 ixgbe_setup_sgmii_m88(struct ixgbe_hw *hw, ixgbe_link_speed speed,
 	if (rc)
 		return rc;
 
-	lval |= IXGBE_KRM_LINK_CTRL_1_TETH_AN_RESTART;
 	rc = mac->ops.write_iosf_sb_reg(hw,
 					IXGBE_KRM_LINK_CTRL_1(hw->bus.lan_id),
 					IXGBE_SB_IOSF_TARGET_KR_PHY, lval);
 	if (rc)
 		return rc;
 
+	rc = mac->ops.read_iosf_sb_reg(hw,
+				    IXGBE_KRM_PMD_FLX_MASK_ST20(hw->bus.lan_id),
+				    IXGBE_SB_IOSF_TARGET_KR_PHY, &flx_val);
+	if (rc)
+		return rc;
+
+	flx_val &= ~IXGBE_KRM_PMD_FLX_MASK_ST20_SPEED_MASK;
+	flx_val |= IXGBE_KRM_PMD_FLX_MASK_ST20_SPEED_1G;
+	flx_val &= ~IXGBE_KRM_PMD_FLX_MASK_ST20_AN_EN;
+	flx_val |= IXGBE_KRM_PMD_FLX_MASK_ST20_SGMII_EN;
+	flx_val |= IXGBE_KRM_PMD_FLX_MASK_ST20_AN37_EN;
+
+	rc = mac->ops.write_iosf_sb_reg(hw,
+				    IXGBE_KRM_PMD_FLX_MASK_ST20(hw->bus.lan_id),
+				    IXGBE_SB_IOSF_TARGET_KR_PHY, flx_val);
+	if (rc)
+		return rc;
+
+	rc = ixgbe_restart_an_internal_phy_x550em(hw);
+
 	return hw->phy.ops.setup_link_speed(hw, speed, autoneg_wait);
 }
 
@@ -2024,13 +2105,24 @@ STATIC s32 ixgbe_setup_kr_speed_x550em(struct ixgbe_hw *hw,
 	if (speed & IXGBE_LINK_SPEED_1GB_FULL)
 		reg_val |= IXGBE_KRM_LINK_CTRL_1_TETH_AN_CAP_KX;
 
-	/* Restart auto-negotiation. */
-	reg_val |= IXGBE_KRM_LINK_CTRL_1_TETH_AN_RESTART;
 	status = hw->mac.ops.write_iosf_sb_reg(hw,
 		       IXGBE_KRM_LINK_CTRL_1(hw->bus.lan_id),
 		       IXGBE_SB_IOSF_TARGET_KR_PHY, reg_val);
 
-	return status;
+	if (status)
+		return status;
+
+	reg_val &= ~IXGBE_KRM_PMD_FLX_MASK_ST20_SPEED_MASK;
+	reg_val |= IXGBE_KRM_PMD_FLX_MASK_ST20_SPEED_AN;
+	reg_val |= IXGBE_KRM_PMD_FLX_MASK_ST20_AN_EN;
+	reg_val &= ~IXGBE_KRM_PMD_FLX_MASK_ST20_AN37_EN;
+	reg_val &= ~IXGBE_KRM_PMD_FLX_MASK_ST20_SGMII_EN;
+
+	status = hw->mac.ops.write_iosf_sb_reg(hw,
+				    IXGBE_KRM_PMD_FLX_MASK_ST20(hw->bus.lan_id),
+				    IXGBE_SB_IOSF_TARGET_KR_PHY, reg_val);
+
+	return ixgbe_restart_an_internal_phy_x550em(hw);
 }
 
 /**
@@ -2662,6 +2754,55 @@ s32 ixgbe_setup_mac_link_sfp_x550em(struct ixgbe_hw *hw,
 }
 
 /**
+ *  ixgbe_setup_sfi_x550a - Configure the internal PHY for native SFI mode
+ *  @hw: pointer to hardware structure
+ *  @speed: the link speed to force
+ *
+ *  Configures the integrated PHY for native SFI mode. Used to connect the
+ *  internal PHY directly to an SFP cage, without autonegotiation.
+ **/
+STATIC s32 ixgbe_setup_sfi_x550a(struct ixgbe_hw *hw, ixgbe_link_speed *speed)
+{
+	struct ixgbe_mac_info *mac = &hw->mac;
+	s32 status;
+	u32 reg_val;
+
+	/* Disable all AN and force speed to 10G Serial. */
+	status = mac->ops.read_iosf_sb_reg(hw,
+				IXGBE_KRM_PMD_FLX_MASK_ST20(hw->bus.lan_id),
+				IXGBE_SB_IOSF_TARGET_KR_PHY, &reg_val);
+	if (status != IXGBE_SUCCESS)
+		return status;
+
+	reg_val &= ~IXGBE_KRM_PMD_FLX_MASK_ST20_AN_EN;
+	reg_val &= ~IXGBE_KRM_PMD_FLX_MASK_ST20_AN37_EN;
+	reg_val &= ~IXGBE_KRM_PMD_FLX_MASK_ST20_SGMII_EN;
+	reg_val &= ~IXGBE_KRM_PMD_FLX_MASK_ST20_SPEED_MASK;
+
+	/* Select forced link speed for internal PHY. */
+	switch (*speed) {
+	case IXGBE_LINK_SPEED_10GB_FULL:
+		reg_val |= IXGBE_KRM_PMD_FLX_MASK_ST20_SPEED_10G;
+		break;
+	case IXGBE_LINK_SPEED_1GB_FULL:
+		reg_val |= IXGBE_KRM_PMD_FLX_MASK_ST20_SPEED_1G;
+		break;
+	default:
+		/* Other link speeds are not supported by internal PHY. */
+		return IXGBE_ERR_LINK_SETUP;
+	}
+
+	status = mac->ops.write_iosf_sb_reg(hw,
+				IXGBE_KRM_PMD_FLX_MASK_ST20(hw->bus.lan_id),
+				IXGBE_SB_IOSF_TARGET_KR_PHY, reg_val);
+
+	/* Toggle port SW reset by AN reset. */
+	status = ixgbe_restart_an_internal_phy_x550em(hw);
+
+	return status;
+}
+
+/**
  *  ixgbe_setup_mac_link_sfp_x550a - Setup internal PHY for SFP
  *  @hw: pointer to hardware structure
  *
@@ -2691,31 +2832,27 @@ s32 ixgbe_setup_mac_link_sfp_x550a(struct ixgbe_hw *hw,
 		return ret_val;
 
 	if (hw->device_id == IXGBE_DEV_ID_X550EM_A_SFP_N) {
-		/* Configure internal PHY for native SFI */
+		/* Configure internal PHY for native SFI based on module type */
 		ret_val = hw->mac.ops.read_iosf_sb_reg(hw,
-			       IXGBE_KRM_AN_CNTL_8(hw->bus.lan_id),
-			       IXGBE_SB_IOSF_TARGET_KR_PHY, &reg_phy_int);
+				   IXGBE_KRM_PMD_FLX_MASK_ST20(hw->bus.lan_id),
+				   IXGBE_SB_IOSF_TARGET_KR_PHY, &reg_phy_int);
 
 		if (ret_val != IXGBE_SUCCESS)
 			return ret_val;
 
-		if (setup_linear) {
-			reg_phy_int &= ~IXGBE_KRM_AN_CNTL_8_LIMITING;
-			reg_phy_int |= IXGBE_KRM_AN_CNTL_8_LINEAR;
-		} else {
-			reg_phy_int |= IXGBE_KRM_AN_CNTL_8_LIMITING;
-			reg_phy_int &= ~IXGBE_KRM_AN_CNTL_8_LINEAR;
-		}
+		reg_phy_int &= IXGBE_KRM_PMD_FLX_MASK_ST20_SFI_10G_DA;
+		if (!setup_linear)
+			reg_phy_int |= IXGBE_KRM_PMD_FLX_MASK_ST20_SFI_10G_SR;
 
 		ret_val = hw->mac.ops.write_iosf_sb_reg(hw,
-				IXGBE_KRM_AN_CNTL_8(hw->bus.lan_id),
-				IXGBE_SB_IOSF_TARGET_KR_PHY, reg_phy_int);
+				   IXGBE_KRM_PMD_FLX_MASK_ST20(hw->bus.lan_id),
+				   IXGBE_SB_IOSF_TARGET_KR_PHY, reg_phy_int);
 
 		if (ret_val != IXGBE_SUCCESS)
 			return ret_val;
 
-		/* Setup XFI/SFI internal link. */
-		ret_val = ixgbe_setup_ixfi_x550em(hw, &speed);
+		/* Setup SFI internal link. */
+		ret_val = ixgbe_setup_sfi_x550a(hw, &speed);
 	} else {
 		/* Configure internal PHY for KR/KX. */
 		ixgbe_setup_kr_speed_x550em(hw, speed);
@@ -2874,15 +3011,7 @@ STATIC s32 ixgbe_setup_ixfi_x550em(struct ixgbe_hw *hw, ixgbe_link_speed *speed)
 	}
 
 	/* Toggle port SW reset by AN reset. */
-	status = mac->ops.read_iosf_sb_reg(hw,
-					IXGBE_KRM_LINK_CTRL_1(hw->bus.lan_id),
-					IXGBE_SB_IOSF_TARGET_KR_PHY, &reg_val);
-	if (status != IXGBE_SUCCESS)
-		return status;
-	reg_val |= IXGBE_KRM_LINK_CTRL_1_TETH_AN_RESTART;
-	status = mac->ops.write_iosf_sb_reg(hw,
-					IXGBE_KRM_LINK_CTRL_1(hw->bus.lan_id),
-					IXGBE_SB_IOSF_TARGET_KR_PHY, reg_val);
+	status = ixgbe_restart_an_internal_phy_x550em(hw);
 
 	return status;
 }
@@ -4225,7 +4354,7 @@ out:
 s32 ixgbe_setup_fc_backplane_x550em_a(struct ixgbe_hw *hw)
 {
 	s32 status = IXGBE_SUCCESS;
-	u32 an_cntl, link_ctrl = 0;
+	u32 an_cntl = 0;
 
 	DEBUGFUNC("ixgbe_setup_fc_backplane_x550em_a");
 
@@ -4299,19 +4428,7 @@ s32 ixgbe_setup_fc_backplane_x550em_a(struct ixgbe_hw *hw)
 				       IXGBE_SB_IOSF_TARGET_KR_PHY, an_cntl);
 
 	/* Restart auto-negotiation. */
-	status = hw->mac.ops.read_iosf_sb_reg(hw,
-				      IXGBE_KRM_LINK_CTRL_1(hw->bus.lan_id),
-				      IXGBE_SB_IOSF_TARGET_KR_PHY, &link_ctrl);
-
-	if (status != IXGBE_SUCCESS) {
-		DEBUGOUT("Auto-Negotiation did not complete\n");
-		return status;
-	}
-
-	link_ctrl |= IXGBE_KRM_LINK_CTRL_1_TETH_AN_RESTART;
-	status = hw->mac.ops.write_iosf_sb_reg(hw,
-				       IXGBE_KRM_LINK_CTRL_1(hw->bus.lan_id),
-				       IXGBE_SB_IOSF_TARGET_KR_PHY, link_ctrl);
+	status = ixgbe_restart_an_internal_phy_x550em(hw);
 
 	return status;
 }
@@ -4425,19 +4542,7 @@ s32 ixgbe_setup_fc_fiber_x550em_a(struct ixgbe_hw *hw)
 					   IXGBE_SB_IOSF_TARGET_KR_PHY, pcs_an);
 
 	/* Restart auto-negotiation. */
-	rc = hw->mac.ops.read_iosf_sb_reg(hw,
-					  IXGBE_KRM_LINK_CTRL_1(hw->bus.lan_id),
-					  IXGBE_SB_IOSF_TARGET_KR_PHY, &lctrl);
-
-	if (rc) {
-		DEBUGOUT("Auto-Negotiation did not complete\n");
-		return rc;
-	}
-
-	lctrl |= IXGBE_KRM_LINK_CTRL_1_TETH_AN_RESTART;
-	rc = hw->mac.ops.write_iosf_sb_reg(hw,
-					IXGBE_KRM_LINK_CTRL_1(hw->bus.lan_id),
-					IXGBE_SB_IOSF_TARGET_KR_PHY, lctrl);
+	rc = ixgbe_restart_an_internal_phy_x550em(hw);
 
 	return rc;
 }
-- 
1.9.3

  parent reply	other threads:[~2016-09-25  9:01 UTC|newest]

Thread overview: 107+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-08-27 15:47 [dpdk-dev] [PATCH 00/39] net/ixgbe: base code update Xiao Wang
2016-08-27 15:47 ` [dpdk-dev] [PATCH 01/39] net/ixgbe/base: fix delta check for setting VFTA Xiao Wang
2016-09-19 17:00   ` Ferruh Yigit
2016-09-22 15:58     ` Wang, Xiao W
2016-09-25  8:59   ` [dpdk-dev] [PATCH v2 00/40] net/ixgbe: base code update Xiao Wang
2016-09-25  8:59     ` [dpdk-dev] [PATCH v2 01/40] net/ixgbe/base: fix delta check for setting VFTA Xiao Wang
2016-09-25  8:59     ` [dpdk-dev] [PATCH v2 02/40] net/ixgbe/base: remove X550em SFP iXFI setup Xiao Wang
2016-09-25  8:59     ` [dpdk-dev] [PATCH v2 03/40] net/ixgbe/base: change endianness of PHY data Xiao Wang
2016-09-25  8:59     ` [dpdk-dev] [PATCH v2 04/40] net/ixgbe/base: add X550em_a 10G PHY support Xiao Wang
2016-09-25  8:59     ` [dpdk-dev] [PATCH v2 05/40] net/ixgbe/base: move vf_update_xcast_mode to base code Xiao Wang
2016-09-25  8:59     ` [dpdk-dev] [PATCH v2 06/40] net/ixgbe/base: introduce new ops init functions Xiao Wang
2016-09-25  8:59     ` [dpdk-dev] [PATCH v2 07/40] net/ixgbe/base: separate PHY probe code Xiao Wang
2016-09-25  8:59     ` [dpdk-dev] [PATCH v2 08/40] net/ixgbe/base: fully initialize X550em_a 1G PHYs Xiao Wang
2016-09-25  8:59     ` [dpdk-dev] [PATCH v2 09/40] net/ixgbe/base: add macros for VF promiscuous mode Xiao Wang
2016-09-25  8:59     ` [dpdk-dev] [PATCH v2 10/40] net/ixgbe/base: add FC setup for X550em_a fiber Xiao Wang
2016-09-25  8:59     ` [dpdk-dev] [PATCH v2 11/40] net/ixgbe/base: add FC autoneg " Xiao Wang
2016-09-25  8:59     ` [dpdk-dev] [PATCH v2 12/40] net/ixgbe/base: clear page register in error path Xiao Wang
2016-09-25  8:59     ` [dpdk-dev] [PATCH v2 13/40] net/ixgbe/base: configure DMAC for 10Mb operation Xiao Wang
2016-09-25  8:59     ` [dpdk-dev] [PATCH v2 14/40] net/ixgbe/base: fix function comments about X550 Xiao Wang
2016-09-25  8:59     ` [dpdk-dev] [PATCH v2 15/40] net/ixgbe/base: report setting LPE register error Xiao Wang
2016-09-25  8:59     ` [dpdk-dev] [PATCH v2 16/40] net/ixgbe/base: bump mailbox version Xiao Wang
2016-09-25  8:59     ` [dpdk-dev] [PATCH v2 17/40] net/ixgbe/base: access IOSF by host interface Xiao Wang
2016-09-25  8:59     ` [dpdk-dev] [PATCH v2 18/40] net/ixgbe/base: fix check on NACK Xiao Wang
2016-09-25  8:59     ` [dpdk-dev] [PATCH v2 19/40] net/ixgbe/base: define X550 PCIe serial MAC addr Xiao Wang
2016-09-25  8:59     ` [dpdk-dev] [PATCH v2 20/40] net/ixgbe/base: bypass checking link for crosstalk Xiao Wang
2016-09-25  8:59     ` [dpdk-dev] [PATCH v2 21/40] net/ixgbe/base: support X550em_a SGMII FC autoneg Xiao Wang
2016-09-25  8:59     ` [dpdk-dev] [PATCH v2 22/40] net/ixgbe/base: add macros for GENEVE UDP port Xiao Wang
2016-09-25  9:00     ` [dpdk-dev] [PATCH v2 23/40] net/ixgbe/base: add bound check in LED functions Xiao Wang
2016-09-25  9:00     ` [dpdk-dev] [PATCH v2 24/40] net/ixgbe/base: use default check link function Xiao Wang
2016-09-25  9:00     ` [dpdk-dev] [PATCH v2 25/40] net/ixgbe/base: set default autoneg speed at reset Xiao Wang
2016-09-25  9:00     ` [dpdk-dev] [PATCH v2 26/40] net/ixgbe/base: add missing FDIRSCTPM mask setting Xiao Wang
2016-09-25  9:00     ` [dpdk-dev] [PATCH v2 27/40] net/ixgbe/base: commonize mailbox write and read Xiao Wang
2016-09-25  9:00     ` [dpdk-dev] [PATCH v2 28/40] net/ixgbe/base: reduce delay for SWFW semaphore Xiao Wang
2016-09-25  9:00     ` [dpdk-dev] [PATCH v2 29/40] net/ixgbe/base: report autoneg supported for X550 Xiao Wang
2016-09-25  9:00     ` [dpdk-dev] [PATCH v2 30/40] net/ixgbe/base: remove X550em_a 100Mbps support Xiao Wang
2016-09-25  9:00     ` [dpdk-dev] [PATCH v2 31/40] net/ixgbe/base: unify link speed value Xiao Wang
2016-09-25  9:00     ` [dpdk-dev] [PATCH v2 32/40] net/ixgbe/base: separate ops init from PHY init Xiao Wang
2016-09-25  9:00     ` Xiao Wang [this message]
2016-09-25  9:00     ` [dpdk-dev] [PATCH v2 34/40] net/ixgbe/base: add two MAC ops for Hyper-V Xiao Wang
2016-09-25  9:00     ` [dpdk-dev] [PATCH v2 35/40] net/ixgbe/base: hold semaphore for shadow RAM access Xiao Wang
2016-09-25  9:00     ` [dpdk-dev] [PATCH v2 36/40] net/ixgbe/base: update X550em_a backplane speed Xiao Wang
2016-09-25  9:00     ` [dpdk-dev] [PATCH v2 37/40] net/ixgbe/base: clean code of flow control autoneg Xiao Wang
2016-09-25  9:00     ` [dpdk-dev] [PATCH v2 38/40] net/ixgbe/base: do not skip PHY configuration Xiao Wang
2016-09-25  9:00     ` [dpdk-dev] [PATCH v2 39/40] net/ixgbe/base: clean up Xiao Wang
2016-09-25  9:00     ` [dpdk-dev] [PATCH v2 40/40] net/ixgbe/base: add base driver update brief Xiao Wang
2016-09-26  2:06     ` [dpdk-dev] [PATCH v2 00/40] net/ixgbe: base code update Lu, Wenzhuo
2016-09-28 15:31       ` Bruce Richardson
2016-08-27 15:47 ` [dpdk-dev] [PATCH 02/39] net/ixgbe/base: remove X550em SFP iXFI setup Xiao Wang
2016-09-19 17:01   ` Ferruh Yigit
2016-08-27 15:47 ` [dpdk-dev] [PATCH 03/39] net/ixgbe/base: change endianness of PHY data Xiao Wang
2016-09-19 17:01   ` Ferruh Yigit
2016-09-25  0:36     ` Wang, Xiao W
2016-08-27 15:47 ` [dpdk-dev] [PATCH 04/39] net/ixgbe/base: add X550em_a 10G PHY support Xiao Wang
2016-08-27 15:47 ` [dpdk-dev] [PATCH 05/39] net/ixgbe/base: support VF multicast promiscuous Xiao Wang
2016-09-19 17:05   ` Ferruh Yigit
2016-09-23  3:35     ` Wang, Xiao W
2016-08-27 15:47 ` [dpdk-dev] [PATCH 06/39] net/ixgbe/base: introduce new ops init functions Xiao Wang
2016-08-27 15:47 ` [dpdk-dev] [PATCH 07/39] net/ixgbe/base: separate PHY probe code Xiao Wang
2016-08-27 15:47 ` [dpdk-dev] [PATCH 08/39] net/ixgbe/base: fully initialize X550em_a 1G PHYs Xiao Wang
2016-08-27 15:47 ` [dpdk-dev] [PATCH 09/39] net/ixgbe/base: add macros for VF promiscuous mode Xiao Wang
2016-08-27 15:47 ` [dpdk-dev] [PATCH 10/39] net/ixgbe/base: add FC setup for X550em_a fiber Xiao Wang
2016-08-27 15:47 ` [dpdk-dev] [PATCH 11/39] net/ixgbe/base: add FC autoneg " Xiao Wang
2016-08-27 15:47 ` [dpdk-dev] [PATCH 12/39] net/ixgbe/base: clear page register in error path Xiao Wang
2016-08-27 15:47 ` [dpdk-dev] [PATCH 13/39] net/ixgbe/base: configure DMAC for 10Mb operation Xiao Wang
2016-08-27 15:47 ` [dpdk-dev] [PATCH 14/39] net/ixgbe/base: fix function comments about X550 Xiao Wang
2016-08-27 15:47 ` [dpdk-dev] [PATCH 15/39] net/ixgbe/base: report setting LPE register error Xiao Wang
2016-08-27 15:47 ` [dpdk-dev] [PATCH 16/39] net/ixgbe/base: bump mailbox version Xiao Wang
2016-09-19 17:03   ` Ferruh Yigit
2016-09-23  3:50     ` Wang, Xiao W
2016-08-27 15:48 ` [dpdk-dev] [PATCH 17/39] net/ixgbe/base: access IOSF by host interface Xiao Wang
2016-09-19 17:04   ` Ferruh Yigit
2016-09-23  5:16     ` Wang, Xiao W
2016-08-27 15:48 ` [dpdk-dev] [PATCH 18/39] net/ixgbe/base: fix check on NACK Xiao Wang
2016-09-19 17:07   ` Ferruh Yigit
2016-09-23  6:05     ` Wang, Xiao W
2016-08-27 15:48 ` [dpdk-dev] [PATCH 19/39] net/ixgbe/base: define X550 PCIe serial MAC addr Xiao Wang
2016-08-27 15:48 ` [dpdk-dev] [PATCH 20/39] net/ixgbe/base: bypass checking link for crosstalk Xiao Wang
2016-08-27 15:48 ` [dpdk-dev] [PATCH 21/39] net/ixgbe/base: support X550em_a SGMII FC autoneg Xiao Wang
2016-08-27 15:48 ` [dpdk-dev] [PATCH 22/39] net/ixgbe/base: add macros for GENEVE UDP port Xiao Wang
2016-08-27 15:48 ` [dpdk-dev] [PATCH 23/39] net/ixgbe/base: add bound check in LED functions Xiao Wang
2016-09-19 17:06   ` Ferruh Yigit
2016-09-22 16:08     ` Wang, Xiao W
2016-08-27 15:48 ` [dpdk-dev] [PATCH 24/39] net/ixgbe/base: use default check link function Xiao Wang
2016-08-27 15:48 ` [dpdk-dev] [PATCH 25/39] net/ixgbe/base: set default autoneg speed at reset Xiao Wang
2016-08-27 15:48 ` [dpdk-dev] [PATCH 26/39] net/ixgbe/base: add missing FDIRSCTPM mask setting Xiao Wang
2016-08-27 15:48 ` [dpdk-dev] [PATCH 27/39] net/ixgbe/base: commonize mailbox write and read Xiao Wang
2016-08-27 15:48 ` [dpdk-dev] [PATCH 28/39] net/ixgbe/base: reduce delay for SWFW semaphore Xiao Wang
2016-08-27 15:48 ` [dpdk-dev] [PATCH 29/39] net/ixgbe/base: report autoneg supported for X550 Xiao Wang
2016-09-19 17:07   ` Ferruh Yigit
2016-09-23  0:59     ` Wang, Xiao W
2016-08-27 15:48 ` [dpdk-dev] [PATCH 30/39] net/ixgbe/base: remove X550em_a 100Mbps support Xiao Wang
2016-08-27 15:48 ` [dpdk-dev] [PATCH 31/39] net/ixgbe/base: unify link speed value Xiao Wang
2016-08-27 15:48 ` [dpdk-dev] [PATCH 32/39] net/ixgbe/base: separate ops init from PHY init Xiao Wang
2016-08-27 15:48 ` [dpdk-dev] [PATCH 33/39] net/ixgbe/base: add X550em_a FW ALEF support Xiao Wang
2016-09-19 17:07   ` Ferruh Yigit
2016-09-22  2:56     ` Lu, Wenzhuo
2016-09-23  6:47       ` Wang, Xiao W
2016-08-27 15:48 ` [dpdk-dev] [PATCH 34/39] net/ixgbe/base: add two MAC ops for Hyper-V Xiao Wang
2016-08-27 15:48 ` [dpdk-dev] [PATCH 35/39] net/ixgbe/base: hold semaphore for shadow RAM access Xiao Wang
2016-09-19 17:08   ` Ferruh Yigit
2016-09-23  8:06     ` Wang, Xiao W
2016-08-27 15:48 ` [dpdk-dev] [PATCH 36/39] net/ixgbe/base: update X550em_a backplane speed Xiao Wang
2016-08-27 15:48 ` [dpdk-dev] [PATCH 37/39] net/ixgbe/base: clean code of flow control autoneg Xiao Wang
2016-08-27 15:48 ` [dpdk-dev] [PATCH 38/39] net/ixgbe/base: do not skip PHY configuration Xiao Wang
2016-08-27 15:48 ` [dpdk-dev] [PATCH 39/39] net/ixgbe/base: add base driver update brief Xiao Wang
2016-09-19 17:08   ` Ferruh Yigit
2016-09-22  2:55     ` Lu, Wenzhuo

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1474794017-5896-34-git-send-email-xiao.w.wang@intel.com \
    --to=xiao.w.wang@intel.com \
    --cc=dev@dpdk.org \
    --cc=ferruh.yigit@intel.com \
    --cc=wenzhuo.lu@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).