diff options
Diffstat (limited to 'target/linux/generic/patches-3.14/049-mtd-bcm47xxpart-find-NVRAM-partitions-in-middle-bloc.patch')
-rw-r--r-- | target/linux/generic/patches-3.14/049-mtd-bcm47xxpart-find-NVRAM-partitions-in-middle-bloc.patch | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/target/linux/generic/patches-3.14/049-mtd-bcm47xxpart-find-NVRAM-partitions-in-middle-bloc.patch b/target/linux/generic/patches-3.14/049-mtd-bcm47xxpart-find-NVRAM-partitions-in-middle-bloc.patch new file mode 100644 index 0000000..48f8d36 --- /dev/null +++ b/target/linux/generic/patches-3.14/049-mtd-bcm47xxpart-find-NVRAM-partitions-in-middle-bloc.patch @@ -0,0 +1,19 @@ +--- a/drivers/mtd/bcm47xxpart.c ++++ b/drivers/mtd/bcm47xxpart.c +@@ -199,6 +199,16 @@ static int bcm47xxpart_parse(struct mtd_ + continue; + } + ++ /* New (ARM?) devices may have NVRAM in some middle block. Last ++ * block will be checked later, so skip it. ++ */ ++ if (offset != master->size - blocksize && ++ buf[0x000 / 4] == NVRAM_HEADER) { ++ bcm47xxpart_add_part(&parts[curr_part++], "nvram", ++ offset, 0); ++ continue; ++ } ++ + /* Read middle of the block */ + if (mtd_read(master, offset + 0x8000, 0x4, + &bytes_read, (uint8_t *)buf) < 0) { |