Message ID | 20221029224307.138822-1-gshan@redhat.com (mailing list archive) |
---|---|
Headers | show |
Series | hw/arm/virt: Improve address assignment for high memory regions | expand |
On Sat, 29 Oct 2022 at 23:43, Gavin Shan <gshan@redhat.com> wrote: > > There are three high memory regions, which are VIRT_HIGH_REDIST2, > VIRT_HIGH_PCIE_ECAM and VIRT_HIGH_PCIE_MMIO. Their base addresses > are floating on highest RAM address. However, they can be disabled > in several cases. > > (1) One specific high memory region is disabled by developer by > toggling vms->highmem_{redists, ecam, mmio}. > > (2) VIRT_HIGH_PCIE_ECAM region is disabled on machine, which is > 'virt-2.12' or ealier than it. > > (3) VIRT_HIGH_PCIE_ECAM region is disabled when firmware is loaded > on 32-bits system. > > (4) One specific high memory region is disabled when it breaks the > PA space limit. > > The current implementation of virt_set_memmap() isn't comprehensive > because the space for one specific high memory region is always > reserved from the PA space for case (1), (2) and (3). In the code, > 'base' and 'vms->highest_gpa' are always increased for those three > cases. It's unnecessary since the assigned space of the disabled > high memory region won't be used afterwards. > > The series intends to improve the address assignment for these > high memory regions and introduces new properties for user to > selectively disable those 3 high memory regions. I've applied this patchset to a target-arm-for-8.0 branch that will end up being the target-arm queue once 7.2 is out. thanks -- PMM