summaryrefslogtreecommitdiff
path: root/demo/main.c
diff options
context:
space:
mode:
authorAlejandro Soto <alejandro@34project.org>2023-10-04 03:46:29 -0600
committerAlejandro Soto <alejandro@34project.org>2023-10-04 05:04:04 -0600
commitf52299cf837951cbc1dc92fd0d084444ac3dc712 (patch)
tree81db03717f1571d0e1e75f8de8d7915a0c7cb084 /demo/main.c
parent3de2c7e7dd214f80b8b9cca575e42e0b1b08034d (diff)
demo: implement cache debug
Diffstat (limited to 'demo/main.c')
-rw-r--r--demo/main.c25
1 files changed, 19 insertions, 6 deletions
diff --git a/demo/main.c b/demo/main.c
index fe17ec2..10067d2 100644
--- a/demo/main.c
+++ b/demo/main.c
@@ -22,7 +22,7 @@ static void cmd_halt(char **tokens)
halt_cpus(mask);
}
-static void cmd_rd(char **tokens)
+static void cmd_read(char **tokens)
{
void *ptr;
if (parse_aligned(tokens, &ptr) < 0 || expect_end(tokens) < 0)
@@ -31,7 +31,7 @@ static void cmd_rd(char **tokens)
print("%p: %x", ptr, *(volatile unsigned *)ptr);
}
-static void cmd_wr(char **tokens)
+static void cmd_write(char **tokens)
{
void *ptr;
unsigned val;
@@ -42,6 +42,17 @@ static void cmd_wr(char **tokens)
*(volatile unsigned *)ptr = val;
}
+static void cmd_cache(char **tokens)
+{
+ void *ptr;
+ unsigned cpu;
+
+ if (parse_cpu(tokens, &cpu) < 0 || parse_ptr(tokens, &ptr) < 0)
+ return;
+
+ cache_debug(cpu, ptr);
+}
+
void bsp_main(void)
{
run_cpu(1);
@@ -63,10 +74,12 @@ void bsp_main(void)
cmd_run(&tokens);
else if (!strcmp(cmd, "halt"))
cmd_halt(&tokens);
- else if (!strcmp(cmd, "rd"))
- cmd_rd(&tokens);
- else if (!strcmp(cmd, "wr"))
- cmd_wr(&tokens);
+ else if (!strcmp(cmd, "read"))
+ cmd_read(&tokens);
+ else if (!strcmp(cmd, "write"))
+ cmd_write(&tokens);
+ else if (!strcmp(cmd, "cache"))
+ cmd_cache(&tokens);
else
print("unknown command '%s'", cmd);
}