Commit graph

16 commits

Author SHA1 Message Date
Toby Jaffey
9baedb42e8 Add a stack canary, setup on boot 2025-12-10 01:00:36 +00:00
Toby Jaffey
ac554865a6 Make ROM const 2025-12-09 22:08:53 +00:00
Toby Jaffey
76fba39a21 Rework syscall ABI.
Syscalls now accept two parameters, allowing for things like "int count = read(buf, len)"
Rather than providing safe signatures for syscalls, the user is now given helper functions to safely parse incoming values, c-strings and slices.
2025-12-09 21:51:35 +00:00
Toby Jaffey
8c11b45670 Move CPU core out of RAM. This limits possibilities for self-modifying code hacks, but is cleaner/safer. 2025-12-09 10:46:29 +00:00
Toby Jaffey
9be9e056cd Use internal memcpy/memset 2025-12-08 23:48:50 +00:00
Toby Jaffey
ee2ba56423 Add cmdline option to host <file.bin> [max_instrs_to_run], to set instruction meter.
Allow a host to continue after a hung error, if it wants to.

So, a program with while(1) {} can be run indefinitely.
2025-12-08 20:36:00 +00:00
Toby Jaffey
c691c3ebdf Fix overly long event name 2025-12-08 13:04:05 +00:00
Toby Jaffey
a3c8b7584d Remove debug 2025-12-08 12:54:30 +00:00
Toby Jaffey
9d6e6790e1 Cleanup syscall numbers 2025-12-08 12:53:33 +00:00
Toby Jaffey
61fe0e8647 Rename ioreq to syscall 2025-12-08 12:26:47 +00:00
Toby Jaffey
f6cd790fcb ABI info 2025-12-08 07:31:21 +00:00
Toby Jaffey
751f068486 Rework host/target interface to use ecall and proper syscalls instead of CSRs 2025-12-08 02:44:38 +00:00
Toby Jaffey
af3b48cb01 Fix comment, uvm32_reset() doesn't exist 2025-12-07 13:13:36 +00:00
Toby Jaffey
f235265e3f Set stack pointer to before core registers in RAM 2025-12-07 00:59:35 +00:00
Toby Jaffey
047c9e3853 Move error strings out of header, to prevent unused warning 2025-12-06 21:35:00 +00:00
Toby Jaffey
c9d30b6d28 uvm32 initial version 2025-12-06 16:44:23 +00:00