diff --git a/Makefile b/Makefile
index 805290c..0cd4e75 100644
--- a/Makefile
+++ b/Makefile
@@ -140,6 +140,9 @@
 EXEC_SUFFIX := .exe
 # MinGW doesn't have the ffs() function, but we can use gcc's __builtin_ffs().
 FLASHROM_CFLAGS += -Dffs=__builtin_ffs
+# Some functions provided by Microsoft do not work as described in C99 specifications. This macro fixes that
+# for MinGW. See http://sourceforge.net/apps/trac/mingw-w64/wiki/printf%20and%20scanf%20family */
+FLASHROM_CFLAGS += -D__USE_MINGW_ANSI_STDIO=1
 # libusb-win32/libftdi stuff is usually installed in /usr/local.
 CPPFLAGS += -I/usr/local/include
 LDFLAGS += -L/usr/local/lib
@@ -218,6 +221,7 @@
 else
 override CONFIG_DUMMY = no
 endif
+# Bus Pirate, Serprog and PonyProg are not supported with libpayload (missing serial support).
 ifeq ($(CONFIG_BUSPIRATE_SPI), yes)
 UNSUPPORTED_FEATURES += CONFIG_BUSPIRATE_SPI=yes
 else
@@ -228,6 +232,11 @@
 else
 override CONFIG_SERPROG = no
 endif
+ifeq ($(CONFIG_PONY_SPI), yes)
+UNSUPPORTED_FEATURES += CONFIG_PONY_SPI=yes
+else
+override CONFIG_PONY_SPI = no
+endif
 # Dediprog and FT2232 are not supported with libpayload (missing libusb support)
 ifeq ($(CONFIG_DEDIPROG), yes)
 UNSUPPORTED_FEATURES += CONFIG_DEDIPROG=yes
@@ -632,7 +641,7 @@
 endif
 
 $(PROGRAM)$(EXEC_SUFFIX): $(OBJS)
-	$(CC) $(LDFLAGS) -o $(PROGRAM)$(EXEC_SUFFIX) $(OBJS) $(FEATURE_LIBS) $(LIBS) $(PCILIBS) $(USBLIBS)
+	$(CC) $(LDFLAGS) -o $(PROGRAM)$(EXEC_SUFFIX) $(OBJS) $(LIBS) $(PCILIBS) $(FEATURE_LIBS) $(USBLIBS)
 
 libflashrom.a: $(LIBFLASHROM_OBJS)
 	$(AR) rcs $@ $^
diff --git a/flash.h b/flash.h
index 7e50ae5..ba93245 100644
--- a/flash.h
+++ b/flash.h
@@ -25,6 +25,7 @@
 #define __FLASH_H__ 1
 
 #include <inttypes.h>
+#include <stdio.h>
 #include <stdint.h>
 #include <stddef.h>
 #include <stdbool.h>
@@ -286,7 +287,12 @@
 	MSG_SPEW	= 5,
 };
 /* Let gcc and clang check for correct printf-style format strings. */
-int print(enum msglevel level, const char *fmt, ...) __attribute__((format(printf, 2, 3)));
+int print(enum msglevel level, const char *fmt, ...)
+#ifdef __MINGW32__
+__attribute__((format(gnu_printf, 2, 3)));
+#else
+__attribute__((format(printf, 2, 3)));
+#endif
 #define msg_gerr(...)	print(MSG_ERROR, __VA_ARGS__)	/* general errors */
 #define msg_perr(...)	print(MSG_ERROR, __VA_ARGS__)	/* programmer errors */
 #define msg_cerr(...)	print(MSG_ERROR, __VA_ARGS__)	/* chip errors */
diff --git a/flashrom.c b/flashrom.c
index 6ab72a0..c298748 100644
--- a/flashrom.c
+++ b/flashrom.c
@@ -1168,7 +1168,7 @@
 		return 1;
 	}
 	if (image_stat.st_size != size) {
-		msg_gerr("Error: Image size (%jd B) doesn't match the flash chip's size (%ld B)!\n",
+		msg_gerr("Error: Image size (%jd B) doesn't match the flash chip's size (%lu B)!\n",
 			 (intmax_t)image_stat.st_size, size);
 		fclose(image);
 		return 1;
diff --git a/hwaccess.c b/hwaccess.c
index 8a4a50a..5b18c32 100644
--- a/hwaccess.c
+++ b/hwaccess.c
@@ -35,14 +35,13 @@
 #include <stdint.h>
 #include <string.h>
 #include <stdlib.h>
+#include <errno.h>
 #include <sys/types.h>
 #if !defined (__DJGPP__) && !defined(__LIBPAYLOAD__)
+/* No file access needed/possible to get hardware access permissions. */
 #include <unistd.h>
 #include <fcntl.h>
 #endif
-#if !defined (__DJGPP__)
-#include <errno.h>
-#endif
 #include "flash.h"
 #include "hwaccess.h"
 
diff --git a/internal.c b/internal.c
index 5af74cd..ab3c81f 100644
--- a/internal.c
+++ b/internal.c
@@ -172,8 +172,10 @@
 	int not_a_laptop = 0;
 	const char *board_vendor = NULL;
 	const char *board_model = NULL;
+#if defined (__i386__) || defined (__x86_64__) || defined (__arm__)
 	const char *cb_vendor = NULL;
 	const char *cb_model = NULL;
+#endif
 	char *arg;
 
 	arg = extract_programmer_param("boardenable");
@@ -254,7 +256,7 @@
 		return 1;
 	}
 
-#if defined(__i386__) || defined(__x86_64__)
+#if defined(__i386__) || defined(__x86_64__) || defined (__arm__)
 	if ((cb_parse_table(&cb_vendor, &cb_model) == 0) && (board_vendor != NULL) && (board_model != NULL)) {
 		if (strcasecmp(board_vendor, cb_vendor) || strcasecmp(board_model, cb_model)) {
 			msg_pwarn("Warning: The mainboard IDs set by -p internal:mainboard (%s:%s) do not\n"
@@ -265,7 +267,9 @@
 			msg_pinfo("Continuing anyway.\n");
 		}
 	}
+#endif
 
+#if defined(__i386__) || defined(__x86_64__)
 	dmi_init();
 
 	/* In case Super I/O probing would cause pretty explosions. */
diff --git a/physmap.c b/physmap.c
index 3c3f27b..6e3d646 100644
--- a/physmap.c
+++ b/physmap.c
@@ -24,14 +24,14 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
+#include <errno.h>
 #include "flash.h"
 #include "hwaccess.h"
 
-/* Do we need any file access or ioctl for physmap or MSR? */
 #if !defined(__DJGPP__) && !defined(__LIBPAYLOAD__)
+/* No file access needed/possible to get mmap access permissions or access MSR. */
 #include <sys/stat.h>
 #include <fcntl.h>
-#include <errno.h>
 #endif
 
 #ifdef __DJGPP__
@@ -120,15 +120,6 @@
 void physunmap(void *virt_addr, size_t len)
 {
 }
-
-int setup_cpu_msr(int cpu)
-{
-	return 0;
-}
-
-void cleanup_cpu_msr(void)
-{
-}
 #elif defined(__MACH__) && defined(__APPLE__)
 
 #define MEM_DEV "DirectHW"
@@ -569,6 +560,15 @@
 	_wrmsr(addr, msr.lo | ((unsigned long long)msr.hi << 32));
 	return 0;
 }
+
+int setup_cpu_msr(int cpu)
+{
+	return 0;
+}
+
+void cleanup_cpu_msr(void)
+{
+}
 #else
 /* default MSR implementation */
 msr_t rdmsr(int addr)
