Adding placeholder documentation for TLib Workflow

Documentation on current workflow (which is evolving rapidly).

Hoping this serves to help those getting started at this point of
development, may delete or update later.

Change-Id: I7e9065534d5ae16b03b314d4cf1eebadfce7a22f
diff --git a/RenodeTlibWorkflowDocumentation.md b/RenodeTlibWorkflowDocumentation.md
new file mode 100644
index 0000000..bb43227
--- /dev/null
+++ b/RenodeTlibWorkflowDocumentation.md
@@ -0,0 +1,114 @@
+# Renode TLib Workflow (Placeholder)
+
+Commands here are subject to change.
+
+* [Building](#building)
+* [Running Qemu without debugging](#running-qemu-without-debugging)
+* [Running Qemu with debugging](#running-qemu-with-debugging)
+* [Running gdb for Qemu](#running-gdb-for-qemu)
+  * [Run gdb on the target elf](#run-gdb-on-the-target-elf)
+* [Running gdb for Renode](#running-gdb-for-renode)
+  * [Setup .gdbinit file](#setup-.gdbinit-file)
+* [Running Renode](#running-renode)
+
+## Building
+
+```
+m springbok
+m qemu_clean qemu
+m renode_clean renode
+```
+
+Note: as we continually make changes to renode, will have to `m renode_clean renode` to apply updates:
+
+`m renode_clean renode`
+
+
+## Running Qemu without debugging
+
+```
+qemu_sim_springbok ./out/springbok/test_vsetvl/test_vsetvl.elf
+```
+
+## Running Qemu with debugging
+
+```
+qemu_sim_springbok ./out/springbok/test_vsetvl/test_vsetvl.elf -s -S
+```
+
+## Running gdb for Qemu
+
+### Run gdb on the target elf
+
+Note, same as for Renode but with `target remote :1234`
+
+```sh
+riscv32-unknown-elf-gdb out/springbok/test_vsetvl/test_vsetvl.elf \
+  -ex "target remote :1234" \
+  -ex "layout split" \
+  -ex "b main" \
+  -ex "c"
+```
+## Running gdb for Renode
+
+```sh
+riscv32-unknown-elf-gdb out/springbok/test_vsetvl/test_vsetvl.elf \
+  -ex "target remote :3333" \
+  -ex "monitor start" \
+  -ex "sysbus.cpu2 IsHalted False" \
+  -ex "layout split" \
+  -ex "b main" \
+  -ex "c"
+```
+### Setup .gdbinit file
+
+Save the following to `${HOME}/.gdbinit`:
+
+```
+set auto-load safe-path /
+handle SIGXCPU SIG33 SIG35 SIG36 SIG37 SIG38 SIGPWR nostop noprint
+
+define mono_backtrace
+ select-frame 0
+ set $i = 0
+ while ($i < $arg0)
+   set $foo = (char*) mono_pmip ($pc)
+   if ($foo)
+     printf "#%d %p in %s\n", $i, $pc, $foo
+   else
+     frame
+   end
+   up-silently
+   set $i = $i + 1
+ end
+end
+
+define mono_stack
+ set $mono_thread = mono_thread_current ()
+ if ($mono_thread == 0x00)
+   printf "No mono thread associated with this thread\n"
+ else
+   set $ucp = malloc (sizeof (ucontext_t))
+   call (void) getcontext ($ucp)
+   call (void) mono_print_thread_dump ($ucp)
+   call (void) free ($ucp)
+ end
+end
+```
+
+
+## Running Renode
+
+```sh
+gdb -ex "set breakpoint pending on" \
+  -ex "set pagination off" \
+  -ex "b helper_vsetvl" \
+  -ex "layout split" \
+  -ex "r" \
+  --args mono \
+  --debug out/host/renode/Renode.exe  \
+  -e "\$bin=@out/springbok/test_vsetvl/test_vsetvl.elf; i @sim/config/springbok.resc;" \
+  --disable-xwt \
+  --console
+```
+