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
+```
+
