diff --git a/Makefile b/Makefile
index a0c195b..86f91d4 100644
--- a/Makefile
+++ b/Makefile
@@ -18,6 +18,10 @@
 ifneq ($(OS_ARCH), SunOS)
 STRIP_ARGS = -s
 endif
+ifeq ($(OS_ARCH), Darwin)
+CFLAGS += -I/usr/local/include
+LDFLAGS += -framework IOKit -framework DirectIO -L/usr/local/lib
+endif
 ifeq ($(OS_ARCH), FreeBSD)
 CFLAGS += -I/usr/local/include
 LDFLAGS += -L/usr/local/lib
diff --git a/cbtable.c b/cbtable.c
index 284140a..2a3f2a7 100644
--- a/cbtable.c
+++ b/cbtable.c
@@ -184,11 +184,20 @@
 int coreboot_init(void)
 {
 	uint8_t *low_1MB;
-	unsigned long addr;
+	unsigned long addr, start;
 	struct lb_header *lb_table;
 	struct lb_record *rec, *last;
 
-	low_1MB = physmap("low megabyte", 0x0, 1024*1024);
+#ifdef __DARWIN__
+	/* This is a hack. DirectIO fails to map physical address 0x00000000.
+	 * Why?
+	 */
+	start = 0x400;
+#else
+	start = 0x0;
+#endif
+	low_1MB = physmap("low megabyte", start, 1024*1024);
+
 	lb_table = find_lb_table(low_1MB, 0x00000, 0x1000);
 	if (!lb_table)
 		lb_table = find_lb_table(low_1MB, 0xf0000, 1024*1024);
@@ -197,8 +206,8 @@
 		return -1;
 	}
 
-	addr = ((char *)lb_table) - ((char *)low_1MB);
-	printf_debug("coreboot table found at %p.\n", lb_table);
+	addr = ((char *)lb_table) - ((char *)low_1MB) + start;
+	printf_debug("coreboot table found at %p.\n", lb_table + start);
 	rec = (struct lb_record *)(((char *)lb_table) + lb_table->header_bytes);
 	last = (struct lb_record *)(((char *)rec) + lb_table->table_bytes);
 	printf_debug("coreboot header(%d) checksum: %04x table(%d) checksum: %04x entries: %d\n",
diff --git a/flash.h b/flash.h
index bad3110..8b85538 100644
--- a/flash.h
+++ b/flash.h
@@ -30,6 +30,10 @@
 #include <stdint.h>
 #include <stdio.h>
 
+#if (defined(__MACH__) && defined(__APPLE__))
+#define __DARWIN__
+#endif
+
 #if defined(__FreeBSD__)
   #include <machine/cpufunc.h>
   #define off64_t off_t
@@ -41,6 +45,11 @@
   #define INW(x) __extension__ ({ u_int tmp = (x); inw(tmp); })
   #define INL(x) __extension__ ({ u_int tmp = (x); inl(tmp); })
 #else
+#if defined(__DARWIN__)
+    #include <DirectIO/darwinio.h>
+    #define off64_t off_t
+    #define lseek64 lseek
+#endif
   #define OUTB outb
   #define OUTW outw
   #define OUTL outl
diff --git a/physmap.c b/physmap.c
index 65d2569..92e4dcc 100644
--- a/physmap.c
+++ b/physmap.c
@@ -1,4 +1,3 @@
-#include <sys/mman.h>
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <fcntl.h>
@@ -6,6 +5,24 @@
 #include <errno.h>
 #include "flash.h"
 
+#ifdef __DARWIN__
+#include <DirectIO/darwinio.h>
+
+#define MEM_DEV "DirectIO"
+
+void *sys_physmap(unsigned long phys_addr, size_t len)
+{
+	return map_physical(phys_addr, len);
+}
+
+void physunmap(void *virt_addr, size_t len)
+{
+	unmap_physical(virt_addr, len);
+}
+
+#else
+#include <sys/mman.h>
+
 #if defined (__sun) && (defined(__i386) || defined(__amd64))
 #  define MEM_DEV "/dev/xsvc"
 #else
@@ -34,6 +51,7 @@
 {
 	munmap(virt_addr, len);
 }
+#endif
 
 void *physmap(const char *descr, unsigned long phys_addr, size_t len)
 {
