diff options
Diffstat (limited to 'arch/mips/include/asm/mach-bcm47xx/bcm47xx_nvram.h')
-rw-r--r-- | arch/mips/include/asm/mach-bcm47xx/bcm47xx_nvram.h | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/arch/mips/include/asm/mach-bcm47xx/bcm47xx_nvram.h b/arch/mips/include/asm/mach-bcm47xx/bcm47xx_nvram.h new file mode 100644 index 000000000000..b8e7be8f34dd --- /dev/null +++ b/arch/mips/include/asm/mach-bcm47xx/bcm47xx_nvram.h | |||
@@ -0,0 +1,51 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2005, Broadcom Corporation | ||
3 | * Copyright (C) 2006, Felix Fietkau <nbd@openwrt.org> | ||
4 | * | ||
5 | * This program is free software; you can redistribute it and/or modify it | ||
6 | * under the terms of the GNU General Public License as published by the | ||
7 | * Free Software Foundation; either version 2 of the License, or (at your | ||
8 | * option) any later version. | ||
9 | */ | ||
10 | |||
11 | #ifndef __BCM47XX_NVRAM_H | ||
12 | #define __BCM47XX_NVRAM_H | ||
13 | |||
14 | #include <linux/types.h> | ||
15 | #include <linux/kernel.h> | ||
16 | |||
17 | struct nvram_header { | ||
18 | u32 magic; | ||
19 | u32 len; | ||
20 | u32 crc_ver_init; /* 0:7 crc, 8:15 ver, 16:31 sdram_init */ | ||
21 | u32 config_refresh; /* 0:15 sdram_config, 16:31 sdram_refresh */ | ||
22 | u32 config_ncdl; /* ncdl values for memc */ | ||
23 | }; | ||
24 | |||
25 | #define NVRAM_HEADER 0x48534C46 /* 'FLSH' */ | ||
26 | #define NVRAM_VERSION 1 | ||
27 | #define NVRAM_HEADER_SIZE 20 | ||
28 | #define NVRAM_SPACE 0x8000 | ||
29 | |||
30 | #define FLASH_MIN 0x00020000 /* Minimum flash size */ | ||
31 | |||
32 | #define NVRAM_MAX_VALUE_LEN 255 | ||
33 | #define NVRAM_MAX_PARAM_LEN 64 | ||
34 | |||
35 | extern int bcm47xx_nvram_getenv(char *name, char *val, size_t val_len); | ||
36 | |||
37 | static inline void bcm47xx_nvram_parse_macaddr(char *buf, u8 macaddr[6]) | ||
38 | { | ||
39 | if (strchr(buf, ':')) | ||
40 | sscanf(buf, "%hhx:%hhx:%hhx:%hhx:%hhx:%hhx", &macaddr[0], | ||
41 | &macaddr[1], &macaddr[2], &macaddr[3], &macaddr[4], | ||
42 | &macaddr[5]); | ||
43 | else if (strchr(buf, '-')) | ||
44 | sscanf(buf, "%hhx-%hhx-%hhx-%hhx-%hhx-%hhx", &macaddr[0], | ||
45 | &macaddr[1], &macaddr[2], &macaddr[3], &macaddr[4], | ||
46 | &macaddr[5]); | ||
47 | else | ||
48 | printk(KERN_WARNING "Can not parse mac address: %s\n", buf); | ||
49 | } | ||
50 | |||
51 | #endif /* __BCM47XX_NVRAM_H */ | ||