[dpdk-dev] [PATCH] net/ixgbe: fix link never come up problem with x552

2016-11-11 Thread Thomas Monjalon
> > From: zhao wei 
> > 
> > The links never coming up with DPDK16.11 when bring up x552 NIC, device id 
> > is
> > 15ac.This is caused by delete some code which casing removes X550em SFP iXFI
> > setup for the drivers in function ixgbe_setup_mac_link_sfp_x550em().Fix
> > methord is recover the deleted code.
> > 
> > Fixes: 1726b9cd9c40 ("net/ixgbe/base: remove X550em SFP iXFI setup")
> > 
> > Signed-off-by: zhao wei 
> Acked-by: Wenzhuo Lu 
> Thanks for the patch. It's a critical issue. We need to fix it. I'll report 
> it to our kernel driver developers.

Applied, thanks


[dpdk-dev] [PATCH] net/ixgbe: fix link never come up problem with x552

2016-11-09 Thread Wei Zhao
From: zhao wei 

The links never coming up with DPDK16.11 when bring up x552 NIC,
device id is 15ac.This is caused by delete some code which casing
removes X550em SFP iXFI setup for the drivers in function
ixgbe_setup_mac_link_sfp_x550em().Fix methord is recover
the deleted code.

Fixes: 1726b9cd9c40 ("net/ixgbe/base: remove X550em SFP iXFI setup")

Signed-off-by: zhao wei 
---
 drivers/net/ixgbe/base/ixgbe_x550.c | 57 ++---
 1 file changed, 46 insertions(+), 11 deletions(-)

diff --git a/drivers/net/ixgbe/base/ixgbe_x550.c 
b/drivers/net/ixgbe/base/ixgbe_x550.c
index 87d4302..acb8140 100644
--- a/drivers/net/ixgbe/base/ixgbe_x550.c
+++ b/drivers/net/ixgbe/base/ixgbe_x550.c
@@ -2762,18 +2762,53 @@ s32 ixgbe_setup_mac_link_sfp_x550em(struct ixgbe_hw *hw,
if (ret_val != IXGBE_SUCCESS)
return ret_val;

-   /* Configure internal PHY for KR/KX. */
-   ixgbe_setup_kr_speed_x550em(hw, speed);
-
-   /* Configure CS4227 LINE side to proper mode. */
-   reg_slice = IXGBE_CS4227_LINE_SPARE24_LSB +
-   (hw->bus.lan_id << 12);
-   if (setup_linear)
-   reg_val = (IXGBE_CS4227_EDC_MODE_CX1 << 1) | 0x1;
-   else
+   if (!(hw->phy.nw_mng_if_sel & IXGBE_NW_MNG_IF_SEL_INT_PHY_MODE)) {
+   /* Configure CS4227 LINE side to 10G SR. */
+   reg_slice = IXGBE_CS4227_LINE_SPARE22_MSB +
+   (hw->bus.lan_id << 12);
+   reg_val = IXGBE_CS4227_SPEED_10G;
+   ret_val = hw->link.ops.write_link(hw, hw->link.addr, reg_slice,
+ reg_val);
+
+   reg_slice = IXGBE_CS4227_LINE_SPARE24_LSB +
+   (hw->bus.lan_id << 12);
reg_val = (IXGBE_CS4227_EDC_MODE_SR << 1) | 0x1;
-   ret_val = hw->link.ops.write_link(hw, hw->link.addr, reg_slice,
- reg_val);
+   ret_val = hw->link.ops.write_link(hw, hw->link.addr, reg_slice,
+ reg_val);
+
+   /* Configure CS4227 for HOST connection rate then type. */
+   reg_slice = IXGBE_CS4227_HOST_SPARE22_MSB +
+   (hw->bus.lan_id << 12);
+   reg_val = (speed & IXGBE_LINK_SPEED_10GB_FULL) ?
+   IXGBE_CS4227_SPEED_10G : IXGBE_CS4227_SPEED_1G;
+   ret_val = hw->link.ops.write_link(hw, hw->link.addr, reg_slice,
+ reg_val);
+
+   reg_slice = IXGBE_CS4227_HOST_SPARE24_LSB +
+   (hw->bus.lan_id << 12);
+   if (setup_linear)
+   reg_val = (IXGBE_CS4227_EDC_MODE_CX1 << 1) | 0x1;
+   else
+   reg_val = (IXGBE_CS4227_EDC_MODE_SR << 1) | 0x1;
+   ret_val = hw->link.ops.write_link(hw, hw->link.addr, reg_slice,
+ reg_val);
+
+   /* Setup XFI internal link. */
+   ret_val = ixgbe_setup_ixfi_x550em(hw, );
+   } else {
+   /* Configure internal PHY for KR/KX. */
+   ixgbe_setup_kr_speed_x550em(hw, speed);
+
+   /* Configure CS4227 LINE side to proper mode. */
+   reg_slice = IXGBE_CS4227_LINE_SPARE24_LSB +
+   (hw->bus.lan_id << 12);
+   if (setup_linear)
+   reg_val = (IXGBE_CS4227_EDC_MODE_CX1 << 1) | 0x1;
+   else
+   reg_val = (IXGBE_CS4227_EDC_MODE_SR << 1) | 0x1;
+   ret_val = hw->link.ops.write_link(hw, hw->link.addr, reg_slice,
+ reg_val);
+   }
return ret_val;
 }

-- 
2.5.5



[dpdk-dev] [PATCH] net/ixgbe: fix link never come up problem with x552

2016-11-09 Thread Wei Zhao
From: zhao wei 

