summaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
authortaitep <taitep@taitep.se>2025-12-21 17:49:02 +0100
committertaitep <taitep@taitep.se>2025-12-21 17:49:02 +0100
commitc10e1ec09bca38d634b632d4afc75d80b893c41f (patch)
treeea3e40062273d43634ae9a476fdfb72e2edc08fd /README.md
parent25dd685345b4bba7418eca4252e1b65ce20356cd (diff)
Allow other image file names through cli args, increase ram size, update readme
Diffstat (limited to 'README.md')
-rw-r--r--README.md13
1 files changed, 9 insertions, 4 deletions
diff --git a/README.md b/README.md
index f5d0631..ef919ce 100644
--- a/README.md
+++ b/README.md
@@ -8,12 +8,17 @@ potentially more. No plans for RV32I or RV32/64E.
Currently, the emulator is nowhere near complete,
its not even at rv64i, but it does work for a subset of it.
-The emulator will load a raw binary image from the file `./img` into RAM,
-which starts at 0x80000000 and is currently 1MiB,
+The emulator will load a raw binary image from a file specified as a CLI argument into RAM,
+which starts at 0x80000000 and is currently 16MiB,
and start execution at the start of the image/ram.
There is also a debug out page starting at `0x00000000`-`0x00001000`.
Anything written to it will be logged out in hex.
-Currently there is no input, altho i might get around to making
-an early UART kinda soon.
+There is also a UART at `0x00001000`-`0x00002000`, the interface is quite simple:
+- byte `0`: Data. When written, writes out the character
+ When read, reads a character from the buffer, or 0 if empty.
+- byte `1`: Status. Read-only. Least significant bit is `TX_READY` and indicates whether
+ the UART is ready to be written to. Currently always 1.
+ Next least significant is `RX_READY`, indicates whether the read buffer
+ has any data to read.