From 3de42a19661a3d6d24de46ca2920b06e1dc88fe0 Mon Sep 17 00:00:00 2001 From: Alejandro Soto Date: Tue, 3 Oct 2023 23:16:08 -0600 Subject: demo: initial commit --- demo/main.c | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 demo/main.c (limited to 'demo/main.c') diff --git a/demo/main.c b/demo/main.c new file mode 100644 index 0000000..b984d6f --- /dev/null +++ b/demo/main.c @@ -0,0 +1,44 @@ +#include "demo.h" + +static struct cpu cpu0, cpu1, cpu2, cpu3; + +struct cpu *__cpus[] = { &cpu0, &cpu1, &cpu2, &cpu3 }; + +void bsp_main(void) +{ + run_cpu(1); + + while (!cpus_ready()); + print("booted %u cpus", NUM_CPUS); + + while (1) { + } +} + +void ap_main(void) +{ + if (this_cpu->num < NUM_CPUS - 1) + run_cpu(this_cpu->num + 1); + + halt_cpu(this_cpu->num); + + while (1) { + } +} + +void reset(void) +{ + if (this_cpu->num == 0) { + console_init(); + + for (struct cpu **cpu = __cpus; cpu < __cpus + NUM_CPUS; ++cpu) { + } + } + + print("core taken out of reset"); + + if (this_cpu->num == 0) + bsp_main(); + else + ap_main(); +} -- cgit v1.2.3