From df16bcc9d2643b3b1a69c616be88ce410142ec7d Mon Sep 17 00:00:00 2001 From: Scott Branden Date: Fri, 13 Apr 2018 14:07:54 -0700 Subject: [PATCH] net/bnxt: introduce Broadcom Stingray Add support for Stingray PF devices ids: BCM58802 = 0xd802 BCM58804 = 0xd804 BCM58808 = 0x16f0 Add Broadcom Stingray machine support based on armv8. For product brief see: https://www.broadcom.com/products/ethernet-connectivity/controllers/bcm58800 Signed-off-by: Scott Branden Signed-off-by: Ajit Khaparde --- config/defconfig_arm64-stingray-linuxapp-gcc | 16 ++++++++++++++++ doc/guides/nics/bnxt.rst | 6 +++--- doc/guides/rel_notes/release_18_05.rst | 10 ++++++++++ drivers/net/bnxt/bnxt_ethdev.c | 6 ++++++ 4 files changed, 35 insertions(+), 3 deletions(-) create mode 100644 config/defconfig_arm64-stingray-linuxapp-gcc diff --git a/config/defconfig_arm64-stingray-linuxapp-gcc b/config/defconfig_arm64-stingray-linuxapp-gcc new file mode 100644 index 0000000000..999250723f --- /dev/null +++ b/config/defconfig_arm64-stingray-linuxapp-gcc @@ -0,0 +1,16 @@ +# SPDX-License-Identifier: BSD-3-Clause +# Copyright (C) Broadcom 2017-2018. All rights reserved. +# + +#include "defconfig_arm64-armv8a-linuxapp-gcc" + +# Broadcom - Stingray +CONFIG_RTE_MACHINE="armv8a" +CONFIG_RTE_ARCH_ARM_TUNE="cortex-a72" + +# Doesn't support NUMA +CONFIG_RTE_EAL_NUMA_AWARE_HUGEPAGES=n +CONFIG_RTE_LIBRTE_VHOST_NUMA=n + +CONFIG_RTE_EAL_IGB_UIO=y +CONFIG_RTE_KNI_KMOD=n diff --git a/doc/guides/nics/bnxt.rst b/doc/guides/nics/bnxt.rst index 3ecd29dce2..697b97e602 100644 --- a/doc/guides/nics/bnxt.rst +++ b/doc/guides/nics/bnxt.rst @@ -6,15 +6,15 @@ BNXT Poll Mode Driver The bnxt poll mode library (**librte_pmd_bnxt**) implements support for: - * **Broadcom NetXtreme-C®/NetXtreme-E® BCM5730X and BCM574XX family of - Ethernet Network Controllers** + * **Broadcom NetXtreme-C®/NetXtreme-E®/NetXtreme-S® + BCM5730X / BCM574XX / BCM58000 family of Ethernet Network Controllers** These adapters support Standards compliant 10/25/50/100Gbps 30MPPS full-duplex throughput. Information about the NetXtreme family of adapters can be found in the `NetXtreme® Brand section - `_ + `_ of the `Broadcom website `_. * **Broadcom StrataGX® BCM5871X Series of Communucations Processors** diff --git a/doc/guides/rel_notes/release_18_05.rst b/doc/guides/rel_notes/release_18_05.rst index e382310ef3..9618205929 100644 --- a/doc/guides/rel_notes/release_18_05.rst +++ b/doc/guides/rel_notes/release_18_05.rst @@ -73,6 +73,16 @@ New Features Added support for new NFB-200G2QL card. +* **Added support for Broadcom NetXtreme-S (BCM58800) family of controllers (aka Stingray)** + + The BCM58800 devices feature a NetXtreme E-Series advanced network controller, a high-performance + ARM CPU block, PCI Express (PCIe) Gen3 interfaces, key accelerators for compute offload and a high- + speed memory subsystem including L3 cache and DDR4 interfaces, all interconnected by a coherent + Network-on-chip (NOC) fabric. + + The ARM CPU subsystem features eight ARMv8 Cortex-A72 CPUs at 3.0 GHz, arranged in a multi-cluster + configuration. + * **Added support for virtio-user server mode.** In a container environment if the vhost-user backend restarts, there's no way for it to reconnect to virtio-user. To address this, support for server mode diff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c index a856c7e0e5..1d4ff54b7e 100644 --- a/drivers/net/bnxt/bnxt_ethdev.c +++ b/drivers/net/bnxt/bnxt_ethdev.c @@ -69,6 +69,9 @@ int bnxt_logtype_driver; #define BROADCOM_DEV_ID_57407_MF 0x16ea #define BROADCOM_DEV_ID_57414_MF 0x16ec #define BROADCOM_DEV_ID_57416_MF 0x16ee +#define BROADCOM_DEV_ID_58802 0xd802 +#define BROADCOM_DEV_ID_58804 0xd804 +#define BROADCOM_DEV_ID_58808 0x16f0 static const struct rte_pci_id bnxt_pci_id_map[] = { { RTE_PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, @@ -107,6 +110,9 @@ static const struct rte_pci_id bnxt_pci_id_map[] = { { RTE_PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, BROADCOM_DEV_ID_57317_SFP) }, { RTE_PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, BROADCOM_DEV_ID_57414_MF) }, { RTE_PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, BROADCOM_DEV_ID_57416_MF) }, + { RTE_PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, BROADCOM_DEV_ID_58802) }, + { RTE_PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, BROADCOM_DEV_ID_58804) }, + { RTE_PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, BROADCOM_DEV_ID_58808) }, { .vendor_id = 0, /* sentinel */ }, }; -- 2.20.1