[PATCH 0/4] CXL: SK hynix Niagara MHSLD Device

Gregory Price posted 4 patches 9 months, 2 weeks ago
Failed in applying to current master (apply log)
There is a newer version of this series
hw/cxl/Kconfig                          |   4 +
hw/cxl/cxl-mailbox-utils.c              |  90 +++-
hw/cxl/meson.build                      |   2 +
hw/cxl/vendor/meson.build               |   1 +
hw/cxl/vendor/skhynix/.gitignore        |   1 +
hw/cxl/vendor/skhynix/init_niagara.c    |  99 +++++
hw/cxl/vendor/skhynix/meson.build       |   1 +
hw/cxl/vendor/skhynix/skhynix_niagara.c | 521 ++++++++++++++++++++++++
hw/mem/cxl_type3.c                      |  67 +++
include/hw/cxl/cxl_device.h             |  18 +-
tools/cxl/cxl_mhd_init.c                |  63 +++
tools/cxl/meson.build                   |   3 +
tools/meson.build                       |   1 +
13 files changed, 866 insertions(+), 5 deletions(-)
create mode 100644 hw/cxl/vendor/meson.build
create mode 100644 hw/cxl/vendor/skhynix/.gitignore
create mode 100644 hw/cxl/vendor/skhynix/init_niagara.c
create mode 100644 hw/cxl/vendor/skhynix/meson.build
create mode 100644 hw/cxl/vendor/skhynix/skhynix_niagara.c
create mode 100644 tools/cxl/cxl_mhd_init.c
create mode 100644 tools/cxl/meson.build
[PATCH 0/4] CXL: SK hynix Niagara MHSLD Device
Posted by Gregory Price 9 months, 2 weeks ago
Base repo: https://gitlab.com/jic23/qemu
Base branch: cxl-2023-07-17

This patch set includes an emulation of the SK hynix Niagara MHSLD
platform with custom CCI commands that allow for isolation of memory
blocks between attached hosts.

There are 4 total patches in this set:
1 & 2: Modifications to the CCI interface to allow the addition of
       custom CCI commands to an existing CCI command set.
3: Minimum MHD cci support for a type-3 device
4: The SK hynix Niagara Device

The changes to the core device and cci interface are very limited,
and this provides a clean way for developers to add custom CCI commands
to a device while retaining the possiblity to upstream the model.

This device allows hosts to request memory blocks directly from the
device, rather than requiring full the DCD command set.  As a matter of
simplicity, this is beneficial to for testing and applications of 
dynamic memory pooling on top of the 1.1 and 2.0 specification.

Note that these CCI commands are not servicable without the kernel
allowing raw CXL commands to be passed through the mailbox driver,
so users should enable `CONFIG_CXL_MEM_RAW_COMMANDS=y` on the kernel
of their QEMU instance.

Signed-off-by: Gregory Price <gregory.price@memverge.com>

Gregory Price (4):
  cxl/mailbox: change CCI cmd set structure to be a member, not a
    refernce
  cxl/mailbox: interface to add CCI commands to an existing CCI
  cxl/type3: minimum MHD cci support
  cxl/vendor: SK hynix Niagara Multi-Headed SLD Device

 hw/cxl/Kconfig                          |   4 +
 hw/cxl/cxl-mailbox-utils.c              |  90 +++-
 hw/cxl/meson.build                      |   2 +
 hw/cxl/vendor/meson.build               |   1 +
 hw/cxl/vendor/skhynix/.gitignore        |   1 +
 hw/cxl/vendor/skhynix/init_niagara.c    |  99 +++++
 hw/cxl/vendor/skhynix/meson.build       |   1 +
 hw/cxl/vendor/skhynix/skhynix_niagara.c | 521 ++++++++++++++++++++++++
 hw/mem/cxl_type3.c                      |  67 +++
 include/hw/cxl/cxl_device.h             |  18 +-
 tools/cxl/cxl_mhd_init.c                |  63 +++
 tools/cxl/meson.build                   |   3 +
 tools/meson.build                       |   1 +
 13 files changed, 866 insertions(+), 5 deletions(-)
 create mode 100644 hw/cxl/vendor/meson.build
 create mode 100644 hw/cxl/vendor/skhynix/.gitignore
 create mode 100644 hw/cxl/vendor/skhynix/init_niagara.c
 create mode 100644 hw/cxl/vendor/skhynix/meson.build
 create mode 100644 hw/cxl/vendor/skhynix/skhynix_niagara.c
 create mode 100644 tools/cxl/cxl_mhd_init.c
 create mode 100644 tools/cxl/meson.build

-- 
2.39.1