From b921066dc3baaebc90ddf576a5354e4a5db44e67 Mon Sep 17 00:00:00 2001 From: Luca Valente Date: Mon, 13 Mar 2023 17:40:29 +0100 Subject: [PATCH] Hardcoded changes for cluster standalone. --- include/archi/chips/pulp/memory_map.h | 3 +- include/archi/chips/pulp/properties.h | 12 +++---- kernel/bench.c | 1 + kernel/chips/pulp/link.ld | 2 +- kernel/chips/pulp/soc.c | 26 ++++++++-------- kernel/cluster.c | 45 +++++++++++++++++---------- kernel/crt0.S | 42 +++++++++++++++---------- kernel/init.c | 20 +++++++++--- 8 files changed, 91 insertions(+), 60 deletions(-) diff --git a/include/archi/chips/pulp/memory_map.h b/include/archi/chips/pulp/memory_map.h index 8c12def..f9f297c 100644 --- a/include/archi/chips/pulp/memory_map.h +++ b/include/archi/chips/pulp/memory_map.h @@ -59,7 +59,8 @@ #define ARCHI_SOC_EU_ADDR ( ARCHI_SOC_PERIPHERALS_ADDR + ARCHI_SOC_EU_OFFSET ) #define ARCHI_FC_ITC_ADDR ( ARCHI_SOC_PERIPHERALS_ADDR + ARCHI_FC_ITC_OFFSET ) #define ARCHI_FC_TIMER_ADDR ( ARCHI_SOC_PERIPHERALS_ADDR + ARCHI_FC_TIMER_OFFSET ) -#define ARCHI_STDOUT_ADDR ( ARCHI_SOC_PERIPHERALS_ADDR + ARCHI_STDOUT_OFFSET ) +//#define ARCHI_STDOUT_ADDR ( ARCHI_SOC_PERIPHERALS_ADDR + ARCHI_STDOUT_OFFSET ) +#define ARCHI_STDOUT_ADDR 0x40000000 #define ARCHI_FLL_AREA_SIZE 0x00000010 diff --git a/include/archi/chips/pulp/properties.h b/include/archi/chips/pulp/properties.h index 3a19560..efb59d1 100644 --- a/include/archi/chips/pulp/properties.h +++ b/include/archi/chips/pulp/properties.h @@ -105,12 +105,12 @@ * FC */ -#ifndef ARCHI_NO_FC -#define ARCHI_FC_CID 31 -#define ARCHI_HAS_FC_ITC 1 -#define ARCHI_HAS_FC 1 -#define ARCHI_CORE_HAS_1_10 1 -#endif +//#ifndef ARCHI_NO_FC +//#define ARCHI_FC_CID 31 +//#define ARCHI_HAS_FC_ITC 1 +//#define ARCHI_HAS_FC 1 +//#define ARCHI_CORE_HAS_1_10 1 +//#endif /* diff --git a/kernel/bench.c b/kernel/bench.c index d51fed8..906c4cd 100644 --- a/kernel/bench.c +++ b/kernel/bench.c @@ -108,6 +108,7 @@ void run_benchmark(testcase_t *test, testresult_t *result) bench_timer_reset(); + printf("x\n", test); test->test(result, bench_timer_start, bench_timer_stop); result->time = get_time(); diff --git a/kernel/chips/pulp/link.ld b/kernel/chips/pulp/link.ld index 27c2397..c1f01f1 100644 --- a/kernel/chips/pulp/link.ld +++ b/kernel/chips/pulp/link.ld @@ -3,7 +3,7 @@ OUTPUT_ARCH(riscv) ENTRY( _start ) MEMORY { - L2 : ORIGIN = 0x1c000004, LENGTH = 0x0007fffc + L2 : ORIGIN = 0x1c000000, LENGTH = 0x0007fffc L1 : ORIGIN = 0x10000004, LENGTH = 0x0000fffc } diff --git a/kernel/chips/pulp/soc.c b/kernel/chips/pulp/soc.c index 25af3b9..4504b19 100644 --- a/kernel/chips/pulp/soc.c +++ b/kernel/chips/pulp/soc.c @@ -18,18 +18,18 @@ void pos_soc_init() { -#if __PLATFORM__ != ARCHI_PLATFORM_FPGA - - pos_fll_constructor(); - - pos_freq_domains[PI_FREQ_DOMAIN_FC] = pos_fll_init(POS_FLL_FC); - - pos_freq_domains[PI_FREQ_DOMAIN_PERIPH] = pos_fll_init(POS_FLL_PERIPH); - - - pos_freq_domains[PI_FREQ_DOMAIN_CL] = pos_fll_init(POS_FLL_CL); - -#else +//#if __PLATFORM__ != ARCHI_PLATFORM_FPGA +// +// pos_fll_constructor(); +// +// pos_freq_domains[PI_FREQ_DOMAIN_FC] = pos_fll_init(POS_FLL_FC); +// +// pos_freq_domains[PI_FREQ_DOMAIN_PERIPH] = pos_fll_init(POS_FLL_PERIPH); +// +// +// pos_freq_domains[PI_FREQ_DOMAIN_CL] = pos_fll_init(POS_FLL_CL); +// +//#else pos_freq_domains[PI_FREQ_DOMAIN_FC] = ARCHI_FPGA_SOC_FREQUENCY; @@ -37,6 +37,6 @@ void pos_soc_init() pos_freq_domains[PI_FREQ_DOMAIN_CL] = ARCHI_FPGA_CL_FREQUENCY; -#endif + //#endif } diff --git a/kernel/cluster.c b/kernel/cluster.c index 872eab9..54e75f3 100644 --- a/kernel/cluster.c +++ b/kernel/cluster.c @@ -17,15 +17,16 @@ #include "pulp.h" #include #include +//#include "init.c" volatile void *cluster_entry; L1_DATA char *cluster_stacks; - static volatile int cluster_running; static volatile int cluster_retval; +extern int main(int argc, const char * const argv[]); static void pos_wait_forever() { @@ -43,12 +44,22 @@ static void cluster_core_init() eu_bar_setup(eu_bar_addr(0), (1<