qemu/hw/arm
Eric Auger 350a9c9e18 hw/arm/virt: Split the memory map description
In the prospect to introduce an extended memory map supporting more
RAM, let's split the memory map array into two parts:

- the former a15memmap, renamed base_memmap, contains regions below
  and including the RAM. MemMapEntries initialized in this array
  have a static size and base address.
- extended_memmap, only initialized with entries located after the
  RAM. MemMapEntries initialized in this array only get their size
  initialized. Their base address is dynamically computed depending
  on the the top of the RAM, with same alignment as their size.

Eventually base_memmap entries are copied into the extended_memmap
array. Using two separate arrays however clarifies which entries
are statically allocated and those which are dynamically allocated.

This new split will allow to grow the RAM size without changing the
description of the high IO entries.

We introduce a new virt_set_memmap() helper function which
"freezes" the memory map. We call it in machvirt_init as
memory attributes of the machine are not yet set when
virt_instance_init() gets called.

The memory map is unchanged (the top of the initial RAM still is
256GiB). Then come the high IO regions with same layout as before.

Signed-off-by: Eric Auger <eric.auger@redhat.com>
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Message-id: 20190304101339.25970-4-eric.auger@redhat.com
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2019-03-05 15:55:09 +00:00
..
allwinner-a10.c hw/arm/allwinner-a10: Add the 'A' SRAM and the SRAM controller 2019-01-07 15:23:47 +00:00
armsse.c hw/arm/armsse: Unify init-svtor and cpuwait handling 2019-02-28 11:03:04 +00:00
armv7m.c elf: Add optional function ptr to load_elf() to parse ELF notes 2019-02-05 16:50:16 +01:00
aspeed_soc.c aspeed: add a max_ram_size property to the memory controller 2018-08-16 14:29:58 +01:00
aspeed.c i2c: Split smbus into parts 2019-02-27 21:06:08 -06:00
bcm2835_peripherals.c Change references to serial_hds[] to serial_hd() 2018-04-26 13:57:00 +01:00
bcm2836.c hw/arm/bcm2836: Fix crash with device_add bcm2837 on unsupported machines 2018-07-17 13:12:49 +01:00
boot.c hw/arm/boot: introduce fdt_add_memory_node helper 2019-03-05 15:55:08 +00:00
collie.c hw: Do not include "sysemu/block-backend.h" if it is not necessary 2018-06-01 14:15:10 +02:00
cubieboard.c hw/arm: Set ignore_memory_transaction_failures for most ARM boards 2017-09-07 13:54:54 +01:00
digic_boards.c hw/arm: Set ignore_memory_transaction_failures for most ARM boards 2017-09-07 13:54:54 +01:00
digic.c Change references to serial_hds[] to serial_hd() 2018-04-26 13:57:00 +01:00
exynos4_boards.c hw: add .min_cpus and .default_cpus fields to machine_class 2017-11-13 13:55:27 +00:00
exynos4210.c hw/arm/exynos4210: Zero memory allocated for Exynos4210State 2018-11-06 11:32:14 +00:00
fsl-imx6.c hw/arm/fsl-imx6: Fix introspection problems with the "fsl, imx6" device 2018-07-17 13:12:49 +01:00
fsl-imx6ul.c hw/arm/fsl-imx6ul: Connect VIRQ and VFIQ 2018-08-24 13:17:33 +01:00
fsl-imx7.c hw/arm/fsl-imx6ul: Connect VIRQ and VFIQ 2018-08-24 13:17:34 +01:00
fsl-imx25.c hw/arm/fsl-imx25: Fix introspection problem with the "fsl, imx25" device 2018-07-17 13:12:49 +01:00
fsl-imx31.c hw/arm/fsl-imx31: Fix introspection problem with the "fsl, imx31" device 2018-07-17 13:12:49 +01:00
gumstix.c hw: Do not include "sysemu/block-backend.h" if it is not necessary 2018-06-01 14:15:10 +02:00
highbank.c hw/arm/highbank: Connect VIRQ and VFIQ 2018-08-24 13:17:33 +01:00
imx25_pdk.c hw/arm: Set ignore_memory_transaction_failures for most ARM boards 2017-09-07 13:54:54 +01:00
integratorcp.c Change references to serial_hds[] to serial_hd() 2018-04-26 13:57:00 +01:00
kzm.c Change references to serial_hds[] to serial_hd() 2018-04-26 13:57:00 +01:00
mainstone.c hw: Do not include "sysemu/block-backend.h" if it is not necessary 2018-06-01 14:15:10 +02:00
Makefile.objs hw/arm/musca.c: Implement models of the Musca-A and -B1 boards 2019-02-21 18:17:47 +00:00
mcimx6ul-evk.c i.MX6UL: Add Freescale i.MX6 UltraLite 14x14 EVK Board 2018-08-16 14:05:28 +01:00
mcimx7d-sabre.c i.mx7d: Remove unused header files 2018-06-29 15:11:16 +01:00
microbit.c arm: Stub out NRF51 TWI magnetometer/accelerometer detection 2019-01-29 11:46:03 +00:00
mps2-tz.c hw/arm/mps2-tz: Add mps2-an521 model 2019-02-01 14:55:44 +00:00
mps2.c hw/arm/mps2: Fix ID register errors on AN511 and AN385 2018-08-24 13:17:50 +01:00
msf2-soc.c hw/arm: make bitbanded IO optional on ARMv7-M 2018-08-16 14:05:28 +01:00
msf2-som.c hw: Directly use "qemu/units.h" instead of "qemu/cutils.h" 2018-07-02 15:41:12 +02:00
musca.c hw/arm/musca: Wire up PL011 UARTs 2019-02-21 18:17:47 +00:00
musicpal.c musicpal: Convert sysbus init function to realize function 2018-12-13 13:47:56 +00:00
netduino2.c arm: drop intermediate cpu_model -> cpu type parsing and use cpu type directly 2017-09-19 09:09:32 -03:00
nrf51_soc.c arm: Instantiate NRF51 special NVM's and NVMC 2019-02-01 15:32:17 +00:00
nseries.c hw: Do not include "sysemu/block-backend.h" if it is not necessary 2018-06-01 14:15:10 +02:00
omap1.c hw/arm/omap1: Use qemu_log_mask(GUEST_ERROR) instead of fprintf 2018-06-26 17:50:40 +01:00
omap2.c char: allow specifying a GMainContext at opening time 2019-02-13 14:23:39 +01:00
omap_sx1.c hw: Do not include "sysemu/block-backend.h" if it is not necessary 2018-06-01 14:15:10 +02:00
palm.c Replace all occurances of __FUNCTION__ with __func__ 2018-01-22 09:46:18 +01:00
pxa2xx_gpio.c Replace all occurances of __FUNCTION__ with __func__ 2018-01-22 09:46:18 +01:00
pxa2xx_pic.c Replace all occurances of __FUNCTION__ with __func__ 2018-01-22 09:46:18 +01:00
pxa2xx.c i2c: have I2C receive operation return uint8_t 2019-02-27 21:06:08 -06:00
raspi.c hw/arm/raspi: Don't bother setting default_cpu_type 2018-04-26 11:04:39 +01:00
realview.c scsi: move lsi53c8xx_create() callers to lsi53c8xx_handle_legacy_cmdline() 2018-09-25 11:12:25 +10:00
sabrelite.c hw/arm: Set ignore_memory_transaction_failures for most ARM boards 2017-09-07 13:54:54 +01:00
smmu-common.c hw/arm/smmu-common: Fix the name of the iommu memory regions 2018-09-25 14:14:07 +01:00
smmu-internal.h hw/arm/smmu-common: VMSAv8-64 page table walk 2018-05-04 18:05:51 +01:00
smmuv3-internal.h hw/arm/smmuv3: fix eventq recording and IRQ triggerring 2018-09-25 15:13:24 +01:00
smmuv3.c hw/arm/smmuv3: fix eventq recording and IRQ triggerring 2018-09-25 15:13:24 +01:00
spitz.c hw/arm/spitz: Move problematic nand_init() code to realize function 2018-07-23 15:21:26 +01:00
stellaris.c arm:i2c: Don't mask return from i2c_recv() 2019-02-27 21:06:08 -06:00
stm32f205_soc.c hw/arm: make bitbanded IO optional on ARMv7-M 2018-08-16 14:05:28 +01:00
strongarm.c strongarm: mask off high[31:28] bits from dir and state registers 2018-11-02 14:03:33 +00:00
strongarm.h Move target-* CPU file into a target/ folder 2016-12-20 21:52:12 +01:00
sysbus-fdt.c hw/arm/sysbus-fdt: Only call match_fn callback if the type matches 2018-11-13 10:47:58 +00:00
tosa.c i2c: have I2C receive operation return uint8_t 2019-02-27 21:06:08 -06:00
trace-events hw/arm/smmuv3: Add notifications on invalidation 2018-06-26 17:50:42 +01:00
versatilepb.c scsi: move lsi53c8xx_create() callers to lsi53c8xx_handle_legacy_cmdline() 2018-09-25 11:12:25 +10:00
vexpress.c hw/arm/vexpress: Add "virtualization" property controlling presence of EL2 2018-08-24 13:17:35 +01:00
virt-acpi-build.c hw/arm/virt: Rename highmem IO regions 2019-03-05 15:55:09 +00:00
virt.c hw/arm/virt: Split the memory map description 2019-03-05 15:55:09 +00:00
xilinx_zynq.c hw/arm/xilinx_zynq: Use the ARRAY_SIZE macro 2018-11-02 14:03:33 +00:00
xlnx-versal-virt.c hw/arm: versal: Plug memory leaks 2019-01-07 15:23:46 +00:00
xlnx-versal.c hw/arm: versal: Add a model of Xilinx Versal SoC 2018-11-02 14:10:53 +00:00
xlnx-zcu102.c xlnx-zynqmp: Swap Cortex-R5 for Cortex-R5F 2018-06-22 13:28:38 +01:00
xlnx-zynqmp.c hw/arm/xlnx-zynqmp: Realize cluster after putting RPUs in it 2019-01-29 11:46:05 +00:00
z2.c i2c: have I2C receive operation return uint8_t 2019-02-27 21:06:08 -06:00