Skip to contentSkip to conversation

net/e1000: add minimum support for Broadcom 54616 PHY

PATCH Applied Chas Williams 3 participants 8 messages Dec 6, 2017 – May 8, 2018 Network drivers

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 net/e1000: add minimum support for Broadcom 54616 PHY

From: "Charles (Chas) Williams" <[email protected]>

If we find a Broadcom 54616, handle as a e1000_phy_none assuming that the NIC reset has initialized the PHY to a sane state.

---
 drivers/net/e1000/base/e1000_82575.c   | 5 +++++
 drivers/net/e1000/base/e1000_defines.h | 1 +
 2 files changed, 6 insertions(+)
drivers/net/e1000/base/e1000_82575.c +5 -0
index c6400bd..3bcb6da 100644
@@ -312,6 +312,9 @@ STATIC s32 e1000_init_phy_params_82575(struct e1000_hw *hw)
 		phy->ops.set_d3_lplu_state = e1000_set_d3_lplu_state_82580;
 		phy->ops.force_speed_duplex = e1000_phy_force_speed_duplex_m88;
 		break;
+	case BCM54616_E_PHY_ID:
+		phy->type		= e1000_phy_none;
+		break;
 	default:
 		ret_val = -E1000_ERR_PHY;
 		goto out;
@@ -1607,6 +1610,8 @@ STATIC s32 e1000_setup_copper_link_82575(struct e1000_hw *hw)
 	case e1000_phy_82580:
 		ret_val = e1000_copper_link_setup_82577(hw);
 		break;
+	case e1000_phy_none:
+		break;
 	default:
 		ret_val = -E1000_ERR_PHY;
 		break;
drivers/net/e1000/base/e1000_defines.h +1 -0
index dbc2bbb..e2101c1 100644
@@ -1274,6 +1274,7 @@ POSSIBILITY OF SUCH DAMAGE.
 #define I350_I_PHY_ID		0x015403B0
 #define I210_I_PHY_ID		0x01410C00
 #define IGP04E1000_E_PHY_ID	0x02A80391
+#define BCM54616_E_PHY_ID	0x03625D10
 #define M88_VENDOR		0x0141
 
 /* M88E1000 Specific Registers */
Signature · 1 line
2.9.5
#1 lore raw

Sorry, sent this to the wrong maintainer initially. I am cc'ing the Broadcom bnxt maintainers in hopes that they might comment about the 54616 behavior on reset. I couldn't find any programmer guide for this chip online but PHYs are typically well behaved. This patch does work on our test system.

Quoted 55 lines · Chas Williams

From: "Charles (Chas) Williams" <[email protected]>

If we find a Broadcom 54616, handle as a e1000_phy_none assuming that the NIC reset has initialized the PHY to a sane state.

---
 drivers/net/e1000/base/e1000_82575.c   | 5 +++++
 drivers/net/e1000/base/e1000_defines.h | 1 +
 2 files changed, 6 insertions(+)
drivers/net/e1000/base/e1000_82575.c +3 -0
index c6400bd..3bcb6da 100644
@@ -312,6 +312,9 @@ STATIC s32 e1000_init_phy_params_82575(struct
 e1000_hw *hw)
                phy->ops.set_d3_lplu_state = e1000_set_d3_lplu_state_82580;
                phy->ops.force_speed_duplex = e1000_phy_force_speed_duplex_
 m88;
                break;
+       case BCM54616_E_PHY_ID:
+               phy->type               = e1000_phy_none;
+               break;
        default:
                ret_val = -E1000_ERR_PHY;
                goto out;
drivers/net/e1000/base/e1000_82575.c +2 -0
@@ -1607,6 +1610,8 @@ STATIC s32 e1000_setup_copper_link_82575(struct
 e1000_hw *hw)
        case e1000_phy_82580:
                ret_val = e1000_copper_link_setup_82577(hw);
                break;
+       case e1000_phy_none:
+               break;
        default:
                ret_val = -E1000_ERR_PHY;
                break;
drivers/net/e1000/base/e1000_defines.h +1 -1
index dbc2bbb..e2101c1 100644
@@ -1274,6 +1274,7 @@ POSSIBILITY OF SUCH DAMAGE.
 #define I350_I_PHY_ID          0x015403B0
 #define I210_I_PHY_ID          0x01410C00
 #define IGP04E1000_E_PHY_ID    0x02A80391
+#define BCM54616_E_PHY_ID      0x03625D10
 #define M88_VENDOR             0x0141
 
 /* M88E1000 Specific Registers */
--

2.9.5

#2 lore raw
In reply to Chas Williams

Hi Chas,

Quoted 21 lines

-----Original Message-----
From: dev [mailto:[email protected]] On Behalf Of Chas Williams
Sent: Thursday, December 7, 2017 7:55 AM
To: [email protected]
Cc: [email protected]; Charles (Chas) Williams <[email protected]>; Chas Williams <[email protected]>
Subject: [dpdk-dev] [PATCH] net/e1000: add minimum support for Broadcom 54616 PHY

From: "Charles (Chas) Williams" <[email protected]>

If we find a Broadcom 54616, handle as a e1000_phy_none assuming that the NIC reset has initialized the PHY to a sane state.

b/drivers/net/e1000/base/e1000_defines.h
index dbc2bbb..e2101c1 100644

drivers/net/e1000/base/e1000_defines.h POSSIBILITY OF SUCH DAMAGE. · line 1277

