Introduce a `program-hdm-decoder` property for CXL Type 3 devices. When this property is enabled, QEMU will program the HDM decoder so that the guest can automatically create CXL regions for Type 3 memory at boot.
The property is a boolean and is exposed as `program-hdm-decoder` on the `cxl-type3` device. It defaults to `false`, so existing configurations are not affected unless the user explicitly enables it. Co-developed-by: Li Zhijian <[email protected]> Signed-off-by: Yukiya Takaki <[email protected]> --- hw/mem/cxl_type3.c | 2 ++ include/hw/cxl/cxl_device.h | 2 ++ 2 files changed, 4 insertions(+) diff --git a/hw/mem/cxl_type3.c b/hw/mem/cxl_type3.c index a04dc74ecc..b65ddd264d 100644 --- a/hw/mem/cxl_type3.c +++ b/hw/mem/cxl_type3.c @@ -1360,6 +1360,8 @@ static const Property ct3_props[] = { DEFINE_PROP_LINK("lsa", CXLType3Dev, lsa, TYPE_MEMORY_BACKEND, HostMemoryBackend *), DEFINE_PROP_UINT64("sn", CXLType3Dev, sn, UI64_NULL), + DEFINE_PROP_BOOL("program-hdm-decoder", CXLType3Dev, + program_hdm_decoder, false), DEFINE_PROP_STRING("cdat", CXLType3Dev, cxl_cstate.cdat.filename), DEFINE_PROP_UINT8("num-dc-regions", CXLType3Dev, dc.num_regions, 0), DEFINE_PROP_LINK("volatile-dc-memdev", CXLType3Dev, dc.host_dc, diff --git a/include/hw/cxl/cxl_device.h b/include/hw/cxl/cxl_device.h index ba551fa5f9..a2c830d181 100644 --- a/include/hw/cxl/cxl_device.h +++ b/include/hw/cxl/cxl_device.h @@ -777,6 +777,8 @@ struct CXLType3Dev { /* BI flows */ bool hdmdb; + bool program_hdm_decoder; + struct dynamic_capacity { HostMemoryBackend *host_dc; AddressSpace host_dc_as; -- 2.52.0
