Index: kernel/arch/mips32/src/mach/msim/dorder.c
===================================================================
--- kernel/arch/mips32/src/mach/msim/dorder.c	(revision f5dd4a133e7e9ed5518c5ff4156b01af404e89be)
+++ kernel/arch/mips32/src/mach/msim/dorder.c	(revision f27e21ddaafbb7195a9fa323a76c7813b7d6b41b)
@@ -38,4 +38,6 @@
 #include <smp/ipi.h>
 #include <interrupt.h>
+#include <arch/asm.h>
+#include <typedefs.h>
 
 static irq_t dorder_irq;
@@ -45,5 +47,5 @@
 void ipi_broadcast_arch(int ipi)
 {
-	*((volatile uint32_t *) MSIM_DORDER_ADDRESS) = 0x7fffffff;
+	pio_write_32(((ioport32_t *) MSIM_DORDER_ADDRESS), 0x7fffffff);
 }
 
@@ -73,10 +75,10 @@
 uint32_t dorder_cpuid(void)
 {
-	return *((volatile uint32_t *) MSIM_DORDER_ADDRESS);
+	return pio_read_32((ioport32_t *) MSIM_DORDER_ADDRESS);
 }
 
 void dorder_ipi_ack(uint32_t mask)
 {
-	*((volatile uint32_t *) (MSIM_DORDER_ADDRESS + 4)) = mask;
+	pio_write_32((ioport32_t *) (MSIM_DORDER_ADDRESS + 4), mask);
 }
 
