Hello! > I'm not sure but fixed hole start/size might be a problem later when adding > memory hotplug wasting > address space.
But 'virt' machine entirely relies on fixed layout. And, we can always change it if we need to. > > On x86 we do it a little different, see call chain: > acpi_setup -> build_ssdt -> > i440fx_pcihost_get_pci_hole64_start -> pci_bus_get_w64_range > ... _end -> ... > > where acpi_setup() is called from pc_guest_info_machine_done() right before > guest starts and later after guest's BIOS(UEFI) initialized PCI devices. > > Perhaps we should do the same for ARM as well, CCing Michael I took a look at the code. As far as i could understand, it iterates devices on the bus and finds out start of the lowest assigned region and end of the highest assigned region. Does it? I'm not sure that ARM architecture has this machine_done callback. And, to tell the truth, i don't use EFI on my setup so i cannot test the thing. So, can we leave fixed layout for now? I am currently reworking the patch because i discovered problems with 32-bit guests. They simply truncate high word and end up in attempt to put PCI at 0x00000000 - 0xFFFFFFFF, fail, and do not work of course. So, my next version will have high MMIO only for 64-bit guests. By the way, what is the most correct way to determine whether selected CPU is 32 or 64 bit? Kind regards, Pavel Fedin Expert Engineer Samsung Electronics Research center Russia