qemu-e2k/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.c Change references to serial_hds[] to serial_hd() 2018-04-26 13:57:00 +01:00
armv7m.c armv7m: Forward init-svtor property to CPU object 2018-03-02 11:03:45 +00:00
aspeed_soc.c Change references to serial_hds[] to serial_hd() 2018-04-26 13:57:00 +01:00
aspeed.c hw/arm/aspeed: don't make 'boot_rom' region 'nomigrate' 2018-04-26 11:04:39 +01:00
bcm2835_peripherals.c Change references to serial_hds[] to serial_hd() 2018-04-26 13:57:00 +01:00
bcm2836.c hw/arm/bcm2836: Use the Cortex-A7 instead of Cortex-A15 2018-03-23 18:26:45 +00:00
boot.c arm/boot: split load_dtb() from arm_load_kernel() 2018-05-10 18:10:56 +01:00
collie.c
cubieboard.c
digic_boards.c
digic.c Change references to serial_hds[] to serial_hd() 2018-04-26 13:57:00 +01:00
exynos4_boards.c
exynos4210.c hw/arm/exynos4210: add a comment about a very similar SDHCI (Spec. v2) 2018-02-13 16:15:08 +01:00
fsl-imx6.c Remove checks on MAX_SERIAL_PORTS that are just bounds checks 2018-04-26 13:57:00 +01:00
fsl-imx7.c Remove checks on MAX_SERIAL_PORTS that are just bounds checks 2018-04-26 13:57:00 +01:00
fsl-imx25.c Remove checks on MAX_SERIAL_PORTS that are just bounds checks 2018-04-26 13:57:00 +01:00
fsl-imx31.c Remove checks on MAX_SERIAL_PORTS that are just bounds checks 2018-04-26 13:57:00 +01:00
gumstix.c
highbank.c Change references to serial_hds[] to serial_hd() 2018-04-26 13:57:00 +01:00
imx25_pdk.c
integratorcp.c Change references to serial_hds[] to serial_hd() 2018-04-26 13:57:00 +01:00
iotkit.c hw/arm/iotkit.c: fix minor memory leak 2018-05-10 18:10:56 +01:00
kzm.c Change references to serial_hds[] to serial_hd() 2018-04-26 13:57:00 +01:00
mainstone.c
Makefile.objs hw/arm/smmuv3: Skeleton 2018-05-04 18:49:10 +01:00
mcimx7d-sabre.c Implement support for i.MX7 Sabre board 2018-03-09 17:09:43 +00:00
mps2-tz.c Remove checks on MAX_SERIAL_PORTS that are just bounds checks 2018-04-26 13:57:00 +01:00
mps2.c Remove checks on MAX_SERIAL_PORTS that are just bounds checks 2018-04-26 13:57:00 +01:00
msf2-soc.c Change references to serial_hds[] to serial_hd() 2018-04-26 13:57:00 +01:00
msf2-som.c
musicpal.c Change references to serial_hds[] to serial_hd() 2018-04-26 13:57:00 +01:00
netduino2.c
nseries.c
omap1.c hw/arm: Don't fail qtest due to missing SD card in -nodefaults mode 2018-05-04 18:05:51 +01:00
omap2.c hw/arm: Don't fail qtest due to missing SD card in -nodefaults mode 2018-05-04 18:05:51 +01:00
omap_sx1.c
palm.c
pxa2xx_gpio.c
pxa2xx_pic.c
pxa2xx.c hw/arm: Don't fail qtest due to missing SD card in -nodefaults mode 2018-05-04 18:05:51 +01:00
raspi.c hw/arm/raspi: Don't bother setting default_cpu_type 2018-04-26 11:04:39 +01:00
realview.c Change references to serial_hds[] to serial_hd() 2018-04-26 13:57:00 +01:00
sabrelite.c
smmu-common.c hw/arm/smmu-common: VMSAv8-64 page table walk 2018-05-04 18:05:51 +01:00
smmu-internal.h hw/arm/smmu-common: VMSAv8-64 page table walk 2018-05-04 18:05:51 +01:00
smmuv3-internal.h hw/arm/smmuv3: Implement translate callback 2018-05-04 18:51:25 +01:00
smmuv3.c hw/arm/smmuv3: Abort on vfio or vhost case 2018-05-04 18:52:58 +01:00
spitz.c
stellaris.c Change references to serial_hds[] to serial_hd() 2018-04-26 13:57:00 +01:00
stm32f205_soc.c Remove checks on MAX_SERIAL_PORTS that are just bounds checks 2018-04-26 13:57:00 +01:00
strongarm.c Change references to serial_hds[] to serial_hd() 2018-04-26 13:57:00 +01:00
strongarm.h
sysbus-fdt.c arm/boot: split load_dtb() from arm_load_kernel() 2018-05-10 18:10:56 +01:00
tosa.c hw: Do not include "sysemu/block-backend.h" if it is not necessary 2018-03-12 16:12:46 +01:00
trace-events hw/arm/smmuv3: Implement translate callback 2018-05-04 18:51:25 +01:00
versatilepb.c Change references to serial_hds[] to serial_hd() 2018-04-26 13:57:00 +01:00
vexpress.c Change references to serial_hds[] to serial_hd() 2018-04-26 13:57:00 +01:00
virt-acpi-build.c hw/arm/virt-acpi-build: Add smmuv3 node in IORT table 2018-05-04 18:52:58 +01:00
virt.c arm/boot: split load_dtb() from arm_load_kernel() 2018-05-10 18:10:56 +01:00
xilinx_zynq.c Change references to serial_hds[] to serial_hd() 2018-04-26 13:57:00 +01:00
xlnx-zcu102.c
xlnx-zynqmp.c Change references to serial_hds[] to serial_hd() 2018-04-26 13:57:00 +01:00
z2.c