All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v6 00/15] octeontx2-af: Add RVU Admin Function driver
@ 2018-10-04 18:21 sunil.kovvuri
  2018-10-04 18:21 ` [PATCH v6 01/15] octeontx2-af: Add Marvell OcteonTX2 RVU AF driver sunil.kovvuri
                   ` (14 more replies)
  0 siblings, 15 replies; 18+ messages in thread
From: sunil.kovvuri @ 2018-10-04 18:21 UTC (permalink / raw)
  To: netdev, davem; +Cc: arnd, linux-soc, Sunil Goutham

From: Sunil Goutham <sgoutham@marvell.com>

Resource virtualization unit (RVU) on Marvell's OcteonTX2 SOC maps HW
resources from the network, crypto and other functional blocks into
PCI-compatible physical and virtual functions. Each functional block
again has multiple local functions (LFs) for provisioning to PCI devices.
RVU supports multiple PCIe SRIOV physical functions (PFs) and virtual
functions (VFs). PF0 is called the administrative / admin function (AF)
and has privileges to provision RVU functional block's LFs to each of the
PF/VF.

RVU managed networking functional blocks
 - Network pool allocator (NPA)
 - Network interface controller (NIX)
 - Network parser CAM (NPC)
 - Schedule/Synchronize/Order unit (SSO)

RVU managed non-networking functional blocks
 - Crypto accelerator (CPT)
 - Scheduled timers unit (TIM)
 - Schedule/Synchronize/Order unit (SSO)
   Used for both networking and non networking usecases
 - Compression (upcoming in future variants of the silicons)

Resource provisioning examples
 - A PF/VF with NIX-LF & NPA-LF resources works as a pure network device
 - A PF/VF with CPT-LF resource works as a pure cyrpto offload device.

This admin function driver neither receives any data nor processes it i.e
no I/O, a configuration only driver.

PF/VFs communicates with AF via a shared memory region (mailbox). Upon
receiving requests from PF/VF, AF does resource provisioning and other
HW configuration. AF is always attached to host, but PF/VFs may be used
by host kernel itself, or attached to VMs or to userspace applications
like DPDK etc. So AF has to handle provisioning/configuration requests
sent by any device from any domain.

This patch series adds logic for the following
 - RVU AF driver with functional blocks provisioning support.
 - Mailbox infrastructure for communication between AF and PFs.
 - CGX (MAC controller) driver which communicates with firmware for
   managing  physical ethernet interfaces. AF collects info from this
   driver and forwards the same to the PF/VFs uaing these interfaces.

This is the first set of patches out of 80+ patches.

Changes from v5:
 Modified bitfield based command structures to bitmasks for communication
 with firmware, to address endianness issues.
   - Suggested by Arnd Bergmann

Changes from v4:
 1 Removed module author/version/description from CGX driver as it's now
   merged with AF driver module.
   - Suggested by Arnd Bergmann
 2 Added big-endian bitfields for CGX's kernel <=> firmware communication
   command structures.
   - Suggested by Arnd Bergmann

Changes from v3:
 Moved driver from drivers/soc to drivers/net/ethernet
   - Suggested by Arnd Bergmann
 https://patchwork.kernel.org/cover/10587635/ 

Changes from v2:
 No changes, submitted again with netdev mailing list in loop.
   - Suggested by Arnd Bergmann and Andrew Lunn

Changes from v1:
 1 Merged RVU admin function and CGX drivers into a single module
   - Suggested by Arnd Bergmann
 2 Pulled mbox communication APIs into a separate module to remove
   admin function driver dependency in a VM where AF is not attached.
   - Suggested by Arnd Bergmann

Aleksey Makarov (1):
  octeontx2-af: Convert mbox msg id check to a macro

Geetha sowjanya (1):
  octeontx2-af: Reconfig MSIX base with IOVA

Linu Cherian (3):
  octeontx2-af: Set RVU PFs to CGX LMACs mapping
  octeontx2-af: Add support for CGX link management
  octeontx2-af: Register for CGX lmac events

