[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v3 0/6] CXL: SK hynix Niagara MHSLD Device
From: |
Gregory Price |
Subject: |
[PATCH v3 0/6] CXL: SK hynix Niagara MHSLD Device |
Date: |
Tue, 5 Sep 2023 20:15:11 -0400 |
v3:
- 6 patch series, first 5 are pull-aheads that can be merged separately
- cci: added MHD back into main mailbox, but implemented a callback
pattern. type-3 devices leave the callback null by default and
report unsupported if nothing implements it.
- cleanup and formatting
v2:
- 5 patch series, first 4 are pull-aheads that can be merged separately
- cci: rebased on 8-30 branch from jic23, dropped cci patches
- mailbox: dropped MHD commands, integrated into niagara (for now)
- mailbox: refactor CCI defines to avoid redefinition in niagara
- type3: cleanup duplicate typecasting
- type3: expose ct3 functions so inheriting devices may access them
- type3: add optional mhd validation function for memory access
- niagara: refactor to make niagara inherit type3 and override behavior
- niagara: refactor command definitions and types into header to make
understanding the device a bit easier for users
- style and formatting
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.
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 a proper
driver or 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
if they wish to test it.
Signed-off-by: Gregory Price <gregory.price@memverge.com>
Gregory Price (6):
cxl/mailbox: move mailbox effect definitions to a header
cxl/type3: Cleanup multiple CXL_TYPE3() calls in read/write functions
cxl/type3: Expose ct3 functions so that inheriters can call them
cxl/type3: add an optional mhd validation function for memory accesses
cxl/mailbox,type3: Implement MHD get info command callback
cxl/vendor: SK hynix Niagara Multi-Headed SLD Device
hw/cxl/Kconfig | 4 +
hw/cxl/cxl-mailbox-utils.c | 51 ++-
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 | 514 ++++++++++++++++++++++++
hw/cxl/vendor/skhynix/skhynix_niagara.h | 161 ++++++++
hw/mem/cxl_type3.c | 32 +-
include/hw/cxl/cxl_device.h | 13 +
include/hw/cxl/cxl_mailbox.h | 18 +
12 files changed, 873 insertions(+), 24 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 hw/cxl/vendor/skhynix/skhynix_niagara.h
create mode 100644 include/hw/cxl/cxl_mailbox.h
--
2.39.1
- [PATCH v3 0/6] CXL: SK hynix Niagara MHSLD Device,
Gregory Price <=
- [PATCH v3 2/6] cxl/type3: Cleanup multiple CXL_TYPE3() calls in read/write functions, Gregory Price, 2023/09/06
- [PATCH v3 1/6] cxl/mailbox: move mailbox effect definitions to a header, Gregory Price, 2023/09/06
- [PATCH v3 3/6] cxl/type3: Expose ct3 functions so that inheriters can call them, Gregory Price, 2023/09/06
- [PATCH v3 4/6] cxl/type3: add an optional mhd validation function for memory accesses, Gregory Price, 2023/09/06
- [PATCH v3 5/6] cxl/mailbox, type3: Implement MHD get info command callback, Gregory Price, 2023/09/06
- [PATCH v3 6/6] cxl/vendor: SK hynix Niagara Multi-Headed SLD Device, Gregory Price, 2023/09/06