• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 __NVRAM_H
12 #define __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 #define NVRAM_ERR_INV_PARAM	-8
36 #define NVRAM_ERR_ENVNOTFOUND	-9
37 
38 extern int nvram_getenv(char *name, char *val, size_t val_len);
39 
nvram_parse_macaddr(char * buf,u8 macaddr[6])40 static inline void nvram_parse_macaddr(char *buf, u8 macaddr[6])
41 {
42 	if (strchr(buf, ':'))
43 		sscanf(buf, "%hhx:%hhx:%hhx:%hhx:%hhx:%hhx", &macaddr[0],
44 			&macaddr[1], &macaddr[2], &macaddr[3], &macaddr[4],
45 			&macaddr[5]);
46 	else if (strchr(buf, '-'))
47 		sscanf(buf, "%hhx-%hhx-%hhx-%hhx-%hhx-%hhx", &macaddr[0],
48 			&macaddr[1], &macaddr[2], &macaddr[3], &macaddr[4],
49 			&macaddr[5]);
50 	else
51 		printk(KERN_WARNING "Can not parse mac address: %s\n", buf);
52 }
53 
54 #endif
55