diff --git a/target/linux/brcm47xx-2.6/files/drivers/mtd/maps/bcm47xx-flash.c b/target/linux/brcm47xx-2.6/files/drivers/mtd/maps/bcm47xx-flash.c
index 50fff896f171a6981fa077bfd5594dc584b901f8..bc8d887377c93820213c5fcfad7e8fd338d6acea 100644
--- a/target/linux/brcm47xx-2.6/files/drivers/mtd/maps/bcm47xx-flash.c
+++ b/target/linux/brcm47xx-2.6/files/drivers/mtd/maps/bcm47xx-flash.c
@@ -49,7 +49,9 @@
 #include <linux/squashfs_fs.h>
 #include <linux/jffs2.h>
 #include <linux/crc32.h>
+#ifdef CONFIG_SSB
 #include <linux/ssb/ssb.h>
+#endif
 #include <asm/io.h>
 
 
@@ -74,7 +76,9 @@ struct trx_header {
 #define WINDOW_SIZE 0x400000
 #define BUSWIDTH 2
 
+#ifdef CONFIG_SSB
 extern struct ssb_bus ssb;
+#endif
 static struct mtd_info *bcm947xx_mtd;
 
 static struct map_info bcm947xx_map = {
@@ -385,13 +389,17 @@ init_mtd_partitions(struct mtd_info *mtd, size_t size)
 
 int __init init_bcm947xx_map(void)
 {
+#ifdef CONFIG_SSB
 	struct ssb_mipscore *mcore = &ssb.mipscore;
+#endif
 	size_t size;
 	int ret = 0;
 #ifdef CONFIG_MTD_PARTITIONS
 	struct mtd_partition *parts;
 	int i;
 #endif
+
+#ifdef CONFIG_SSB
 	u32 window = mcore->flash_window;
 	u32 window_size = mcore->flash_window_size;
 
@@ -399,6 +407,10 @@ int __init init_bcm947xx_map(void)
 	bcm947xx_map.phys = window;
 	bcm947xx_map.size = window_size;
 	bcm947xx_map.virt = ioremap_nocache(window, window_size);
+#else
+	printk("flash init: 0x%08x 0x%08x\n", WINDOW_ADDR, WINDOW_SIZE);
+	bcm947xx_map.virt = ioremap_nocache(WINDOW_ADDR, WINDOW_SIZE);
+#endif
 
 	if (!bcm947xx_map.virt) {
 		printk("Failed to ioremap\n");