Coredata: making archid to be of type hwid_t
authorReto Achermann <reto.achermann@inf.ethz.ch>
Mon, 6 Mar 2017 10:22:31 +0000 (11:22 +0100)
committerReto Achermann <reto.achermann@inf.ethz.ch>
Mon, 6 Mar 2017 10:22:31 +0000 (11:22 +0100)
Signed-off-by: Reto Achermann <reto.achermann@inf.ethz.ch>

include/target/aarch64/barrelfish_kpi/arm_core_data.h
include/target/arm/barrelfish_kpi/arm_core_data.h
include/target/x86/barrelfish_kpi/coredata_target.h
kernel/arch/x86_64/startup_arch.c
usr/drivers/cpuboot/main.c

index 7d1a088..901f731 100644 (file)
@@ -49,12 +49,12 @@ struct armv8_core_data {
     lpaddr_t memory_base_start;
     size_t memory_size;
     coreid_t src_core_id;
-    uint64_t src_arch_id;
+    hwid_t src_arch_id;
     coreid_t dst_core_id;
     char kernel_cmdline[128];
 
     lpaddr_t    initrd_start;
-    lpaddr_t   initrd_size;
+    lpaddr_t    initrd_size;
 
 
     uint64_t    start_kernel_ram; ///< The physical start of allocated kernel memory
@@ -67,7 +67,7 @@ struct armv8_core_data {
     struct armv8_coredata_elf elf;
 }; //__attribute__ ((packed));
 
-#define ARMV8_CORE_DATA_PAGES 1100
+#define ARMV8_CORE_DATA_PAGES 700
 
 
 #endif
index 6ac01a1..1be2426 100644 (file)
@@ -81,7 +81,7 @@ struct arm_core_data {
     coreid_t dst_core_id;
 
     /* The architecture of the core that booted us. */
-    uint8_t src_arch_id;
+    hwid_t src_arch_id;
 
     /* The address of the global locks. */
     lvaddr_t global;
index c4d7515..9dba7a0 100644 (file)
@@ -54,7 +54,7 @@ struct x86_core_data {
     genpaddr_t memory_base_start;
     uint8_t memory_bits;
     coreid_t src_core_id;
-    uint8_t src_arch_id;
+    hwid_t src_arch_id;
     coreid_t dst_core_id;
     char kernel_cmdline[128];
 
index 073e2bc..b48c080 100644 (file)
@@ -474,7 +474,7 @@ struct dcb *spawn_app_init(struct x86_core_data *core_data, const char *name)
 
     // Arch id of the core that booted this core
     char archidchar[30];
-    snprintf(archidchar, sizeof(archidchar), "archid=%d",
+    snprintf(archidchar, sizeof(archidchar), "archid=%" PRIuHWID,
              core_data->src_arch_id);
 
     const char *argv[] = { name, coreidchar, chanidchar, archidchar };
index a9ef141..7bcebd0 100644 (file)
@@ -17,7 +17,7 @@
 #include <if/monitor_blocking_defs.h>
 
 
-coreid_t my_arch_id;
+hwid_t my_arch_id;
 struct capref ipi_cap;
 
 coreid_t core_count = 0;
@@ -40,7 +40,7 @@ char* cmd_kernel_args = "loglevel=2 logmask=0";
 static void load_arch_id(void)
 {
     struct monitor_blocking_binding *mc = get_monitor_blocking_binding();
-    errval_t err = mc->rpc_tx_vtbl.get_arch_core_id(mc, (uintptr_t *)&my_arch_id);
+    errval_t err = mc->rpc_tx_vtbl.get_arch_core_id(mc, &my_arch_id);
     if (err_is_fail(err)) {
         USER_PANIC_ERR(err, "get_arch_core_id failed.");
     }