qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [RFC PATCH 7/8] hw/arm: boot


From: Christian Pinto
Subject: [Qemu-devel] [RFC PATCH 7/8] hw/arm: boot
Date: Tue, 29 Sep 2015 15:57:38 +0200

Modify the boot process of an ARM machine in order to check
whether it is a slave, by checking the slave machine flag.

When the slave flag is on, no kernel, dtb or initrd are loaded into memory.
The boot address of each core is set to the start address of the RAM,
that depends on the machine model executed.

Signed-off-by: Christian Pinto <address@hidden>
---
 hw/arm/boot.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/hw/arm/boot.c b/hw/arm/boot.c
index bef451b..ee0c4a1 100644
--- a/hw/arm/boot.c
+++ b/hw/arm/boot.c
@@ -590,6 +590,19 @@ static void arm_load_kernel_notify(Notifier *notifier, 
void *data)
     /* Load the kernel.  */
     if (!info->kernel_filename || info->firmware_loaded) {
 
+        if (!info->kernel_filename && machine_slave(current_machine)) {
+            /* If a machine is booted as a slave instance there is no need to
+             * provide the DTB blob or kernel image, that will instead
+             * be copied into memory later by a master instance.
+             * The boot address is set to be at the beginning of the RAM.
+             */
+            info->entry = info->loader_start;
+            CPU_FOREACH(cs) {
+                ARM_CPU(cs)->env.boot_info = info;
+            }
+            return;
+        }
+
         if (have_dtb(info)) {
             /* If we have a device tree blob, but no kernel to supply it to (or
              * the kernel is supposed to be loaded by the bootloader), copy the
-- 
1.9.1




reply via email to

[Prev in Thread] Current Thread [Next in Thread]