diff --git a/dummyflasher.c b/dummyflasher.c
index ba54206..7e671b8 100644
--- a/dummyflasher.c
+++ b/dummyflasher.c
@@ -31,6 +31,7 @@
 int dummy_init(void)
 {
 	printf_debug("%s\n", __func__);
+	flashbus = BUS_TYPE_DUMMY_SPI;
 	return 0; 
 }
 
@@ -86,3 +87,23 @@
 	return 0xffffffff;
 }
 
+int dummy_spi_command(unsigned int writecnt, unsigned int readcnt,
+		      const unsigned char *writearr, unsigned char *readarr)
+{
+	int i;
+
+	printf_debug("%s:", __func__);
+
+	printf_debug(" writing %u bytes:", writecnt);
+	for (i = 0; i < writecnt; i++)
+		printf_debug(" 0x%02x", writearr[i]);
+
+	printf_debug(" reading %u bytes:", readcnt);
+	for (i = 0; i < readcnt; i++) {
+		printf_debug(" 0xff");
+		readarr[i] = 0xff;
+	}
+
+	printf_debug("\n");
+	return 0;
+}
diff --git a/flash.h b/flash.h
index bf52a56..0514739 100644
--- a/flash.h
+++ b/flash.h
@@ -571,7 +571,8 @@
 	BUS_TYPE_IT87XX_SPI,
 	BUS_TYPE_SB600_SPI,
 	BUS_TYPE_VIA_SPI,
-	BUS_TYPE_WBSIO_SPI
+	BUS_TYPE_WBSIO_SPI,
+	BUS_TYPE_DUMMY_SPI
 } flashbus_t;
 
 extern flashbus_t flashbus;
@@ -602,6 +603,8 @@
 uint8_t dummy_chip_readb(const volatile void *addr);
 uint16_t dummy_chip_readw(const volatile void *addr);
 uint32_t dummy_chip_readl(const volatile void *addr);
+int dummy_spi_command(unsigned int writecnt, unsigned int readcnt,
+		      const unsigned char *writearr, unsigned char *readarr);
 
 /* nic3com.c */
 int nic3com_init(void);
diff --git a/spi.c b/spi.c
index 6d1185e..2f2842c 100644
--- a/spi.c
+++ b/spi.c
@@ -46,6 +46,8 @@
 		return sb600_spi_command(writecnt, readcnt, writearr, readarr);
 	case BUS_TYPE_WBSIO_SPI:
 		return wbsio_spi_command(writecnt, readcnt, writearr, readarr);
+	case BUS_TYPE_DUMMY_SPI:
+		return dummy_spi_command(writecnt, readcnt, writearr, readarr);
 	default:
 		printf_debug
 		    ("%s called, but no SPI chipset/strapping detected\n",
@@ -58,12 +60,15 @@
 {
 	const unsigned char cmd[JEDEC_RDID_OUTSIZE] = { JEDEC_RDID };
 	int ret;
+	int i;
 
 	ret = spi_command(sizeof(cmd), bytes, cmd, readarr);
 	if (ret)
 		return ret;
-	printf_debug("RDID returned %02x %02x %02x.\n", readarr[0], readarr[1],
-		     readarr[2]);
+	printf_debug("RDID returned");
+	for (i = 0; i < bytes; i++)
+		printf_debug(" 0x%02x", readarr[i]);
+	printf_debug("\n");
 	return 0;
 }
 
@@ -202,6 +207,7 @@
 	case BUS_TYPE_VIA_SPI:
 	case BUS_TYPE_SB600_SPI:
 	case BUS_TYPE_WBSIO_SPI:
+	case BUS_TYPE_DUMMY_SPI:
 		return probe_spi_rdid_generic(flash, 4);
 	default:
 		printf_debug("4b ID not supported on this SPI controller\n");
