ARMv7: All cores now come up on boot.
authorDavid Cock <david.cock@inf.ethz.ch>
Mon, 29 Aug 2016 15:03:55 +0000 (17:03 +0200)
committerDavid Cock <david.cock@inf.ethz.ch>
Mon, 29 Aug 2016 15:03:55 +0000 (17:03 +0200)
Signed-off-by: David Cock <david.cock@inf.ethz.ch>

hake/menu.lst.armv7_a9ve
include/arch/arm/hw_records_arch.h
usr/kaluga/armv7.c

index 6e9d2f8..1e1fd2d 100644 (file)
@@ -29,12 +29,11 @@ module /armv7/sbin/startd boot
 # Device drivers
 # module /armv7/sbin/serial_pl011 auto
 module /armv7/sbin/serial_kernel irq=37
-module /armv7/sbin/corectrl nospawn
+module /armv7/sbin/corectrl auto
 
 # General user domains
 module /armv7/sbin/angler serial0.terminal dumb
 module /armv7/sbin/fish nospawn
-
 module /armv7/sbin/memtest nospawn
 
 # The FVP simulates 4GB of RAM, 2GB of which is in the 32-bit address space.
index d59e561..3303863 100644 (file)
@@ -20,6 +20,7 @@
 #define HW_PROCESSOR_ARM_REGEX  "r'hw\\.processor\\.[0-9]+' { " \
                                       "enabled: 1, " \
                                       "barrelfish_id: _, " \
+                                      "hw_id: _, " \
                                       "type: _ }"
 
 #endif /* INCLUDE_ARCH_ARM_HW_RECORDS_ARCH_H_ */
index 71b1e1a..7c26cea 100644 (file)
@@ -115,6 +115,11 @@ errval_t arch_startup(char * add_device_db_file)
 {
     errval_t err = SYS_ERR_OK;
 
+    err = skb_client_connect();
+    if (err_is_fail(err)) {
+        USER_PANIC_ERR(err, "Connect to SKB.");
+    }
+
     struct monitor_blocking_rpc_client *m = get_monitor_blocking_rpc_client();
     assert(m != NULL);
 
@@ -137,6 +142,20 @@ errval_t arch_startup(char * add_device_db_file)
         oct_set(HW_PROCESSOR_ARM_RECORD_FORMAT, i, 1, i, i, CPU_ARM7);
     }
 
+    KALUGA_DEBUG("Kaluga: watch_for_cores\n");
+
+    err = watch_for_cores();
+    if (err_is_fail(err)) {
+        USER_PANIC_ERR(err, "Watching cores.");
+    }
+
+    KALUGA_DEBUG("Kaluga: wait_for_all_spawnds\n");
+
+    err = wait_for_all_spawnds();
+    if (err_is_fail(err)) {
+        USER_PANIC_ERR(err, "Unable to wait for spawnds failed.");
+    }
+
     switch(platform) {
         case PI_PLATFORM_OMAP44XX:
             debug_printf("Kaluga running on Pandaboard\n");