]> www.infradead.org Git - users/dwmw2/qemu.git/commit
hw/boards: Add hvf_get_physical_address_range to MachineClass
authorDanny Canter <danny_canter@apple.com>
Fri, 13 Sep 2024 14:31:46 +0000 (15:31 +0100)
committerPeter Maydell <peter.maydell@linaro.org>
Fri, 13 Sep 2024 14:31:46 +0000 (15:31 +0100)
commit81e3d93a9e3b3baa0e73e674ca3d1b93a672cc6d
treeb9aca1db6a50f8778b0521042fff812cd437f147
parent6a8703aecb152ef4324dc95273eca864b78b3837
hw/boards: Add hvf_get_physical_address_range to MachineClass

This addition will be necessary for some HVF related work to follow.
For HVF on ARM there exists a set of APIs in macOS 13 to be able to
adjust the IPA size for a given VM. This is useful as by default HVF
uses 36 bits as the IPA size, so to support guests with > 64GB of RAM
we'll need to reach for this.

To have all the info necessary to carry this out however, we need some
plumbing to be able to grab the memory map and compute the highest GPA
prior to creating the VM. This is almost exactly like what kvm_type is
used for on ARM today, and is also what this will be used for. We will
compute the highest GPA and find what IPA size we'd need to satisfy this,
and if it's valid (macOS today caps at 40b) we'll set this to be the IPA
size in coming patches. This new method is only needed (today at least)
on ARM, and obviously only for HVF/macOS, so admittedly it is much less
generic than kvm_type today, but it seemed a somewhat sane way to get
the information we need from the memmap at VM creation time.

Signed-off-by: Danny Canter <danny_canter@apple.com>
Message-id: 20240828111552.93482-2-danny_canter@apple.com
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
[PMM: removed explicit setting of field to NULL on x86]
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
hw/arm/virt.c
include/hw/boards.h