diff options
| -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 000000000..1a025f7d7 --- /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 d17baf2b0..33aafd850 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); | 
