2
0
forked from Ivasoft/openwrt

bcm53xx: move NVRAM header to the target files

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>

SVN-Revision: 43602
This commit is contained in:
Rafał Miłecki
2014-12-10 17:37:24 +00:00
parent 37c5b92d40
commit 3fab0d818c
3 changed files with 66 additions and 250 deletions

View File

@@ -0,0 +1,66 @@
/*
* Copyright (C) 2005, Broadcom Corporation
* Copyright (C) 2006, Felix Fietkau <nbd@openwrt.org>
* Copyright (C) 2014 Hauke Mehrtens <hauke@hauke-m.de>
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 2 of the License, or (at your
* option) any later version.
*/
#ifndef __BCM47XX_NVRAM_H
#define __BCM47XX_NVRAM_H
#include <linux/types.h>
#include <linux/kernel.h>
struct nvram_header {
u32 magic;
u32 len;
u32 crc_ver_init; /* 0:7 crc, 8:15 ver, 16:31 sdram_init */
u32 config_refresh; /* 0:15 sdram_config, 16:31 sdram_refresh */
u32 config_ncdl; /* ncdl values for memc */
};
#define NVRAM_HEADER 0x48534C46 /* 'FLSH' */
#define NVRAM_VERSION 1
#define NVRAM_HEADER_SIZE 20
#define NVRAM_SPACE 0x8000
#define FLASH_MIN 0x00020000 /* Minimum flash size */
#define NVRAM_MAX_VALUE_LEN 255
#define NVRAM_MAX_PARAM_LEN 64
#ifdef CONFIG_BCM47XX
int bcm47xx_nvram_getenv(const char *name, char *val, size_t val_len);
int bcm47xx_nvram_gpio_pin(const char *name);
#else
static inline int bcm47xx_nvram_getenv(const char *name, char *val,
size_t val_len)
{
return -ENXIO;
}
static inline int bcm47xx_nvram_gpio_pin(const char *name)
{
return -ENXIO;
}
#endif
static inline void bcm47xx_nvram_parse_macaddr(char *buf, u8 macaddr[6])
{
if (strchr(buf, ':'))
sscanf(buf, "%hhx:%hhx:%hhx:%hhx:%hhx:%hhx", &macaddr[0],
&macaddr[1], &macaddr[2], &macaddr[3], &macaddr[4],
&macaddr[5]);
else if (strchr(buf, '-'))
sscanf(buf, "%hhx-%hhx-%hhx-%hhx-%hhx-%hhx", &macaddr[0],
&macaddr[1], &macaddr[2], &macaddr[3], &macaddr[4],
&macaddr[5]);
else
pr_warn("Can not parse mac address: %s\n", buf);
}
#endif /* __BCM47XX_NVRAM_H */