Seems to work well enough to take over the OpenSBI putchar
TODO: Add some kind of flush() to avoid trashing data still in the FIFO
when we take over from OpenSBI
Added legacy extension
Fixed typing memes by just define a sbiword_t typedef
Renamed sbiret_t to SbiRet, I think i'll only use _t for typedefs
Added ecall() variant that takes no additional arguments
Moved opensbi includes to includes/opensbi/...
kernel.cpp uses the legacy extensions instead of raw ecalls
All legacy extension calls are marked as deprecated
Split code into generic, arch, and platform
Made QEMU its own platform
Added shitty uart upload script for lichee board until I can get fel to
actually upload uboot payloads without hanging
TODO: Move platform selection out of build script
TODO: Move arch specific stuff from kernel to arch
TODO: Common linker script for arch instead of having a copy in each
platform
Mostly stolen from https://github.com/avdgrinten/riscv-toy-os
Changed load address to 0x45000000 so it would run on real hardware
Played around with GPIO and the watchdog