projects
/
openwrt.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[brcm63xx] add support for sysupgrade (#5117)
[openwrt.git]
/
target
/
linux
/
brcm63xx
/
files
/
drivers
/
mtd
/
maps
/
bcm963xx-flash.c
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
6fb0ee1
..
33aafd8
100644
(file)
--- 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)
{
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;
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].size += sparelen;
curpart++;
};
+
parts[curpart].name = "nvram";
parts[curpart].offset = master->size - master->erasesize;
parts[curpart].size = master->erasesize;
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);
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);
@@
-155,14
+162,14
@@
static int bcm963xx_probe(struct platform_device *pdev)
r = platform_get_resource(pdev, IORESOURCE_MEM, 0);
bcm963xx_map.phys = r->start;
r = platform_get_resource(pdev, IORESOURCE_MEM, 0);
bcm963xx_map.phys = r->start;
- bcm963xx_map.size = (r->end - r->start);
+ bcm963xx_map.size = (r->end - r->start)
+ 1
;
bcm963xx_map.virt = ioremap(r->start, r->end - r->start + 1);
if (!bcm963xx_map.virt) {
printk(KERN_ERR PFX "Failed to ioremap\n");
return -EIO;
}
bcm963xx_map.virt = ioremap(r->start, r->end - r->start + 1);
if (!bcm963xx_map.virt) {
printk(KERN_ERR PFX "Failed to ioremap\n");
return -EIO;
}
- printk(KERN_INFO PFX "0x%08x at 0x%08x\n", bcm963xx_map.size, bcm963xx_map.phys);
+ printk(KERN_INFO PFX "0x%08
l
x at 0x%08x\n", bcm963xx_map.size, bcm963xx_map.phys);
simple_map_init(&bcm963xx_map);
simple_map_init(&bcm963xx_map);
This page took
0.021528 seconds
and
4
git commands to generate.