Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
arch
mips
include
asm
mach-bcm47xx
nvram.h
Go to the documentation of this file.
1
/*
2
* Copyright (C) 2005, Broadcom Corporation
3
* Copyright (C) 2006, Felix Fietkau <
[email protected]
>
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
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
Generated on Thu Jan 10 2013 13:09:44 for Linux Kernel by
1.8.2