|
@@ -11,6 +11,7 @@
|
|
#include "qemu/osdep.h"
|
|
#include "qemu/osdep.h"
|
|
#include "qemu/log.h"
|
|
#include "qemu/log.h"
|
|
#include "hw/qdev-properties.h"
|
|
#include "hw/qdev-properties.h"
|
|
|
|
+#include "hw/qdev-properties-system.h"
|
|
#include "hw/pci/msi.h"
|
|
#include "hw/pci/msi.h"
|
|
#include "hw/pci/pcie.h"
|
|
#include "hw/pci/pcie.h"
|
|
#include "hw/pci/pcie_port.h"
|
|
#include "hw/pci/pcie_port.h"
|
|
@@ -100,6 +101,7 @@ static void cxl_usp_reset(DeviceState *qdev)
|
|
|
|
|
|
pci_bridge_reset(qdev);
|
|
pci_bridge_reset(qdev);
|
|
pcie_cap_deverr_reset(d);
|
|
pcie_cap_deverr_reset(d);
|
|
|
|
+ pcie_cap_fill_link_ep_usp(d, usp->width, usp->speed);
|
|
latch_registers(usp);
|
|
latch_registers(usp);
|
|
}
|
|
}
|
|
|
|
|
|
@@ -363,6 +365,10 @@ static void cxl_usp_exitfn(PCIDevice *d)
|
|
static Property cxl_upstream_props[] = {
|
|
static Property cxl_upstream_props[] = {
|
|
DEFINE_PROP_UINT64("sn", CXLUpstreamPort, sn, UI64_NULL),
|
|
DEFINE_PROP_UINT64("sn", CXLUpstreamPort, sn, UI64_NULL),
|
|
DEFINE_PROP_STRING("cdat", CXLUpstreamPort, cxl_cstate.cdat.filename),
|
|
DEFINE_PROP_STRING("cdat", CXLUpstreamPort, cxl_cstate.cdat.filename),
|
|
|
|
+ DEFINE_PROP_PCIE_LINK_SPEED("x-speed", CXLUpstreamPort,
|
|
|
|
+ speed, PCIE_LINK_SPEED_32),
|
|
|
|
+ DEFINE_PROP_PCIE_LINK_WIDTH("x-width", CXLUpstreamPort,
|
|
|
|
+ width, PCIE_LINK_WIDTH_16),
|
|
DEFINE_PROP_END_OF_LIST()
|
|
DEFINE_PROP_END_OF_LIST()
|
|
};
|
|
};
|
|
|
|
|