qemu-e2k/hw
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
..
9pfs
acpi i2c:pm_smbus: Fix state transfer 2019-02-27 21:06:08 -06:00
adc
alpha
arm hw/arm/virt: Dynamic memory map depending on RAM requirements 2019-03-05 15:55:09 +00:00
audio i2c: have I2C receive operation return uint8_t 2019-02-27 21:06:08 -06:00
block xen-block: stop leaking memory in xen_block_drive_create() 2019-02-28 17:21:12 +00:00
bt
char hw/char/pl011: Use '0x' prefix when logging hex numbers 2019-02-21 18:17:46 +00:00
core virtio-blk: add "discard" and "write-zeroes" properties 2019-02-22 09:42:16 +00:00
cpu
cris
display i2c: have I2C receive operation return uint8_t 2019-02-27 21:06:08 -06:00
dma
gpio i2c: have I2C receive operation return uint8_t 2019-02-27 21:06:08 -06:00
hppa hw/hppa/dino: mask out lower 2 bits of PCI config addr 2019-02-21 10:16:19 -08:00
hyperv
i2c i2c: Verify that the count passed in to smbus_eeprom_init() is valid 2019-02-27 21:06:08 -06:00
i386 boards.h: Ignore migration for SMBus devices on older machines 2019-02-27 21:06:08 -06:00
ide hw/ide: drop iov field from IDEDMA 2019-02-22 09:42:13 +00:00
input i2c: have I2C receive operation return uint8_t 2019-02-27 21:06:08 -06:00
intc hw/ppc: Use object_initialize_child for correct reference counting 2019-02-26 09:21:25 +11:00
ipack
ipmi
isa i2c: Split smbus into parts 2019-02-27 21:06:08 -06:00
lm32
m68k hw/m68k/mcf5208: Support loading of bios images 2019-02-28 12:18:18 +01:00
mem pc-dimm: use same mechanism for [get|set]_addr 2019-02-21 12:28:41 -05:00
microblaze
mips i2c: Split smbus into parts 2019-02-27 21:06:08 -06:00
misc This has been out there long enough, I need to get this in. 2019-03-01 11:20:49 +00:00
moxie
net virtio-net: Allow qemu_announce_self to trigger virtio announcements 2019-03-05 11:27:41 +08:00
nios2
nvram i2c: have I2C receive operation return uint8_t 2019-02-27 21:06:08 -06:00
openrisc
pci pci: Sanity test minimum downstream LNKSTA 2019-02-22 10:51:31 -05:00
pci-bridge
pci-host hw/pci-host/bonito.c: Add PCI mem region mapped at the correct address 2019-02-21 19:36:47 +01:00
pcmcia
ppc hw/boards: Add a MachineState parameter to kvm_type callback 2019-03-05 15:55:09 +00:00
rdma
riscv
s390x s390x/vfio-ap: Implement hot plug/unplug of vfio-ap device 2019-03-04 11:49:31 +01:00
scsi qdev: pass an Object * to qbus_set_hotplug_handler() 2019-02-17 21:54:02 +11:00
sd
sh4
smbios hw/smbios: fix offset of type 3 sku field 2019-02-22 10:51:31 -05:00
sparc
sparc64
ssi
timer i2c: have I2C receive operation return uint8_t 2019-02-27 21:06:08 -06:00
tpm tpm_tis: convert tpm_tis_show_buffer() to use trace event 2019-02-24 14:46:14 -05:00
tricore
unicore32
usb hw/usb: switch MTP to use new inotify APIs 2019-02-26 15:25:58 +00:00
vfio s390x updates: 2019-03-04 13:38:54 +00:00
virtio pci, pc, virtio: fixes, cleanups, tests 2019-03-04 11:04:31 +00:00
watchdog
xen
xenpv
xtensa
Makefile.objs