diff options
Diffstat (limited to 'target/linux/brcm47xx/patches-3.8/025-mtd-bcm47xxpart-look-for-NVRAM-at-the-end-of-device.patch')
-rw-r--r-- | target/linux/brcm47xx/patches-3.8/025-mtd-bcm47xxpart-look-for-NVRAM-at-the-end-of-device.patch | 55 |
1 files changed, 0 insertions, 55 deletions
diff --git a/target/linux/brcm47xx/patches-3.8/025-mtd-bcm47xxpart-look-for-NVRAM-at-the-end-of-device.patch b/target/linux/brcm47xx/patches-3.8/025-mtd-bcm47xxpart-look-for-NVRAM-at-the-end-of-device.patch deleted file mode 100644 index 1f82c922c8..0000000000 --- a/target/linux/brcm47xx/patches-3.8/025-mtd-bcm47xxpart-look-for-NVRAM-at-the-end-of-device.patch +++ /dev/null @@ -1,55 +0,0 @@ ---- a/drivers/mtd/bcm47xxpart.c -+++ b/drivers/mtd/bcm47xxpart.c -@@ -63,6 +63,7 @@ static int bcm47xxpart_parse(struct mtd_ - struct trx_header *trx; - int trx_part = -1; - int last_trx_part = -1; -+ int possible_nvram_sizes[] = { 0x8000, 0xF000, 0x10000, }; - - if (blocksize <= 0x10000) - blocksize = 0x10000; -@@ -99,13 +100,6 @@ static int bcm47xxpart_parse(struct mtd_ - continue; - } - -- /* Standard NVRAM */ -- if (buf[0x000 / 4] == NVRAM_HEADER) { -- bcm47xxpart_add_part(&parts[curr_part++], "nvram", -- offset, 0); -- continue; -- } -- - /* - * board_data starts with board_id which differs across boards, - * but we can use 'MPFR' (hopefully) magic at 0x100 -@@ -174,6 +168,30 @@ static int bcm47xxpart_parse(struct mtd_ - continue; - } - } -+ -+ /* Look for NVRAM at the end of the last block. */ -+ for (i = 0; i < ARRAY_SIZE(possible_nvram_sizes); i++) { -+ if (curr_part > BCM47XXPART_MAX_PARTS) { -+ pr_warn("Reached maximum number of partitions, scanning stopped!\n"); -+ break; -+ } -+ -+ offset = master->size - possible_nvram_sizes[i]; -+ if (mtd_read(master, offset, 0x4, &bytes_read, -+ (uint8_t *)buf) < 0) { -+ pr_err("mtd_read error while reading at offset 0x%X!\n", -+ offset); -+ continue; -+ } -+ -+ /* Standard NVRAM */ -+ if (buf[0] == NVRAM_HEADER) { -+ bcm47xxpart_add_part(&parts[curr_part++], "nvram", -+ master->size - blocksize, 0); -+ break; -+ } -+ } -+ - kfree(buf); - - /* |