Hey, thanks for putting this up! I just tried running it, but it seems to be getting stuck on an unhandled exception:
❯ just run-riscv64
...
riscv_cpu_do_interrupt: hart:0, async:0, cause:0000000000000007, epc:0x000000008020aa2a, tval:0x0001000380ae6000, desc=fault_store
Invalid write at addr 0x1000380AE6000, size 4, region '(null)', reason: rejected
riscv_cpu_do_interrupt: hart:0, async:0, cause:0000000000000007, epc:0x000000008020aa2a, tval:0x0001000380ae6000, desc=fault_store
Invalid write at addr 0x1000380AE6000, size 4, region '(null)', reason: rejected
...
❯ cargo --version
cargo 1.81.0-nightly (4ed7bee47 2024-06-25)
❯ qemu-system-riscv64 --version
QEMU emulator version 6.2.0 (Debian 1:6.2+dfsg-2ubuntu6.21)
❯ riscv64-unknown-elf-objdump -d target/riscv64gc-unknown-none-elf/debug/loader
000000008020aa1c <_ZN6loader4arch7riscv649fillstack17hca16c52fb1691861E>:
8020aa1c: 2b383337 lui t1,0x2b383
8020aa20: 030a slli t1,t1,0x2
8020aa22: ace30313 addi t1,t1,-1330 # 2b382ace <$d.168+0x2b20fb28>
8020aa26: 405102b3 sub t0,sp,t0
8020aa2a: 0062a023 sw t1,0(t0) # 20000 <$d.18+0x2c5>
8020aa2e: 02a1 addi t0,t0,8
8020aa30: fe22ede3 bltu t0,sp,8020aa2a <_ZN6loader4arch7riscv649fillstack17hca16c52fb1691861E+0xe>
8020aa34: 8082 ret
...