qemu-e2k/include/hw
Igor Mammedov 3b77f6c353 arm/boot: split load_dtb() from arm_load_kernel()
load_dtb() depends on arm_load_kernel() to figure out place
in RAM where it should be loaded, but it's not required for
arm_load_kernel() to work. Sometimes it's neccesary for
devices added with -device/device_add to be enumerated in
DTB as well, which's lead to [1] and surrounding commits to
add 2 more machine_done notifiers with non obvious ordering
to make dynamic sysbus devices initialization happen in
the right order.

However instead of moving whole arm_load_kernel() in to
machine_done, it's sufficient to move only load_dtb() into
virt_machine_done() notifier and remove ArmLoadKernelNotifier/
/PlatformBusFDTNotifierParams notifiers, which saves us ~90LOC
and simplifies code flow quite a bit.
Later would allow to consolidate DTB generation within one
function for 'mach-virt' board and make it reentrant so it
could generate updated DTB in device hotplug secenarios.

While at it rename load_dtb() to arm_load_dtb() since it's
public now.

Add additional field skip_dtb_autoload to struct arm_boot_info
to allow manual DTB load later in mach-virt and to avoid touching
all other boards to explicitly call arm_load_dtb().

 1) (ac9d32e hw/arm/boot: arm_load_kernel implemented as a machine init done notifier)

Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Reviewed-by: Andrew Jones <drjones@redhat.com>
Message-id: 1525691524-32265-4-git-send-email-imammedo@redhat.com
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2018-05-10 18:10:56 +01:00
..
acpi hw/arm/virt-acpi-build: Add smmuv3 node in IORT table 2018-05-04 18:52:58 +01:00
adc
arm arm/boot: split load_dtb() from arm_load_kernel() 2018-05-10 18:10:56 +01:00
audio
block Include less of the generated modular QAPI headers 2018-03-02 13:45:50 -06:00
char serial-isa: Use MAX_ISA_SERIAL_PORTS instead of MAX_SERIAL_PORTS 2018-04-26 13:57:00 +01:00
core hw/core/split-irq: Device that splits IRQ lines 2018-03-02 11:03:45 +00:00
cpu
cris
display
dma hw/dma/i8257: Rename DMA_init() to i8257_dma_init() 2018-03-12 16:12:48 +01:00
gpio
i2c i2c: Move the bus class to i2c.h 2018-03-01 11:05:45 +00:00
i386 pc: simplify MachineClass::get_hotplug_handler handling 2018-05-10 18:10:56 +01:00
ide Include qapi/error.h exactly where needed 2018-02-09 13:50:17 +01:00
input hw/input/i8042: Extract declarations from i386/pc.h into input/i8042.h 2018-03-12 16:12:48 +01:00
intc heathrow: remove obsolete heathow_init() function 2018-04-27 18:05:22 +10:00
ipack
ipmi
isa superio: Don't use MAX_SERIAL_PORTS for serial port limit 2018-04-26 13:57:00 +01:00
kvm
lm32
m68k
mem pc-dimm: move actual plug/unplug of a memory region to MemoryDevice 2018-05-07 10:00:02 -03:00
mips
misc mac_newworld: move wiring of macio IRQs to macio_newworld_realize() 2018-05-04 15:00:37 +10:00
net
nvram Clean up includes 2018-02-09 05:05:11 +01:00
pci virtio,vhost,pci,pc: features, cleanups 2018-03-20 15:48:34 +00:00
pci-bridge Clean up includes 2018-02-09 05:05:11 +01:00
pci-host uninorth: create new uninorth device 2018-05-04 15:00:37 +10:00
ppc spapr: rename "hotplug memory" terminology to "device memory" 2018-05-07 10:00:02 -03:00
riscv RISC-V: Make virt header comment title consistent 2018-05-06 10:39:38 +12:00
s390x hw/s390x: Allow to configure the consoles with the "-serial" parameter 2018-04-30 10:48:29 +02:00
scsi scsi-disk: allow customizing the SCSI version 2018-04-09 16:36:39 +02:00
sd sdcard: use the registerfields API to access the OCR register 2018-02-22 15:12:52 +00:00
sh4
smbios Move include qemu/option.h from qemu-common.h to actual users 2018-02-09 13:52:16 +01:00
sparc
ssi
timer xlnx-zynqmp-rtc: Add basic time support 2018-03-02 10:45:34 +00:00
tricore
unicore32
usb usb: Add basic code to emulate Chipidea USB IP 2018-02-09 10:40:30 +00:00
vfio vfio-pci: Allow mmap of MSIX BAR 2018-03-13 11:17:31 -06:00
virtio virtio-net: add linkspeed and duplex settings to virtio-net 2018-03-13 23:09:49 +02:00
watchdog
xen xen: Remove now-obsolete xen_xc_domain_add_to_physmap 2018-04-26 16:29:51 +01:00
xtensa Clean up includes 2018-02-09 05:05:11 +01:00
boards.h machine: rename MemoryHotplugState to DeviceMemoryState 2018-05-07 10:00:02 -03:00
bt.h
compat.h spapr: Introduce pseries-2.13 machine type 2018-04-27 18:05:22 +10:00
devices.h
elf_ops.h Add symbol table callback interface to load_elf 2018-03-07 08:30:28 +13:00
empty_slot.h
fw-path-provider.h
hotplug.h
hw.h
ide.h
irq.h hw/core/split-irq: Device that splits IRQ lines 2018-03-02 11:03:45 +00:00
loader-fit.h Use #include "..." for our own headers, <...> for others 2018-02-09 05:05:11 +01:00
loader.h Add symbol table callback interface to load_elf 2018-03-07 08:30:28 +13:00
nmi.h
or-irq.h include/hw/or-irq.h: Add missing include guard 2018-03-02 11:03:45 +00:00
pcmcia.h
platform-bus.h platform-bus-device: use device plug callback instead of machine_done notifier 2018-05-10 18:10:56 +01:00
ptimer.h
qdev-core.h qdev: Add new qdev_init_gpio_in_named_with_opaque() 2018-03-02 11:03:45 +00:00
qdev-dma.h
qdev-properties.h qapi: Empty out qapi-schema.json 2018-03-02 13:45:50 -06:00
qdev.h
register.h hw: register: Run post_write hook on reset 2018-03-01 11:05:43 +00:00
registerfields.h Use #include "..." for our own headers, <...> for others 2018-02-09 05:05:11 +01:00
stream.h
sysbus.h
usb.h