Sunil Goutham (10):
  octeontx2-af: Add Marvell OcteonTX2 RVU AF driver
  octeontx2-af: Reset all RVU blocks
  octeontx2-af: Gather RVU blocks HW info
  octeontx2-af: Add mailbox support infra
  octeontx2-af: Add mailbox IRQ and msg handlers
  octeontx2-af: Scan blocks for LFs provisioned to PF/VF
  octeontx2-af: Add RVU block LF provisioning support
  octeontx2-af: Configure block LF's MSIX vector offset
  octeontx2-af: Add Marvell OcteonTX2 CGX driver
  MAINTAINERS: Add entry for Marvell OcteonTX2 Admin Function driver

 MAINTAINERS                                        |    9 +
 drivers/net/ethernet/marvell/Kconfig               |    3 +
 drivers/net/ethernet/marvell/Makefile              |    1 +
 drivers/net/ethernet/marvell/octeontx2/Kconfig     |   16 +
 drivers/net/ethernet/marvell/octeontx2/Makefile    |    6 +
 drivers/net/ethernet/marvell/octeontx2/af/Makefile |   10 +
 drivers/net/ethernet/marvell/octeontx2/af/cgx.c    |  501 ++++++
 drivers/net/ethernet/marvell/octeontx2/af/cgx.h    |   65 +
 .../net/ethernet/marvell/octeontx2/af/cgx_fw_if.h  |  187 +++
 drivers/net/ethernet/marvell/octeontx2/af/mbox.c   |  303 ++++
 drivers/net/ethernet/marvell/octeontx2/af/mbox.h   |  211 +++
 drivers/net/ethernet/marvell/octeontx2/af/rvu.c    | 1637 ++++++++++++++++++++
 drivers/net/ethernet/marvell/octeontx2/af/rvu.h    |  158 ++
 .../net/ethernet/marvell/octeontx2/af/rvu_cgx.c    |  194 +++
 .../net/ethernet/marvell/octeontx2/af/rvu_reg.h    |  441 ++++++
 .../net/ethernet/marvell/octeontx2/af/rvu_struct.h |   74 +
 16 files changed, 3816 insertions(+)
 create mode 100644 drivers/net/ethernet/marvell/octeontx2/Kconfig
 create mode 100644 drivers/net/ethernet/marvell/octeontx2/Makefile
 create mode 100644 drivers/net/ethernet/marvell/octeontx2/af/Makefile
 create mode 100644 drivers/net/ethernet/marvell/octeontx2/af/cgx.c
 create mode 100644 drivers/net/ethernet/marvell/octeontx2/af/cgx.h
 create mode 100644 drivers/net/ethernet/marvell/octeontx2/af/cgx_fw_if.h
 create mode 100644 drivers/net/ethernet/marvell/octeontx2/af/mbox.c
 create mode 100644 drivers/net/ethernet/marvell/octeontx2/af/mbox.h
 create mode 100644 drivers/net/ethernet/marvell/octeontx2/af/rvu.c
 create mode 100644 drivers/net/ethernet/marvell/octeontx2/af/rvu.h
 create mode 100644 drivers/net/ethernet/marvell/octeontx2/af/rvu_cgx.c
 create mode 100644 drivers/net/ethernet/marvell/octeontx2/af/rvu_reg.h
 create mode 100644 drivers/net/ethernet/marvell/octeontx2/af/rvu_struct.h

-- 
2.7.4

^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2018-10-06 12:03 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-10-04 18:21 [PATCH v6 00/15] octeontx2-af: Add RVU Admin Function driver sunil.kovvuri
2018-10-04 18:21 ` [PATCH v6 01/15] octeontx2-af: Add Marvell OcteonTX2 RVU AF driver sunil.kovvuri
2018-10-04 18:21 ` [PATCH v6 02/15] octeontx2-af: Reset all RVU blocks sunil.kovvuri
2018-10-04 18:21 ` [PATCH v6 03/15] octeontx2-af: Gather RVU blocks HW info sunil.kovvuri
2018-10-04 18:21 ` [PATCH v6 04/15] octeontx2-af: Add mailbox support infra sunil.kovvuri
2018-10-05 21:50   ` David Miller
2018-10-06  5:01     ` [EXT] " Goutham, Sunil
2018-10-04 18:21 ` [PATCH v6 05/15] octeontx2-af: Add mailbox IRQ and msg handlers sunil.kovvuri
2018-10-04 18:21 ` [PATCH v6 06/15] octeontx2-af: Convert mbox msg id check to a macro sunil.kovvuri
2018-10-04 18:21 ` [PATCH v6 07/15] octeontx2-af: Scan blocks for LFs provisioned to PF/VF sunil.kovvuri
2018-10-04 18:21 ` [PATCH v6 08/15] octeontx2-af: Add RVU block LF provisioning support sunil.kovvuri
2018-10-04 18:21 ` [PATCH v6 09/15] octeontx2-af: Configure block LF's MSIX vector offset sunil.kovvuri
2018-10-04 18:21 ` [PATCH v6 10/15] octeontx2-af: Reconfig MSIX base with IOVA sunil.kovvuri
2018-10-04 18:21 ` [PATCH v6 11/15] octeontx2-af: Add Marvell OcteonTX2 CGX driver sunil.kovvuri
2018-10-04 18:21 ` [PATCH v6 12/15] octeontx2-af: Set RVU PFs to CGX LMACs mapping sunil.kovvuri
2018-10-04 18:21 ` [PATCH v6 13/15] octeontx2-af: Add support for CGX link management sunil.kovvuri
2018-10-04 18:21 ` [PATCH v6 14/15] octeontx2-af: Register for CGX lmac events sunil.kovvuri
2018-10-04 18:21 ` [PATCH v6 15/15] MAINTAINERS: Add entry for Marvell OcteonTX2 Admin Function driver sunil.kovvuri

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.