Commit | Line | Data |
---|---|---|
121915c4 WB |
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 | ||
111bd981 HM |
11 | #ifndef __BCM47XX_NVRAM_H |
12 | #define __BCM47XX_NVRAM_H | |
121915c4 WB |
13 | |
14 | #include <linux/types.h> | |
59833fcf | 15 | #include <linux/kernel.h> |
121915c4 WB |
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 | ||
111bd981 | 35 | extern int bcm47xx_nvram_getenv(char *name, char *val, size_t val_len); |
121915c4 | 36 | |
111bd981 | 37 | static inline void bcm47xx_nvram_parse_macaddr(char *buf, u8 macaddr[6]) |
59833fcf | 38 | { |
9cbda726 HM |
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); | |
59833fcf HM |
49 | } |
50 | ||
111bd981 | 51 | #endif /* __BCM47XX_NVRAM_H */ |