Root/target/linux/ifxmips/files-2.6.33/arch/mips/ifxmips/danube/arcaydian.c

1#include <linux/init.h>
2#include <linux/module.h>
3#include <linux/types.h>
4#include <linux/string.h>
5#include <linux/mtd/physmap.h>
6#include <linux/kernel.h>
7#include <linux/reboot.h>
8#include <linux/platform_device.h>
9#include <linux/leds.h>
10#include <linux/etherdevice.h>
11#include <linux/reboot.h>
12#include <linux/time.h>
13#include <linux/io.h>
14#include <linux/gpio.h>
15
16#include <ifxmips.h>
17#include <ifxmips_prom.h>
18
19#include "arcaydian.h"
20
21static int ifxmips_brn = 1;
22
23int __init
24ifxmips_find_brn_mac(unsigned char *ifxmips_ethaddr)
25{
26    unsigned char temp[8];
27    memcpy_fromio(temp,
28        (void *)KSEG1ADDR(IFXMIPS_FLASH_START + 0x800000 - 0x10000), 8);
29    if (!memcmp(temp, "BRN-BOOT", 8))
30    {
31        memcpy_fromio(ifxmips_ethaddr,
32            (void *)KSEG1ADDR(IFXMIPS_FLASH_START +
33            0x800000 - 0x10000 + 0x16), 6);
34        if (is_valid_ether_addr(ifxmips_ethaddr))
35            return 1;
36    } else {
37        ifxmips_brn = 0;
38    }
39    return 0;
40}
41
42int
43ifxmips_has_brn_block(void)
44{
45    return ifxmips_brn;
46}
47EXPORT_SYMBOL(ifxmips_has_brn_block);
48

Archive Download this file



interactive