diff --git a/hw/system/spatz_cluster/src/generated/spatz_cluster_wrapper.sv b/hw/system/spatz_cluster/src/generated/spatz_cluster_wrapper.sv index dc4519e7..f9140f44 100644 --- a/hw/system/spatz_cluster/src/generated/spatz_cluster_wrapper.sv +++ b/hw/system/spatz_cluster/src/generated/spatz_cluster_wrapper.sv @@ -58,7 +58,7 @@ package spatz_cluster_pkg; localparam int unsigned TCDMStartAddr = 32'h100000; localparam int unsigned TCDMSize = 32'h20000; - + localparam logic AddrMisalign = 1'b0; // 0-aligned, 1-misalign localparam int unsigned PeriStartAddr = TCDMStartAddr + TCDMSize; localparam int unsigned BootAddr = 32'h1000; @@ -243,6 +243,7 @@ module spatz_cluster_wrapper localparam int unsigned NumSpatzOutstandingLoads [NumCores] = '{4, 4}; localparam int unsigned NumSpatzFPUs [NumCores] = '{default: 4}; localparam int unsigned NumSpatzIPUs [NumCores] = '{default: 1}; + localparam int unsigned NumSpatzTCDMPorts [NumCores] = '{default: 4}; typedef logic [IwcAxiIdOutWidth-1:0] axi_id_out_iwc_t; @@ -302,6 +303,8 @@ module spatz_cluster_wrapper .NumSpatzOutstandingLoads (NumSpatzOutstandingLoads), .NumSpatzFPUs (NumSpatzFPUs), .NumSpatzIPUs (NumSpatzIPUs), + .NumSpatzTCDMPorts (NumSpatzTCDMPorts), + .AddrMisalign (AddrMisalign), .axi_in_req_t (axi_in_req_t), .axi_in_resp_t (axi_in_resp_t), .axi_out_req_t (spatz_axi_iwc_out_req_t), diff --git a/hw/system/spatz_cluster/test/bootrom.elf b/hw/system/spatz_cluster/test/bootrom.elf index 22191858..fe5a3eae 100755 Binary files a/hw/system/spatz_cluster/test/bootrom.elf and b/hw/system/spatz_cluster/test/bootrom.elf differ diff --git a/sw/snRuntime/src/platforms/cheshire/start_snitch.S b/sw/snRuntime/src/platforms/cheshire/start_snitch.S index 4fc46d4e..218eacce 100644 --- a/sw/snRuntime/src/platforms/cheshire/start_snitch.S +++ b/sw/snRuntime/src/platforms/cheshire/start_snitch.S @@ -15,7 +15,7 @@ _snrt_exit: addi sp, sp, -8 sw a0, 0(sp) sw ra, 4(sp) - call snrt_global_core_idx + call snrt_cluster_core_idx # reload exit code into t0 lw t0, 0(sp) lw ra, 4(sp) @@ -25,8 +25,17 @@ _snrt_exit: # - a0: global core index # - t0: exit code bnez a0, 1f + addi sp, sp, -8 + sw a0, 0(sp) + sw ra, 4(sp) + slli t0, t0, 1 ori t0, t0, 1 mv a0, t0 call snrt_set_eoc_and_return_code + + lw t0, 0(sp) + lw ra, 4(sp) + addi sp, sp, 8 + 1: ret diff --git a/sw/snRuntime/src/platforms/standalone/start_snitch.S b/sw/snRuntime/src/platforms/standalone/start_snitch.S index 47be6baf..62b8d064 100644 --- a/sw/snRuntime/src/platforms/standalone/start_snitch.S +++ b/sw/snRuntime/src/platforms/standalone/start_snitch.S @@ -15,7 +15,7 @@ _snrt_exit: addi sp, sp, -8 sw a0, 0(sp) sw ra, 4(sp) - call snrt_global_core_idx + call snrt_cluster_core_idx # reload exit code into t0 lw t0, 0(sp) lw ra, 4(sp)