diff --git a/README.md b/README.md
index 6852a3c7af43ada6d9e0053dd4d256d2e08891ea..9910f5e0dc8c6b3e45bf7bf5af3d4628a5de8fe9 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,8 @@
 # OpenOCD
 
+[OpenOCD](http://openocd.org/) is a tool for on-chip debugging. It's also a great tool just for
+flashing programs and bootloaders.
+
 ## Installation
 
 ### Package Managers
@@ -13,17 +16,35 @@ On Windows, there is no package manager. Untested: there are binaries
 
 ### From Source
 
-If you want to know exactly which version you're using, or you're going for
-maximum bare metal cred, you can build from source. This can be helpful if
-you'll be developing between different operating systems — one less thing
-that could be different — or if the package available on your system is
-out of date.
+*This section is for Linux and Mac only*
+
+If you want to know exactly which version you're using, or you're going for maximum bare metal cred,
+you can build from source. This can be helpful if you'll be developing between different operating
+systems — one less thing that could be different — or if the package available on your
+system is out of date.
 
 The official [git repo](https://sourceforge.net/p/openocd/code/ci/master/tree/)
 is on SourceForge.
 
 ```git clone https://git.code.sf.net/p/openocd/code openocd-code```
 
-To build it, you'll need `gcc` or `clang`, as well as `make`, `libtool`,
-`pkg-config` version 0.23 or greater, and possibly others detailed
-[here](http://openocd.org/doc-release/README).
\ No newline at end of file
+To build it, you'll need `gcc` or `clang`, as well as `make`, `libtool`, `pkg-config` version 0.23
+or greater, and possibly others detailed [here](http://openocd.org/doc-release/README). Once you
+have the prereqs, building is a standard process:
+
+```
+./bootstrap
+./configure --enable-cmsis-dap
+make
+make install
+```
+
+## Basic Use
+
+### Config files
+
+When openocd starts, it first processes some configuration commands. You can specify a specific
+config file with `openocd -f path/to/your/config.cfg`, or by default it looks for `openocd.cfg`. At a minimum, openocd needs to know how to communicate with the
+programming/debug tool you're using (e.g. ATMEL ICE), and what microcontroller you're using. For
+ATMEL ICE, we want `cmsis-dap`. (You can read more about what this means
+[here](https://electronics.stackexchange.com/questions/405134/swdap-vs-cmsis-dap-vs-daplink).)