From: Felix Fietkau Date: Thu, 10 May 2007 13:56:54 +0000 (+0000) Subject: brcm47xx: mtd map driver cleanup - reuse generic mtd rootfs split X-Git-Url: http://git.openwrt.org/?p=openwrt%2Fsvn-archive%2Farchive.git;a=commitdiff_plain;h=38093c310d3676f6e00119b8f3559f890254bd6b brcm47xx: mtd map driver cleanup - reuse generic mtd rootfs split SVN-Revision: 7172 --- diff --git a/target/linux/brcm47xx-2.6/config/default b/target/linux/brcm47xx-2.6/config/default index a556d5e488..a92a0aa448 100644 --- a/target/linux/brcm47xx-2.6/config/default +++ b/target/linux/brcm47xx-2.6/config/default @@ -196,7 +196,7 @@ CONFIG_MTD_PARTITIONS=y # CONFIG_MTD_REDBOOT_PARTS is not set # CONFIG_MTD_ROM is not set # CONFIG_MTD_SLRAM is not set -# CONFIG_MTD_SPLIT_ROOTFS is not set +CONFIG_MTD_SPLIT_ROOTFS=y # CONFIG_NATSEMI is not set # CONFIG_NE2K_PCI is not set # CONFIG_NETFILTER_XT_MATCH_COMMENT is not set diff --git a/target/linux/brcm47xx-2.6/files/drivers/mtd/maps/bcm47xx-flash.c b/target/linux/brcm47xx-2.6/files/drivers/mtd/maps/bcm47xx-flash.c index 774d4ad659..e01654ca0b 100644 --- a/target/linux/brcm47xx-2.6/files/drivers/mtd/maps/bcm47xx-flash.c +++ b/target/linux/brcm47xx-2.6/files/drivers/mtd/maps/bcm47xx-flash.c @@ -46,8 +46,6 @@ #ifdef CONFIG_MTD_PARTITIONS #include #endif -#include -#include #include #ifdef CONFIG_SSB #include @@ -95,7 +93,6 @@ static struct mtd_partition bcm947xx_parts[] = { { name: "linux", offset: 0, size: 0, }, { name: "rootfs", offset: 0, size: 0, }, { name: "nvram", offset: 0, size: 0, }, - { name: "rootfs_data", offset: 0, size: 0, }, { name: NULL, }, }; @@ -259,24 +256,8 @@ find_root(struct mtd_info *mtd, size_t size, struct mtd_partition *part) if (mtd->read(mtd, part->offset, sizeof(buf), &len, buf) || len != sizeof(buf)) return 0; - if (*((__u32 *) buf) == SQUASHFS_MAGIC) { - printk(KERN_INFO "%s: Filesystem type: squashfs, size=0x%x\n", mtd->name, (u32) sb->bytes_used); - - /* Update the squashfs partition size based on the superblock info */ - part->size = sb->bytes_used; - len = part->offset + part->size; - len += (mtd->erasesize - 1); - len &= ~(mtd->erasesize - 1); - part->size = len - part->offset; - } else if (*((__u16 *) buf) == JFFS2_MAGIC_BITMASK) { - printk(KERN_INFO "%s: Filesystem type: jffs2\n", mtd->name); - - /* Move the squashfs outside of the trx */ - part->size = 0; - } else { - printk(KERN_INFO "%s: Filesystem type: unknown\n", mtd->name); - return 0; - } + /* Move the fs outside of the trx */ + part->size = 0; if (trx.len != part->offset + part->size - off) { /* Update the trx offsets and length */ @@ -355,32 +336,8 @@ init_mtd_partitions(struct mtd_info *mtd, size_t size) /* find and size rootfs */ if (find_root(mtd,size,&bcm947xx_parts[2])==0) { - /* entirely jffs2 */ - bcm947xx_parts[4].name = NULL; bcm947xx_parts[2].size = size - bcm947xx_parts[2].offset - bcm947xx_parts[3].size; - } else { - /* legacy setup */ - /* calculate leftover flash, and assign it to the jffs2 partition */ - if (cfe_size != 384 * 1024) { - bcm947xx_parts[4].offset = bcm947xx_parts[2].offset + - bcm947xx_parts[2].size; - if ((bcm947xx_parts[4].offset % mtd->erasesize) > 0) { - bcm947xx_parts[4].offset += mtd->erasesize - - (bcm947xx_parts[4].offset % mtd->erasesize); - } - bcm947xx_parts[4].size = bcm947xx_parts[3].offset - - bcm947xx_parts[4].offset; - } else { - bcm947xx_parts[4].offset = bcm947xx_parts[2].offset + - bcm947xx_parts[2].size; - if ((bcm947xx_parts[4].offset % mtd->erasesize) > 0) { - bcm947xx_parts[4].offset += mtd->erasesize - - (bcm947xx_parts[4].offset % mtd->erasesize); - } - bcm947xx_parts[4].size = size - bcm947xx_parts[3].size - - bcm947xx_parts[4].offset; - } } return bcm947xx_parts;