got an interrupt-based uart interface library working
diff --git a/bbb_cape/src/cape/uart_common.c b/bbb_cape/src/cape/uart_common.c
new file mode 100644
index 0000000..3b70764
--- /dev/null
+++ b/bbb_cape/src/cape/uart_common.c
@@ -0,0 +1,14 @@
+#include "cape/uart_common.h"
+#include "cape/uart_common_private.h"
+
+#define FPCLK 60000000
+
+void uart_common_configure(int baud) {
+  // baud = 60MHz / (8 * (2 - OVER8) * (mantissa / fraction))
+  int fraction = 8;  // the biggest it can be with OVER8=0
+  int mantissa = FPCLK * (16 /* 8 * (2 - OVER8) */ / fraction) / baud;
+  UART->BRR = (mantissa << 4) | fraction;
+  UART->CR1 = USART_CR1_UE /* enable it */ |
+      USART_CR1_M /* 9th bit for the parity */ |
+      USART_CR1_PCE /* enable parity (even by default) */;
+}