MIPS: BCM47xx: Fix MAC address parsing.
[linux-2.6.git] / arch / mips / include / asm / mach-bcm47xx / nvram.h
blob184d5ecb5f51bbec1f7b0584adfe0e273a383a42
1 /*
2 * Copyright (C) 2005, Broadcom Corporation
3 * Copyright (C) 2006, Felix Fietkau <nbd@openwrt.org>
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 */
11 #ifndef __NVRAM_H
12 #define __NVRAM_H
14 #include <linux/types.h>
15 #include <linux/kernel.h>
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 */
25 #define NVRAM_HEADER 0x48534C46 /* 'FLSH' */
26 #define NVRAM_VERSION 1
27 #define NVRAM_HEADER_SIZE 20
28 #define NVRAM_SPACE 0x8000
30 #define FLASH_MIN 0x00020000 /* Minimum flash size */
32 #define NVRAM_MAX_VALUE_LEN 255
33 #define NVRAM_MAX_PARAM_LEN 64
35 #define NVRAM_ERR_INV_PARAM -8
36 #define NVRAM_ERR_ENVNOTFOUND -9
38 extern int nvram_getenv(char *name, char *val, size_t val_len);
40 static inline void nvram_parse_macaddr(char *buf, u8 *macaddr)
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);
54 #endif