The links never coming up with DPDK16.11 when bring up x552 NIC,
device id is 15ac.This is caused by delete some code which casing
removes X550em SFP iXFI setup for the drivers in function
ixgbe_setup_mac_link_sfp_x550em().Fix methord is recover
the deleted code.

Fixes: 1726b9cd9c40 ("net/ixgbe/base: remove X550em SFP iXFI setup")
Signed-off-by: zhao wei 
---
 drivers/net/ixgbe/base/ixgbe_x550.c | 57 ++---
 1 file changed, 46 insertions(+), 11 deletions(-)

diff --git a/drivers/net/ixgbe/base/ixgbe_x550.c 
b/drivers/net/ixgbe/base/ixgbe_x550.c
index 87d4302..acb8140 100644
--- a/drivers/net/ixgbe/base/ixgbe_x550.c
+++ b/drivers/net/ixgbe/base/ixgbe_x550.c
@@ -2762,18 +2762,53 @@ s32 ixgbe_setup_mac_link_sfp_x550em(struct ixgbe_hw *hw,
if (ret_val != IXGBE_SUCCESS)
return ret_val;

-   /* Configure internal PHY for KR/KX. */
-   ixgbe_setup_kr_speed_x550em(hw, speed);
-
-   /* Configure CS4227 LINE side to proper mode. */
-   reg_slice = IXGBE_CS4227_LINE_SPARE24_LSB +
-   (hw->bus.lan_id << 12);
-   if (setup_linear)
-   reg_val = (IXGBE_CS4227_EDC_MODE_CX1 << 1) | 0x1;
-   else
+   if (!(hw->phy.nw_mng_if_sel & IXGBE_NW_MNG_IF_SEL_INT_PHY_MODE)) {
+   /* Configure CS4227 LINE side to 10G SR. */
+   reg_slice = IXGBE_CS4227_LINE_SPARE22_MSB +
+   (hw->bus.lan_id << 12);
+   reg_val = IXGBE_CS4227_SPEED_10G;
+   ret_val = hw->link.ops.write_link(hw, hw->link.addr, reg_slice,
+ reg_val);
+
+   reg_slice = IXGBE_CS4227_LINE_SPARE24_LSB +
+   (hw->bus.lan_id << 12);
reg_val = (IXGBE_CS4227_EDC_MODE_SR << 1) | 0x1;
-   ret_val = hw->link.ops.write_link(hw, hw->link.addr, reg_slice,
- reg_val);
+   ret_val = hw->link.ops.write_link(hw, hw->link.addr, reg_slice,
+ reg_val);
+
+   /* Configure CS4227 for HOST connection rate then type. */
+   reg_slice = IXGBE_CS4227_HOST_SPARE22_MSB +
+   (hw->bus.lan_id << 12);
+   reg_val = (speed & IXGBE_LINK_SPEED_10GB_FULL) ?
+   IXGBE_CS4227_SPEED_10G : IXGBE_CS4227_SPEED_1G;
+   ret_val = hw->link.ops.write_link(hw, hw->link.addr, reg_slice,
+ reg_val);
+
+   reg_slice = IXGBE_CS4227_HOST_SPARE24_LSB +
+   (hw->bus.lan_id << 12);
+   if (setup_linear)
+   reg_val = (IXGBE_CS4227_EDC_MODE_CX1 << 1) | 0x1;
+   else
+   reg_val = (IXGBE_CS4227_EDC_MODE_SR << 1) | 0x1;
+   ret_val = hw->link.ops.write_link(hw, hw->link.addr, reg_slice,
+ reg_val);
+
+   /* Setup XFI internal link. */
+   ret_val = ixgbe_setup_ixfi_x550em(hw, );
+   } else {
+   /* Configure internal PHY for KR/KX. */
+   ixgbe_setup_kr_speed_x550em(hw, speed);
+
+   /* Configure CS4227 LINE side to proper mode. */
+   reg_slice = IXGBE_CS4227_LINE_SPARE24_LSB +
+   (hw->bus.lan_id << 12);
+   if (setup_linear)
+   reg_val = (IXGBE_CS4227_EDC_MODE_CX1 << 1) | 0x1;
+   else
+   reg_val = (IXGBE_CS4227_EDC_MODE_SR << 1) | 0x1;
+   ret_val = hw->link.ops.write_link(hw, hw->link.addr, reg_slice,
+ reg_val);
+   }
return ret_val;
 }

-- 
2.5.5



[dpdk-dev] [PATCH] net/ixgbe: fix link never come up problem with x552

2016-11-09 Thread Lu, Wenzhuo
Hi,


> -Original Message-
> From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Wei Zhao
> Sent: Wednesday, November 9, 2016 3:00 PM
> To: dev at dpdk.org
> Cc: Zhao1, Wei
> Subject: [dpdk-dev] [PATCH] net/ixgbe: fix link never come up problem with 
> x552
> 
> From: zhao wei 
> 
> The links never coming up with DPDK16.11 when bring up x552 NIC, device id is
> 15ac.This is caused by delete some code which casing removes X550em SFP iXFI
> setup for the drivers in function ixgbe_setup_mac_link_sfp_x550em().Fix
> methord is recover the deleted code.
> 
> Fixes: 1726b9cd9c40 ("net/ixgbe/base: remove X550em SFP iXFI setup")
> 
> Signed-off-by: zhao wei 
Acked-by: Wenzhuo Lu 
Thanks for the patch. It's a critical issue. We need to fix it. I'll report it 
to our kernel driver developers.