Index: kernel/genarch/src/drivers/am335x/timer.c
===================================================================
--- kernel/genarch/src/drivers/am335x/timer.c	(revision b1834a01038fc2eeb50637bb5cb48a741a03b9fb)
+++ kernel/genarch/src/drivers/am335x/timer.c	(revision a3c6a858cfa093197f83dfc3dbb82eb7f88d445b)
@@ -101,5 +101,6 @@
 	size = regs_map[id].size;
 
-	timer->regs = (void *) km_map(base_addr, size, PAGE_NOT_CACHEABLE);
+	timer->regs = (void *) km_map(base_addr, size, KM_NATURAL_ALIGNMENT,
+	    PAGE_NOT_CACHEABLE);
 	assert(timer->regs != NULL);
 
Index: kernel/genarch/src/drivers/bcm2835/mbox.c
===================================================================
--- kernel/genarch/src/drivers/bcm2835/mbox.c	(revision b1834a01038fc2eeb50637bb5cb48a741a03b9fb)
+++ kernel/genarch/src/drivers/bcm2835/mbox.c	(revision a3c6a858cfa093197f83dfc3dbb82eb7f88d445b)
@@ -93,5 +93,5 @@
 
 	fb_mbox = (void *) km_map(BCM2835_MBOX0_ADDR, sizeof(bcm2835_mbox_t),
-	    PAGE_NOT_CACHEABLE);
+	    KM_NATURAL_ALIGNMENT, PAGE_NOT_CACHEABLE);
 
 	fb_desc->width = 640;
Index: kernel/genarch/src/drivers/ega/ega.c
===================================================================
--- kernel/genarch/src/drivers/ega/ega.c	(revision b1834a01038fc2eeb50637bb5cb48a741a03b9fb)
+++ kernel/genarch/src/drivers/ega/ega.c	(revision a3c6a858cfa093197f83dfc3dbb82eb7f88d445b)
@@ -601,5 +601,5 @@
 	instance->base = base;
 	instance->addr = (uint8_t *) km_map(addr, EGA_VRAM_SIZE,
-	    PAGE_WRITE | PAGE_NOT_CACHEABLE);
+	    KM_NATURAL_ALIGNMENT, PAGE_WRITE | PAGE_NOT_CACHEABLE);
 	if (!instance->addr) {
 		LOG("Unable to EGA video memory.");
Index: kernel/genarch/src/drivers/omap/uart.c
===================================================================
--- kernel/genarch/src/drivers/omap/uart.c	(revision b1834a01038fc2eeb50637bb5cb48a741a03b9fb)
+++ kernel/genarch/src/drivers/omap/uart.c	(revision a3c6a858cfa093197f83dfc3dbb82eb7f88d445b)
@@ -88,5 +88,6 @@
 {
 	assert(uart);
-	uart->regs = (void *)km_map(addr, size, PAGE_NOT_CACHEABLE);
+	uart->regs = (void *)km_map(addr, size, KM_NATURAL_ALIGNMENT,
+	    PAGE_NOT_CACHEABLE);
 
 	assert(uart->regs);
Index: kernel/genarch/src/drivers/pl011/pl011.c
===================================================================
--- kernel/genarch/src/drivers/pl011/pl011.c	(revision b1834a01038fc2eeb50637bb5cb48a741a03b9fb)
+++ kernel/genarch/src/drivers/pl011/pl011.c	(revision a3c6a858cfa093197f83dfc3dbb82eb7f88d445b)
@@ -100,5 +100,5 @@
 	assert(uart);
 	uart->regs = (void *)km_map(addr, sizeof(pl011_uart_regs_t),
-	    PAGE_NOT_CACHEABLE);
+	    KM_NATURAL_ALIGNMENT, PAGE_NOT_CACHEABLE);
 	assert(uart->regs);
 
Index: kernel/genarch/src/drivers/s3c24xx/uart.c
===================================================================
--- kernel/genarch/src/drivers/s3c24xx/uart.c	(revision b1834a01038fc2eeb50637bb5cb48a741a03b9fb)
+++ kernel/genarch/src/drivers/s3c24xx/uart.c	(revision a3c6a858cfa093197f83dfc3dbb82eb7f88d445b)
@@ -116,5 +116,5 @@
 	uart_dev->data = uart;
 
-	uart->io = (s3c24xx_uart_io_t *) km_map(paddr, PAGE_SIZE,
+	uart->io = (s3c24xx_uart_io_t *) km_map(paddr, PAGE_SIZE, PAGE_SIZE,
 	    PAGE_WRITE | PAGE_NOT_CACHEABLE);
 	uart->indev = NULL;
