diff --git a/flashrom.c b/flashrom.c
index f722029..0a3e4fe 100644
--- a/flashrom.c
+++ b/flashrom.c
@@ -22,9 +22,11 @@
  */
 
 #include <stdio.h>
-#include <fcntl.h>
 #include <sys/types.h>
+#ifndef __LIBPAYLOAD__
+#include <fcntl.h>
 #include <sys/stat.h>
+#endif
 #include <string.h>
 #include <stdlib.h>
 #include <getopt.h>
diff --git a/hwaccess.c b/hwaccess.c
index 3a61e60..bbb91a6 100644
--- a/hwaccess.c
+++ b/hwaccess.c
@@ -22,9 +22,11 @@
 #include <string.h>
 #include <stdlib.h>
 #include <sys/types.h>
-#if !defined (__DJGPP__)
+#if !defined (__DJGPP__) && !defined(__LIBPAYLOAD__)
 #include <unistd.h>
 #include <fcntl.h>
+#endif
+#if !defined (__DJGPP__)
 #include <errno.h>
 #endif
 #include "flash.h"
@@ -44,7 +46,7 @@
 
 void get_io_perms(void)
 {
-#if defined(__DJGPP__)
+#if defined(__DJGPP__) || defined(__LIBPAYLOAD__)
 	/* We have full permissions by default. */
 	return;
 #else
diff --git a/hwaccess.h b/hwaccess.h
index 2d17326..45629d2 100644
--- a/hwaccess.h
+++ b/hwaccess.h
@@ -292,7 +292,7 @@
   #endif
 #endif
 
-#if !defined(__DARWIN__) && !defined(__FreeBSD__) && !defined(__DragonFly__)
+#if !defined(__DARWIN__) && !defined(__FreeBSD__) && !defined(__DragonFly__) && !defined(__LIBPAYLOAD__)
 typedef struct { uint32_t hi, lo; } msr_t;
 msr_t rdmsr(int addr);
 int wrmsr(int addr, msr_t msr);
@@ -307,6 +307,16 @@
 msr_t freebsd_rdmsr(int addr);
 int freebsd_wrmsr(int addr, msr_t msr);
 #endif
+#if defined(__LIBPAYLOAD__)
+#include <arch/io.h>
+#include <arch/msr.h>
+typedef struct { uint32_t hi, lo; } msr_t;
+msr_t libpayload_rdmsr(int addr);
+int libpayload_wrmsr(int addr, msr_t msr);
+#undef rdmsr
+#define rdmsr libpayload_rdmsr
+#define wrmsr libpayload_wrmsr
+#endif
 
 #elif defined(__powerpc__) || defined(__powerpc64__) || defined(__ppc__) || defined(__ppc64__)
 
diff --git a/layout.c b/layout.c
index d65e370..c01e09c 100644
--- a/layout.c
+++ b/layout.c
@@ -134,6 +134,7 @@
 }
 #endif
 
+#ifndef __LIBPAYLOAD__
 int read_romlayout(char *name)
 {
 	FILE *romlayout;
@@ -181,6 +182,7 @@
 
 	return 0;
 }
+#endif
 
 int find_romentry(char *name)
 {
diff --git a/physmap.c b/physmap.c
index 7ac8ae0..011c8d1 100644
--- a/physmap.c
+++ b/physmap.c
@@ -28,7 +28,7 @@
 #include "flash.h"
 
 /* Do we need any file access or ioctl for physmap or MSR? */
-#if !defined(__DJGPP__)
+#if !defined(__DJGPP__) && !defined(__LIBPAYLOAD__)
 #include <sys/stat.h>
 #include <fcntl.h>
 #include <errno.h>
@@ -104,6 +104,31 @@
 	__dpmi_free_physical_address_mapping(&mi);
 }
 
+#elif defined(__LIBPAYLOAD__)
+#include <arch/virtual.h>
+
+#define MEM_DEV ""
+
+void *sys_physmap(unsigned long phys_addr, size_t len)
+{
+	return (void*)phys_to_virt(phys_addr);
+}
+
+#define sys_physmap_rw_uncached	sys_physmap
+#define sys_physmap_ro_cached	sys_physmap
+
+void physunmap(void *virt_addr, size_t len)
+{
+}
+
+int setup_cpu_msr(int cpu)
+{
+	return 0;
+}
+
+void cleanup_cpu_msr(void)
+{
+}
 #elif defined(__DARWIN__)
 
 #include <DirectIO/darwinio.h>
@@ -453,6 +478,20 @@
 {
 	// Nothing, yet.
 }
+#elif defined(__LIBPAYLOAD__)
+msr_t libpayload_rdmsr(int addr)
+{
+	msr_t msr;
+	unsigned long long val = _rdmsr(addr);
+	msr.lo = val & 0xffffffff;
+	msr.hi = val >> 32;
+	return msr;
+}
+
+int libpayload_wrmsr(int addr, msr_t msr)
+{
+	_wrmsr(addr, msr.lo | ((unsigned long long)msr.hi << 32));
+}
 #else
 msr_t rdmsr(int addr)
 {
diff --git a/udelay.c b/udelay.c
index 981b1bb..153f510 100644
--- a/udelay.c
+++ b/udelay.c
@@ -19,6 +19,8 @@
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
  */
 
+#ifndef __LIBPAYLOAD__
+
 #include <unistd.h>
 #include <sys/time.h>
 #include <stdlib.h>
@@ -179,3 +181,15 @@
 	}
 }
 
+#else 
+
+void myusec_calibrate_delay(void)
+{
+	get_cpu_speed();
+}
+
+void internal_delay(int usecs)
+{
+	udelay(usecs);
+}
+#endif
