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



Reply via email to