qemu/hw/ppc
David Gibson 97b32a6afa spapr: Improve handling of fdt buffer size
Previously, spapr_build_fdt() constructed the device tree in a fixed
buffer of size FDT_MAX_SIZE.  This is a bit inflexible, but more
importantly it's awkward for the case where we use it during CAS.  In
that case the guest firmware supplies a buffer and we have to
awkwardly check that what we generated fits into it afterwards, after
doing a lot of size checks during spapr_build_fdt().

Simplify this by having spapr_build_fdt() take a 'space' parameter.
For the CAS case, we pass in the buffer size provided by SLOF, for the
machine init case, we continue to pass FDT_MAX_SIZE.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Reviewed-by: Cedric Le Goater <clg@fr.ibm.com>
Reviewed-by: Greg Kurz <groug@kaod.org>
2019-12-17 10:39:48 +11:00
..
e500-ccsr.h ppc: do not use ../ in include files 2013-03-01 13:57:33 +01:00
e500.c sysemu: Split sysemu/runstate.h off sysemu/sysemu.h 2019-08-16 13:37:36 +02:00
e500.h platform-bus-device: use device plug callback instead of machine_done notifier 2018-05-10 18:10:56 +01:00
e500plat.c Include hw/boards.h a bit less 2019-08-16 13:31:53 +02:00
fdt.c target/ppc: Split page size information into a separate allocation 2018-04-27 18:05:22 +10:00
fw_cfg.c hw/ppc: Implement fw_cfg_arch_key_name() 2019-05-23 14:10:31 +02:00
Kconfig spapr/xive: add KVM support 2019-05-29 11:39:45 +10:00
mac_newworld.c core: replace getpagesize() with qemu_real_host_page_size 2019-10-26 15:38:06 +02:00
mac_oldworld.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
mac.h ide: Include hw/ide/internal a bit less outside hw/ide/ 2019-08-16 13:31:52 +02:00
Makefile.objs ppc/pnv: Add a PNOR model 2019-12-17 10:39:47 +11:00
mpc8544_guts.c sysemu: Split sysemu/runstate.h off sysemu/sysemu.h 2019-08-16 13:37:36 +02:00
mpc8544ds.c Include hw/boards.h a bit less 2019-08-16 13:31:53 +02:00
pnv_bmc.c ppc/pnv: Create BMC devices at machine init 2019-12-17 10:39:47 +11:00
pnv_core.c ppc/pnv: Link "chip" property to PnvCore::chip pointer 2019-12-17 10:39:47 +11:00
pnv_homer.c ppc/pnv: Link "chip" property to PnvHomer::chip pointer 2019-12-17 10:39:47 +11:00
pnv_lpc.c ppc/pnv: Add HIOMAP commands 2019-12-17 10:39:47 +11:00
pnv_occ.c ppc/pnv: Link "psi" property to PnvOCC::psi pointer 2019-12-17 10:39:47 +11:00
pnv_pnor.c ppc/pnv: Add a PNOR model 2019-12-17 10:39:47 +11:00
pnv_psi.c xics: Link ICS_PROP_XICS property to ICSState::xics pointer 2019-12-17 10:39:47 +11:00
pnv_xscom.c hw/ppc/pnv_xscom: retrieve homer/occ base address from PBA BARs 2019-10-04 10:25:23 +10:00
pnv.c ppc/pnv: Clarify how the TIMA is accessed on a multichip system 2019-12-17 10:39:48 +11:00
ppc4xx_devs.c Include hw/hw.h exactly where needed 2019-08-16 13:31:52 +02:00
ppc4xx_pci.c Include hw/hw.h exactly where needed 2019-08-16 13:31:52 +02:00
ppc405_boards.c hw: Move M48T59 device from hw/timer/ to hw/rtc/ subdirectory 2019-10-24 20:20:45 +02:00
ppc405_uc.c Include hw/boards.h a bit less 2019-08-16 13:31:53 +02:00
ppc405.h ppc4xx: Export ECB and PLB emulation 2017-09-08 09:30:55 +10:00
ppc440_bamboo.c Include hw/hw.h exactly where needed 2019-08-16 13:31:52 +02:00
ppc440_pcix.c Include hw/hw.h exactly where needed 2019-08-16 13:31:52 +02:00
ppc440_uc.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
ppc440.h ppc440_uc: Basic emulation of PPC440 DMA controller 2018-07-03 09:56:52 +10:00
ppc_booke.c sysemu: Split sysemu/runstate.h off sysemu/sysemu.h 2019-08-16 13:37:36 +02:00
ppc.c ppc: Introduce a ppc_cpu_pir() helper 2019-12-17 10:39:47 +11:00
ppce500_spin.c Clean up inclusion of sysemu/sysemu.h 2019-08-16 13:31:53 +02:00
prep_systemio.c sysemu: Split sysemu/runstate.h off sysemu/sysemu.h 2019-08-16 13:37:36 +02:00
prep.c hw: Move M48T59 device from hw/timer/ to hw/rtc/ subdirectory 2019-10-24 20:20:45 +02:00
rs6000_mc.c ppc: rs6000_mc: drop usage of memory_region_allocate_system_memory() 2019-10-23 23:37:42 -03:00
sam460ex.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
spapr_caps.c ppc: fix memory leak in spapr_caps_add_properties 2019-08-21 17:17:11 +10:00
spapr_cpu_core.c ppc: Add intc_destroy() handlers to SpaprInterruptController/PnvChip 2019-11-18 11:49:11 +01:00
spapr_drc.c ppc: fix memory leak in spapr_dt_drc() 2019-08-21 17:17:11 +10:00
spapr_events.c ppc/spapr_events: fix potential NULL pointer dereference in rtas_event_log_dequeue 2019-11-26 10:12:58 +11:00
spapr_hcall.c spapr: Don't trigger a CAS reboot for XICS/XIVE mode changeover 2019-12-17 10:39:48 +11:00
spapr_iommu.c memory: allow memory_region_register_iommu_notifier() to fail 2019-10-04 18:49:18 +02:00
spapr_irq.c spapr: Pass the maximum number of vCPUs to the KVM interrupt controller 2019-12-17 10:39:48 +11:00
spapr_ovec.c Include migration/vmstate.h less 2019-08-16 13:31:52 +02:00
spapr_pci_nvlink2.c spapr/pci: Convert types to QEMU coding style 2019-08-29 09:46:07 +10:00
spapr_pci_vfio.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
spapr_pci.c core: replace getpagesize() with qemu_real_host_page_size 2019-10-26 15:38:06 +02:00
spapr_rng.c Clean up inclusion of sysemu/sysemu.h 2019-08-16 13:31:53 +02:00
spapr_rtas_ddw.c Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
spapr_rtas.c spapr: Stop providing RTAS blob 2019-10-04 10:25:23 +10:00
spapr_rtc.c Include migration/vmstate.h less 2019-08-16 13:31:52 +02:00
spapr_tpm_proxy.c spapr-tpm-proxy: Drop misleading check 2019-10-04 10:25:23 +10:00
spapr_vio.c spapr: Replace spapr_vio_qirq() helper with spapr_vio_irq_pulse() helper 2019-10-04 19:08:22 +10:00
spapr.c spapr: Improve handling of fdt buffer size 2019-12-17 10:39:48 +11:00
trace-events spapr: Remove unhelpful tracepoints from spapr_irq_free_xics() 2019-10-04 19:08:22 +10:00
virtex_ml507.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00