From 3833e19bfec0e3bfd3a54ddc7e92569c7dd3a07d Mon Sep 17 00:00:00 2001
From: Matheus Cavalcante <mcv@stanford.edu>
Date: Tue, 7 Nov 2023 15:24:15 -0800
Subject: [PATCH] sw: Fix platform's `bootdata` struct

---
 sw/snRuntime/src/platforms/shared/start.c | 16 +++++++---------
 1 file changed, 7 insertions(+), 9 deletions(-)

diff --git a/sw/snRuntime/src/platforms/shared/start.c b/sw/snRuntime/src/platforms/shared/start.c
index e7ab2cfb..1ca0b7b3 100644
--- a/sw/snRuntime/src/platforms/shared/start.c
+++ b/sw/snRuntime/src/platforms/shared/start.c
@@ -8,19 +8,18 @@
 extern const uint32_t _snrt_cluster_cluster_core_num;
 extern const uint32_t _snrt_cluster_cluster_base_hartid;
 extern const uint32_t _snrt_cluster_cluster_id;
-void *const _snrt_cluster_global_offset = (void *)0x10000000;
 
 const uint32_t snrt_stack_size __attribute__((weak, section(".rodata"))) = 10;
 
 // The boot data generated along with the system RTL.
 // See `ip/test/src/tb_lib.hh` for details.
 struct snrt_cluster_bootdata {
-    uint32_t boot_addr;
-    uint32_t core_count;
-    uint32_t hartid_base;
-    uint32_t tcdm_start;
-    uint32_t tcdm_size;
-    uint32_t tcdm_offset;
+    uint64_t boot_addr;
+    uint64_t core_count;
+    uint64_t hartid_base;
+    uint64_t tcdm_start;
+    uint64_t tcdm_size;
+    uint64_t tcdm_offset;
     uint64_t global_mem_start;
     uint64_t global_mem_end;
 };
@@ -51,8 +50,7 @@ void _snrt_init_team(uint32_t cluster_core_id, uint32_t cluster_core_num,
     team->cluster_num = 0;
     team->cluster_core_base_hartid = bootdata->hartid_base;
     team->cluster_core_num = cluster_core_num;
-    team->global_mem.start =
-        (uint64_t)(bootdata->global_mem_start + _snrt_cluster_global_offset);
+    team->global_mem.start = (uint64_t)bootdata->global_mem_start;
     team->global_mem.end = (uint64_t)bootdata->global_mem_end;
     team->cluster_mem.start = (uint64_t)spm_start;
     team->cluster_mem.end = (uint64_t)spm_start + bootdata->tcdm_size;