[adm5120] license cleanup
[openwrt.git] / target / linux / adm5120 / files / include / asm-mips / mach-adm5120 / prom / zynos.h
1 /*
2  *  $Id$
3  *
4  *  ZyNOS (ZyXEL's Networking OS) definitions
5  *
6  *  Copyright (C) 2007 OpenWrt.org
7  *  Copyright (C) 2007 Gabor Juhos <juhosg at openwrt.org>
8  *
9  *  This program is free software; you can redistribute it and/or modify it
10  *  under the terms of the GNU General Public License version 2 as published
11  *  by the Free Software Foundation.
12  *
13  */
14
15 #ifndef _ZYNOS_H
16 #define _ZYNOS_H
17
18 #define ZYNOS_NAME_LEN          32
19 #define ZYNOS_FEAT_BYTES        22
20 #define ZYNOS_MAC_LEN           6
21
22 struct zynos_board_info {
23         unsigned char   vendor[ZYNOS_NAME_LEN];
24         unsigned char   product[ZYNOS_NAME_LEN];
25         u32             bootext_addr;
26         u32             res0;
27         u16             board_id;
28         u8              res1[6];
29         u8              feat_other[ZYNOS_FEAT_BYTES];
30         u8              feat_main;
31         u8              res2;
32         u8              mac[ZYNOS_MAC_LEN];
33         u8              country;
34         u8              dbgflag;
35 } __attribute__ ((packed));
36
37 /*
38  * Vendor IDs
39  */
40 #define ZYNOS_VENDOR_ID_ZYXEL   0
41 #define ZYNOS_VENDOR_ID_NETGEAR 1
42 #define ZYNOS_VENDOR_ID_DLINK   2
43 #define ZYNOS_VENDOR_ID_OTHER   3
44 #define ZYNOS_VENDOR_ID_LUCENT  4
45
46 /*
47  * Vendor names
48  */
49 #define ZYNOS_VENDOR_DLINK      "D-Link"
50 #define ZYNOS_VENDOR_LUCENT     "LUCENT"
51 #define ZYNOS_VENDOR_NETGEAR    "NetGear"
52 #define ZYNOS_VENDOR_ZYXEL      "ZyXEL"
53
54 /*
55  * Board IDs (big-endian)
56  */
57 #define ZYNOS_BOARD_ES2108      0x00F2  /* Ethernet Switch 2108 */
58 #define ZYNOS_BOARD_ES2108F     0x01AF  /* Ethernet Switch 2108-F */
59 #define ZYNOS_BOARD_ES2108G     0x00F3  /* Ethernet Switch 2108-G */
60 #define ZYNOS_BOARD_ES2108LC    0x00FC  /* Ethernet Switch 2108-LC */
61 #define ZYNOS_BOARD_ES2108PWR   0x00F4  /* Ethernet Switch 2108PWR */
62 #define ZYNOS_BOARD_HS100       0x9FF1  /* HomeSafe 100/100W */
63 #define ZYNOS_BOARD_P334        0x9FF5  /* Prestige 334 */
64 #define ZYNOS_BOARD_P334U       0x9FDD  /* Prestige 334U */
65 #define ZYNOS_BOARD_P334W       0x9FF3  /* Prestige 334W */
66 #define ZYNOS_BOARD_P334WH      0x00E0  /* Prestige 334WH */
67 #define ZYNOS_BOARD_P334WHD     0x00E1  /* Prestige 334WHD */
68 #define ZYNOS_BOARD_P334WT      0x9FEF  /* Prestige 334WT */
69 #define ZYNOS_BOARD_P335        0x9FED  /* Prestige 335/335WT */
70 #define ZYNOS_BOARD_P335PLUS    0x0025  /* Prestige 335Plus */
71 #define ZYNOS_BOARD_P335U       0x9FDC  /* Prestige 335U */
72
73 /*
74  * Some magic numbers (big-endian)
75  */
76 #define ZYNOS_MAGIC_DBGAREA1    0x48646267      /* "Hdbg" */
77 #define ZYNOS_MAGIC_DBGAREA2    0x61726561      /* "area" */
78
79 struct bootbase_info {
80         u16             vendor_id;
81         u16             board_id;
82         u8              mac[6];
83 };
84
85 extern struct bootbase_info bootbase_info;
86 extern int bootbase_present(void) __init;
87
88 #endif /* _ZYNOS_H */