qemu/include/hw/arm
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
..
allwinner-a10.h
arm.h arm/boot: split load_dtb() from arm_load_kernel() 2018-05-10 18:10:56 +01:00
armv7m.h armv7m: Forward init-svtor property to CPU object 2018-03-02 11:03:45 +00:00
aspeed_soc.h hw/arm/aspeed: simplify using the 'unimplemented device' for aspeed_soc.io 2018-02-15 18:29:36 +00:00
bcm2835_peripherals.h
bcm2836.h hw/arm/bcm2836: Create proper bcm2837 device 2018-03-19 18:23:24 +00:00
digic.h
exynos4210.h hw/arm/exynos: Move DRAM initialization next boards 2017-06-13 14:56:57 +01:00
fdt.h
fsl-imx6.h fsl-imx6: Swap Ethernet interrupt defines 2018-03-19 18:23:24 +00:00
fsl-imx7.h i.MX: Add i.MX7 SOC implementation. 2018-03-09 17:09:43 +00:00
fsl-imx25.h imx_fec: Reserve full FSL_IMX25_FEC_SIZE page for the register file 2018-01-11 13:25:38 +00:00
fsl-imx31.h
iotkit.h hw/arm/iotkit: Model Arm IOT Kit 2018-03-02 11:03:45 +00:00
linux-boot-if.h
msf2-soc.h msf2: Add Smartfusion2 SoC 2017-09-21 16:36:56 +01:00
omap.h Replace all occurances of __FUNCTION__ with __func__ 2018-01-22 09:46:18 +01:00
primecell.h
pxa.h
raspi_platform.h
sharpsl.h Replace all occurances of __FUNCTION__ with __func__ 2018-01-22 09:46:18 +01:00
smmu-common.h hw/arm/smmu-common: VMSAv8-64 page table walk 2018-05-04 18:05:51 +01:00
smmuv3.h hw/arm/smmuv3: Skeleton 2018-05-04 18:49:10 +01:00
soc_dma.h
stm32f205_soc.h arm: drop intermediate cpu_model -> cpu type parsing and use cpu type directly 2017-09-19 09:09:32 -03:00
sysbus-fdt.h arm/boot: split load_dtb() from arm_load_kernel() 2018-05-10 18:10:56 +01:00
virt.h platform-bus-device: use device plug callback instead of machine_done notifier 2018-05-10 18:10:56 +01:00
xlnx-zynqmp.h xlnx-zynqmp: Connect the RTC device 2018-03-02 10:45:35 +00:00