c78a50af947420d51dbcabb67aa21da1f4064b0e
[openwrt/svn-archive/archive.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 */