diff options
author | Jonathan Cameron <Jonathan.Cameron@huawei.com> | 2022-06-08 15:54:37 +0100 |
---|---|---|
committer | Michael S. Tsirkin <mst@redhat.com> | 2022-06-09 19:32:49 -0400 |
commit | 7bd1900b365b5e7ae498cf9c915867fcaa5296fc (patch) | |
tree | 0363346827bc657e5514013790fd3c299ff13220 /include | |
parent | 96f7da1711348758f9919ffdfe1e984012ef7acd (diff) | |
download | qemu-7bd1900b365b5e7ae498cf9c915867fcaa5296fc.zip qemu-7bd1900b365b5e7ae498cf9c915867fcaa5296fc.tar.gz qemu-7bd1900b365b5e7ae498cf9c915867fcaa5296fc.tar.bz2 |
pci/pci_expander_bridge: For CXL HB delay the HB register memory region setup.
As the CXLState will no long be accessible via MachineState
at time of PXB_CXL realization, come back later from the machine specific
code to fill in the missing memory region setup. Only at this stage
is it possible to check if cxl=on, so that check is moved to this
later point.
Note that for multiple host bridges, the allocation order of the
register spaces is changed. This will be reflected in ACPI CEDT.
Stubs are added to handle case of CONFIG_PXB=n for machines that
call these functions.
The bus walking logic is common to all machines so add a utility
function + stub to cxl-host*.
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Reviewed-by: Ben Widawsky <ben@bwidawsk.net>
Message-Id: <20220608145440.26106-6-Jonathan.Cameron@huawei.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Diffstat (limited to 'include')
-rw-r--r-- | include/hw/cxl/cxl_host.h | 1 | ||||
-rw-r--r-- | include/hw/pci-bridge/pci_expander_bridge.h | 12 |
2 files changed, 13 insertions, 0 deletions
diff --git a/include/hw/cxl/cxl_host.h b/include/hw/cxl/cxl_host.h index 4d642a8..a1b662c 100644 --- a/include/hw/cxl/cxl_host.h +++ b/include/hw/cxl/cxl_host.h @@ -16,6 +16,7 @@ void cxl_machine_init(Object *obj, CXLState *state); void cxl_fmws_link_targets(CXLState *stat, Error **errp); +void cxl_hook_up_pxb_registers(PCIBus *bus, CXLState *state, Error **errp); extern const MemoryRegionOps cfmws_ops; diff --git a/include/hw/pci-bridge/pci_expander_bridge.h b/include/hw/pci-bridge/pci_expander_bridge.h new file mode 100644 index 0000000..0b3856d --- /dev/null +++ b/include/hw/pci-bridge/pci_expander_bridge.h @@ -0,0 +1,12 @@ +/* + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#ifndef PCI_EXPANDER_BRIDGE_H +#define PCI_EXPANDER_BRIDGE_H + +#include "hw/cxl/cxl.h" + +void pxb_cxl_hook_up_registers(CXLState *state, PCIBus *bus, Error **errp); + +#endif /* PCI_EXPANDER_BRIDGE_H */ |