mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-26 00:41:17 +00:00
e7bfda2c24
This change makes the names of Broadcom targets consistent by using the common notation based on SoC/CPU ID (which is used internally anyway), bcmXXXX instead of brcmXXXX. This is even used for target TITLE in make menuconfig already, only the short target name used brcm so far. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
66 lines
1.9 KiB
Diff
66 lines
1.9 KiB
Diff
From a4d005c91d403d9f3d0272db6cc46202c06ec774 Mon Sep 17 00:00:00 2001
|
|
From: Axel Gembe <ago@bastart.eu.org>
|
|
Date: Mon, 12 May 2008 18:54:09 +0200
|
|
Subject: [PATCH] bcm963xx: flashmap support
|
|
|
|
Signed-off-by: Axel Gembe <ago@bastart.eu.org>
|
|
---
|
|
arch/mips/bcm63xx/boards/board_bcm963xx.c | 19 +----------------
|
|
drivers/mtd/maps/bcm963xx-flash.c | 32 ++++++++++++++++++++++++----
|
|
drivers/mtd/redboot.c | 13 +++++++++--
|
|
3 files changed, 38 insertions(+), 26 deletions(-)
|
|
|
|
--- a/arch/mips/bcm63xx/dev-flash.c
|
|
+++ b/arch/mips/bcm63xx/dev-flash.c
|
|
@@ -35,7 +35,7 @@ static struct mtd_partition mtd_partitio
|
|
}
|
|
};
|
|
|
|
-static const char *bcm63xx_part_types[] = { "bcm63xxpart", NULL };
|
|
+static const char *bcm63xx_part_types[] = { "bcm63xxpart", "RedBoot", NULL };
|
|
|
|
static struct physmap_flash_data flash_data = {
|
|
.width = 2,
|
|
--- a/drivers/mtd/redboot.c
|
|
+++ b/drivers/mtd/redboot.c
|
|
@@ -72,6 +72,7 @@ static int parse_redboot_partitions(stru
|
|
int nulllen = 0;
|
|
int numslots;
|
|
unsigned long offset;
|
|
+ unsigned long fis_origin = 0;
|
|
#ifdef CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED
|
|
static char nullstring[] = "unallocated";
|
|
#endif
|
|
@@ -176,6 +177,16 @@ static int parse_redboot_partitions(stru
|
|
goto out;
|
|
}
|
|
|
|
+ if (data && data->origin) {
|
|
+ fis_origin = data->origin;
|
|
+ } else {
|
|
+ for (i = 0; i < numslots; i++) {
|
|
+ if (!strncmp(buf[i].name, "RedBoot", 8)) {
|
|
+ fis_origin = (buf[i].flash_base & (master->size << 1) - 1);
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
for (i = 0; i < numslots; i++) {
|
|
struct fis_list *new_fl, **prev;
|
|
|
|
@@ -196,10 +207,10 @@ static int parse_redboot_partitions(stru
|
|
goto out;
|
|
}
|
|
new_fl->img = &buf[i];
|
|
- if (data && data->origin)
|
|
- buf[i].flash_base -= data->origin;
|
|
- else
|
|
- buf[i].flash_base &= master->size-1;
|
|
+ if (fis_origin)
|
|
+ buf[i].flash_base -= fis_origin;
|
|
+
|
|
+ buf[i].flash_base &= (master->size << 1) - 1;
|
|
|
|
/* I'm sure the JFFS2 code has done me permanent damage.
|
|
* I now think the following is _normal_
|