net/e1000: add minimum support for Broadcom 54616 PHY
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
@@ -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
@@ -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
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_noneassuming that the NIC reset has initialized the PHY to a sane state.Signed-off-by Chas Williams <[email protected]>--- 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@@ -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@@ -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
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 PHYFrom: "Charles (Chas) Williams" <[email protected]>
If we find a Broadcom 54616, handle as a
e1000_phy_noneassuming that the NIC reset has initialized the PHY to a sane state.Signed-off-by Chas Williams <[email protected]>
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.
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.
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.
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 PHYI 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.
Lu, Wenzhuo
Acked-by Wenzhuo LuHi 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.
Zhang, Helin
AppliedQuoted 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.
Acked-by Wenzhuo Lu <[email protected]>
Applied to dpdk-next-net-intel, thanks!
/Helin