This in preparation to allow pc_pci_hole64_start() to be called early in pc_memory_init(), handle CXL memory region end when its underlying memory region isn't yet initialized.
Cc: Jonathan Cameron <jonathan.came...@huawei.com> Signed-off-by: Joao Martins <joao.m.mart...@oracle.com> --- hw/i386/pc.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/hw/i386/pc.c b/hw/i386/pc.c index 8655cc3b8894..d6dff71012ab 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -857,6 +857,19 @@ static uint64_t pc_get_cxl_range_end(PCMachineState *pcms) start = fw->mr.addr + memory_region_size(&fw->mr); } } + } else { + hwaddr cxl_size = MiB; + + start = pc_get_cxl_range_start(pcms); + if (pcms->cxl_devices_state.fixed_windows) { + GList *it; + + start = ROUND_UP(start + cxl_size, 256 * MiB); + for (it = pcms->cxl_devices_state.fixed_windows; it; it = it->next) { + CXLFixedWindow *fw = it->data; + start += fw->size; + } + } } return start; -- 2.17.2