diff --git a/src/southbridge/intel/common/spi.c b/src/southbridge/intel/common/spi.c
index 1d274e8..75e9b21 100644
--- a/src/southbridge/intel/common/spi.c
+++ b/src/southbridge/intel/common/spi.c
@@ -157,8 +157,8 @@
 {
 	u8 v = read8(addr);
 
-	printk(BIOS_DEBUG, "read %2.2x from %4.4x\n",
-	       v, ((unsigned int)addr & 0xffff) - 0xf020);
+	printk(BIOS_DEBUG, "read %2.2x from %4.4lx\n",
+	       v, ((uintptr_t)addr & 0xffff) - 0xf020);
 	return v;
 }
 
@@ -166,8 +166,8 @@
 {
 	u16 v = read16(addr);
 
-	printk(BIOS_DEBUG, "read %4.4x from %4.4x\n",
-	       v, ((unsigned int)addr & 0xffff) - 0xf020);
+	printk(BIOS_DEBUG, "read %4.4x from %4.4lx\n",
+	       v, ((uintptr_t)addr & 0xffff) - 0xf020);
 	return v;
 }
 
@@ -175,30 +175,30 @@
 {
 	u32 v = read32(addr);
 
-	printk(BIOS_DEBUG, "read %8.8x from %4.4x\n",
-	       v, ((unsigned int)addr & 0xffff) - 0xf020);
+	printk(BIOS_DEBUG, "read %8.8x from %4.4lx\n",
+	       v, ((uintptr_t)addr & 0xffff) - 0xf020);
 	return v;
 }
 
 static void writeb_(u8 b, void *addr)
 {
 	write8(addr, b);
-	printk(BIOS_DEBUG, "wrote %2.2x to %4.4x\n",
-	       b, ((unsigned int)addr & 0xffff) - 0xf020);
+	printk(BIOS_DEBUG, "wrote %2.2x to %4.4lx\n",
+	       b, ((uintptr_t)addr & 0xffff) - 0xf020);
 }
 
 static void writew_(u16 b, void *addr)
 {
 	write16(addr, b);
-	printk(BIOS_DEBUG, "wrote %4.4x to %4.4x\n",
-	       b, ((unsigned int)addr & 0xffff) - 0xf020);
+	printk(BIOS_DEBUG, "wrote %4.4x to %4.4lx\n",
+	       b, ((uintptr_t)addr & 0xffff) - 0xf020);
 }
 
 static void writel_(u32 b, void *addr)
 {
 	write32(addr, b);
-	printk(BIOS_DEBUG, "wrote %8.8x to %4.4x\n",
-	       b, ((unsigned int)addr & 0xffff) - 0xf020);
+	printk(BIOS_DEBUG, "wrote %8.8x to %4.4lx\n",
+	       b, ((uintptr_t)addr & 0xffff) - 0xf020);
 }
 
 #else /* CONFIG_DEBUG_SPI_FLASH ^^^ enabled  vvv NOT enabled */
