Commit Diff


commit - 9c836066a157ed851db8cef72bcfdd47a2dfafa1
commit + 452f8ae7f55784f77c3bb02d2d797e607244e67c
blob - ac5f4155a7f3f942b7b66e4a6c8e570a3dc9d8a4
blob + 65c3d0d7203eebe9f8d86a4b45f181b26be21bc2
--- README
+++ README
@@ -1,13 +1,54 @@
-# Resources
-- https://riscv.org/wp-content/uploads/2017/05/riscv-spec-v2.2.pdf
-- https://five-embeddev.com/riscv-isa-manual/latest/instr-table.html
+# RISC-V 64-Bit Linux Userspace Emulator
+This emulator allows you to run statically-compiled binaries for riscv64-unknown-linux-musl.
+The goal is to support most POSIX-compatible OS on most 64bit CPU architectures.
 
-# Supported Host OSs
+## Instructions
+Building rvemu is very simple, just do:
+
+  $ make rvemu
+
+To install rvemu, do:
+
+  # make [PREFIX=/usr/local] install
+
+If you don't already have a toolchain, you can build it with:
+
+  $ make -C tools -j8
+
+To run a test program do:
+
+  $ make run
+
+Look into the examples directory, for example programs.
+You can specify which example to run with the T parameter.
+Example for the cat.elf program:
+
+  $ make T=cat run
+
+## Supported Host Architectures
+Due to design decisions, only 64bit archs can be supported:
+
+- amd64
+
+Note: Once I get more hardware, I can port it to other architectures.
+
+## Supported Host OSs
 - OpenBSD
 - FreeBSD
 - NetBSD
 - Linux
 
-# Non-standard Toolchain Build Dependencies
+## Non-standard Toolchain Dependencies
 - gsed (GNU sed)
 - gmake (GNU make)
+- sudo or doas (only for `make run`, see config.mk.*)
+- wget or curl (only on Linux)
+
+## Resources
+- https://riscv.org/wp-content/uploads/2017/05/riscv-spec-v2.2.pdf
+- https://five-embeddev.com/riscv-isa-manual/latest/instr-table.html
+
+
+## Bugs
+This project is still very experimental and has bugs!
+If you find one, please contact Benjamin Stürz <benni AT stuerz DOT xyz>.