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 19struct 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 77struct bootbase_info { 78 u16 vendor_id; 79 u16 board_id; 80 u8 mac[6]; 81}; 82 83extern struct bootbase_info bootbase_info; 84extern int bootbase_present(void) __init; 85 86#endif /* _ZYNOS_H */ 87