diff options
author | Florian Fainelli <florian@openwrt.org> | 2009-05-17 16:53:57 +0000 |
---|---|---|
committer | Florian Fainelli <florian@openwrt.org> | 2009-05-17 16:53:57 +0000 |
commit | 0d7f5f8d2cccfbfb50efafafc5e523a075ca0b3b (patch) | |
tree | 819aae89d4a9ff9829f8951350b74cef99e2e168 /target/linux/brcm63xx | |
parent | ee48f5ae782227f66cb7f2c03edc1568bf8dafa1 (diff) | |
download | upstream-0d7f5f8d2cccfbfb50efafafc5e523a075ca0b3b.tar.gz upstream-0d7f5f8d2cccfbfb50efafafc5e523a075ca0b3b.tar.bz2 upstream-0d7f5f8d2cccfbfb50efafafc5e523a075ca0b3b.zip |
add support for sysupgrade (#5117)
SVN-Revision: 15900
Diffstat (limited to 'target/linux/brcm63xx')
-rw-r--r-- | target/linux/brcm63xx/base-files/lib/upgrade/platform.sh | 16 | ||||
-rw-r--r-- | target/linux/brcm63xx/files/drivers/mtd/maps/bcm963xx-flash.c | 9 |
2 files changed, 24 insertions, 1 deletions
diff --git a/target/linux/brcm63xx/base-files/lib/upgrade/platform.sh b/target/linux/brcm63xx/base-files/lib/upgrade/platform.sh new file mode 100644 index 0000000000..1a025f7d73 --- /dev/null +++ b/target/linux/brcm63xx/base-files/lib/upgrade/platform.sh @@ -0,0 +1,16 @@ +PART_NAME=linux +platform_check_image() { + [ "$ARGC" -gt 1 ] && return 1 + case "$(get_magic_word "$1")" in + 3600) + # 6348GW-11 boards use openwrt-96348GW-11-squashfs-cfe.bin files + return 0 + ;; + *) + echo "Invalid image type. Please use only .bin files" + return 1 + ;; + esac +} + +# use default for platform_do_upgrade() 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 d17baf2b05..33aafd8507 100644 --- a/target/linux/brcm63xx/files/drivers/mtd/maps/bcm963xx-flash.c +++ b/target/linux/brcm63xx/files/drivers/mtd/maps/bcm963xx-flash.c @@ -45,7 +45,7 @@ static struct map_info bcm963xx_map = { static int parse_cfe_partitions( struct mtd_info *master, struct mtd_partition **pparts) { - int nrparts = 2, curpart = 0; /* CFE and NVRAM are always present. */ + int nrparts = 3, curpart = 0; /* CFE,NVRAM and global LINUX are always present. */ struct bcm_tag *buf; struct mtd_partition *parts; int ret; @@ -118,9 +118,16 @@ static int parse_cfe_partitions( struct mtd_info *master, struct mtd_partition * parts[curpart].size += sparelen; curpart++; }; + parts[curpart].name = "nvram"; parts[curpart].offset = master->size - master->erasesize; parts[curpart].size = master->erasesize; + + /* Global partition "linux" to make easy firmware upgrade */ + curpart++; + parts[curpart].name = "linux"; + parts[curpart].offset = parts[0].size; + parts[curpart].size = master->size - parts[0].size - parts[3].size; for (i = 0; i < nrparts; i++) printk(KERN_INFO PFX "Partition %d is %s offset %x and length %x\n", i, parts[i].name, parts[i].offset, parts[i].size); |