diff --git a/rt/dev/ad9516.c b/rt/dev/ad9516.c
index 7b6038ff483082a05af10a75c30beaa7426da627..02086194ab75837470f62f40d1d66517a19f5032 100644
--- a/rt/dev/ad9516.c
+++ b/rt/dev/ad9516.c
@@ -11,15 +11,22 @@
 #include "syscon.h"
 #include "gpio.h"
 
-
-#include "ad9516.h"
-
 #include "rt_ipc.h"
 
 #ifndef ARRAY_SIZE
 #define ARRAY_SIZE(a) (sizeof(a)/sizeof(a[0]))
 #endif
 
+static inline void writel(uint32_t data, void *where)
+{
+	* (volatile uint32_t *)where = data;
+}
+
+static inline uint32_t readl(void *where)
+{
+	return * (volatile uint32_t *)where;
+}
+
 struct ad9516_reg {
 	uint16_t reg;
 	uint8_t val;
diff --git a/rt/dev/uart.c b/rt/dev/uart.c
index 4596c2de093449c1011a71fd49f8a3b5425701c2..28cb00756e33a189eb0e74363f6d8b7daffc4fb4 100644
--- a/rt/dev/uart.c
+++ b/rt/dev/uart.c
@@ -1,8 +1,7 @@
-#include "defs.h"
 #include "board.h"
 #include "uart.h"
 
-#include <hw/wb_uart.h>
+#include <hw/wb_vuart.h>
 
 #define CALC_BAUD(baudrate) \
     ( ((( (unsigned long long)baudrate * 8ULL) << (16 - 7)) + \
@@ -38,4 +37,4 @@ int uart_poll()
 int uart_read_byte()
 {
  	return uart ->RDR & 0xff;
-}
\ No newline at end of file
+}
diff --git a/rt/include/ad9516.h b/rt/include/ad9516.h
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/rt/include/defs.h b/rt/include/defs.h
deleted file mode 100644
index e2727173e3344ff436f7f3d8916e7ace60ce8a99..0000000000000000000000000000000000000000
--- a/rt/include/defs.h
+++ /dev/null
@@ -1,17 +0,0 @@
-#ifndef __DEFS_H
-#define __DEFS_H
-
-#include <stdint.h>
-
-static inline void writel(uint32_t data, void *where)
-{
-	* (volatile uint32_t *)where = data;
-}
-
-static inline uint32_t readl(void *where)
-{
-	return * (volatile uint32_t *)where;
-}
-
-
-#endif
diff --git a/rt/include/hw/wb_uart.h b/rt/include/hw/wb_uart.h
deleted file mode 100644
index 05f06c0c9ab5ab50db9edb5b85ff8658b0c9ac4b..0000000000000000000000000000000000000000
--- a/rt/include/hw/wb_uart.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
-  Register definitions for slave core: Simple Wishbone UART
-
-  * File           : ../../../../software/include/hw/wb_uart.h
-  * Author         : auto-generated by wbgen2 from uart.wb
-  * Created        : Mon Feb 21 22:25:02 2011
-  * Standard       : ANSI C
-
-    THIS FILE WAS GENERATED BY wbgen2 FROM SOURCE FILE uart.wb
-    DO NOT HAND-EDIT UNLESS IT'S ABSOLUTELY NECESSARY!
-
-*/
-
-#ifndef __WBGEN2_REGDEFS_UART_WB
-#define __WBGEN2_REGDEFS_UART_WB
-
-#include <stdint.h>
-
-#if defined( __GNUC__)
-#define PACKED __attribute__ ((packed))
-#else
-#error "Unsupported compiler?"
-#endif
-
-#ifndef __WBGEN2_MACROS_DEFINED__
-#define __WBGEN2_MACROS_DEFINED__
-#define WBGEN2_GEN_MASK(offset, size) (((1<<(size))-1) << (offset))
-#define WBGEN2_GEN_WRITE(value, offset, size) (((value) & ((1<<(size))-1)) << (offset))
-#define WBGEN2_GEN_READ(reg, offset, size) (((reg) >> (offset)) & ((1<<(size))-1))
-#define WBGEN2_SIGN_EXTEND(value, bits) (((value) & (1<<bits) ? ~((1<<(bits))-1): 0 ) | (value))
-#endif
-
-
-/* definitions for register: Status Register */
-
-/* definitions for field: TX busy in reg: Status Register */
-#define UART_SR_TX_BUSY                       WBGEN2_GEN_MASK(0, 1)
-
-/* definitions for field: RX ready in reg: Status Register */
-#define UART_SR_RX_RDY                        WBGEN2_GEN_MASK(1, 1)
-
-/* definitions for register: Baudrate control register */
-
-/* definitions for register: Transmit data regsiter */
-
-/* definitions for field: Transmit data in reg: Transmit data regsiter */
-#define UART_TDR_TX_DATA_MASK                 WBGEN2_GEN_MASK(0, 8)
-#define UART_TDR_TX_DATA_SHIFT                0
-#define UART_TDR_TX_DATA_W(value)             WBGEN2_GEN_WRITE(value, 0, 8)
-#define UART_TDR_TX_DATA_R(reg)               WBGEN2_GEN_READ(reg, 0, 8)
-
-/* definitions for register: Receive data regsiter */
-
-/* definitions for field: Received data in reg: Receive data regsiter */
-#define UART_RDR_RX_DATA_MASK                 WBGEN2_GEN_MASK(0, 8)
-#define UART_RDR_RX_DATA_SHIFT                0
-#define UART_RDR_RX_DATA_W(value)             WBGEN2_GEN_WRITE(value, 0, 8)
-#define UART_RDR_RX_DATA_R(reg)               WBGEN2_GEN_READ(reg, 0, 8)
-/* [0x0]: REG Status Register */
-#define UART_REG_SR 0x00000000
-/* [0x4]: REG Baudrate control register */
-#define UART_REG_BCR 0x00000004
-/* [0x8]: REG Transmit data regsiter */
-#define UART_REG_TDR 0x00000008
-/* [0xc]: REG Receive data regsiter */
-#define UART_REG_RDR 0x0000000c
-
-PACKED struct UART_WB {
-  /* [0x0]: REG Status Register */
-  uint32_t SR;
-  /* [0x4]: REG Baudrate control register */
-  uint32_t BCR;
-  /* [0x8]: REG Transmit data regsiter */
-  uint32_t TDR;
-  /* [0xc]: REG Receive data regsiter */
-  uint32_t RDR;
-};
-
-#endif
diff --git a/rt/include/hw/wb_vuart.h b/rt/include/hw/wb_vuart.h
new file mode 100644
index 0000000000000000000000000000000000000000..930dae5e66bad56fdcec513a80dea82ea7927579
--- /dev/null
+++ b/rt/include/hw/wb_vuart.h
@@ -0,0 +1,96 @@
+/*
+  Register definitions for slave core: Virtual UART
+
+  * File           : wb_vuart.h
+  * Author         : auto-generated by wbgen2 from wb_virtual_uart.wb
+  * Created        : Wed Apr  6 23:02:01 2011
+  * Standard       : ANSI C
+
+    THIS FILE WAS GENERATED BY wbgen2 FROM SOURCE FILE wb_virtual_uart.wb
+    DO NOT HAND-EDIT UNLESS IT'S ABSOLUTELY NECESSARY!
+
+*/
+
+#ifndef __WBGEN2_REGDEFS_WB_VIRTUAL_UART_WB
+#define __WBGEN2_REGDEFS_WB_VIRTUAL_UART_WB
+
+#include <inttypes.h>
+
+#if defined( __GNUC__)
+#define PACKED __attribute__ ((packed))
+#else
+#error "Unsupported compiler?"
+#endif
+
+#ifndef __WBGEN2_MACROS_DEFINED__
+#define __WBGEN2_MACROS_DEFINED__
+#define WBGEN2_GEN_MASK(offset, size) (((1<<(size))-1) << (offset))
+#define WBGEN2_GEN_WRITE(value, offset, size) (((value) & ((1<<(size))-1)) << (offset))
+#define WBGEN2_GEN_READ(reg, offset, size) (((reg) >> (offset)) & ((1<<(size))-1))
+#define WBGEN2_SIGN_EXTEND(value, bits) (((value) & (1<<bits) ? ~((1<<(bits))-1): 0 ) | (value))
+#endif
+
+/* definitions for register: Status Register */
+
+/* definitions for field: TX busy in reg: Status Register */
+#define UART_SR_TX_BUSY                       WBGEN2_GEN_MASK(0, 1)
+
+/* definitions for field: RX ready in reg: Status Register */
+#define UART_SR_RX_RDY                        WBGEN2_GEN_MASK(1, 1)
+
+/* definitions for register: Baudrate control register */
+
+/* definitions for register: Transmit data regsiter */
+
+/* definitions for field: Transmit data in reg: Transmit data regsiter */
+#define UART_TDR_TX_DATA_MASK                 WBGEN2_GEN_MASK(0, 8)
+#define UART_TDR_TX_DATA_SHIFT                0
+#define UART_TDR_TX_DATA_W(value)             WBGEN2_GEN_WRITE(value, 0, 8)
+#define UART_TDR_TX_DATA_R(reg)               WBGEN2_GEN_READ(reg, 0, 8)
+
+/* definitions for register: Receive data regsiter */
+
+/* definitions for field: Received data in reg: Receive data regsiter */
+#define UART_RDR_RX_DATA_MASK                 WBGEN2_GEN_MASK(0, 8)
+#define UART_RDR_RX_DATA_SHIFT                0
+#define UART_RDR_RX_DATA_W(value)             WBGEN2_GEN_WRITE(value, 0, 8)
+#define UART_RDR_RX_DATA_R(reg)               WBGEN2_GEN_READ(reg, 0, 8)
+
+/* definitions for register: FIFO 'UART TX FIFO' data output register 0 */
+
+/* definitions for field: Char sent by UART to TX in reg: FIFO 'UART TX FIFO' data output register 0 */
+#define UART_DEBUG_R0_TX_MASK                 WBGEN2_GEN_MASK(0, 8)
+#define UART_DEBUG_R0_TX_SHIFT                0
+#define UART_DEBUG_R0_TX_W(value)             WBGEN2_GEN_WRITE(value, 0, 8)
+#define UART_DEBUG_R0_TX_R(reg)               WBGEN2_GEN_READ(reg, 0, 8)
+
+/* definitions for register: FIFO 'UART TX FIFO' control/status register */
+
+/* definitions for field: FIFO full flag in reg: FIFO 'UART TX FIFO' control/status register */
+#define UART_DEBUG_CSR_FULL                   WBGEN2_GEN_MASK(16, 1)
+
+/* definitions for field: FIFO empty flag in reg: FIFO 'UART TX FIFO' control/status register */
+#define UART_DEBUG_CSR_EMPTY                  WBGEN2_GEN_MASK(17, 1)
+
+/* definitions for field: FIFO counter in reg: FIFO 'UART TX FIFO' control/status register */
+#define UART_DEBUG_CSR_USEDW_MASK             WBGEN2_GEN_MASK(0, 8)
+#define UART_DEBUG_CSR_USEDW_SHIFT            0
+#define UART_DEBUG_CSR_USEDW_W(value)         WBGEN2_GEN_WRITE(value, 0, 8)
+#define UART_DEBUG_CSR_USEDW_R(reg)           WBGEN2_GEN_READ(reg, 0, 8)
+
+PACKED struct UART_WB {
+	/* [0x0]: REG Status Register */
+	uint32_t SR;
+	/* [0x4]: REG Baudrate control register */
+	uint32_t BCR;
+	/* [0x8]: REG Transmit data regsiter */
+	uint32_t TDR;
+	/* [0xc]: REG Receive data regsiter */
+	uint32_t RDR;
+	/* [0x10]: REG FIFO 'UART TX FIFO' data output register 0 */
+	uint32_t DEBUG_R0;
+	/* [0x14]: REG FIFO 'UART TX FIFO' control/status register */
+	uint32_t DEBUG_CSR;
+};
+
+#endif
diff --git a/rt/include/stdint.h b/rt/include/stdint.h
deleted file mode 100644
index 515622418f27ff9a6c3453b2d8e618d629dd8ac9..0000000000000000000000000000000000000000
--- a/rt/include/stdint.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef __ARCH_LM32_STDINT_H__
-#define __ARCH_LM32_STDINT_H__
-
-/*
- * We miss a stdint.h in our compiler, so provide some types here,
- * knowing the CPU is 32-bits and uses LP32 model
- */
-
-typedef unsigned char	uint8_t;
-typedef unsigned short	uint16_t;
-typedef unsigned long	uint32_t;
-typedef unsigned long	long uint64_t;
-
-typedef signed char	int8_t;
-typedef signed short	int16_t;
-typedef signed long	int32_t;
-typedef signed long	long int64_t;
-
-#endif /* __ARCH_LM32_STDINT_H__ */
diff --git a/rt/include/syscon.h b/rt/include/syscon.h
index 64e4a4fc93d9d9151b0b408e1b2e9224013cf59b..c8bcc12dfcd33974954955534a2f18bfa74ca6b7 100644
--- a/rt/include/syscon.h
+++ b/rt/include/syscon.h
@@ -1,7 +1,7 @@
 #ifndef __SYSCON_H
 #define __SYSCON_H
 
-#include "defs.h"
+#include <stdint.h>
 
 #define TICS_PER_SECOND 100000
 
diff --git a/rt/include/wrc.h b/rt/include/wrc.h
index 4fdc8ba84cf9c6a01d0e2614a936b7d260fae8f4..aee580b3f1392063948a0d5055ffec4f8387b2e1 100644
--- a/rt/include/wrc.h
+++ b/rt/include/wrc.h
@@ -1,7 +1,6 @@
 #ifndef __WRC_H
 #define __WRC_H
 
-#include "defs.h"
 #include "syscon.h"
 
 #define PPS_WIDTH (10 * 1000 * 1000 / 16) /* 10ms */
diff --git a/rt/main.c b/rt/main.c
index 5a6037317bef4c4230619fec30b9949a95ba114c..0291d7b1285a124a2b887c450a9a7a9cd2ec7370 100644
--- a/rt/main.c
+++ b/rt/main.c
@@ -1,4 +1,3 @@
-#include "defs.h"
 #include "uart.h"
 #include "syscon.h"