xemu/hw
Benjamin Herrenschmidt b7d1f77ada spapr: Locate RTAS and device-tree based on real RMA
We currently calculate the final RTAS and FDT location based on
the early estimate of the RMA size, cropped to 256M on KVM since
we only know the real RMA size at reset time which happens much
later in the boot process.

This means the FDT and RTAS end up right below 256M while they
could be much higher, using precious RMA space and limiting
what the OS bootloader can put there which has proved to be
a problem with some OSes (such as when using very large initrd's)

Fortunately, we do the actual copy of the device-tree into guest
memory much later, during reset, late enough to be able to do it
using the final RMA value, we just need to move the calculation
to the right place.

However, RTAS is still loaded too early, so we change the code to
load the tiny blob into qemu memory early on, and then copy it into
guest memory at reset time. It's small enough that the memory usage
doesn't matter.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
[aik: fixed errors from checkpatch.pl, defined RTAS_MAX_ADDR]
Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
[agraf: fix compilation on 32bit hosts]
Signed-off-by: Alexander Graf <agraf@suse.de>
2014-09-08 12:50:48 +02:00
..
9pfs virtio-9p: use virtio wrappers to access headers 2014-06-29 19:39:43 +03:00
acpi pcihp: fix possible array out of bounds 2014-08-25 00:16:06 +02:00
alpha machine: Conversion of QEMUMachineInitArgs to MachineState 2014-05-28 17:35:01 +02:00
arm aarch64: raise max_cpus to 8 2014-08-29 15:00:29 +01:00
audio SCSI changes that enable sending vendor-specific commands via virtio-scsi. 2014-08-19 13:00:57 +01:00
block virtio-blk: allow drive_del with dataplane 2014-08-29 16:01:48 +01:00
bt l2cap: fix access to freed memory 2014-08-15 19:12:48 +04:00
char SCSI changes that enable sending vendor-specific commands via virtio-scsi. 2014-08-19 13:00:57 +01:00
core loader: Add load_image_size() to replace load_image() 2014-09-08 12:50:48 +02:00
cpu icc_bus: QOM'ify ICC 2013-12-24 18:02:18 +01:00
cris machine: Conversion of QEMUMachineInitArgs to MachineState 2014-05-28 17:35:01 +02:00
display qxl-render: add more sanity checks 2014-09-01 10:19:03 +02:00
dma dma: axidma: Variablise repeated s->streams[i] sub-expr 2014-08-24 13:16:32 +04:00
gpio savevm: Remove all the unneeded version_minimum_id_old (arm) 2014-05-13 16:09:35 +01:00
i2c savevm: Remove all the unneeded version_minimum_id_old (rest) 2014-05-14 15:24:51 +02:00
i386 ssdt-tpm: add generated hex file to git 2014-08-25 00:16:06 +02:00
ide ide: Fix bootindex for bus_id > 9 2014-08-29 10:46:57 +01:00
input input: fix jumpy mouse cursor with USB mouse emulation 2014-07-01 13:26:37 +02:00
intc hw/intc/arm_gic: honor target mask in gic_update() 2014-08-29 15:00:29 +01:00
ipack memory: remove memory_region_destroy 2014-08-18 12:06:21 +02:00
isa isa-bus: don't use 'Yoda conditions' 2014-08-15 18:54:06 +04:00
lm32 machine: Conversion of QEMUMachineInitArgs to MachineState 2014-05-28 17:35:01 +02:00
m68k machine: Conversion of QEMUMachineInitArgs to MachineState 2014-05-28 17:35:01 +02:00
mem pc-dimm: fix up error message 2014-08-14 13:22:00 +02:00
microblaze microblaze: ml605: Get rid of ddr_base variable 2014-08-24 13:16:32 +04:00
mips memory: convert memory_region_destroy to object_unparent 2014-08-18 12:06:20 +02:00
misc vfio: Enable NVIDIA 88000 region quirk regardless of VGA 2014-08-25 12:10:15 -06:00
moxie hw/moxie/moxiesim.c: Remove unused moxie_intc_create() 2014-06-24 20:01:24 +04:00
net vmxnet3: Pad short frames to minimum size (60 bytes) 2014-08-24 17:11:08 +04:00
nvram spapr: Fix RTAS token numbers 2014-06-27 13:48:22 +02:00
openrisc machine: Conversion of QEMUMachineInitArgs to MachineState 2014-05-28 17:35:01 +02:00
pci pcie: fix trailing whitespace 2014-08-25 00:16:07 +02:00
pci-bridge ioh3420: Enable ARI forwarding 2014-08-25 00:16:06 +02:00
pci-host Merge remote-tracking branch 'remotes/mcayland/qemu-sparc' into staging 2014-08-18 12:55:02 +01:00
pcmcia hw: Fix qemu_allocate_irqs() leaks 2014-06-30 21:13:30 +02:00
ppc spapr: Locate RTAS and device-tree based on real RMA 2014-09-08 12:50:48 +02:00
s390x sclp-s390: Add memory hotplug SCLPs 2014-09-01 09:25:32 +02:00
scsi virtio-scsi: Report error if num_queues is 0 or too large 2014-08-26 13:20:44 +02:00
sd sd: sdhci: Fix ADMA dma_memory_read access 2014-08-04 14:41:54 +01:00
sh4 hw: Fix qemu_allocate_irqs() leaks 2014-06-30 21:13:30 +02:00
sparc tcx: move initialisation from realizefn to initfn 2014-06-05 20:51:57 +01:00
sparc64 sun4u: switch second PCI-ebus bridge BAR over to PCI IO space 2014-08-17 13:12:52 +01:00
ssi ssi: xilinx_spi: Initialise CS GPIOs as NULL 2014-08-15 18:54:40 +04:00
timer mc146818rtc: reinitialize irq_reinject_on_ack_count on reset 2014-08-27 17:54:52 +02:00
tpm Add ACPI tables for TPM 2014-08-25 00:16:06 +02:00
tricore target-tricore: Add board for systemmode 2014-09-01 14:49:20 +01:00
unicore32 machine: Conversion of QEMUMachineInitArgs to MachineState 2014-05-28 17:35:01 +02:00
usb usb: add usb host adapters exit trace 2014-08-29 12:52:14 +02:00
virtio SCSI changes that enable sending vendor-specific commands via virtio-scsi. 2014-08-19 13:00:57 +01:00
watchdog memory: remove memory_region_destroy 2014-08-18 12:06:21 +02:00
xen memory: remove memory_region_destroy 2014-08-18 12:06:21 +02:00
xenpv machine: Conversion of QEMUMachineInitArgs to MachineState 2014-05-28 17:35:01 +02:00
xtensa hw/xtensa/xtfpga: implement initrd loading 2014-06-29 02:32:42 +04:00
Makefile.objs pc: implement pc-dimm device abstraction 2014-06-19 16:41:47 +03:00