On Fri, 1 Jul 2022 17:10:11 +0100 Joao Martins <joao.m.mart...@oracle.com> wrote:
> 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; > + } > + } /me wondering if this can replace block above that supposedly does the same only using initialized cxl memory regions? > } > > return start;