X-Git-Url: http://git.rohieb.name/openwrt.git/blobdiff_plain/33ffd60e664552e17b6f883303f8b3dff8abe8f9..1d55b67ff96d3a1a9bb786ec78250134d4ab5c81:/target/linux/brcm63xx/files/drivers/mtd/maps/bcm963xx-flash.c?ds=inline diff --git a/target/linux/brcm63xx/files/drivers/mtd/maps/bcm963xx-flash.c b/target/linux/brcm63xx/files/drivers/mtd/maps/bcm963xx-flash.c index 7d01a9e8f..9543c172a 100644 --- a/target/linux/brcm63xx/files/drivers/mtd/maps/bcm963xx-flash.c +++ b/target/linux/brcm63xx/files/drivers/mtd/maps/bcm963xx-flash.c @@ -128,10 +128,6 @@ int parse_cfe_partitions( struct mtd_info *master, struct mtd_partition **pparts nrparts++; namelen =+ 6; }; - if (sparelen > 0){ - nrparts++; - namelen =+ 6; - }; // Ask kernel for more memory. parts = kmalloc(sizeof(*parts)*nrparts+10*nrparts, GFP_KERNEL); if (!parts){ @@ -145,24 +141,20 @@ int parse_cfe_partitions( struct mtd_info *master, struct mtd_partition **pparts parts[curpart].size = master->erasesize; curpart++; if (kernellen > 0){ - parts[curpart].name = "Kernel"; + parts[curpart].name = "kernel"; parts[curpart].offset = kerneladdr; parts[curpart].size = kernellen; curpart++; }; if (rootfslen > 0){ - parts[curpart].name = "Rootfs"; + parts[curpart].name = "rootfs"; parts[curpart].offset = rootfsaddr; parts[curpart].size = rootfslen; + if (sparelen > 0) + parts[curpart].size += sparelen; curpart++; }; - if (sparelen > 0){ - parts[curpart].name = "OpenWrt"; - parts[curpart].offset = spareaddr; - parts[curpart].size = sparelen; - curpart++; - }; - parts[curpart].name = "NVRAM"; + parts[curpart].name = "nvram"; parts[curpart].offset = master->size - master->erasesize; parts[curpart].size = master->erasesize; for (i = 0; i < nrparts; i++) { @@ -185,13 +177,14 @@ static int bcm963xx_detect_cfe(struct mtd_info *master) { int idoffset = 0x4e0; static char idstring[8] = "CFE1CFE1"; - char buf[8]; + char buf[9]; int ret; size_t retlen; ret = master->read(master, idoffset, 8, &retlen, (void *)buf); + buf[retlen] = 0; printk("bcm963xx: Read Signature value of %s\n", buf); - return strcmp(idstring,buf); + return strncmp(idstring,buf,8); } static int __init bcm963xx_mtd_init(void)