hw/mem/cxl-type3: Add properties to control link speed and width
To establish performance characteristics of a CXL device when used via a particular CXL topology (root ports, switches, end points) it is necessary to set the appropriate link speed and width in the PCI Express capability structure. Provide x-speed and x-link properties for this. Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> Message-Id: <20240916173518.1843023-6-Jonathan.Cameron@huawei.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
parent
ea3f0ebc1a
commit
14bd0f3865
@ -17,6 +17,7 @@
|
||||
#include "hw/mem/pc-dimm.h"
|
||||
#include "hw/pci/pci.h"
|
||||
#include "hw/qdev-properties.h"
|
||||
#include "hw/qdev-properties-system.h"
|
||||
#include "qapi/error.h"
|
||||
#include "qemu/log.h"
|
||||
#include "qemu/module.h"
|
||||
@ -1200,6 +1201,7 @@ static void ct3d_reset(DeviceState *dev)
|
||||
uint32_t *reg_state = ct3d->cxl_cstate.crb.cache_mem_registers;
|
||||
uint32_t *write_msk = ct3d->cxl_cstate.crb.cache_mem_regs_write_mask;
|
||||
|
||||
pcie_cap_fill_link_ep_usp(PCI_DEVICE(dev), ct3d->width, ct3d->speed);
|
||||
cxl_component_register_init_common(reg_state, write_msk, CXL2_TYPE3_DEVICE);
|
||||
cxl_device_register_init_t3(ct3d);
|
||||
|
||||
@ -1229,6 +1231,10 @@ static Property ct3_props[] = {
|
||||
DEFINE_PROP_UINT8("num-dc-regions", CXLType3Dev, dc.num_regions, 0),
|
||||
DEFINE_PROP_LINK("volatile-dc-memdev", CXLType3Dev, dc.host_dc,
|
||||
TYPE_MEMORY_BACKEND, HostMemoryBackend *),
|
||||
DEFINE_PROP_PCIE_LINK_SPEED("x-speed", CXLType3Dev,
|
||||
speed, PCIE_LINK_SPEED_32),
|
||||
DEFINE_PROP_PCIE_LINK_WIDTH("x-width", CXLType3Dev,
|
||||
width, PCIE_LINK_WIDTH_16),
|
||||
DEFINE_PROP_END_OF_LIST(),
|
||||
};
|
||||
|
||||
|
@ -549,6 +549,10 @@ struct CXLType3Dev {
|
||||
CXLCCI vdm_fm_owned_ld_mctp_cci;
|
||||
CXLCCI ld0_cci;
|
||||
|
||||
/* PCIe link characteristics */
|
||||
PCIExpLinkSpeed speed;
|
||||
PCIExpLinkWidth width;
|
||||
|
||||
/* DOE */
|
||||
DOECap doe_cdat;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user