fix bifferboard flash map, thanks bifferos (#7622)
authorFlorian Fainelli <florian@openwrt.org>
Sat, 17 Jul 2010 17:20:29 +0000 (17:20 +0000)
committerFlorian Fainelli <florian@openwrt.org>
Sat, 17 Jul 2010 17:20:29 +0000 (17:20 +0000)
SVN-Revision: 22258

target/linux/rdc/patches-2.6.32/100-rdc_boards.patch

index dded04e8d5ceaf38063df1570d3e0af1995f413a..66ebcfe3f64568481953606c66c9a3acd11d76ae 100644 (file)
 +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
 + *
 +      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 = {