This patch set adds initial support for the Spectrum-2 ASIC. The first
two patches add Spectrum-2 specific KVD linear (KVDL) manager. Unlike
the Spectrum ASIC, there is no linear memory and instead the type of the
entry (e.g., nexthop) and its index are hashed and the entry is placed
in the computed address in the hash-based KVD memory.

The third patch adds Spectrum-2 stubs in the multicast routing code.
Support for multicast routing will be added later on.

Patches 4-15 add ACL support. The Spectrum-2 ASIC includes an
algorithmic TCAM (A-TCAM) and a regular circuit TCAM (C-TCAM) for rules
that can't be inserted into the A-TCAM. This set does not make use of
the A-TCAM and only places rules in the C-TCAM. This provides equivalent
scale and performance to the Spectrum ASIC. A follow-up patch set will
introduce A-TCAM support.

The last patch extends the main driver file to work with both ASICs.

Ido Schimmel (6):
  mlxsw: reg: Add Policy-Engine Region Configuration Register
  mlxsw: reg: Add Policy-Engine Region eRP Register
  mlxsw: reg: Add Policy-Engine General Configuration Register
  mlxsw: spectrum_acl: Prepare for Spectrum-2 block encoding
  mlxsw: spectrum_acl: Add support for Spectrum-2 block encoding
  mlxsw: spectrum_acl: Add region association callback

Jiri Pirko (10):
  mlxsw: reg: Add Infrastructure Entry Delete Register
  mlxsw: spectrum: Add KVDL manager implementation for Spectrum-2
  mlxsw: spectrum_mr_tcam: Add Spectrum-2 stubs
  mlxsw: spectrum: Add Spectrum-2 variant of flex actions ops
  mlxsw: spectrum: Introduce flex key blocks for Spectrum-2
  mlxsw: reg: Add support for activity information from PEFA register
  mlxsw: acl: Introduce activity get operation for action block/set
  mlxsw: reg: Add Policy-Engine Region Association Register
  mlxsw: spectrum_acl: Add initial Spectrum-2 ACL implementation
  mlxsw: spectrum: Extend to support Spectrum-2 ASIC

 drivers/net/ethernet/mellanox/mlxsw/Makefile       |   8 +-
 .../mellanox/mlxsw/core_acl_flex_actions.c         |  15 +
 .../mellanox/mlxsw/core_acl_flex_actions.h         |   4 +
 .../ethernet/mellanox/mlxsw/core_acl_flex_keys.c   |  70 ++++-
 .../ethernet/mellanox/mlxsw/core_acl_flex_keys.h   |   3 +-
 drivers/net/ethernet/mellanox/mlxsw/pci.h          |   1 +
 drivers/net/ethernet/mellanox/mlxsw/reg.h          | 285 ++++++++++++++++++-
 drivers/net/ethernet/mellanox/mlxsw/spectrum.c     | 170 +++++++++---
 drivers/net/ethernet/mellanox/mlxsw/spectrum.h     |  13 +
 .../ethernet/mellanox/mlxsw/spectrum1_acl_tcam.c   |   8 +
 .../ethernet/mellanox/mlxsw/spectrum2_acl_tcam.c   | 222 +++++++++++++++
 .../net/ethernet/mellanox/mlxsw/spectrum2_kvdl.c   | 302 +++++++++++++++++++++
 .../ethernet/mellanox/mlxsw/spectrum2_mr_tcam.c    |  82 ++++++
 .../ethernet/mellanox/mlxsw/spectrum_acl_atcam.c   |  95 +++++++
 .../mellanox/mlxsw/spectrum_acl_flex_actions.c     |  55 +++-
 .../mellanox/mlxsw/spectrum_acl_flex_keys.c        | 210 +++++++++++---
 .../ethernet/mellanox/mlxsw/spectrum_acl_tcam.c    |   5 +
 .../ethernet/mellanox/mlxsw/spectrum_acl_tcam.h    |   5 +
 18 files changed, 1467 insertions(+), 86 deletions(-)
 create mode 100644 drivers/net/ethernet/mellanox/mlxsw/spectrum2_acl_tcam.c
 create mode 100644 drivers/net/ethernet/mellanox/mlxsw/spectrum2_kvdl.c
 create mode 100644 drivers/net/ethernet/mellanox/mlxsw/spectrum2_mr_tcam.c
 create mode 100644 drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_atcam.c

-- 
2.14.4

Reply via email to