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