hw/arm/boot: load device tree to base of DRAM if no -kernel option was passed
If we are running the 'virt' machine, we may have a device tree blob but no kernel to supply it to if no -kernel option was passed. In that case, copy it to the base of RAM where it can be picked up by a bootloader. Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Message-id: 1410453915-9344-4-git-send-email-ard.biesheuvel@linaro.org Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
parent
fee8ea12eb
commit
69e7f76f6a
@ -490,6 +490,16 @@ void arm_load_kernel(ARMCPU *cpu, struct arm_boot_info *info)
|
|||||||
|
|
||||||
/* Load the kernel. */
|
/* Load the kernel. */
|
||||||
if (!info->kernel_filename) {
|
if (!info->kernel_filename) {
|
||||||
|
|
||||||
|
if (have_dtb(info)) {
|
||||||
|
/* If we have a device tree blob, but no kernel to supply it to,
|
||||||
|
* copy it to the base of RAM for a bootloader to pick up.
|
||||||
|
*/
|
||||||
|
if (load_dtb(info->loader_start, info, 0) < 0) {
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* If no kernel specified, do nothing; we will start from address 0
|
/* If no kernel specified, do nothing; we will start from address 0
|
||||||
* (typically a boot ROM image) in the same way as hardware.
|
* (typically a boot ROM image) in the same way as hardware.
|
||||||
*/
|
*/
|
||||||
|
Loading…
Reference in New Issue
Block a user