/* Magics */
 #define BOARD_DATA_MAGIC               0x5246504D      /* MPFR */
+#define BOARD_DATA_MAGIC2              0xBD0D0BBD
 #define CFE_MAGIC                      0x43464531      /* 1EFC */
 #define FACTORY_MAGIC                  0x59544346      /* FCTY */
 #define POT_MAGIC1                     0x54544f50      /* POTT */
                                             offset, 0);
                        continue;
                }
+
+               /* Read middle of the block */
+               if (mtd_read(master, offset + 0x8000, 0x4,
+                            &bytes_read, (uint8_t *)buf) < 0) {
+                       pr_err("mtd_read error while parsing (offset: 0x%X)!\n",
+                              offset);
+                       continue;
+               }
+
+               /* Some devices (ex. WNDR3700v3) don't have a standard 'MPFR' */
+               if (buf[0x000 / 4] == BOARD_DATA_MAGIC2) {
+                       bcm47xxpart_add_part(&parts[curr_part++], "board_data",
+                                            offset, MTD_WRITEABLE);
+                       continue;
+               }
        }
 
        /* Look for NVRAM at the end of the last block. */