X-Git-Url: https://git.rohieb.name/openwrt.git/blobdiff_plain/42b664a30a7481f05ecdd909baa4f0032e5e8e3d..4f345fdc5674f212ef077f01bbc54aa19e633d71:/tools/firmware-utils/src/zynos.h

diff --git a/tools/firmware-utils/src/zynos.h b/tools/firmware-utils/src/zynos.h
old mode 100755
new mode 100644
index ef6c91ef3..aaf0fc8a7
--- a/tools/firmware-utils/src/zynos.h
+++ b/tools/firmware-utils/src/zynos.h
@@ -1,46 +1,38 @@
 /*
- *  $Id$
  *
- *  Copyright (C) 2007 OpenWrt.org
- *  Copyright (C) 2007 Gabor Juhos <juhosg@freemail.hu>
+ *  Copyright (C) 2007-2008 OpenWrt.org
+ *  Copyright (C) 2007-2008 Gabor Juhos <juhosg at openwrt.org>
  *
- *  This code was based on the information of the ZyXEL's firmware 
- *  image format written by Kolja Waschk, can be found at: 
+ *  This code was based on the information of the ZyXEL's firmware
+ *  image format written by Kolja Waschk, can be found at:
  *  http://www.ixo.de/info/zyxel_uclinux
  *
- *  This program is free software; you can redistribute it and/or
- *  modify it under the terms of the GNU General Public License
- *  as published by the Free Software Foundation; either version 2
- *  of the License, or (at your option) any later version.
+ *  This program is free software; you can redistribute it and/or modify it
+ *  under the terms of the GNU General Public License version 2 as published
+ *  by the Free Software Foundation.
  *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the
- *  Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- *  Boston, MA  02110-1301, USA.
  */
 
 #ifndef _ZYNOS_H
 #define _ZYNOS_H
 
-
 #define BOOTBASE_NAME_LEN	32
 #define BOOTBASE_MAC_LEN	6
 #define BOOTBASE_FEAT_LEN	22
 
+#define BOOTEXT_DEF_SIZE	0x18000
+
 struct zyn_bootbase_info {
 	char		vendor[BOOTBASE_NAME_LEN]; /* Vendor name */
 	char		model[BOOTBASE_NAME_LEN]; /* Model name */
 	uint32_t	bootext_addr;	/* absolute address of the Boot Extension */
-	uint32_t	res0;
+	uint16_t	res0;		/* reserved/unknown */
+	uint8_t		sys_type;	/* system type */
+	uint8_t		res1;		/* reserved/unknown */
 	uint16_t	model_id;	/* model id */
 	uint8_t		feat_other[BOOTBASE_FEAT_LEN]; /* other feature bits */
 	uint8_t		feat_main;	/* main feature bits */
-	uint8_t		res1;		/* unknown/unused */
+	uint8_t		res2;		/* reserved/unknown */
 	uint8_t		mac[BOOTBASE_MAC_LEN]; /* mac address */
 	uint8_t		country;	/* default country code */
 	uint8_t		dbgflag;	/* debug flag */
@@ -74,8 +66,8 @@ struct zyn_rombin_hdr {
 #define ROMBIN_FLAG_04		0x04
 #define ROMBIN_FLAG_08		0x08
 #define ROMBIN_FLAG_10		0x10
-#define ROMBIN_FLAG_20		0x20
-#define ROMBIN_FLAG_40		0x40
+#define ROMBIN_FLAG_CCSUM	0x20	/* compressed checksum is valid */
+#define ROMBIN_FLAG_OCSUM	0x40	/* original checksum is valid */
 #define ROMBIN_FLAG_COMPRESSED	0x80	/* the binary is compressed */
 
 /* Object types */
@@ -114,12 +106,22 @@ struct zyn_mmt_item {
 } __attribute__((packed));
 
 /*
- * Board IDs (in big-endian format)
+ * Vendor IDs
+ */
+#define ZYNOS_VENDOR_ID_ZYXEL	0
+#define ZYNOS_VENDOR_ID_NETGEAR	1
+#define ZYNOS_VENDOR_ID_DLINK	2
+#define ZYNOS_VENDOR_ID_03	3
+#define ZYNOS_VENDOR_ID_LUCENT	4
+#define ZYNOS_VENDOR_ID_O2	10
+
+/*
+ * Model IDs (in big-endian format)
  */
 #define MID(x)	(((x) & 0xFF) << 8) | (((x) & 0xFF00) >> 8)
 
-/* 
- * Infineon/ADMtek ADM5120 based models 
+/*
+ * Infineon/ADMtek ADM5120 based models
  */
 #define ZYNOS_MODEL_ES_2024A		MID(  221)
 #define ZYNOS_MODEL_ES_2024PWR		MID( 4097)
@@ -141,8 +143,8 @@ struct zyn_mmt_item {
 #define ZYNOS_MODEL_P_335U		MID(56479)
 #define ZYNOS_MODEL_P_335WT		ZYNOS_MODEL_P_335
 
-/* 
- * Texas Instruments AR7 based models 
+/*
+ * Texas Instruments AR7 based models
  */
 #define ZYNOS_MODEL_P_2602H_61C		MID( 3229)
 #define ZYNOS_MODEL_P_2602H_63C		MID( 3485)
@@ -151,13 +153,14 @@ struct zyn_mmt_item {
 #define ZYNOS_MODEL_P_2602HW_61C	/* n.a. */
 #define ZYNOS_MODEL_P_2602HW_63		/* n.a. */
 #define ZYNOS_MODEL_P_2602HW_63C	ZYNOS_MODEL_P_2602H_63C
-#define ZYNOS_MODEL_P_2602HW_D1A	/* n.a. */
+#define ZYNOS_MODEL_P_2602HW_D1A	MID( 6301)
 #define ZYNOS_MODEL_P_2602HW_D3A	/* n.a. */
 #define ZYNOS_MODEL_P_2602HWL_61	MID( 1181)
 #define ZYNOS_MODEL_P_2602HWL_61C	ZYNOS_MODEL_P_2602H_61C
 #define ZYNOS_MODEL_P_2602HWL_63C	ZYNOS_MODEL_P_2602H_63C
-#define ZYNOS_MODEL_P_2602HWL_D1A	MID( 6301)
+#define ZYNOS_MODEL_P_2602HWL_D1A	ZYNOS_MODEL_P_2602HW_D1A
 #define ZYNOS_MODEL_P_2602HWL_D3A	MID( 7581)
+#define ZYNOS_MODEL_P_2602HWN_D7A	MID(30464)
 #define ZYNOS_MODEL_P_2602HWNLI_D7A	MID( 6813)
 
 #define ZYNOS_MODEL_P_2602R_61		MID( 2205)
@@ -210,4 +213,13 @@ struct zyn_mmt_item {
 #define ZYNOS_MODEL_P_662HW_D1		MID(10394)
 #define ZYNOS_MODEL_P_662HW_D3		MID(12954)
 
+/* OEM boards */
+#define ZYNOS_MODEL_O2SURF		ZYNOS_MODEL_P_2602HWN_D7A
+
+/* Atheros AR2318 based boards */
+#define ZYNOS_MODEL_NBG_318S		MID(59392)
+
+/* Atheros AR71xx based boards */
+#define ZYNOS_MODEL_NBG_460N		MID(61441)
+
 #endif /* _ZYNOS_H */