qemu-e2k/include/hw/arm
Eric Auger 957e32cffa hw/arm/virt: Dynamic memory map depending on RAM requirements
Up to now the memory map has been static and the high IO region
base has always been 256GiB.

This patch modifies the virt_set_memmap() function, which freezes
the memory map, so that the high IO range base becomes floating,
located after the initial RAM and the device memory.

The function computes
- the base of the device memory,
- the size of the device memory,
- the high IO region base
- the highest GPA used in the memory map.

Entries of the high IO region are assigned a base address. The
device memory is initialized.

The highest GPA used in the memory map will be used at VM creation
to choose the requested IPA size.

Setting all the existing highmem IO regions beyond the RAM
allows to have a single contiguous RAM region (initial RAM and
possible hotpluggable device memory). That way we do not need
to do invasive changes in the EDK2 FW to support a dynamic
RAM base.

Still the user cannot request an initial RAM size greater than 255GB.

Signed-off-by: Eric Auger <eric.auger@redhat.com>
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Message-id: 20190304101339.25970-8-eric.auger@redhat.com
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2019-03-05 15:55:09 +00:00
..
allwinner-a10.h hw/arm/allwinner-a10: Add the 'A' SRAM and the SRAM controller 2019-01-07 15:23:47 +00:00
arm.h hw/arm/armv7m: Remove unused armv7m_init() function 2018-06-15 15:23:34 +01:00
armsse.h hw/arm/armsse: Wire up the MHUs 2019-02-28 11:03:04 +00:00
armv7m.h armv7m: Pass through start-powered-off CPU property 2019-02-01 14:55:41 +00:00
aspeed_soc.h
aspeed.h hw/arm/aspeed: Add an Aspeed machine class 2018-09-25 15:13:24 +01:00
bcm2835_peripherals.h
bcm2836.h
digic.h
exynos4210.h
fdt.h
fsl-imx6.h
fsl-imx6ul.h i.MX6UL: Add i.MX6UL SOC 2018-08-16 14:05:28 +01:00
fsl-imx7.h
fsl-imx25.h
fsl-imx31.h
linux-boot-if.h qom: make interface types abstract 2018-12-11 15:45:22 -02:00
msf2-soc.h
nrf51_soc.h arm: Instantiate NRF51 special NVM's and NVMC 2019-02-01 15:32:17 +00:00
nrf51.h arm: Stub out NRF51 TWI magnetometer/accelerometer detection 2019-01-29 11:46:03 +00:00
omap.h hw/arm/omap: Use qemu_log_mask(GUEST_ERROR) instead of fprintf 2018-06-26 17:50:40 +01:00
primecell.h
pxa.h hw/pcmcia: Remove PCMCIACardState from "qemu/typedefs.h" 2019-01-22 05:14:32 +01:00
raspi_platform.h
sharpsl.h
smmu-common.h hw/arm/smmu-common: Fix devfn computation in smmu_iommu_mr 2018-07-09 14:51:34 +01:00
smmuv3.h hw/arm/smmuv3: Cache/invalidate config data 2018-06-26 17:50:42 +01:00
soc_dma.h
stm32f205_soc.h
sysbus-fdt.h
virt.h hw/arm/virt: Dynamic memory map depending on RAM requirements 2019-03-05 15:55:09 +00:00
xlnx-versal.h hw/arm: versal: Correct the nr of IRQs to 192 2018-12-13 13:48:04 +00:00
xlnx-zynqmp.h arm/xlnx-zynqmp: put APUs and RPUs in separate CPU clusters 2019-01-07 15:23:46 +00:00