mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-24 15:56:49 +00:00
bcm47xx: make WGT634U NVRAM patch apply again
Fixes:1c48eee5b2
("kernel: backport Broadcom NVRAM driver cleanups") Signed-off-by: Rafał Miłecki <rafal@milecki.pl> (cherry picked from commit9530b9bb78
)
This commit is contained in:
parent
20fe0e66f3
commit
761df5c4cf
@ -250,28 +250,18 @@ out the configuration than the in kernel cfe config reader.
|
|||||||
+static int cfe_env;
|
+static int cfe_env;
|
||||||
+extern char *cfe_env_get(char *nv_buf, const char *name);
|
+extern char *cfe_env_get(char *nv_buf, const char *name);
|
||||||
|
|
||||||
static u32 find_nvram_size(void __iomem *end)
|
/**
|
||||||
{
|
* bcm47xx_nvram_is_valid - check for a valid NVRAM at specified memory
|
||||||
@@ -52,7 +54,9 @@ static u32 find_nvram_size(void __iomem
|
@@ -80,6 +82,26 @@ static int bcm47xx_nvram_find_and_copy(v
|
||||||
static int nvram_find_and_copy(void __iomem *iobase, u32 lim)
|
|
||||||
{
|
|
||||||
struct nvram_header __iomem *header;
|
|
||||||
+ int i;
|
|
||||||
u32 off;
|
|
||||||
+ u32 *src, *dst;
|
|
||||||
u32 size;
|
|
||||||
|
|
||||||
if (nvram_len) {
|
|
||||||
@@ -60,6 +64,26 @@ static int nvram_find_and_copy(void __io
|
|
||||||
return -EEXIST;
|
return -EEXIST;
|
||||||
}
|
}
|
||||||
|
|
||||||
+ cfe_env = 0;
|
+ cfe_env = 0;
|
||||||
+
|
+
|
||||||
+ /* XXX: hack for supporting the CFE environment stuff on WGT634U */
|
+ /* XXX: hack for supporting the CFE environment stuff on WGT634U */
|
||||||
+ if (lim >= 8 * 1024 * 1024) {
|
+ if (res_size >= 8 * 1024 * 1024) {
|
||||||
+ src = (u32 *)(iobase + 8 * 1024 * 1024 - 0x2000);
|
+ u32 *src = (u32 *)(flash_start + 8 * 1024 * 1024 - 0x2000);
|
||||||
+ dst = (u32 *)nvram_buf;
|
+ u32 *dst = (u32 *)nvram_buf;
|
||||||
+
|
+
|
||||||
+ if ((*src & 0xff00ff) == 0x000001) {
|
+ if ((*src & 0xff00ff) == 0x000001) {
|
||||||
+ printk("early_nvram_init: WGT634U NVRAM found.\n");
|
+ printk("early_nvram_init: WGT634U NVRAM found.\n");
|
||||||
@ -287,9 +277,9 @@ out the configuration than the in kernel cfe config reader.
|
|||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
/* TODO: when nvram is on nand flash check for bad blocks first. */
|
/* TODO: when nvram is on nand flash check for bad blocks first. */
|
||||||
off = FLASH_MIN;
|
|
||||||
while (off <= lim) {
|
/* Try every possible flash size and check for NVRAM at its end */
|
||||||
@@ -170,6 +194,13 @@ int bcm47xx_nvram_getenv(const char *nam
|
@@ -172,6 +194,13 @@ int bcm47xx_nvram_getenv(const char *nam
|
||||||
if (!name)
|
if (!name)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user