summaryrefslogtreecommitdiffstats
path: root/target/linux/brcm63xx/patches-3.7/103-MTD-bcm63xxpart-make-fixed-part-length-calculation-m.patch
diff options
context:
space:
mode:
authorjogo <jogo@3c298f89-4303-0410-b956-a3cf2f4a3e73>2013-02-04 10:19:50 +0000
committerjogo <jogo@3c298f89-4303-0410-b956-a3cf2f4a3e73>2013-02-04 10:19:50 +0000
commit404cd71e7c4cb3b69a53db4876c0b2cbf27c3036 (patch)
tree2a0a6f9f6e49e2f6fc676b151fff168991ff6ffe /target/linux/brcm63xx/patches-3.7/103-MTD-bcm63xxpart-make-fixed-part-length-calculation-m.patch
parenta8fbf328d42ff0348a4741697ce20bacc50b1116 (diff)
bcm63xx: add support for linux 3.7
Based on 3.7.6. Signed-off-by: Jonas Gorski <jogo@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35481 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux/brcm63xx/patches-3.7/103-MTD-bcm63xxpart-make-fixed-part-length-calculation-m.patch')
-rw-r--r--target/linux/brcm63xx/patches-3.7/103-MTD-bcm63xxpart-make-fixed-part-length-calculation-m.patch49
1 files changed, 49 insertions, 0 deletions
diff --git a/target/linux/brcm63xx/patches-3.7/103-MTD-bcm63xxpart-make-fixed-part-length-calculation-m.patch b/target/linux/brcm63xx/patches-3.7/103-MTD-bcm63xxpart-make-fixed-part-length-calculation-m.patch
new file mode 100644
index 000000000..ca0cddde9
--- /dev/null
+++ b/target/linux/brcm63xx/patches-3.7/103-MTD-bcm63xxpart-make-fixed-part-length-calculation-m.patch
@@ -0,0 +1,49 @@
+From 465f1b3ff24dbf3bec43dce344a7bc2640e05ffc Mon Sep 17 00:00:00 2001
+From: Jonas Gorski <jonas.gorski@gmail.com>
+Date: Tue, 8 May 2012 09:53:07 +0200
+Subject: [PATCH 22/79] MTD: bcm63xxpart: make fixed part length calculation
+ more generic
+
+The CFE does not use 4K sectors even if the flash supports it, so
+for the fixed partitions like CFE itself or NVRAM the erase block
+size is always 64k or bigger.
+
+Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
+---
+ drivers/mtd/bcm63xxpart.c | 11 +++++++----
+ 1 file changed, 7 insertions(+), 4 deletions(-)
+
+--- a/drivers/mtd/bcm63xxpart.c
++++ b/drivers/mtd/bcm63xxpart.c
+@@ -37,8 +37,7 @@
+
+ #define BCM63XX_EXTENDED_SIZE 0xBFC00000 /* Extended flash address */
+
+-#define BCM63XX_MIN_CFE_SIZE 0x10000 /* always at least 64KiB */
+-#define BCM63XX_MIN_NVRAM_SIZE 0x10000 /* always at least 64KiB */
++#define BCM63XX_CFE_BLOCK_SIZE 0x10000 /* always at least 64KiB */
+
+ #define BCM63XX_CFE_MAGIC_OFFSET 0x4e0
+
+@@ -79,6 +78,7 @@ static int bcm63xx_parse_cfe_partitions(
+ unsigned int rootfsaddr, kerneladdr, spareaddr;
+ unsigned int rootfslen, kernellen, sparelen, totallen;
+ unsigned int cfelen, nvramlen;
++ unsigned int cfe_erasesize;
+ int i;
+ u32 computed_crc;
+ bool rootfs_first = false;
+@@ -86,8 +86,11 @@ static int bcm63xx_parse_cfe_partitions(
+ if (bcm63xx_detect_cfe(master))
+ return -EINVAL;
+
+- cfelen = max_t(uint32_t, master->erasesize, BCM63XX_MIN_CFE_SIZE);
+- nvramlen = max_t(uint32_t, master->erasesize, BCM63XX_MIN_NVRAM_SIZE);
++ cfe_erasesize = max_t(uint32_t, master->erasesize,
++ BCM63XX_CFE_BLOCK_SIZE);
++
++ cfelen = cfe_erasesize;
++ nvramlen = cfe_erasesize;
+
+ /* Allocate memory for buffer */
+ buf = vmalloc(sizeof(struct bcm_tag));