mbox series

[platform-next,00/10] platform: mellanox: Introduce initial chassis management support for modular Ethernet system

Message ID 20211002093238.3771419-1-vadimp@nvidia.com (mailing list archive)
Headers show
Series platform: mellanox: Introduce initial chassis management support for modular Ethernet system | expand

Message

Vadim Pasternak Oct. 2, 2021, 9:32 a.m. UTC
Add initial chassis management support for Nvidia modular Ethernet
switch systems MSN4800, providing a high performance switching solution
for Enterprise Data Centers (EDC) for building Ethernet based clusters,
High-Performance Computing (HPC) and embedded environments.

This system could be equipped with the different types of replaceable
line cards and management board. The first system flavor will support
the line card type MSN4800-C16 equipped with Lattice CPLD devices aimed
for system and ASIC control, one Nvidia FPGA for gearboxes (PHYs)
management, and four Nvidia gearboxes for the port control and with
16x100GbE QSFP28 ports and with various devices for electrical control.

The system is equipped with eight slots for line cards, four slots for
power supplies and six slots for fans. It could be configured as fully
populated or with even only one line card. The line cards are
hot-pluggable.
In the future when more line card flavors are to be available (for
example line cards with 8x200Gb Eth port, with 4x400 Eth ports, or with
some kind of smart cards for offloading purpose), any type of line card
could be inserted at any slot.

The system is based on Nvidia Spectrum-3 ASIC. The switch height is 4U
and it fits standard rack size.

The next coming card generations are supposed to support:
- Line cards with 8x200Gbe QSFP28 Ethernet ports.
- Line cards with 4x400Gbe QSFP-DD Ethernet ports.
- Smart cards equipped with Nvidia ARM CPU for offloading and for fast
  access to the storage (EBoF).
- Fabric cards for inter-connection.

Patch set contains:
Patch #1 – adds new types for modular system support.
Patch #2 - adds support for the modular system equipped with replicable
	   line cards.
Patches #3-#4 - extend logic for hotplug devices operations for the
		modular system support.
Patch #5 - extends number of hwmon attributes for mlxreg-io driver,
	   since modular system introduces more attributes.
Patch #6 - adds field for security access validation.
Patch #7 - introduces initial support for Mellanox line card devices.
Patches #8-#9 – add documentation.
Patch #10 - extend support for cooling devices.

Vadim Pasternak (10):
  platform_data/mlxreg: Add new type to support modular systems
  platform/x86: mlx-platform: Add initial support for new modular system
  platform/mellanox: mlxreg-hotplug: Extend logic for hotplug devices
    operations
  platform/x86: mlx-platform: Configure notifier callbacks for modular
    system
  platform/mellanox: mlxreg-io: Extend number of hwmon attributes
  platform_data/mlxreg: Add new field for secured access
  platform/mellanox: mlxreg-lc: Add initial support for Nvidia line card
    devices
  Documentation/ABI: Add new attributes for mlxreg-io sysfs interfaces
  Documentation/ABI: Add new line card attributes for mlxreg-io sysfs
    interfaces
  platform/x86: mlx-platform: Add support for multiply cooling devices

 .../ABI/stable/sysfs-driver-mlxreg-io         |  241 ++
 drivers/platform/mellanox/Kconfig             |   12 +
 drivers/platform/mellanox/Makefile            |    1 +
 drivers/platform/mellanox/mlxreg-hotplug.c    |  123 +-
 drivers/platform/mellanox/mlxreg-io.c         |    2 +-
 drivers/platform/mellanox/mlxreg-lc.c         |  906 +++++++
 drivers/platform/x86/mlx-platform.c           | 2279 +++++++++++++++--
 include/linux/platform_data/mlxreg.h          |   82 +
 8 files changed, 3351 insertions(+), 295 deletions(-)
 create mode 100644 drivers/platform/mellanox/mlxreg-lc.c