[dpdk-dev] [PATCH] net/e1000: add minimum support for Broadcom 54616 PHY

Chas Williams 3chas3 at gmail.com
Thu Dec 7 01:00:27 CET 2017


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.

On Wed, Dec 6, 2017 at 6:55 PM, Chas Williams <3chas3 at gmail.com> wrote:

> From: "Charles (Chas) Williams" <ciwillia at brocade.com>
>
> 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.
>
> Signed-off-by: Chas Williams <chas3 at att.com>
> ---
>  drivers/net/e1000/base/e1000_82575.c   | 5 +++++
>  drivers/net/e1000/base/e1000_defines.h | 1 +
>  2 files changed, 6 insertions(+)
>
> diff --git a/drivers/net/e1000/base/e1000_82575.c
> b/drivers/net/e1000/base/e1000_82575.c
> index c6400bd..3bcb6da 100644
> --- a/drivers/net/e1000/base/e1000_82575.c
> +++ b/drivers/net/e1000/base/e1000_82575.c
> @@ -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;
> diff --git a/drivers/net/e1000/base/e1000_defines.h
> b/drivers/net/e1000/base/e1000_defines.h
> index dbc2bbb..e2101c1 100644
> --- a/drivers/net/e1000/base/e1000_defines.h
> +++ b/drivers/net/e1000/base/e1000_defines.h
> @@ -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
>
>


More information about the dev mailing list