[PATCH v2 0/5] hw/cxl: hw/cxl: Host-only default CFMW restrictions and per-window options
Davidlohr Bueso <[email protected]>
| Newsgroups | org.kernel.vger.linux-cxl,org.nongnu.qemu-devel |
|---|---|
| Message-ID | <[email protected]> |
Changes since v1 [0]: - Keep device-coherent (HDM-D) in the default alongside host-only -- 0x0f rather than v1's 0xe, dropping only Back-Invalidate. (Jonathan) - Give the mixed HDM-DB / host-only docs example a window per host bridge so the mapping is explicit and both windows are exercised (Jonathan). - Add qtests (new patch 5). [0] https://lore.kernel.org/all/[email protected]/ As of commit e6742e71c24 CXL emulation is incurring in an (per spec) undefined behaviour scenario, by allowing the CXL Window to publish all three coherency models. This series addresses this issue. The CEDT CFMWS "Window Restrictions" field (CXL r4.0 9.18.1.3) advertises which coherency models and memory types a CXL Fixed Memory Window (CFMW) permits. - Patches 1-3 drop Back-Invalidate from the default Window Restrictions (0x2f -> 0x0f), keeping both the device-coherent and host-only coherency models plus volatile and persistent, so an unconfigured window is spec-compliant out of the box. It is split into three patches as the bios-tables-test workflow requires (exclude CEDT.cxl, change the value, regenerate the blob, please shout if I'm doing something silly). - Patch 4 makes the restrictions configurable per window via named machine properties -- device-coherent, host-only, volatile, persistent, fixed-config, back-invalidate. - Patch 5 adds qtests. Thanks! Davidlohr Bueso (5): tests/bios-tables-test: Exclude CEDT.cxl for the CFMW restriction change hw/cxl: Drop Back-Invalidate from default CFMW window restrictions tests/acpi/cxl: Update CEDT.cxl for the default CFMW restrictions hw/cxl: Add configurable CXL Fixed Memory Window restriction flags tests/qtest/cxl: Add CXL Fixed Memory Window restriction flag tests docs/system/devices/cxl.rst | 25 ++++---- hw/acpi/cxl.c | 2 +- hw/cxl/cxl-host.c | 46 +++++++++++++++ include/hw/cxl/cxl.h | 12 ++++ qapi/machine.json | 28 +++++++++ tests/data/acpi/x86/q35/CEDT.cxl | Bin 184 -> 184 bytes tests/qtest/cxl-test.c | 95 +++++++++++++++++++++++++++++++ 7 files changed, 197 insertions(+), 11 deletions(-) base-commit: b9e9a55f9950b78ef4c940d0599409c614f36766 -- 2.39.5