> On 25. Jan 2026, at 06:46, Akihiko Odaki <odaki@rsg.ci.i.u-tokyo.ac.jp> wrote:
>
> Remove the lower bound of the Highmem IO Regions' addresses for the
> latest machine version to increase the chance to fit the regions in the
> PA space.
>
> The lower bound was especially problematic when using virt-install on
> Apple M2. virt-install 5.0.0 adds multiple pcie-root-port devices that
> require sufficient space in the ECAM region. However, the Highmem ECAM
> region did not fit in the limited PA space on the hardware, and the ECAM
> region size was limited to 16 MiB. If virt-install had added more than
> 16 devices to the root bridge, the region overflowed, which prevented
> edk2-stable202505 from scanning PCI devices, including the boot disk,
> causing boot failures.
>
> Ideally, a virtual machine with more than 16 devices added to the root
> bridge should just work so that users and management layers do not have
> to care whether they use constrained hardware.
>
> The base address of the Highmem IO Regions was fixed when commit
> f90747c4e8fb ("hw/arm/virt: GICv3 DT node with one or two redistributor
> regions") added the first Highmem IO Region. Later, commit 957e32cffa57
> ("hw/arm/virt: Dynamic memory map depending on RAM requirements")
> allowed moving the Highmem IO Regions to higher addresses to accommodate
> RAM more than 255 GiB, but the lower bound remained to keep the legacy
> memory map.
>
> Remove the lower bound for the latest machine version to accommodate
> more devices with the root bridge. Keeping the lower bound for the old
> machine versions ensures the compatibility is still maintained.
>
> The hardcoded memory map in tests/qtest/libqos/generic-pcihost.c is also
> updated.
>
> Signed-off-by: Akihiko Odaki <odaki@rsg.ci.i.u-tokyo.ac.jp>
> ---
> Changes in v4:
> - Rebased.
> - Edited the patch message to avoid confusing git am.
> - Link to v3: https://lore.kernel.org/qemu-devel/20251027-virt-v3-0-fa2a2f37e32d@rsg.ci.i.u-tokyo.ac.jp
>
> Changes in v3:
> - Fixed test failures reported by Peter Maydell.
> - Link to v2: https://lore.kernel.org/qemu-devel/20250901-virt-v2-1-ac2379402c80@rsg.ci.i.u-tokyo.ac.jp
>
> Changes in v2:
> - Rebased.
> - Link to v1: https://lore.kernel.org/qemu-devel/20250728-virt-v1-1-0ab9682262c8@rsg.ci.i.u-tokyo.ac.jp
>
> ---
> Akihiko Odaki (3):
> test/acpi: aarch64/virt: Allow DSDT and MCFG changes
> hw/arm/virt: Remove the lower bound of HighMem IO Regions
> test/acpi: aarch64/virt: Update golden masters for DSDT and MCFG
Hi,
Would it be a good idea to have a new test configuration that keeps the old memory map? To make sure that older machine versions don’t regress
Thank you,
-Mohamed
>
> include/hw/arm/virt.h | 1 +
> hw/arm/virt.c | 16 ++++++++++++----
> tests/qtest/libqos/generic-pcihost.c | 2 +-
> tests/data/acpi/aarch64/virt/DSDT | Bin 5337 -> 5333 bytes
> tests/data/acpi/aarch64/virt/DSDT.acpihmatvirt | Bin 5423 -> 5419 bytes
> tests/data/acpi/aarch64/virt/DSDT.acpipcihp | Bin 6246 -> 6242 bytes
> tests/data/acpi/aarch64/virt/DSDT.hpoffacpiindex | Bin 5391 -> 5387 bytes
> tests/data/acpi/aarch64/virt/DSDT.memhp | Bin 6698 -> 6698 bytes
> tests/data/acpi/aarch64/virt/DSDT.pxb | Bin 7812 -> 7808 bytes
> tests/data/acpi/aarch64/virt/DSDT.smmuv3-dev | Bin 10274 -> 10270 bytes
> tests/data/acpi/aarch64/virt/DSDT.smmuv3-legacy | Bin 10274 -> 10270 bytes
> tests/data/acpi/aarch64/virt/DSDT.topology | Bin 5539 -> 5535 bytes
> tests/data/acpi/aarch64/virt/DSDT.viot | Bin 5354 -> 5350 bytes
> tests/data/acpi/aarch64/virt/MCFG | Bin 60 -> 60 bytes
> tests/data/acpi/aarch64/virt/MCFG.memhp | Bin 0 -> 60 bytes
> 15 files changed, 14 insertions(+), 5 deletions(-)
> ---
> base-commit: d03c3e522eb0696dcfc9c2cf643431eaaf51ca0f
> change-id: 20250728-virt-833dafa6c11b
>
> Best regards,
> --
> Akihiko Odaki <odaki@rsg.ci.i.u-tokyo.ac.jp>
>
>