Quoted 4 lines
drivers/net/e1000/base/e1000_defines.h +1 -0
@@ -1274,6 +1274,7 @@ POSSIBILITY OF SUCH DAMAGE.
 #define I350_I_PHY_ID		0x015403B0
 #define I210_I_PHY_ID		0x01410C00
 #define IGP04E1000_E_PHY_ID	0x02A80391
+#define BCM54616_E_PHY_ID	0x03625D10

TBH, normally we don't change the base code. I checked the kernel driver and don't find this PHY either. May I ask if it's an Intel NIC and what's the device ID? Thanks.

#3 lore raw

I derived that value by observing what the ixgbe finds when loading on my platform. The docs for the platform say that the attached PHY is a Broadcom 54616. I couldn't find any documentation on this PHY to determine what this value is (i.e. is it really some sort of ID string for that
PHY). I almost suspect that the ixgbe is reading some registers on the
PHY that just happen to contain this value after reset.

Supposedly it's similar to the 54618 but that really doesn't provide much more information. The bnx2x has a driver for the 54618 and nothing that looks similar to that string.

#4 lore raw

Hi Chas,
1, Would you like to use this CLI “lspci -nn | grep Eth” to get the device ID of the NIC?
2, You mentioned “the doc of the platform”. Is it public? If so, could you tell me the link? Just want to understand more about it. Thanks.

Best regards
Wenzhuo Lu

From: Chas Williams [mailto:[email protected]]
Sent: Friday, January 12, 2018 1:57 AM
To: Lu, Wenzhuo <[email protected]>
Cc: [email protected]; [email protected]; Charles (Chas) Williams <[email protected]>; Chas Williams <[email protected]>
Subject: Re: [dpdk-dev] [PATCH] net/e1000: add minimum support for Broadcom 54616 PHY

I derived that value by observing what the ixgbe finds when loading on my platform. The docs for the platform say that the attached PHY is a Broadcom 54616. I couldn't find any documentation on this PHY to determine what this value is (i.e. is it really some sort of ID string for that PHY). I almost suspect that the ixgbe is reading some registers on the PHY that just happen to contain this value after reset.

Supposedly it's similar to the 54618 but that really doesn't provide much more information. The bnx2x has a driver for the 54618 and nothing that looks similar to that string.

#5 lore raw

00:14.0 Ethernet controller [0200]: Intel Corporation Ethernet Connection I354 [8086:1f41] (rev 03)

I am not clear on the status of the document I have. Here is a link to a similar product: https://people.ucsc.edu/~warner/Bufs/AG6248.pdf -- I have the 7648c which is somewhat similar to the 6248c as far as the "out of band" ports.

Quoted 43 lines · Wenzhuo

Hi Chas,

1, Would you like to use this CLI “lspci -nn | grep Eth” to get the device ID of the NIC?

2, You mentioned “the doc of the platform”. Is it public? If so, could you tell me the link? Just want to understand more about it.

Thanks.

Best regards

Wenzhuo Lu

*From:* Chas Williams [mailto:[email protected]]
*Sent:* Friday, January 12, 2018 1:57 AM
*To:* Lu, Wenzhuo <[email protected]>
*Cc:* [email protected]; [email protected]; Charles (Chas) Williams < [email protected]>; Chas Williams <[email protected]> *Subject:* Re: [dpdk-dev] [PATCH] net/e1000: add minimum support for Broadcom 54616 PHY

I derived that value by observing what the ixgbe finds when loading on my platform. The docs for the platform say that the attached PHY is a Broadcom 54616. I couldn't find any documentation on this PHY to determine what this value is (i.e. is it really some sort of ID string for that
PHY). I almost suspect that the ixgbe is reading some registers on the
PHY that just happen to contain this value after reset.

Supposedly it's similar to the 54618 but that really doesn't provide much more information. The bnx2x has a driver for the 54618 and nothing that looks similar to that string.

Acked-by Wenzhuo Lu
#6 lore raw
In reply to Chas Williams

Hi Chas,

Thanks for your info and the patch. I think we should have it.

Best regards
Wenzhuo Lu

From: Chas Williams [mailto:[email protected]]
Sent: Friday, January 12, 2018 1:57 AM
To: Lu, Wenzhuo <[email protected]>
Cc: [email protected]; [email protected]; Charles (Chas) Williams <[email protected]>; Chas Williams <[email protected]>
Subject: Re: [dpdk-dev] [PATCH] net/e1000: add minimum support for Broadcom 54616 PHY

I derived that value by observing what the ixgbe finds when loading on my platform. The docs for the platform say that the attached PHY is a Broadcom 54616. I couldn't find any documentation on this PHY to determine what this value is (i.e. is it really some sort of ID string for that PHY). I almost suspect that the ixgbe is reading some registers on the PHY that just happen to contain this value after reset.

Supposedly it's similar to the 54618 but that really doesn't provide much more information. The bnx2x has a driver for the 54618 and nothing that looks similar to that string.

Applied
#7 lore raw
Quoted 11 lines

-----Original Message-----
From: dev [mailto:[email protected]] On Behalf Of Lu, Wenzhuo
Sent: Thursday, January 18, 2018 8:40 AM
To: Chas Williams
Cc: [email protected]; [email protected]; Charles (Chas) Williams; Chas Williams
Subject: Re: [dpdk-dev] [PATCH] net/e1000: add minimum support for Broadcom 54616 PHY

Quoted 7 lines

Hi Chas,

Thanks for your info and the patch. I think we should have it.

Applied to dpdk-next-net-intel, thanks!

/Helin