aboutsummaryrefslogtreecommitdiffstats
path: root/target
diff options
context:
space:
mode:
authorFlorian Fainelli <florian@openwrt.org>2010-07-17 17:20:29 +0000
committerFlorian Fainelli <florian@openwrt.org>2010-07-17 17:20:29 +0000
commit3184a71056e6e89efada6ca8ab538eadb23da00b (patch)
tree9b7ef65248ac7c3842d2a281a55c25f46e46e5c0 /target
parent5571c233e9818ab27a9248a9a172d0ec4704e43f (diff)
downloadupstream-3184a71056e6e89efada6ca8ab538eadb23da00b.tar.gz
upstream-3184a71056e6e89efada6ca8ab538eadb23da00b.tar.bz2
upstream-3184a71056e6e89efada6ca8ab538eadb23da00b.zip
fix bifferboard flash map, thanks bifferos (#7622)
SVN-Revision: 22258
Diffstat (limited to 'target')
-rw-r--r--target/linux/rdc/patches-2.6.32/100-rdc_boards.patch44
1 files changed, 16 insertions, 28 deletions
diff --git a/target/linux/rdc/patches-2.6.32/100-rdc_boards.patch b/target/linux/rdc/patches-2.6.32/100-rdc_boards.patch
index dded04e8d5..66ebcfe3f6 100644
--- a/target/linux/rdc/patches-2.6.32/100-rdc_boards.patch
+++ b/target/linux/rdc/patches-2.6.32/100-rdc_boards.patch
@@ -384,7 +384,7 @@
+arch_initcall(ar525w_setup);
--- /dev/null
+++ b/arch/x86/mach-rdc321x/boards/bifferboard.c
-@@ -0,0 +1,81 @@
+@@ -0,0 +1,69 @@
+/*
+ * Bifferboard RDC321x platform devices
+ *
@@ -421,38 +421,26 @@
+ u32 kernel_len;
+ u16 tmp;
+
-+ if (master->size == 0x100000)
-+ kernel_len = master->size - 0x10000;
-+ else {
-+ res = master->read(master, 0x4000 + 1036, 2, &len, (char *) &tmp);
-+ if (res)
-+ return res;
-+ kernel_len = tmp * master->erasesize;
-+ }
++ res = master->read(master, 0x4000 + 1036, 2, &len, (char *) &tmp);
++ if (res)
++ return res;
++ kernel_len = tmp * master->erasesize;
+
-+ rdc_flash_parts = kzalloc(sizeof(struct mtd_partition) * 4, GFP_KERNEL);
++ rdc_flash_parts = kzalloc(sizeof(struct mtd_partition) * 3, GFP_KERNEL);
+
+ *pparts = rdc_flash_parts;
+
-+ rdc_flash_parts[0].name = "biffboot";
-+ rdc_flash_parts[0].offset = master->size - 0x10000;
-+ rdc_flash_parts[0].size = 0x10000;
-+ rdc_flash_parts[0].mask_flags = MTD_WRITEABLE;
-+ rdc_flash_parts[1].name = "firmware";
-+ rdc_flash_parts[1].offset = 0;
-+ rdc_flash_parts[1].size = rdc_flash_parts[0].offset;
-+ rdc_flash_parts[2].name = "kernel";
-+ rdc_flash_parts[2].offset = 0x00000000;
-+ rdc_flash_parts[2].size = kernel_len;
-+
-+ if (master->size == 0x100000)
-+ return 2;
-+
-+ rdc_flash_parts[3].name = "rootfs";
-+ rdc_flash_parts[3].offset = MTDPART_OFS_APPEND;
-+ rdc_flash_parts[3].size = rdc_flash_parts[1].size - rdc_flash_parts[2].size;
++ rdc_flash_parts[0].name = "kernel";
++ rdc_flash_parts[0].offset = 0;
++ rdc_flash_parts[0].size = kernel_len;
++ rdc_flash_parts[1].name = "rootfs";
++ rdc_flash_parts[1].offset = kernel_len;
++ rdc_flash_parts[1].size = master->size - kernel_len - 0x10000;
++ rdc_flash_parts[2].name = "biffboot";
++ rdc_flash_parts[2].offset = master->size - 0x10000;
++ rdc_flash_parts[2].size = 0x10000;
+
-+ return 4;
++ return 3;
+}
+
+struct mtd_part_parser __initdata bifferboard_parser = {