diff options
5 files changed, 57 insertions, 61 deletions
diff --git a/target/linux/bcm53xx/files/drivers/misc/bcm47xx-nvram.c b/target/linux/bcm53xx/files/drivers/misc/bcm47xx-nvram.c index 6ea715c2cd..55374799c0 100644 --- a/target/linux/bcm53xx/files/drivers/misc/bcm47xx-nvram.c +++ b/target/linux/bcm53xx/files/drivers/misc/bcm47xx-nvram.c @@ -21,6 +21,19 @@ #include <linux/io.h> #include <linux/bcm47xx_nvram.h> +#define NVRAM_HEADER 0x48534C46 /* 'FLSH' */ +#define NVRAM_SPACE 0x8000 + +#define FLASH_MIN 0x00020000 /* Minimum flash size */ + +struct nvram_header { + u32 magic; + u32 len; + u32 crc_ver_init; /* 0:7 crc, 8:15 ver, 16:31 sdram_init */ + u32 config_refresh; /* 0:15 sdram_config, 16:31 sdram_refresh */ + u32 config_ncdl; /* ncdl values for memc */ +}; + struct bcm47xx_nvram { size_t nvram_len; char *nvram_buf; diff --git a/target/linux/bcm53xx/files/drivers/misc/bcm47xx-sprom.c b/target/linux/bcm53xx/files/drivers/misc/bcm47xx-sprom.c index 3221b12c29..4e56208b8a 100644 --- a/target/linux/bcm53xx/files/drivers/misc/bcm47xx-sprom.c +++ b/target/linux/bcm53xx/files/drivers/misc/bcm47xx-sprom.c @@ -141,6 +141,20 @@ static void nvram_read_leddc(const struct bcm47xx_sprom_fill *fill, *leddc_off_time = (val >> 16) & 0xff; } +static void bcm47xx_nvram_parse_macaddr(char *buf, u8 macaddr[6]) +{ + if (strchr(buf, ':')) + sscanf(buf, "%hhx:%hhx:%hhx:%hhx:%hhx:%hhx", &macaddr[0], + &macaddr[1], &macaddr[2], &macaddr[3], &macaddr[4], + &macaddr[5]); + else if (strchr(buf, '-')) + sscanf(buf, "%hhx-%hhx-%hhx-%hhx-%hhx-%hhx", &macaddr[0], + &macaddr[1], &macaddr[2], &macaddr[3], &macaddr[4], + &macaddr[5]); + else + pr_warn("Can not parse mac address: %s\n", buf); +} + static void nvram_read_macaddr(const struct bcm47xx_sprom_fill *fill, const char *name, u8 val[6]) { diff --git a/target/linux/bcm53xx/files/include/linux/bcm47xx_nvram.h b/target/linux/bcm53xx/files/include/linux/bcm47xx_nvram.h index 333d32c3f9..82890be7c4 100644 --- a/target/linux/bcm53xx/files/include/linux/bcm47xx_nvram.h +++ b/target/linux/bcm53xx/files/include/linux/bcm47xx_nvram.h @@ -15,24 +15,6 @@ #include <linux/types.h> #include <linux/kernel.h> -struct nvram_header { - u32 magic; - u32 len; - u32 crc_ver_init; /* 0:7 crc, 8:15 ver, 16:31 sdram_init */ - u32 config_refresh; /* 0:15 sdram_config, 16:31 sdram_refresh */ - u32 config_ncdl; /* ncdl values for memc */ -}; - -#define NVRAM_HEADER 0x48534C46 /* 'FLSH' */ -#define NVRAM_VERSION 1 -#define NVRAM_HEADER_SIZE 20 -#define NVRAM_SPACE 0x8000 - -#define FLASH_MIN 0x00020000 /* Minimum flash size */ - -#define NVRAM_MAX_VALUE_LEN 255 -#define NVRAM_MAX_PARAM_LEN 64 - #ifdef CONFIG_BCM47XX int bcm47xx_nvram_getenv(const char *name, char *val, size_t val_len); @@ -49,18 +31,4 @@ static inline int bcm47xx_nvram_gpio_pin(const char *name) return -ENXIO; } #endif - -static inline void bcm47xx_nvram_parse_macaddr(char *buf, u8 macaddr[6]) -{ - if (strchr(buf, ':')) - sscanf(buf, "%hhx:%hhx:%hhx:%hhx:%hhx:%hhx", &macaddr[0], - &macaddr[1], &macaddr[2], &macaddr[3], &macaddr[4], - &macaddr[5]); - else if (strchr(buf, '-')) - sscanf(buf, "%hhx-%hhx-%hhx-%hhx-%hhx-%hhx", &macaddr[0], - &macaddr[1], &macaddr[2], &macaddr[3], &macaddr[4], - &macaddr[5]); - else - pr_warn("Can not parse mac address: %s\n", buf); -} #endif /* __BCM47XX_NVRAM_H */ diff --git a/target/linux/bcm53xx/patches-3.14/111-bcm47xx-nvram-add-new-nvram-driver-with-dt-support.patch b/target/linux/bcm53xx/patches-3.14/111-bcm47xx-nvram-add-new-nvram-driver-with-dt-support.patch index 5e70fa1034..35cbc7329f 100644 --- a/target/linux/bcm53xx/patches-3.14/111-bcm47xx-nvram-add-new-nvram-driver-with-dt-support.patch +++ b/target/linux/bcm53xx/patches-3.14/111-bcm47xx-nvram-add-new-nvram-driver-with-dt-support.patch @@ -304,30 +304,19 @@ Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> --- a/include/linux/bcm47xx_nvram.h +++ b/include/linux/bcm47xx_nvram.h -@@ -15,9 +15,11 @@ +@@ -15,18 +15,23 @@ #include <linux/types.h> #include <linux/kernel.h> -+struct device; -+ - struct nvram_header { - u32 magic; -- u32 len; -+ __le32 len; - u32 crc_ver_init; /* 0:7 crc, 8:15 ver, 16:31 sdram_init */ - u32 config_refresh; /* 0:15 sdram_config, 16:31 sdram_refresh */ - u32 config_ncdl; /* ncdl values for memc */ -@@ -33,18 +35,21 @@ struct nvram_header { - #define NVRAM_MAX_VALUE_LEN 255 - #define NVRAM_MAX_PARAM_LEN 64 - -#ifdef CONFIG_BCM47XX -int bcm47xx_nvram_getenv(const char *name, char *val, size_t val_len); ++struct device; + +-int bcm47xx_nvram_gpio_pin(const char *name); +#if defined(CONFIG_BCM47XX) || defined(CONFIG_BCM47XX_NVRAM) +int bcm47xx_nvram_getenv(const struct device *dev, const char *name, char *val, + size_t val_len); - --int bcm47xx_nvram_gpio_pin(const char *name); ++ +int bcm47xx_nvram_gpio_pin(const struct device *dev, const char *name); #else -static inline int bcm47xx_nvram_getenv(const char *name, char *val, @@ -344,3 +333,14 @@ Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> { return -ENXIO; } +--- a/drivers/misc/bcm47xx-nvram.c ++++ b/drivers/misc/bcm47xx-nvram.c +@@ -28,7 +28,7 @@ + + struct nvram_header { + u32 magic; +- u32 len; ++ __le32 len; + u32 crc_ver_init; /* 0:7 crc, 8:15 ver, 16:31 sdram_init */ + u32 config_refresh; /* 0:15 sdram_config, 16:31 sdram_refresh */ + u32 config_ncdl; /* ncdl values for memc */ diff --git a/target/linux/bcm53xx/patches-3.18/111-bcm47xx-nvram-add-new-nvram-driver-with-dt-support.patch b/target/linux/bcm53xx/patches-3.18/111-bcm47xx-nvram-add-new-nvram-driver-with-dt-support.patch index 38925cf346..410ea26a32 100644 --- a/target/linux/bcm53xx/patches-3.18/111-bcm47xx-nvram-add-new-nvram-driver-with-dt-support.patch +++ b/target/linux/bcm53xx/patches-3.18/111-bcm47xx-nvram-add-new-nvram-driver-with-dt-support.patch @@ -328,22 +328,12 @@ Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> --- a/include/linux/bcm47xx_nvram.h +++ b/include/linux/bcm47xx_nvram.h -@@ -15,9 +15,11 @@ +@@ -14,19 +14,24 @@ + #include <linux/types.h> #include <linux/kernel.h> - ++ +struct device; -+ - struct nvram_header { - u32 magic; -- u32 len; -+ __le32 len; - u32 crc_ver_init; /* 0:7 crc, 8:15 ver, 16:31 sdram_init */ - u32 config_refresh; /* 0:15 sdram_config, 16:31 sdram_refresh */ - u32 config_ncdl; /* ncdl values for memc */ -@@ -33,18 +35,21 @@ struct nvram_header { - #define NVRAM_MAX_VALUE_LEN 255 - #define NVRAM_MAX_PARAM_LEN 64 -#ifdef CONFIG_BCM47XX -int bcm47xx_nvram_getenv(const char *name, char *val, size_t val_len); @@ -368,3 +358,14 @@ Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> { return -ENXIO; } +--- a/drivers/misc/bcm47xx-nvram.c ++++ b/drivers/misc/bcm47xx-nvram.c +@@ -28,7 +28,7 @@ + + struct nvram_header { + u32 magic; +- u32 len; ++ __le32 len; + u32 crc_ver_init; /* 0:7 crc, 8:15 ver, 16:31 sdram_init */ + u32 config_refresh; /* 0:15 sdram_config, 16:31 sdram_refresh */ + u32 config_ncdl; /* ncdl values for memc */ |