Index: kernel/arch/arm32/src/mach/beaglebone/beaglebone.c
===================================================================
--- kernel/arch/arm32/src/mach/beaglebone/beaglebone.c	(revision 6f0722642b2289c39da615fa8e39388c47319a17)
+++ kernel/arch/arm32/src/mach/beaglebone/beaglebone.c	(revision b7e41ac3862ec4904ebbd7804c921ef6d84d8a5b)
@@ -44,4 +44,7 @@
 #include <mm/km.h>
 
+#define BBONE_MEMORY_START       0x80000000      /* physical */
+#define BBONE_MEMORY_SIZE        0x10000000      /* 256 MB */
+
 static void bbone_init(void);
 static void bbone_timer_irq_start(void);
@@ -81,4 +84,7 @@
 
 	am335x_irc_init(bbone.irc_addr);
+
+	/* Initialize the DMTIMER0 */
+	am335x_timer_init(&bbone.timer, DMTIMER0, HZ);
 }
 
@@ -127,8 +133,21 @@
 static void bbone_get_memory_extents(uintptr_t *start, size_t *size)
 {
+	*start = BBONE_MEMORY_START;
+	*size  = BBONE_MEMORY_SIZE;
 }
 
 static void bbone_irq_exception(unsigned int exc_no, istate_t *istate)
 {
+	const unsigned inum = am335x_irc_inum_get(bbone.irc_addr);
+	am335x_irc_irq_ack(bbone.irc_addr);
+
+	irq_t *irq = irq_dispatch_and_lock(inum);
+	if (irq) {
+		/* The IRQ handler was found. */
+		irq->handler(irq);
+		spinlock_unlock(&irq->lock);
+	} else {
+		printf("Spurious interrupt\n");
+	}
 }
 
@@ -143,6 +162,8 @@
 	    AM335x_UART0_SIZE);
 
-	if (ok)
+	if (ok) {
 		stdout_wire(&bbone.uart.outdev);
+		printf("UART Ok\n");
+	}
 }
 
