scitor 1 year ago
commit
8cbe757cb3
Signed by: scitor (C4CB001A60CA5028)
100 changed files with 4922 additions and 0 deletions
  1. BIN
      firmware/apfw/3893_exeheader
  2. 123
    0
      firmware/apfw/Makefile
  3. 15
    0
      firmware/apfw/README
  4. 34
    0
      firmware/apfw/apfw_head/Makefile
  5. 44
    0
      firmware/apfw/apfw_head/README
  6. 51
    0
      firmware/apfw/apfw_head/apfw_head.lds
  7. 173
    0
      firmware/apfw/apfw_head/bra.c
  8. 96
    0
      firmware/apfw/apfw_head/head.S
  9. 65
    0
      firmware/apfw/include/component_interface.h
  10. 1
    0
      firmware/apfw/include/tooldir.mak
  11. 11
    0
      firmware/apfw/include/version_info.mak
  12. BIN
      firmware/apfw/poldhu_exeheader
  13. 14
    0
      firmware/apfw/putfirmware.sh
  14. 43
    0
      firmware/include/blob.h
  15. 18
    0
      firmware/include/blob3856.h
  16. 120
    0
      firmware/include/blobarch.h
  17. 48
    0
      firmware/include/bloboid.h
  18. 92
    0
      firmware/include/blobstub.h
  19. 379
    0
      firmware/include/blobv2.h
  20. 189
    0
      firmware/include/bootdbg.h
  21. 362
    0
      firmware/include/identification/bootrec.h
  22. 64
    0
      firmware/include/identification/components.h
  23. 80
    0
      firmware/include/identification/customer.h
  24. 73
    0
      firmware/include/identification/hardware_variants.h
  25. 30
    0
      firmware/include/identification/identification.h
  26. 34
    0
      firmware/include/identification/image_header.h
  27. 72
    0
      firmware/include/identification/interfaces.h
  28. 165
    0
      firmware/include/identification/software_variants.h
  29. 750
    0
      firmware/include/mvc2/bloboid_2.h
  30. BIN
      firmware/mvc/3893mvc_1.0.1.0.arm
  31. 75
    0
      firmware/uClinux/.config
  32. 75
    0
      firmware/uClinux/.config.old
  33. 79
    0
      firmware/uClinux/Documentation/Configure.help
  34. 340
    0
      firmware/uClinux/GNU-GPL
  35. 485
    0
      firmware/uClinux/GNU-LGPL
  36. 155
    0
      firmware/uClinux/Makefile
  37. 51
    0
      firmware/uClinux/appbuild/Makefile
  38. 7
    0
      firmware/uClinux/appbuild/apps.mk
  39. 509
    0
      firmware/uClinux/appbuild/busybox/Config.h
  40. BIN
      firmware/uClinux/appbuild/nodebug/bb_tasks/remotelog/remotelog.elf
  41. BIN
      firmware/uClinux/appbuild/nodebug/bb_tasks/remotelog/remotelog.elfabs
  42. BIN
      firmware/uClinux/appbuild/nodebug/datastore/agent/datastore.elf
  43. BIN
      firmware/uClinux/appbuild/nodebug/datastore/agent/datastore.elfabs
  44. BIN
      firmware/uClinux/appbuild/nodebug/datastore/interfaces/libinterfaces.a
  45. BIN
      firmware/uClinux/appbuild/nodebug/datastore/modules/libmodules.a
  46. BIN
      firmware/uClinux/appbuild/nodebug/login/login.elf
  47. BIN
      firmware/uClinux/appbuild/nodebug/login/login.elfabs
  48. BIN
      firmware/uClinux/appbuild/nodebug/login/passwd.elf
  49. BIN
      firmware/uClinux/appbuild/nodebug/login/passwd.elfabs
  50. BIN
      firmware/uClinux/appbuild/nodebug/pppd/pppd/auth.o
  51. BIN
      firmware/uClinux/appbuild/nodebug/pppd/pppd/cbcp.o
  52. BIN
      firmware/uClinux/appbuild/nodebug/pppd/pppd/ccp.o
  53. BIN
      firmware/uClinux/appbuild/nodebug/pppd/pppd/chap.o
  54. BIN
      firmware/uClinux/appbuild/nodebug/pppd/pppd/demand.o
  55. BIN
      firmware/uClinux/appbuild/nodebug/pppd/pppd/fsm.o
  56. BIN
      firmware/uClinux/appbuild/nodebug/pppd/pppd/ipcp.o
  57. BIN
      firmware/uClinux/appbuild/nodebug/pppd/pppd/lcp.o
  58. BIN
      firmware/uClinux/appbuild/nodebug/pppd/pppd/magic.o
  59. BIN
      firmware/uClinux/appbuild/nodebug/pppd/pppd/main.o
  60. BIN
      firmware/uClinux/appbuild/nodebug/pppd/pppd/multilink.o
  61. BIN
      firmware/uClinux/appbuild/nodebug/pppd/pppd/options.o
  62. BIN
      firmware/uClinux/appbuild/nodebug/pppd/pppd/plugins/rp-pppoe/common.o
  63. BIN
      firmware/uClinux/appbuild/nodebug/pppd/pppd/plugins/rp-pppoe/debug.o
  64. BIN
      firmware/uClinux/appbuild/nodebug/pppd/pppd/plugins/rp-pppoe/discovery.o
  65. BIN
      firmware/uClinux/appbuild/nodebug/pppd/pppd/plugins/rp-pppoe/if.o
  66. BIN
      firmware/uClinux/appbuild/nodebug/pppd/pppd/plugins/rp-pppoe/librp-pppoe.a
  67. BIN
      firmware/uClinux/appbuild/nodebug/pppd/pppd/plugins/rp-pppoe/plugin.o
  68. BIN
      firmware/uClinux/appbuild/nodebug/pppd/pppd/pppd.elf
  69. BIN
      firmware/uClinux/appbuild/nodebug/pppd/pppd/pppd.elfabs
  70. BIN
      firmware/uClinux/appbuild/nodebug/pppd/pppd/sys-linux.o
  71. BIN
      firmware/uClinux/appbuild/nodebug/pppd/pppd/tdb.o
  72. BIN
      firmware/uClinux/appbuild/nodebug/pppd/pppd/tty.o
  73. BIN
      firmware/uClinux/appbuild/nodebug/pppd/pppd/upap.o
  74. BIN
      firmware/uClinux/appbuild/nodebug/pppd/pppd/utils.o
  75. BIN
      firmware/uClinux/appbuild/nodebug/pptp/dirutil.o
  76. BIN
      firmware/uClinux/appbuild/nodebug/pptp/inststr.o
  77. BIN
      firmware/uClinux/appbuild/nodebug/pptp/ppp_fcs.o
  78. BIN
      firmware/uClinux/appbuild/nodebug/pptp/pptp.elf
  79. BIN
      firmware/uClinux/appbuild/nodebug/pptp/pptp.elfabs
  80. BIN
      firmware/uClinux/appbuild/nodebug/pptp/pptp.o
  81. BIN
      firmware/uClinux/appbuild/nodebug/pptp/pptp_callmgr.elf
  82. BIN
      firmware/uClinux/appbuild/nodebug/pptp/pptp_callmgr.elfabs
  83. BIN
      firmware/uClinux/appbuild/nodebug/pptp/pptp_callmgr.o
  84. BIN
      firmware/uClinux/appbuild/nodebug/pptp/pptp_ctrl.o
  85. BIN
      firmware/uClinux/appbuild/nodebug/pptp/pptp_gre.o
  86. BIN
      firmware/uClinux/appbuild/nodebug/pptp/pty.o
  87. BIN
      firmware/uClinux/appbuild/nodebug/pptp/util.o
  88. BIN
      firmware/uClinux/appbuild/nodebug/pptp/vector.o
  89. BIN
      firmware/uClinux/appbuild/nodebug/pptp/version.o
  90. BIN
      firmware/uClinux/appbuild/nodebug/snmpd/agent/agent_index.o
  91. BIN
      firmware/uClinux/appbuild/nodebug/snmpd/agent/agent_read_config.o
  92. BIN
      firmware/uClinux/appbuild/nodebug/snmpd/agent/agent_registry.o
  93. BIN
      firmware/uClinux/appbuild/nodebug/snmpd/agent/agent_trap.o
  94. BIN
      firmware/uClinux/appbuild/nodebug/snmpd/agent/auto_nlist.o
  95. BIN
      firmware/uClinux/appbuild/nodebug/snmpd/agent/kernel.o
  96. BIN
      firmware/uClinux/appbuild/nodebug/snmpd/agent/mib_modules.o
  97. BIN
      firmware/uClinux/appbuild/nodebug/snmpd/agent/mibgroup/datastore/datastore.o
  98. BIN
      firmware/uClinux/appbuild/nodebug/snmpd/agent/mibgroup/datastore/datastore_if.o
  99. BIN
      firmware/uClinux/appbuild/nodebug/snmpd/agent/mibgroup/datastore/hexstring.o
  100. 0
    0
      firmware/uClinux/appbuild/nodebug/snmpd/agent/mibgroup/libucdmibs.a

BIN
firmware/apfw/3893_exeheader View File


+ 123
- 0
firmware/apfw/Makefile View File

@@ -0,0 +1,123 @@
1
+#
2
+#
3
+# create an apfirmware image, consisting of an image header, MVC and System
4
+#
5
+include include/version_info.mak
6
+include include/tooldir.mak
7
+
8
+export TOOLDIR
9
+OBJCAT		= $(TOOLDIR)/objcat
10
+
11
+BUILDYEAR := $(shell date "+%Y")
12
+
13
+UCLINUX_IMAGEPATH = ../uClinux
14
+MVC_IMAGEPATH     = ../mvc
15
+UMAC_IMAGEPATH    = ../umac
16
+
17
+# Determine what configuration we build for.
18
+ifeq ($(BUILD), formal)
19
+  IMAGE_TAG	= ""
20
+  APFW_IMG	= apfirmware_$(AP_FW_VERSIONID).img
21
+  UCLINUX_IMG	= $(UCLINUX_IMAGEPATH)/uclinux_system_$(AP_FW_NEEDED_UCLINUX_VERSIONID).img
22
+  MVC_IMG	= $(MVC_IMAGEPATH)/3893mvc_$(AP_FW_NEEDED_MVC_VERSIONID).arm
23
+  ifneq ($(AP_FW_NEEDED_UMAC_VERSIONID), NONE)
24
+    UMAC_IMG	= $(UMAC_IMAGEPATH)/umac_arm_elf_$(AP_FW_NEEDED_UMAC_VERSIONID).lib
25
+  endif  
26
+  MODULE_IMG	= $(UCLINUX_IMAGEPATH)/modulefs_$(AP_FW_NEEDED_UCLINUX_VERSIONID).img
27
+else
28
+  ifeq ($(BUILD), develop)
29
+    IMAGE_TAG	= " develop"
30
+    APFW_IMG	= apfirmware_$(AP_FW_VERSIONID)_develop.img
31
+    UCLINUX_IMG = $(UCLINUX_IMAGEPATH)/uclinux_system_$(AP_FW_NEEDED_UCLINUX_VERSIONID)_develop.img
32
+    ifneq ($(AP_FW_NEEDED_UMAC_VERSIONID), NONE)  
33
+      UMAC_IMG	= $(UMAC_IMAGEPATH)/umac_arm_elf_$(AP_FW_NEEDED_UMAC_VERSIONID).lib
34
+    endif
35
+    MVC_IMG	= $(MVC_IMAGEPATH)/3893mvc_$(AP_FW_NEEDED_MVC_VERSIONID).arm
36
+    MODULE_IMG	= $(UCLINUX_IMAGEPATH)/modulefs_$(AP_FW_NEEDED_UCLINUX_VERSIONID)_develop.img
37
+  else
38
+    IMAGE_TAG	= " private"
39
+    APFW_IMG	= apfirmware.img
40
+    UCLINUX_IMG = $(UCLINUX_IMAGEPATH)/uclinux_system.img
41
+    ifneq ($(AP_FW_NEEDED_UMAC_VERSIONID), NONE)
42
+      UMAC_IMG	= $(UMAC_IMAGEPATH)/umac_arm_elf_$(AP_FW_NEEDED_UMAC_VERSIONID).lib
43
+    endif      
44
+    MVC_IMG	= $(MVC_IMAGEPATH)/3893mvc_$(AP_FW_NEEDED_MVC_VERSIONID).arm
45
+    MODULE_IMG	= $(UCLINUX_IMAGEPATH)/modulefs.img
46
+  endif
47
+endif
48
+
49
+# Image file that can be bootstrapped via the Frivial File Server protocol
50
+APFW_TFS = $(APFW_IMG:%.img=%.tfs)
51
+
52
+usage:
53
+	@echo " make image              # build apfirmware image" >&2
54
+	@echo " make image_no_mod	# build apfirmware image without (re)building modules." >&2
55
+	@echo " make fastimg            # build apfirmware image without rebuilding uClinux" >&2
56
+	@echo " make all                # build apfw_head/apfw_head.bin" >&2
57
+	@echo " make clean              # this does not clean the MVC and uClinux directories" >&2
58
+
59
+image:  $(UMAC_IMG) $(MVC_IMG) uclinux_image uclinux_modules apfw_head/apfw_head.bin catimage
60
+
61
+image_no_mod: $(UMAC_IMG) $(MVC_IMG) uclinux_image apfw_head/apfw_head.bin catimage
62
+
63
+# Make an apfirmware image without rebuilding uClinux
64
+fastimg: $(UMAC_IMG) $(MVC_IMG) $(UCLINUX_IMG) $(MODULE_IMG) apfw_head/apfw_head.bin catimage
65
+
66
+$(UMAC_IMG):
67
+	$(error UMAC library file $(UMAC_IMG) not found)
68
+
69
+# Maybe the variable "AP_FW_NEEDED_MVC_VERSIONID" in include/version_info.mak must be updated?
70
+# The MVC image should always be present. If not, we generate an error
71
+$(MVC_IMG):
72
+	$(error MVC firmware file $(MVC_IMG) not found)
73
+
74
+$(UCLINUX_IMG):
75
+	$(error uClinux firmware file $(UCLINUX_IMG) not found)
76
+
77
+$(MODULE_IMG):
78
+	$(error uClinux loadable module file $(MODULE_IMG) not found)
79
+
80
+.PHONY: uclinux_image
81
+uclinux_image:
82
+	make -C $(UCLINUX_IMAGEPATH) BUILD=$(BUILD) uclinux
83
+
84
+.PHONY: uclinux_modules
85
+uclinux_modules:
86
+ifneq ($(BUILD), )
87
+ifneq ($(UMAC_IMG), )
88
+	rm -rf ../umac/umac.lib
89
+	ln -sf $(UMAC_IMG) ../umac/umac.lib
90
+endif	
91
+endif
92
+	make -C $(UCLINUX_IMAGEPATH) BUILD=$(BUILD) modulefs
93
+
94
+.PHONY: FORCE
95
+apfw_head/apfw_head.bin: include/component_version.h FORCE
96
+	make -C apfw_head BUILD=$(BUILD)
97
+
98
+.PHONY: catimage
99
+catimage:
100
+	echo -n "xMVC" > apfw_mvc.img
101
+	dd if=$(MVC_IMG) ibs=4 skip=1 >> apfw_mvc.img
102
+	echo -n "xSYS" > apfw_uclinux.img
103
+	dd if=$(UCLINUX_IMG) ibs=4 skip=1 >> apfw_uclinux.img
104
+	$(OBJCAT) -b -c $(APFW_IMG) apfw_head/apfw_head.bin 512 0xFF apfw_mvc.img 512 0xFF apfw_uclinux.img 512 0xFF $(MODULE_IMG) 512 0xFF
105
+ifneq ($(BUILD), formal)
106
+	cat 3893_exeheader > $(APFW_TFS)
107
+	cat $(APFW_IMG) >> $(APFW_TFS)
108
+endif
109
+	rm -f apfw_mvc.img apfw_uclinux.img
110
+
111
+include/component_version.h: include/version_info.mak
112
+	@echo -e "/* Copyright (C) $(BUILDYEAR) Intersil Americas Inc. */\n\n" > include/component_version.h
113
+	@echo -e "#define AP_FW_VERSION_STRING \"$(AP_FW_VERSIONID)$(IMAGE_TAG)\"" >> include/component_version.h
114
+
115
+all: apfw_head/apfw_head.bin
116
+
117
+clean:
118
+	make -C apfw_head clean
119
+	rm -f apfirmware.img apfirmware_*.img
120
+	rm -f apfirmware*.tfs
121
+	rm -f include/component_version.h
122
+
123
+depend:

+ 15
- 0
firmware/apfw/README View File

@@ -0,0 +1,15 @@
1
+In development mode an additional image file is generated.
2
+This imagefile ( apfirmware.tfs ) is used by the bootstrap 
3
+functionality of the bootrom.
4
+To have this file downloaded by the bootrom in case it can not find an 
5
+valid image in flash perform the following manual steps.
6
+For poldhu:
7
+   mv apfirmware.tfs to poldhu-<MAC address>.bin where MAC address equals
8
+   the MAC address of the AP. Copy the resulting file to the /tfs directory
9
+   of a machine in the same subnet as the AP.
10
+   e.g. MAC address is 00:10:91:01:02:03 use 
11
+      mv apfirmware.tfs poldhu-001091010203.bin
12
+      cp poldhu-001091010203.bin /tfs
13
+For 3893 chipset:
14
+   See poldhu but replace poldhu- with 3893-
15
+      

+ 34
- 0
firmware/apfw/apfw_head/Makefile View File

@@ -0,0 +1,34 @@
1
+#
2
+#
3
+# create an apfirmware image, consisting of an image header, MVC and System
4
+#
5
+ASM			= $(TOOLDIR)/arm-elf-as
6
+LD			= $(TOOLDIR)/arm-elf-ld
7
+CC			= $(TOOLDIR)/arm-elf-gcc
8
+OBJCOPY		= $(TOOLDIR)/arm-elf-objcopy
9
+
10
+LDFLAGS		= -p -X -T apfw_head.lds
11
+
12
+HEAD		= head.o
13
+BRA			= bra.o
14
+CFLAGS		= -I../../include -I../include
15
+
16
+apfw_head.bin: $(HEAD) $(BRA) apfw_head.lds
17
+		$(LD) $(LDFLAGS) $(BRA) $(HEAD) -o apfw_head.elf
18
+		$(OBJCOPY) -O binary apfw_head.elf apfw_head.bin
19
+
20
+$(BRA): $(BRA:.o=.c) ../include/component_interface.h ../include/component_version.h 
21
+
22
+$(HEAD): $(HEAD:.o=.S)
23
+	 $(CC) -traditional -c $(HEAD:.o=.S)
24
+
25
+%.o : %.c
26
+	$(CC) $(CFLAGS) -c $< -o $@
27
+
28
+
29
+all: $(APFW_IMAGE)
30
+
31
+clean:
32
+	rm -f apfw_head.bin apfw_head.elf $(HEAD) $(BRA)
33
+
34
+depend:

+ 44
- 0
firmware/apfw/apfw_head/README View File

@@ -0,0 +1,44 @@
1
+Generate an AP Firmware image.
2
+
3
+An AP Firmware image has the following layout:
4
+
5
+  *=======================*                  *========================*
6
+  |    Image Header       |----------------> |      Magic ("OKAY")    |
7
+  |-----------------------|                  |         Vector         |
8
+  |        head.S         |                  |       Crc_Start        |
9
+  |-----------------------|                  |        Crc_End         |
10
+  |                       |                  |        Crc_Code        |
11
+  |      MVC image        |---------.        |------------------------|
12
+  |                       |         |        |                        |
13
+  |-----------------------|         |        | Boot Record Area (BRA) |
14
+  |                       |         |        *========================*
15
+  |                       |         |
16
+  |                       |         |
17
+  |      Linux image      |         |        *======================*
18
+  |                       |         `------> |      Magic ("xMVC")  |
19
+  |                       |----.             |         Vector       |
20
+  |                       |    |             |----------------------|
21
+  *=======================*    |             |                      |
22
+                               |             |                      |
23
+                               |             |                      |
24
+                               |             |         MVC          |
25
+                               |             |                      |
26
+                               |             |                      |
27
+                               |             *======================*
28
+                               |
29
+                               |
30
+                               |             *======================*
31
+                               `-----------> |     Magic ("xSYS")   |
32
+                                             |         Vector       |
33
+                                             |----------------------|
34
+                                             |                      |
35
+                                             |                      |
36
+                                             |                      |
37
+                                             |        Linux         |
38
+                                             |                      |
39
+                                             |                      |
40
+                                             *======================*
41
+
42
+The AP Firmware image is started by a Bootloader (the Image-Header's Vector points
43
+to the small loader in head.S). The loader searches the AP Firmware image for an
44
+MVC image and Linux Image and starts both by jumping to their vectors.

+ 51
- 0
firmware/apfw/apfw_head/apfw_head.lds View File

@@ -0,0 +1,51 @@
1
+/*  $Header$
2
+ *
3
+ *  Copyright (C) 2002 Intersil Americas Inc.
4
+ *
5
+ *  This program is free software; you can redistribute it and/or modify
6
+ *  it under the terms of the GNU General Public License as published by
7
+ *  the Free Software Foundation; either version 2 of the License
8
+ *
9
+ *  This program is distributed in the hope that it will be useful,
10
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12
+ *  GNU General Public License for more details.
13
+ *
14
+ *  You should have received a copy of the GNU General Public License
15
+ *  along with this program; if not, write to the Free Software
16
+ *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
17
+ *
18
+ */
19
+OUTPUT_ARCH(arm)
20
+ENTRY(_start)
21
+SECTIONS
22
+{
23
+   .text : {
24
+      _start = .;
25
+      *(.start)
26
+      bra.o
27
+      . = ALIGN(512);
28
+      *(main)
29
+      *(.text)
30
+      . = ALIGN(4);
31
+   }
32
+
33
+  _etext = .;
34
+
35
+  .data : {
36
+    *(.data)
37
+  }
38
+
39
+  _edata = .;
40
+
41
+  __bss_start = .;
42
+  .bss : {
43
+    *(.bss)
44
+  }
45
+  _end = .;
46
+
47
+  .stack : {
48
+    *(.stack)
49
+  }
50
+}
51
+

+ 173
- 0
firmware/apfw/apfw_head/bra.c View File

@@ -0,0 +1,173 @@
1
+/*  $Header$
2
+ *
3
+ *  Copyright (C) 2002 Intersil Americas Inc.
4
+ *
5
+ *  This program is free software; you can redistribute it and/or modify
6
+ *  it under the terms of the GNU General Public License as published by
7
+ *  the Free Software Foundation; either version 2 of the License
8
+ *
9
+ *  This program is distributed in the hope that it will be useful,
10
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12
+ *  GNU General Public License for more details.
13
+ *
14
+ *  You should have received a copy of the GNU General Public License
15
+ *  along with this program; if not, write to the Free Software
16
+ *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
17
+ *
18
+ */
19
+
20
+#include "identification/identification.h"
21
+#include "identification/bootrec.h"
22
+#include "component_interface.h"
23
+
24
+
25
+/*
26
+ * This file contains the boot record areas (BRAs) for the AP Firmware
27
+ */
28
+
29
+
30
+/*
31
+ * Exposed Interfaces
32
+ */
33
+#define BR_EXP_IF_SIZE		((sizeof(struct s_exposed_if_list) - \
34
+				  sizeof(struct s_bootrec_hdr)) / 4)
35
+
36
+#define BR_NOF_EXP_IF		5
37
+struct s_exposed_if_list {
38
+	const struct s_bootrec_hdr hdr;
39
+	const struct s_bootrec_exp_if exposed_if[BR_NOF_EXP_IF];
40
+};
41
+
42
+/*
43
+ * Dependent Interfaces. Each dependent interface record
44
+ * specifies that at least one of the interfaces should be
45
+ * present (logical OR).
46
+ * If a component depends on more intefaces, this is specified
47
+ * by defining a dependent interface record for each dependent
48
+ * interface.
49
+ */
50
+#define BR_DEP_IF_SIZE(x)	((sizeof(struct s_dependent_if_list_##x) - \
51
+				  sizeof(struct s_bootrec_hdr)) / 4)
52
+
53
+struct s_dependent_if_list_1 {
54
+	const struct s_bootrec_hdr hdr;
55
+	const struct s_bootrec_dep_if dependent_if[1];
56
+};
57
+
58
+struct s_dependent_if_list_2 {
59
+	const struct s_bootrec_hdr hdr;
60
+	const struct s_bootrec_dep_if dependent_if[1];
61
+};
62
+
63
+struct s_dependent_if_list_3 {
64
+	const struct s_bootrec_hdr hdr;
65
+	const struct s_bootrec_dep_if dependent_if[1];
66
+};
67
+
68
+struct s_dependent_if_list_4 {
69
+	const struct s_bootrec_hdr hdr;
70
+	const struct s_bootrec_dep_if dependent_if[1];
71
+};
72
+
73
+struct s_dependent_if_list_5 {
74
+	const struct s_bootrec_hdr hdr;
75
+	const struct s_bootrec_dep_if dependent_if[1];
76
+};
77
+
78
+struct s_dependent_if_list_6 {
79
+	const struct s_bootrec_hdr hdr;
80
+	const struct s_bootrec_dep_if dependent_if[1];
81
+};
82
+
83
+/*
84
+ * System Bootrecord Definition
85
+ */
86
+const struct s_system_boot_record {
87
+	struct s_bootrec_comp_id  component_id;
88
+	struct s_bootrec_comp_ver component_version;
89
+	struct s_dependent_if_list_1 dependent_if_list_1;
90
+	struct s_dependent_if_list_2 dependent_if_list_2;
91
+	struct s_dependent_if_list_3 dependent_if_list_3;
92
+	struct s_dependent_if_list_4 dependent_if_list_4;
93
+        struct s_dependent_if_list_5 dependent_if_list_5;
94
+        struct s_dependent_if_list_6 dependent_if_list_6;
95
+        struct s_exposed_if_list exposed_if_list;
96
+	struct s_bootrec_end  bootrecord_end;
97
+} system_boot_record = {
98
+	component_id:
99
+	{
100
+		{ BR_CODE_COMPONENT_ID, 1 },
101
+                BR_COMP_ID_DAP1
102
+	},
103
+	component_version:
104
+	{
105
+		{ BR_CODE_COMPONENT_VERSION, VER_STRING_SIZE },
106
+		AP_FW_VERSION_STRING
107
+	},
108
+	dependent_if_list_1:
109
+	{
110
+		{ BR_CODE_DEPENDENT_IF, BR_DEP_IF_SIZE(1) },
111
+		{	/* role, interface ID, variant */
112
+			{ BR_IF_ROLE_SERVER, BR_IF_ID_ISL39300A, AP_FW_NEEDED_HW_IF},
113
+		}
114
+	},
115
+	dependent_if_list_2:
116
+	{
117
+		{ BR_CODE_DEPENDENT_IF, BR_DEP_IF_SIZE(2) },
118
+		{	/* role, interface ID, variant */
119
+			{ BR_IF_ROLE_SERVER, BR_IF_ID_DBO1, AP_FW_NEEDED_DBO1_IF},
120
+		}
121
+	},
122
+	dependent_if_list_3:
123
+	{
124
+		{ BR_CODE_DEPENDENT_IF, BR_DEP_IF_SIZE(3) },
125
+		{	/* role, interface ID, variant */
126
+			{ BR_IF_ROLE_SERVER, BR_IF_ID_PRIMARY_PRODUCT_IF, AP_FW_NEEDED_PRIMARY_PRODUCT_IF},
127
+		}
128
+	},
129
+	dependent_if_list_4:
130
+	{
131
+		{ BR_CODE_DEPENDENT_IF, BR_DEP_IF_SIZE(4) },
132
+		{	/* role, interface ID, variant */
133
+			{ BR_IF_ROLE_SERVER, BR_IF_ID_PRIMARY_OEM_IF, AP_FW_NEEDED_PRIMARY_OEM_IF},
134
+		}
135
+	},
136
+        dependent_if_list_5:
137
+	{
138
+		{ BR_CODE_DEPENDENT_IF, BR_DEP_IF_SIZE(5) },
139
+		{	/* role, interface ID, variant */
140
+			{ BR_IF_ROLE_SERVER, BR_IF_ID_OEM_IF, AP_FW_NEEDED_OEM_IF},
141
+		}
142
+	},
143
+        dependent_if_list_6:
144
+	{
145
+		{ BR_CODE_DEPENDENT_IF, BR_DEP_IF_SIZE(6) },
146
+		{	/* role, interface ID, variant */
147
+			{ BR_IF_ROLE_SERVER, BR_IF_ID_PRODUCT_IF, AP_FW_NEEDED_PRODUCT_IF},
148
+		}
149
+	},
150
+        exposed_if_list:
151
+	{
152
+		{ BR_CODE_EXPOSED_IF, BR_EXP_IF_SIZE },
153
+		{	/* role, interface ID, variant, bottom compat, top compat */
154
+			{ BR_IF_ROLE_SERVER, BR_IF_ID_SNMP_IF, AP_FW_EXPOSED_SNMP_IF,
155
+			  AP_FW_EXPOSED_SNMP_IF_BTM, AP_FW_EXPOSED_SNMP_IF_TOP},
156
+                        { BR_IF_ROLE_SERVER, BR_IF_ID_HTTP_IF, AP_FW_EXPOSED_HTTP_IF,
157
+                          AP_FW_EXPOSED_HTTP_IF_BTM, AP_FW_EXPOSED_HTTP_IF_TOP},
158
+                        { BR_IF_ROLE_SERVER, BR_IF_ID_TFTP, AP_FW_EXPOSED_TFTP_IF,
159
+                          AP_FW_EXPOSED_TFTP_IF_BTM, AP_FW_EXPOSED_TFTP_IF_TOP},
160
+                        { BR_IF_ROLE_SERVER, BR_IF_ID_DAP1_MAP, AP_FW_EXPOSED_DAP1_MAP,
161
+                          AP_FW_EXPOSED_DAP1_MAP_BTM, AP_FW_EXPOSED_DAP1_MAP_TOP},
162
+                        { BR_IF_ROLE_SERVER, BR_IF_ID_DAP1_FS, AP_FW_EXPOSED_DAP1_FS,
163
+                          AP_FW_EXPOSED_DAP1_FS_BTM, AP_FW_EXPOSED_DAP1_FS_TOP},
164
+		}
165
+	},
166
+	bootrecord_end:
167
+	{
168
+		{ BR_CODE_END_OF_BRA, 5 },	/* bootrec code, length */
169
+		AP_FW_CRC16,			/* CRC-16 */
170
+		0,				/* padding */
171
+		AP_FW_MD5,			/* MD5 */
172
+	}
173
+};

+ 96
- 0
firmware/apfw/apfw_head/head.S View File

@@ -0,0 +1,96 @@
1
+/*
2
+ *      $Header$
3
+ *
4
+ *      IMPORTANT--READ CAREFULLY:
5
+ *      Right, including without limitation, use, reproduction, modification,
6
+ *      and creation of derivative works, pertaining to this Source Code
7
+ *      ("Document") are governed by a legal Agreement ("Agreement") between
8
+ *      you (either an individual or a single entity) and Intersil Americas
9
+ *      Inc ("Intersil") and/or its licensee (both hereinafter called
10
+ *      Licensor).
11
+ *      By reproducing, modifying, creating derivative works, accepting,
12
+ *      installing, viewing, accessing, transforming or otherwise using this
13
+ *      Document, you agree to be bound by the terms of the Agreement. If you
14
+ *      do not agree to the terms of the Agreement, Licensor is unwilling to
15
+ *      license rights to this Document to you. In such event, you may not
16
+ *      use, reproduce, modify, create derivative works, install, view,
17
+ *      access, transport, transform or circulate this Document, and you
18
+ *      should promptly contact Licensor from which you acquired this Document
19
+ *      for instructions on returning or destroying this Document.
20
+ *
21
+ *      CONFIDENTIAL, PROPRIETARY AND TRADE SECRET INFORMATION:
22
+ *      This Document contains confidential, proprietary and trade secret
23
+ *      information of Intersil Americas Inc. and should be treated in a
24
+ *      confidential manner.
25
+ *      Furthermore, this Document is protected by national copyright laws and
26
+ *      international treaties.
27
+ *      Unauthorized use, reproduction, modification, creation of derivative
28
+ *      works or circulation is strictly prohibited.
29
+ *
30
+ *      Intersil ® is a registered trademark of Intersil Americas Inc.
31
+ *
32
+ *      Copyright © 2002 Intersil Americas Inc. All Rights Reserved.
33
+ */
34
+
35
+#define	MAGIC_MVC	0x43564d78	@ "xMVC"
36
+#define	MAGIC_SYST	0x53595378	@ "xSYS"
37
+#define	MAGIC_OKAY	0x59414B4F	@ "OKAY"
38
+
39
+      .section ".start", #alloc, #execinstr
40
+      .align
41
+
42
+start:
43
+      .type    start,#function
44
+
45
+      .long    MAGIC_OKAY              @ magic1 = "OKAY" to identify an image
46
+      b   entry                        @ vector
47
+      .long    0                       @ crc_start
48
+      .long    0                       @ crc_end
49
+      .long    0                       @ crc_code
50
+
51
+/*----------------------------------------------------------------*
52
+ | Between the .start and the .main section, the boot record      |
53
+ | area is located. This is defined in the file bra.c and is      |
54
+ | linked to the correct location as defined in the linker        |
55
+ | script apfw_head.lds                                             |
56
+ *----------------------------------------------------------------*/
57
+
58
+      .section ".main", #alloc, #execinstr
59
+
60
+/*----------------------------------------------------------------*
61
+ | r0: Our own start address                                      |
62
+ | r1: Address of boot struct                                     |
63
+ | r2: Address of boot parameter block                            |
64
+ | --> r1 and r2 need to be passed to each started component <--  |
65
+ *----------------------------------------------------------------*/
66
+
67
+entry:
68
+
69
+         mov   r5, r0                  @ r5 holds our original start address
70
+         ldr   r6, =MAGIC_MVC          @ r6 holds the magic that we are looking for, we start with MVC
71
+         add   r3, r0, #0x01000000     @ Search through 16Mbyte
72
+loop1:
73
+         add   r0, r0, #512            @ in 512 byte increments
74
+         cmp   r0, r3                  @ are we passed 16Mbyte yet ?
75
+         beq   nothing_found
76
+         ldr   r4, [r0]
77
+         cmp   r4, r6                  @ do we see a magic here ?
78
+         bne   loop1
79
+         
80
+         mov   lr, pc                  @ found an image: start it
81
+         add   pc, r0, #4
82
+
83
+         ldr   r6, =MAGIC_SYST         @ now continue searching for a SYSTEM image
84
+         mov   r0, r5                  @ from the beginning
85
+         b     loop1
86
+
87
+nothing_found:
88
+
89
+loop_forever:
90
+         b     loop_forever            @ normally pc should never reach this point
91
+
92
+
93
+.align	4
94
+	.long  0                       @ Make sure the MAGIC_MVC and MAGIC_SYST which are stored
95
+                                       @ as inline literals are not on a 512 byte boundary.
96
+.ltorg

+ 65
- 0
firmware/apfw/include/component_interface.h View File

@@ -0,0 +1,65 @@
1
+/*  $Header$
2
+ *
3
+ *  Copyright (C) 2002 Intersil Americas Inc.
4
+ *
5
+ *  This program is free software; you can redistribute it and/or modify
6
+ *  it under the terms of the GNU General Public License as published by
7
+ *  the Free Software Foundation; either version 2 of the License
8
+ *
9
+ *  This program is distributed in the hope that it will be useful,
10
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12
+ *  GNU General Public License for more details.
13
+ *
14
+ *  You should have received a copy of the GNU General Public License
15
+ *  along with this program; if not, write to the Free Software
16
+ *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
17
+ *
18
+ */
19
+#ifndef _COMPONENT_INTERFACE_H
20
+#define _COMPONENT_INTERFACE_H
21
+
22
+#include "component_version.h"
23
+#include "identification/customer.h"		/* For OEM and Product interface */
24
+#include "identification/hardware_variants.h"	/* For Hardware interface */
25
+
26
+/* Dependent Interfaces */
27
+#define AP_FW_NEEDED_HW_IF		BR_IF_VAR_ISL39300A_1
28
+
29
+#define AP_FW_NEEDED_PRODUCT_IF		BR_IF_VAR_PRODUCT_2
30
+#define AP_FW_NEEDED_OEM_IF		OEM_ID_INTERSIL
31
+#define AP_FW_NEEDED_PRIMARY_PRODUCT_IF BR_IF_VAR_PRODUCT_2
32
+#define AP_FW_NEEDED_PRIMARY_OEM_IF     OEM_ID_INTERSIL
33
+
34
+#define AP_FW_NEEDED_DBO1_IF		BR_IF_VAR_DBO1_1
35
+
36
+#define AP_FW_NEEDED_ISL37700_UAP_IF    BR_IF_VAR_ISL37700_UAP_IF_1
37
+#define AP_FW_NEEDED_ISL39000_UAP_IF    BR_IF_VAR_ISL39000_UAP_IF_1
38
+
39
+
40
+/* Exposed SNMP Interface Version */
41
+#define AP_FW_EXPOSED_SNMP_IF		BR_IF_VAR_SNMP_18
42
+#define AP_FW_EXPOSED_SNMP_IF_BTM	BR_IF_BOT_VAR_SNMP_18
43
+#define AP_FW_EXPOSED_SNMP_IF_TOP	BR_IF_TOP_VAR_SNMP_18
44
+
45
+#define AP_FW_EXPOSED_HTTP_IF		BR_IF_VAR_HTTP_1
46
+#define AP_FW_EXPOSED_HTTP_IF_BTM	BR_IF_BOT_VAR_HTTP_1
47
+#define AP_FW_EXPOSED_HTTP_IF_TOP	BR_IF_TOP_VAR_HTTP_1
48
+
49
+#define AP_FW_EXPOSED_TFTP_IF		BR_IF_VAR_TFTP_10
50
+#define AP_FW_EXPOSED_TFTP_IF_BTM	BR_IF_BOT_VAR_TFTP_10
51
+#define AP_FW_EXPOSED_TFTP_IF_TOP	BR_IF_TOP_VAR_TFTP_10
52
+
53
+#define AP_FW_EXPOSED_DAP1_MAP		BR_IF_VAR_DAP1_MAP_3
54
+#define AP_FW_EXPOSED_DAP1_MAP_BTM	BR_IF_BOT_VAR_DAP1_MAP_3
55
+#define AP_FW_EXPOSED_DAP1_MAP_TOP	BR_IF_TOP_VAR_DAP1_MAP_3
56
+
57
+#define AP_FW_EXPOSED_DAP1_FS		BR_IF_VAR_DAP1_FS_1
58
+#define AP_FW_EXPOSED_DAP1_FS_BTM	BR_IF_BOT_VAR_DAP1_FS_1
59
+#define AP_FW_EXPOSED_DAP1_FS_TOP	BR_IF_TOP_VAR_DAP1_FS_1
60
+
61
+/* CRC and MD5 */
62
+#define AP_FW_CRC16			0x0000
63
+#define AP_FW_MD5			{ 0, 0, 0, 0 }
64
+
65
+#endif /* _COMPONENT_INTERFACE_H */

+ 1
- 0
firmware/apfw/include/tooldir.mak View File

@@ -0,0 +1 @@
1
+TOOLDIR=/opt/uclinux_tools_1.6.0.0/bin

+ 11
- 0
firmware/apfw/include/version_info.mak View File

@@ -0,0 +1,11 @@
1
+# Copyright (C) 2003 Intersil Americas Inc.
2
+
3
+# Duette APDK Firmware version.
4
+AP_FW_VERSIONID = 1.0.1.0
5
+
6
+# The UMAC version that is needed for this version of the Duette APDK Firmware.
7
+AP_FW_NEEDED_UMAC_VERSIONID     = NONE
8
+# The MVC version that is needed for this version of the Duette APDK Firmware.
9
+AP_FW_NEEDED_MVC_VERSIONID      = 1.0.1.0
10
+# The uClinux System version that is needed for this version of the Duette APDK Firmware.
11
+AP_FW_NEEDED_UCLINUX_VERSIONID  = 1.0.1.0

BIN
firmware/apfw/poldhu_exeheader View File


+ 14
- 0
firmware/apfw/putfirmware.sh View File

@@ -0,0 +1,14 @@
1
+#
2
+# Simple script to ftp small firmware images to an isl3893 access point
3
+# Set APIP to your access point IP
4
+#
5
+APIP=${APIP:-192.168.1.240}
6
+tftp ${APIP} <<EOT
7
+bin
8
+put apfirmware.img
9
+q
10
+EOT
11
+pwd
12
+
13
+
14
+

+ 43
- 0
firmware/include/blob.h View File

@@ -0,0 +1,43 @@
1
+/*
2
+ *      IMPORTANT--READ CAREFULLY: The use, reproduction, modification, and
3
+ *      creation of derivative works of this Source Code ("Document") is
4
+ *      governed by a TECHNOLOGY LICENSE AGREEMENT("Agreement"), a legal
5
+ *      agreement between you (either an individual or a single entity) and
6
+ *      No Wires Needed B.V. ("NWN").  By reproducing, modifying, creating
7
+ *      derivative works, accepting, installing, viewing, accessing,
8
+ *      transforming or otherwise using this Document, you agree to be bound
9
+ *      by the terms of the Agreement.  If you do not agree to the terms of
10
+ *      the Agreement, NWN is unwilling to license the rights to use,
11
+ *      reproduce, modify, and create derivative works of this Document to you.
12
+ *      In such event, you may not use, reproduce, modify, create derivative
13
+ *      works, install, view, access, transport, transform or circulate this
14
+ *      Document, and you should promptly contact NWN or the licensor from
15
+ *      which you acquired this Document for instructions on returning or
16
+ *      destroying this Document.
17
+ *
18
+ *      CONFIDENTIAL, PROPRIETARY AND TRADE SECRET INFORMATION:  This Source
19
+ *      Code software contains confidential, proprietary and trade secret
20
+ *      information of No Wires Needed B.V. and should be treated in a
21
+ *      confidential manner.  Furthermore, this Source Code software is
22
+ *      protected by United States copyright laws and international treaties.
23
+ *      Unauthorized use, reproduction, modification, creation of derivative
24
+ *      works or circulation is strictly prohibited.
25
+ *
26
+ *      Copyright (C) 1994-2000 by No Wires Needed B.V. (NWN), The Netherlands,
27
+ *      ALL RIGHTS RESERVED
28
+ *
29
+ */
30
+
31
+#ifndef __BLOB_H__
32
+#define __BLOB_H__
33
+
34
+#include "bloboid.h"
35
+#include "blobarch.h"
36
+
37
+#ifdef BLOB_V2
38
+#include "blobv2.h"
39
+#else
40
+#include "blobv1.h"     // interface variant 1
41
+#endif
42
+
43
+#endif /* __BLOB_H__ */

+ 18
- 0
firmware/include/blob3856.h View File

@@ -0,0 +1,18 @@
1
+/*
2
+ * blob3856.h
3
+ */
4
+
5
+#ifndef __blob3856_h__
6
+#define __blob3856_h__
7
+
8
+/* Output power table index */
9
+#define DOT11_OUTPWRTABLE_FCC                   0
10
+#define DOT11_OUTPWRTABLE_MKK                   1
11
+
12
+struct obj_outputpowertable
13
+{
14
+    long *outputpowertable;
15
+    char index;
16
+};
17
+
18
+#endif /* __blob3856_h__ */

+ 120
- 0
firmware/include/blobarch.h View File

@@ -0,0 +1,120 @@
1
+/*
2
+ *      IMPORTANT--READ CAREFULLY: The use, reproduction, modification, and
3
+ *      creation of derivative works of this Source Code ("Document") is
4
+ *      governed by a TECHNOLOGY LICENSE AGREEMENT("Agreement"), a legal
5
+ *      agreement between you (either an individual or a single entity) and
6
+ *      No Wires Needed B.V. ("NWN").  By reproducing, modifying, creating
7
+ *      derivative works, accepting, installing, viewing, accessing,
8
+ *      transforming or otherwise using this Document, you agree to be bound
9
+ *      by the terms of the Agreement.  If you do not agree to the terms of
10
+ *      the Agreement, NWN is unwilling to license the rights to use,
11
+ *      reproduce, modify, and create derivative works of this Document to you.
12
+ *      In such event, you may not use, reproduce, modify, create derivative
13
+ *      works, install, view, access, transport, transform or circulate this
14
+ *      Document, and you should promptly contact NWN or the licensor from
15
+ *      which you acquired this Document for instructions on returning or
16
+ *      destroying this Document.
17
+ *
18
+ *      CONFIDENTIAL, PROPRIETARY AND TRADE SECRET INFORMATION:  This Source
19
+ *      Code software contains confidential, proprietary and trade secret
20
+ *      information of No Wires Needed B.V. and should be treated in a
21
+ *      confidential manner.  Furthermore, this Source Code software is
22
+ *      protected by United States copyright laws and international treaties.
23
+ *      Unauthorized use, reproduction, modification, creation of derivative
24
+ *      works or circulation is strictly prohibited.
25
+ *
26
+ *      Copyright (C) 1994-2000 by No Wires Needed B.V. (NWN), The Netherlands,
27
+ *      ALL RIGHTS RESERVED
28
+ *
29
+ */
30
+
31
+#ifndef __BLOBARCH_H__
32
+#define __BLOBARCH_H__
33
+
34
+/*
35
+ * Blob Information Structure
36
+ */
37
+#define BIS_CME                 0x0000
38
+#define BIS_DEVS                0x0001
39
+#define BIS_DEVDESCR            0x0002
40
+#define BIS_END                 0xFFFF
41
+
42
+/*
43
+ * BIS Configuration Element size
44
+ */
45
+#define BIS_CME_SIZE    128
46
+
47
+/*
48
+ * BIS Device type definitions
49
+ */
50
+#define BIS_DT_DEBUG            0
51
+#define BIS_DT_802DOT11         1
52
+#define BIS_DT_802DOT3          2
53
+#define BIS_DT_PCMCIA           3
54
+#define BIS_DT_PCI_CB           4
55
+#define BIS_DT_BLUETOOTH        5
56
+#define BIS_DT_UART             6
57
+
58
+/*
59
+ * Definitions
60
+ */
61
+
62
+/* Error Codes */
63
+#define BER_NONE                0
64
+#define BER_UNSPEC              -1
65
+#define BER_UNSUP               -2
66
+#define BER_CONF                -3
67
+#define BER_MEM                 -4
68
+#define BER_TIMEOUT             -5
69
+#define BER_FRAME               -6
70
+#define BER_OIDUNK              -7
71
+#define BER_OVERFLOW            -8
72
+#define BER_DSTUNKN             -9
73
+
74
+/* Operations on Objects */
75
+#define OPGET                   0
76
+#define OPSET                   1
77
+#define OPTRAP                  2
78
+
79
+/* Frame State */
80
+#define FSTXQUEUED              0
81
+#define FSTXFRAGMENTED          1
82
+#define FSTXNOTQUEUED           2
83
+#define FSTXREJECTED            3
84
+#define FSTXFAILED              4
85
+#define FSTXSUCCESSFUL          5
86
+#define FSRXFAILED              6
87
+#define FSRXSUCCESSFUL          7
88
+#define FSADDED                 8
89
+#define FSRETURNED              9
90
+
91
+/* Requests */
92
+#define REQSERVICE              0x0001
93
+#define REQTRAP                 0x0002
94
+
95
+/* Requests for frame devices */
96
+#define REQFRAMERX              0x0004
97
+#define REQFRAMEADD             0x0008
98
+#define REQFRAMERETURN          0x0010
99
+
100
+/* Alternate requests for data devices */
101
+#define REQDATAPENDING          0x0004
102
+#define REQDATASENT             0x0008
103
+
104
+/* Misc requests */
105
+#define REQWATCHDOG             0x1000
106
+
107
+/* State */
108
+#define STSTOPPED               0
109
+#define STREADY                 1
110
+#define STRUNNING               2
111
+
112
+/* Device Modes */
113
+#define MODE_NONE               -1
114
+#define MODE_UNKNOWN            -1
115
+#define MODE_PROMISCUOUS        0
116
+#define MODE_NORMAL             1
117
+#define MODE_CLIENT             1
118
+#define MODE_AP                 2
119
+
120
+#endif /* __BLOBARCH_H__ */

+ 48
- 0
firmware/include/bloboid.h View File

@@ -0,0 +1,48 @@
1
+/*
2
+ *      IMPORTANT--READ CAREFULLY: The use, reproduction, modification, and
3
+ *      creation of derivative works of this Source Code ("Document") is
4
+ *      governed by a TECHNOLOGY LICENSE AGREEMENT("Agreement"), a legal
5
+ *      agreement between you (either an individual or a single entity) and
6
+ *      No Wires Needed B.V. ("NWN").  By reproducing, modifying, creating
7
+ *      derivative works, accepting, installing, viewing, accessing,
8
+ *      transforming or otherwise using this Document, you agree to be bound
9
+ *      by the terms of the Agreement.  If you do not agree to the terms of
10
+ *      the Agreement, NWN is unwilling to license the rights to use,
11
+ *      reproduce, modify, and create derivative works of this Document to you.
12
+ *      In such event, you may not use, reproduce, modify, create derivative
13
+ *      works, install, view, access, transport, transform or circulate this
14
+ *      Document, and you should promptly contact NWN or the licensor from
15
+ *      which you acquired this Document for instructions on returning or
16
+ *      destroying this Document.
17
+ *
18
+ *      CONFIDENTIAL, PROPRIETARY AND TRADE SECRET INFORMATION:  This Source
19
+ *      Code software contains confidential, proprietary and trade secret
20
+ *      information of No Wires Needed B.V. and should be treated in a
21
+ *      confidential manner.  Furthermore, this Source Code software is
22
+ *      protected by United States copyright laws and international treaties.
23
+ *      Unauthorized use, reproduction, modification, creation of derivative
24
+ *      works or circulation is strictly prohibited.
25
+ *
26
+ *      Copyright (C) 1994-2000 by No Wires Needed B.V. (NWN), The Netherlands,
27
+ *      ALL RIGHTS RESERVED
28
+ *
29
+ */
30
+
31
+#ifndef __BLOBOID_H__
32
+#define __BLOBOID_H__
33
+
34
+#ifdef MVC2_1
35
+#include "mvc2/bloboid_1.h"
36
+#elif defined MVC2_2
37
+#include "mvc2/bloboid_2.h"
38
+#elif defined MVC1_2
39
+#include "mvc1/bloboid_2.h"     // interface variant 2
40
+#elif defined MVC1_1CSA
41
+#include "mvc1/bloboid_1csa.h"  // customer specific version 1 of variant 1
42
+#elif defined MVC1_3
43
+#include "mvc1/bloboid_3.h"     // with obj_stastat extension
44
+#else
45
+#include "mvc1/bloboid_1.h"     // interface variant 1
46
+#endif
47
+
48
+#endif /* __BLOBOID_H__ */

+ 92
- 0
firmware/include/blobstub.h View File

@@ -0,0 +1,92 @@
1
+/*
2
+ *      IMPORTANT--READ CAREFULLY: The use, reproduction, modification, and
3
+ *      creation of derivative works of this Source Code ("Document") is
4
+ *      governed by a TECHNOLOGY LICENSE AGREEMENT("Agreement"), a legal
5
+ *      agreement between you (either an individual or a single entity) and
6
+ *      No Wires Needed B.V. ("NWN").  By reproducing, modifying, creating
7
+ *      derivative works, accepting, installing, viewing, accessing,
8
+ *      transforming or otherwise using this Document, you agree to be bound
9
+ *      by the terms of the Agreement.  If you do not agree to the terms of
10
+ *      the Agreement, NWN is unwilling to license the rights to use,
11
+ *      reproduce, modify, and create derivative works of this Document to you.
12
+ *      In such event, you may not use, reproduce, modify, create derivative
13
+ *      works, install, view, access, transport, transform or circulate this
14
+ *      Document, and you should promptly contact NWN or the licensor from
15
+ *      which you acquired this Document for instructions on returning or
16
+ *      destroying this Document.
17
+ *
18
+ *      CONFIDENTIAL, PROPRIETARY AND TRADE SECRET INFORMATION:  This Source
19
+ *      Code software contains confidential, proprietary and trade secret
20
+ *      information of No Wires Needed B.V. and should be treated in a
21
+ *      confidential manner.  Furthermore, this Source Code software is
22
+ *      protected by United States copyright laws and international treaties.
23
+ *      Unauthorized use, reproduction, modification, creation of derivative
24
+ *      works or circulation is strictly prohibited.
25
+ *
26
+ *      Copyright (C) 1994-2000 by No Wires Needed B.V. (NWN), The Netherlands,
27
+ *      ALL RIGHTS RESERVED
28
+ *
29
+ */
30
+
31
+#ifndef __BLOBSTUB_H__
32
+#define __BLOBSTUB_H__
33
+
34
+/*
35
+ * Blob
36
+ */
37
+
38
+extern int blob_init( struct msg_init *init );
39
+extern int blob_abort( void );
40
+extern int blob_reset( void );
41
+extern int blob_sleep( void );
42
+extern int blob_conf( struct msg_conf *config );
43
+
44
+extern int blob_reqs( void );
45
+extern int blob_service( void );
46
+#ifdef BLOB_V2
47
+extern int blob_trap(struct msg_conf *trap);
48
+#else
49
+extern struct msg_conf *blob_trap( void );
50
+#endif
51
+
52
+extern void blob_watchdog( void );
53
+
54
+/*
55
+ * Device functions
56
+ */
57
+
58
+#ifdef BLOB_V2
59
+extern int dev_start( int device, struct msg_start *start );
60
+#else
61
+extern int dev_start( int device, int mode );
62
+#endif
63
+
64
+extern int dev_run( int device );
65
+extern int dev_halt( int device );
66
+extern int dev_stop( int device );
67
+extern int dev_conf( int device, struct msg_conf *config );
68
+extern int dev_setup( int device, struct msg_setup *setup );
69
+
70
+extern int dev_frame_add( int device, struct msg_frame *frame );
71
+extern int dev_frame_tx( int device, struct msg_frame *frame );
72
+
73
+extern int dev_write( int device, struct msg_data *data );
74
+
75
+
76
+extern int dev_state( int device );
77
+extern int dev_reqs( int device );
78
+extern int dev_service( int device );
79
+#ifdef BLOB_V2
80
+extern int dev_trap( int device, struct msg_conf *trap );
81
+#else
82
+extern struct msg_conf *dev_trap( int device );
83
+#endif
84
+
85
+extern struct msg_frame *dev_frame_return( int device );
86
+extern struct msg_frame *dev_frame_rx( int device );
87
+
88
+extern struct msg_data *dev_data( int device );
89
+
90
+extern void dev_watchdog( int device );
91
+
92
+#endif /* __BLOBSTUB_H__ */

+ 379
- 0
firmware/include/blobv2.h View File

@@ -0,0 +1,379 @@
1
+/*
2
+ *      IMPORTANT--READ CAREFULLY: The use, reproduction, modification, and
3
+ *      creation of derivative works of this Source Code ("Document") is
4
+ *      governed by a TECHNOLOGY LICENSE AGREEMENT("Agreement"), a legal
5
+ *      agreement between you (either an individual or a single entity) and
6
+ *      No Wires Needed B.V. ("NWN").  By reproducing, modifying, creating
7
+ *      derivative works, accepting, installing, viewing, accessing,
8
+ *      transforming or otherwise using this Document, you agree to be bound
9
+ *      by the terms of the Agreement.  If you do not agree to the terms of
10
+ *      the Agreement, NWN is unwilling to license the rights to use,
11
+ *      reproduce, modify, and create derivative works of this Document to you.
12
+ *      In such event, you may not use, reproduce, modify, create derivative
13
+ *      works, install, view, access, transport, transform or circulate this
14
+ *      Document, and you should promptly contact NWN or the licensor from
15
+ *      which you acquired this Document for instructions on returning or
16
+ *      destroying this Document.
17
+ *
18
+ *      CONFIDENTIAL, PROPRIETARY AND TRADE SECRET INFORMATION:  This Source
19
+ *      Code software contains confidential, proprietary and trade secret
20
+ *      information of No Wires Needed B.V. and should be treated in a
21
+ *      confidential manner.  Furthermore, this Source Code software is
22
+ *      protected by United States copyright laws and international treaties.
23
+ *      Unauthorized use, reproduction, modification, creation of derivative
24
+ *      works or circulation is strictly prohibited.
25
+ *
26
+ *      Copyright (C) 1994-2000 by No Wires Needed B.V. (NWN), The Netherlands,
27
+ *      ALL RIGHTS RESERVED
28
+ *
29
+ */
30
+
31
+#ifndef __BLOBV2_H__
32
+#define __BLOBV2_H__
33
+
34
+#include "bloboid.h"
35
+
36
+/*
37
+ * Blob Information Structure
38
+ */
39
+#define BIS_CME                 0x0000
40
+#define BIS_DEVS                0x0001
41
+#define BIS_DEVDESCR            0x0002
42
+#define BIS_END                 0xFFFF
43
+
44
+/*
45
+ * BIS Configuration Element size
46
+ */
47
+#define BIS_CME_SIZE    128
48
+
49
+/*
50
+ * BIS Device type definitions
51
+ */
52
+#define BIS_DT_DEBUG            0
53
+#define BIS_DT_802DOT11         1
54
+#define BIS_DT_802DOT3          2
55
+#define BIS_DT_PCMCIA           3
56
+#define BIS_DT_PCI_CB           4
57
+#define BIS_DT_BLUETOOTH        5
58
+#define BIS_DT_UART             6
59
+
60
+#ifndef __ASSEMBLER__
61
+
62
+#ifdef CONF_3877
63
+#include "blob3877.h"
64
+#endif
65
+
66
+/*
67
+ * BIS structures
68
+ */
69
+
70
+struct bis_dev_element
71
+{
72
+    int devs;
73
+    char *irq_stats;
74
+
75
+    short mtu;
76
+    short header;
77
+    short trailer;
78
+};
79
+
80
+struct device;
81
+
82
+struct bis_dev_descr_element
83
+{
84
+    int type;
85
+    int long( **funcs )( unsigned long msg, struct device *device );
86
+};
87
+
88
+#endif /* __ASSEMBLER__ */
89
+
90
+/*
91
+ * Definitions
92
+ */
93
+
94
+/* Recommended dynamic device numbers */
95
+#define DEVICE_DEBUG            0
96
+#define DEVICE_WLAN             1
97
+#define DEVICE_HOSTDS           2
98
+#define DEVICE_WAN		3
99
+
100
+/* Fixed device numbers */
101
+#define DEVICE_BLOB             14
102
+#define DEVICE_GENERIC		15 // device can be found in msg_blob.device
103
+#define DEVICE_MAX_COUNT	16
104
+
105
+/* Message Identifiers */
106
+
107
+/* These are the CRm values */
108
+
109
+/* MCR/MRC */
110
+
111
+#define MSG_START		0	// others
112
+#define MSG_INIT		0	// blob
113
+#define	MSG_ABORT		1
114
+#define MSG_STOP		1	// blob
115
+#define MSG_RUN                 2
116
+#define MSG_RESET		2	// blob
117
+#define MSG_HALT                3
118
+#define MSG_SLEEP		3	// blob
119
+#define MSG_STATE		4
120
+#define MSG_REQS		5	// all
121
+#define MSG_SERVICE		6	// all
122
+#define MSG_TRAP		7	// all
123
+#define MSG_FRAME_RETURN        8	// all
124
+#define MSG_FRAME_RX            9
125
+#define MSG_READ                9
126
+#define MSG_CONF                10	// all
127
+#define MSG_SETUP               11
128
+#define MSG_FRAME_ADD           11
129
+#define MSG_FRAME_TX            12
130
+#define MSG_WRITE               12
131
+#define MSG_WATCHDOG            13	// all
132
+
133
+
134
+
135
+/*
136
+ * assembler offsets
137
+ */
138
+
139
+/*
140
+ * struct msg_blob, size 0x8 (8)
141
+ */
142
+
143
+#define cMSG_BLOB_sizeof		 0x8	// sizeof( struct msg_blob )
144
+#define cMSG_BLOB_ERROR			 0	// int
145
+#define cMSG_BLOB_DEVICE		 0x4	// char
146
+#define cMSG_BLOB_RESERVED		 0x5	// array[3] of char
147
+
148
+/*
149
+ * struct msg_conf, size 0x18 (24)
150
+ */
151
+
152
+#define cMSG_CONF_sizeof		 0x18	// sizeof( struct msg_conf )
153
+#define cMSG_CONF_BLOB			 0	// msg_blob
154
+#define cMSG_CONF_BLOB_ERROR		 0	// int
155
+#define cMSG_CONF_BLOB_DEVICE		 0x4	// char
156
+#define cMSG_CONF_BLOB_RESERVED		 0x5	// array[3] of char
157
+#define cMSG_CONF_OPERATION		 0x8	// int
158
+#define cMSG_CONF_OID			 0xc	// int
159
+#define cMSG_CONF_DATA			 0x10	// pointer to int
160
+#define cMSG_CONF_SIZE			 0x14	// int
161
+
162
+/*
163
+ * struct msg_data, size 0x14 (20)
164
+ */
165
+
166
+#define cMSG_DATA_sizeof		 0x14	// sizeof( struct msg_data )
167
+#define cMSG_DATA_BLOB			 0	// msg_blob
168
+#define cMSG_DATA_BLOB_ERROR		 0	// int
169
+#define cMSG_DATA_BLOB_DEVICE		 0x4	// char
170
+#define cMSG_DATA_BLOB_RESERVED		 0x5	// array[3] of char
171
+#define cMSG_DATA_DATA			 0x8	// pointer to unsigned char
172
+#define cMSG_DATA_LENGTH		 0xc	// int
173
+#define cMSG_DATA_MAX			 0x10	// int
174
+
175
+/*
176
+ * struct msg_frame, size 0x38 (56)
177
+ */
178
+
179
+#define cMSG_FRAME_sizeof		 0x38	// sizeof( struct msg_frame )
180
+#define cMSG_FRAME_BLOB			 0	// msg_blob
181
+#define cMSG_FRAME_BLOB_ERROR		 0	// int
182
+#define cMSG_FRAME_BLOB_DEVICE		 0x4	// char
183
+#define cMSG_FRAME_BLOB_RESERVED	 0x5	// array[3] of char
184
+#define cMSG_FRAME_NEXT			 0x8	// pointer to msg_frame
185
+#define cMSG_FRAME_HANDLE		 0xc	// pointer to void
186
+#define cMSG_FRAME_MPDU			 0x10	// pointer to unsigned char
187
+#define cMSG_FRAME_SIZE			 0x14	// int
188
+#define cMSG_FRAME_PRIORITY		 0x18	// int
189
+#define cMSG_FRAME_STATUS		 0x1c	// int
190
+#define cMSG_FRAME_FLAGS		 0x20	// unsigned short
191
+#define cMSG_FRAME_DEST			 0x22	// array[6] of unsigned char
192
+#define cMSG_FRAME_SRC			 0x28	// array[6] of unsigned char
193
+#define cMSG_FRAME_WDS			 0x2e	// array[6] of unsigned char
194
+#define cMSG_FRAME_SERVICESET		 0x34	// char
195
+#define cMSG_FRAME_ANNEX		 0x38	// pointer to frame_annex
196
+
197
+/*
198
+ * struct msg_init, size 0x1c (28)
199
+ */
200
+
201
+#define cMSG_INIT_sizeof		 0x1c	// sizeof( struct msg_init )
202
+#define cMSG_INIT_BLOB			 0	// msg_blob
203
+#define cMSG_INIT_BLOB_ERROR		 0	// int
204
+#define cMSG_INIT_BLOB_DEVICE		 0x4	// char
205
+#define cMSG_INIT_BLOB_RESERVED		 0x5	// array[3] of char
206
+#define cMSG_INIT_UND_HANDLER		 0x8	// pointer to function
207
+#define cMSG_INIT_SWI_HANDLER		 0xc	// pointer to function
208
+#define cMSG_INIT_PRF_HANDLER		 0x10	// pointer to function
209
+#define cMSG_INIT_DAT_HANDLER		 0x14	// pointer to function
210
+#define cMSG_INIT_IRQ_HANDLER		 0x18	// pointer to function
211
+
212
+/*
213
+ * struct msg_setup, size 0x18 (24)
214
+ */
215
+
216
+#define cMSG_SETUP_sizeof		 0x18	// sizeof( struct msg_setup )
217
+#define cMSG_SETUP_BLOB			 0	// msg_blob
218
+#define cMSG_SETUP_BLOB_ERROR		 0	// int
219
+#define cMSG_SETUP_BLOB_DEVICE		 0x4	// char
220
+#define cMSG_SETUP_BLOB_RESERVED	 0x5	// array[3] of char
221
+#define cMSG_SETUP_TX_BUF		 0x8	// pointer to char
222
+#define cMSG_SETUP_TX_BUF_SIZE		 0xc	// int
223
+#define cMSG_SETUP_RX_BUF		 0x10	// pointer to char
224
+#define cMSG_SETUP_RX_BUF_SIZE		 0x14	// int
225
+
226
+/*
227
+ * struct msg_start, size 0x10 (16)
228
+ */
229
+
230
+#define cMSG_START_sizeof		 0x10	// sizeof( struct msg_start )
231
+#define cMSG_START_BLOB			 0	// msg_blob
232
+#define cMSG_START_BLOB_ERROR		 0	// int
233
+#define cMSG_START_BLOB_DEVICE		 0x4	// char
234
+#define cMSG_START_BLOB_RESERVED	 0x5	// array[3] of char
235
+#define cMSG_START_NR			 0x8	// int
236
+#define cMSG_START_MODE			 0xc	// int
237
+
238
+#ifndef __ASSEMBLER__
239
+
240
+/*
241
+ * Message structures
242
+ */
243
+
244
+/*
245
+ * The blob message appears first in any type of message.
246
+ */
247
+
248
+typedef struct msg_blob
249
+{
250
+    int error;          /* Error status returned by blob */
251
+    char device;        /* Device number */
252
+    char reserved[3];   /* Reserved */
253
+} msg_blob;
254
+
255
+typedef struct msg_init
256
+{
257
+    msg_blob blob;
258
+
259
+    void(*und_handler)(void);
260
+    void(*swi_handler)(void);
261
+    void(*prf_handler)(void);
262
+    void(*dat_handler)(void);
263
+    void(*irq_handler)(void);
264
+} msg_init;
265
+
266
+typedef struct msg_start
267
+{
268
+    msg_blob blob;
269
+
270
+    int nr;
271
+    int mode;
272
+} msg_start;
273
+
274
+typedef struct msg_conf
275
+{
276
+    msg_blob blob;
277
+
278
+    int operation;
279
+    int oid;
280
+    long *data;
281
+    long size;
282
+} msg_conf;
283
+
284
+/* Annex types */
285
+#define ANNEX_TGENERIC          -1
286
+#define ANNEX_TRX               0
287
+#define ANNEX_TTX               1
288
+
289
+/* Annex flags */
290
+#define ANNEX_RXF_CRC           0x0001
291
+#define ANNEX_RXF_RUNT          0x0002
292
+#define ANNEX_RXF_OVERSIZE      0x0004
293
+#define ANNEX_RXF_ALIGN         0x0008
294
+
295
+typedef union frame_annex
296
+{
297
+    struct annex
298
+    {
299
+        short type;
300
+        short length;
301
+    } generic;
302
+
303
+    struct annex_rx
304
+    {
305
+        short type;
306
+        short length;
307
+
308
+        unsigned long clock;
309
+        unsigned short flags;
310
+
311
+        unsigned short rate;
312
+        unsigned short frequency;
313
+        unsigned char antenna;
314
+        unsigned char preamble;
315
+        signed char rssi;
316
+        unsigned char quality;
317
+    } rx;
318
+
319
+    struct annex_tx
320
+    {
321
+        short type;
322
+        short length;
323
+
324
+        unsigned short rate;
325
+        unsigned char antenna;
326
+        unsigned char preamble;
327
+
328
+        unsigned short lifetime;
329
+        unsigned short fragment;
330
+        unsigned char retries;
331
+    } tx;
332
+
333
+} frame_annex;
334
+
335
+typedef struct msg_frame
336
+{
337
+    msg_blob blob;
338
+    struct msg_frame *next;
339
+
340
+    void *handle;
341
+
342
+    unsigned char *mpdu;
343
+    int size;
344
+    int priority;
345
+    int status;
346
+
347
+    unsigned short flags;
348
+    unsigned char dest[6];
349
+    unsigned char src[6];
350
+    unsigned char wds[6];
351
+
352
+    unsigned char serviceset;
353
+    unsigned char pad[3];
354
+
355
+    frame_annex *annex;
356
+} msg_frame;
357
+
358
+typedef struct msg_data
359
+{
360
+    msg_blob blob;
361
+
362
+    unsigned char *data;
363
+    int length;
364
+    int max;
365
+} msg_data;
366
+
367
+typedef struct msg_setup
368
+{
369
+    msg_blob blob;
370
+
371
+    char *tx_buf;
372
+    int tx_buf_size;
373
+    char *rx_buf;
374
+    int rx_buf_size;
375
+} msg_setup;
376
+
377
+#endif /* __ASSEMBLER__ */
378
+
379
+#endif /* __BLOBV2_H__ */

+ 189
- 0
firmware/include/bootdbg.h View File

@@ -0,0 +1,189 @@
1
+/*
2
+ *      IMPORTANT--READ CAREFULLY: The use, reproduction, modification, and
3
+ *      creation of derivative works of this Source Code ("Document") is
4
+ *      governed by a TECHNOLOGY LICENSE AGREEMENT("Agreement"), a legal
5
+ *      agreement between you (either an individual or a single entity) and
6
+ *      No Wires Needed B.V. ("NWN").  By reproducing, modifying, creating
7
+ *      derivative works, accepting, installing, viewing, accessing,
8
+ *      transforming or otherwise using this Document, you agree to be bound
9
+ *      by the terms of the Agreement.  If you do not agree to the terms of
10
+ *      the Agreement, NWN is unwilling to license the rights to use,
11
+ *      reproduce, modify, and create derivative works of this Document to you.
12
+ *      In such event, you may not use, reproduce, modify, create derivative
13
+ *      works, install, view, access, transport, transform or circulate this
14
+ *      Document, and you should promptly contact NWN or the licensor from
15
+ *      which you acquired this Document for instructions on returning or
16
+ *      destroying this Document.
17
+ *
18
+ *      CONFIDENTIAL, PROPRIETARY AND TRADE SECRET INFORMATION:  This Source
19
+ *      Code software contains confidential, proprietary and trade secret
20
+ *      information of No Wires Needed B.V. and should be treated in a
21
+ *      confidential manner.  Furthermore, this Source Code software is
22
+ *      protected by United States copyright laws and international treaties.
23
+ *      Unauthorized use, reproduction, modification, creation of derivative
24
+ *      works or circulation is strictly prohibited.
25
+ *
26
+ *      Copyright (C) 1994-2000 by No Wires Needed B.V. (NWN), The Netherlands,
27
+ *      ALL RIGHTS RESERVED
28
+ *
29
+ */
30
+
31
+#ifndef __BOOTDBG_H__
32
+#define __BOOTDBG_H__
33
+
34
+#define BOOTMAGIC_OKAY  0x59414B4F
35
+#define BOOTMAGIC_DBUG  0x47554244
36
+#define BOOTMAGIC_BRAM  0x4D415242
37
+#define BOOTMAGIC_xMVC	0x43564D78
38
+#define BOOTMAGIC_BSv2	0x32765342
39
+#define BOOTMAGIC_PARM	0x4d524150
40
+#define BOOTMAGIC_BOOT  0x544F4F42
41
+
42
+#ifdef CONF_3893
43
+
44
+// BOOT PARAMETER BLOCK	(3893 BootROM, see doc 553183)
45
+
46
+#define BP_MAGIC	 0
47
+#define BP_MESSAGE	 4
48
+#define BP_COMMAND	 8
49
+#define BP_CONT	        12
50
+#define BP_PBUF_COUNT	16
51
+#define BP_PBUF_INFO	20
52
+#define BP_MAC_ADDR	24
53
+#define BP_DBG_ADDR	32
54
+#define BP_BAUDRATE	40
55
+#define BP_DBG_ETHER	44
56
+#define BP_CRASH_INFO	48
57
+#define BP_BOOT_INFO	52
58
+
59
+#define BP_SIZE		56
60
+#define BP_END_OFFSET   0x00040000
61
+#ifndef __ASSEMBLER__
62
+
63
+struct printf_buf
64
+{
65
+    long head;
66
+    long tail;
67
+    long queue[1];
68
+};
69
+
70
+struct printf_info
71
+{
72
+    long size;
73
+    struct printf_buf *buf;
74
+};
75
+
76
+struct mac_address 
77
+{
78
+    unsigned long lo;
79
+    unsigned long hi;
80
+};
81
+
82
+struct memory_area
83
+{
84
+    void *start;
85
+    int size;
86
+};
87
+
88
+struct crash_info 
89
+{
90
+    char *log_file;
91
+    char *message;
92
+    long registers;
93
+    long printf_queues;
94
+    char *dump_file;
95
+    long area_count;
96
+    struct memory_area *areas;
97
+};
98
+
99
+struct boot_info
100
+{
101
+    int delay;
102
+    char *filename;
103
+};
104
+
105
+struct boot_parms 
106
+{
107
+    long magic;
108
+    char *message;
109
+    int (*command)(int argc, int *hex, const char **argv);
110
+    void (*cont)(void);
111
+    long printf_buf_count;
112
+    struct printf_info *printf_info;
113
+    struct mac_address mac_address;
114
+    struct mac_address debug_addr;
115
+    unsigned baudrate;
116
+    int debug_ether;
117
+    struct crash_info *crash_info;
118
+    struct boot_info *boot_info;
119
+};
120
+
121
+#endif
122
+
123
+// BOOT STRUCT
124
+
125
+#define BS_OFFSET       0x0003F000 /* Offset relative to start of RAM */
126
+#define BS_MAGIC	0x00
127
+#define BS_MVC_RESET	0x04
128
+#define BS_MVC_BIS	0x08
129
+#define	BS_SRAM_BASE	0x0c
130
+#define BS_SRAM_SIZE	0x10
131
+
132
+#define BS_SIZE		0x14
133
+
134
+#ifndef __ASSEMBLER__
135
+
136
+struct boot_struct {
137
+    unsigned long magic;
138
+    void (*reset)( void );
139
+    unsigned long *bis;
140
+    unsigned long sram_base;
141
+    unsigned long sram_size;
142
+};
143
+ 
144
+#endif
145
+
146
+#else // ---------------------- !3893 -------------------------
147
+
148
+#define BOOT_OFFSET     0x0003F000 /* Offset relative to start of RAM */
149
+#define BOOT_MAGIC	0
150
+#define BOOT_RAMBASE	4
151
+#define BOOT_RAMSIZE	8
152
+
153
+#define	DEBUG_REGDUMP	16
154
+
155
+#ifndef __ASSEMBLER__
156
+
157
+struct boot_struct
158
+{
159
+	unsigned long	boot_magic;
160
+	unsigned long	boot_rambase;
161
+	unsigned long	boot_ramsize;
162
+};
163
+
164
+#endif
165
+
166
+#define DEBUG_OFFSET		16
167
+
168
+#define DEBUG_MAX_QUEUE		128	/* Queue of debug messages */
169
+#define DEBUG_MAX_EVENTS	32	/* Queue of event messages */
170
+
171
+#ifndef __ASSEMBLER__
172
+
173
+struct debug_struct
174
+{
175
+	unsigned long regdump[37];
176
+
177
+	unsigned long head;
178
+	unsigned long tail;
179
+	unsigned long queue[DEBUG_MAX_QUEUE*4];
180
+	unsigned long ehead;
181
+	unsigned long etail;
182
+	unsigned long events[DEBUG_MAX_EVENTS*4];
183
+};
184
+
185
+#endif
186
+
187
+#endif
188
+
189
+#endif /*__BOOTDBG_H__*/

+ 362
- 0
firmware/include/identification/bootrec.h View File

@@ -0,0 +1,362 @@
1
+/*  $Header: //depot/Software/include/identification/bootrec.h#7 $
2
+ *
3
+ *  Copyright (C) 2002 Intersil Americas Inc.
4
+ *
5
+ *  This program is free software; you can redistribute it and/or modify
6
+ *  it under the terms of the GNU General Public License as published by
7
+ *  the Free Software Foundation; either version 2 of the License
8
+ *
9
+ *  This program is distributed in the hope that it will be useful,
10
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12
+ *  GNU General Public License for more details.
13
+ *
14
+ *  You should have received a copy of the GNU General Public License
15
+ *  along with this program; if not, write to the Free Software
16
+ *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
17
+ *
18
+ */
19
+
20
+/* Some preprocessor magic to use this file with MVC, GCC and ARM Compiler */
21
+#ifdef __GNUC__
22
+#define GCC_PACKED __attribute__((packed))
23
+#define ARM_PACKED
24
+#define INLINE inline
25
+#else
26
+#ifdef WIN32
27
+#define ARM_PACKED
28
+#define GCC_PACKED
29
+#define INLINE
30
+#else
31
+#define ARM_PACKED __packed
32
+#define GCC_PACKED
33
+#define INLINE __inline
34
+#endif
35
+#endif
36
+
37
+/*
38
+ * This file contains the definitions for Boot Records that
39
+ * are used to identify (software/hardware) components.
40
+ *
41
+ * NOTE: All bootrecords start at a 32 bit aligned address
42
+ * so the structs should NOT be packed
43
+ */
44
+
45
+#ifndef _BOOTREC_H
46
+#define _BOOTREC_H
47
+
48
+#define BR_MAX_BRA_SIZE		512	/* size in bytes */
49
+
50
+#define BR_CODE_MIN			0x80000000
51
+#define BR_CODE_COMPONENT_ID		0x80000001
52
+#define BR_CODE_COMPONENT_VERSION	0x80000002
53
+#define BR_CODE_DEPENDENT_IF		0x80000003
54
+#define BR_CODE_EXPOSED_IF		0x80000004
55
+#define BR_CODE_DESCR			0x80000101
56
+#define BR_CODE_MAX			0x8FFFFFFF
57
+#define BR_CODE_END_OF_BRA		0xFF0000FF
58
+#define LEGACY_BR_CODE_END_OF_BRA	0xFFFFFFFF
59
+
60
+#ifndef VER_STRING_SIZE
61
+#define VER_STRING_SIZE 6		/* size in 24 bit words */
62
+#endif
63
+
64
+#ifndef __ASSEMBLER__	// skip te rest for assembler files
65
+
66
+#ifndef BOOT_BOOTREC
67
+/*
68
+ * Each boot record is identified by a unique code, followed
69
+ * by the length (in 32 bit words) of the data in the record.
70
+ */
71
+struct s_bootrec_hdr {
72
+	unsigned long code;
73
+	unsigned long length;
74
+};
75
+
76
+/* Generic bootrecord structure that can be mapped to each bootrecord */
77
+struct s_bootrecord {
78
+	struct s_bootrec_hdr hdr;
79
+	char start_of_data;
80
+};
81
+
82
+
83
+/* The Component ID is a unique identification of the component
84
+ * Component IDs are defined in "interface.h"
85
+ */
86
+struct s_bootrec_comp_id {
87
+	struct s_bootrec_hdr hdr;
88
+	long id;
89
+};
90
+
91
+/* The Version String is a zero terminated ASCII string */
92
+struct s_bootrec_comp_ver {
93
+	struct s_bootrec_hdr hdr;
94
+	char ver_string[VER_STRING_SIZE * sizeof(long)];
95
+};
96
+
97
+/*
98
+ * Interfaces are defined by the following scheme
99
+ *
100
+ *  -----------------------------------------------------
101
+ * | 16 bits |  16 bits |  16 bits |  16 bits |  16 bits |
102
+ * |  role   |   if ID  |  variant | btm comp | top comp |
103
+ *  -----------------------------------------------------
104
+ *
105
+ * Role and Interface IDs are defined in "interface.h"
106
+ */
107
+
108
+/*
109
+ * The dependent interface defines which interfaces a component
110
+ * needs for its proper operation. These can be mached against
111
+ * the exposed interfaces of other components that are available.
112
+ */
113
+ARM_PACKED struct s_bootrec_dep_if {
114
+	unsigned short role;
115
+	unsigned short if_id;
116
+	unsigned short variant;
117
+} GCC_PACKED;
118
+
119
+/*
120
+ * The exposed interface defines which interfaces a component
121
+ * offers to other components. Bottom and Top compatibility define
122
+ * with which variants this interface is compatible with.
123
+ */
124
+ARM_PACKED struct s_bootrec_exp_if {
125
+	unsigned short role;
126
+	unsigned short if_id;
127
+	unsigned short variant;
128
+	unsigned short btm_compat;
129
+	unsigned short top_compat;
130
+} GCC_PACKED;
131
+
132
+/* The Bootrecord End defines the end of the bootrecords.
133
+ * No bootrecords will follow after this one
134
+ */
135
+struct s_bootrec_end {
136
+	struct s_bootrec_hdr hdr;
137
+	short CRC;
138
+	short pad;
139
+	long MD5[4];
140
+};
141
+
142
+/* Some inline helper functions */
143
+
144
+/*
145
+ * Returns 0 if the passed bootrecord is valid, -1 otherwise.
146
+ */
147
+static INLINE int valid_bootrecord(const struct s_bootrecord *bootrec)
148
+{
149
+	/* length too big */
150
+	if(bootrec->hdr.length > (BR_MAX_BRA_SIZE / sizeof(long)))
151
+		return -1;
152
+
153
+	if(bootrec->hdr.code == BR_CODE_END_OF_BRA)
154
+		return 0;
155
+
156
+	/* no valid code */
157
+	if((bootrec->hdr.code < BR_CODE_MIN) ||
158
+	   (bootrec->hdr.code > BR_CODE_MAX))
159
+		return -1;
160
+
161
+	return 0;
162
+}
163
+
164
+/*
165
+ * Returns the number of dependent interfaces in a bootrecord
166
+ * result < 0 if no valid dependent interface bootrecord is passed
167
+ */
168
+static INLINE int nof_dep_interfaces(const struct s_bootrecord *bootrec)
169
+{
170
+	if((bootrec->hdr.code != BR_CODE_DEPENDENT_IF) ||
171
+	   (valid_bootrecord(bootrec)))
172
+		return -1;
173
+
174
+	return (bootrec->hdr.length * sizeof(long)) / sizeof(struct s_bootrec_dep_if);
175
+}
176
+
177
+/*
178
+ * Returns the number of exposed interfaces in a bootrecord.
179
+ * result < 0 if no valid exposed interface bootrecord is passed
180
+ */
181
+static INLINE int nof_exp_interfaces(const struct s_bootrecord *bootrec)
182
+{
183
+	if((bootrec->hdr.code != BR_CODE_EXPOSED_IF) ||
184
+	   (valid_bootrecord(bootrec)))
185
+		return -1;
186
+
187
+	return (bootrec->hdr.length * sizeof(long)) / sizeof(struct s_bootrec_exp_if);
188
+}
189
+
190
+/*
191
+ * Returns the size in bytes of a bootrecord, including the header.
192
+ */
193
+static INLINE int bootrecord_size(const struct s_bootrecord *bootrec)
194
+{
195
+	return (sizeof(struct s_bootrec_hdr) + (bootrec->hdr.length * sizeof(long)));
196
+}
197
+
198
+/*
199
+ * Returns a pointer to the next bootrecord
200
+ */
201
+static INLINE struct s_bootrecord *next_bootrecord(const struct s_bootrecord *bootrec)
202
+{
203
+	struct s_bootrecord *next;
204
+
205
+	next = (struct s_bootrecord *)((int)bootrec + bootrecord_size(bootrec));
206
+	return next;
207
+}
208
+
209
+#else  // BOOT_BOOTREC
210
+
211
+/*
212
+ * Each boot record is identified by a unique code, followed
213
+ * by the length (in 32 bit words) of the data in the record.
214
+ */
215
+struct s_bootrec_hdr {
216
+	unsigned long code;
217
+	unsigned long length;
218
+};
219
+
220
+/* Generic bootrecord structure that can be mapped to each bootrecord */
221
+struct s_bootrecord {
222
+	struct s_bootrec_hdr hdr;
223
+	char start_of_data;
224
+};
225
+
226
+
227
+/* The Component ID is a unique identification of the component
228
+ * Component IDs are defined in "interface.h"
229
+ */
230
+struct s_bootrec_comp_id {
231
+	struct s_bootrec_hdr hdr;
232
+	unsigned long id;
233
+};
234
+
235
+/* The Version String is a zero terminated ASCII string */
236
+struct s_bootrec_comp_ver {
237
+	struct s_bootrec_hdr hdr;
238
+	char ver_string[VER_STRING_SIZE * sizeof(long)];
239
+};
240
+
241
+/*
242
+ * Interfaces are defined by the following scheme
243
+ *
244
+ *  -----------------------------------------------------
245
+ * | 16 bits |  16 bits |  16 bits |  16 bits |  16 bits |
246
+ * |  role   |   if ID  |  variant | btm comp | top comp |
247
+ *  -----------------------------------------------------
248
+ *
249
+ * Role and Interface IDs are defined in "interface.h"
250
+ */
251
+
252
+/*
253
+ * The dependent interface defines which interfaces a component
254
+ * needs for its proper operation. These can be mached against
255
+ * the exposed interfaces of other components that are available.
256
+ */
257
+ARM_PACKED struct s_bootrec_dep_if {
258
+	unsigned short role;
259
+	unsigned short if_id;
260
+	unsigned short variant;
261
+} GCC_PACKED;
262
+
263
+/*
264
+ * The exposed interface defines which interfaces a component
265
+ * offers to other components. Bottom and Top compatibility define
266
+ * with which variants this interface is compatible with.
267
+ */
268
+ARM_PACKED struct s_bootrec_exp_if {
269
+	unsigned short role;
270
+	unsigned short if_id;
271
+	unsigned short variant;
272
+	unsigned short btm_compat;
273
+	unsigned short top_compat;
274
+} GCC_PACKED;
275
+
276
+/* The Bootrecord End defines the end of the bootrecords.
277
+ * No bootrecords will follow after this one
278
+ */
279
+struct s_bootrec_end {
280
+	struct s_bootrec_hdr hdr;
281
+	unsigned short CRC;
282
+	unsigned short pad;
283
+	unsigned long MD5[4];
284
+};
285
+
286
+/* Some inline helper functions */
287
+
288
+/*
289
+ * Returns 0 if the passed bootrecord is valid, -1 otherwise.
290
+ */
291
+static INLINE int valid_bootrecord(const struct s_bootrecord *bootrec)
292
+{
293
+	/* length too big */
294
+	if(bootrec->hdr.length > (BR_MAX_BRA_SIZE / sizeof(long))) {
295
+                printf("valid_bootrecord() -> ERROR: too long (length=%ld\n", bootrec->hdr.length); //REMOVE
296
+                return -1;
297
+        }
298
+
299
+	if(bootrec->hdr.code == BR_CODE_END_OF_BRA)
300
+		return 0;
301
+
302
+	/* no valid code */
303
+	if((bootrec->hdr.code < BR_CODE_MIN) ||
304
+	   (bootrec->hdr.code > BR_CODE_MAX)) {
305
+                printf("valid_bootrecord() -> ERROR: Illegal code\n"); //REMOVE
306
+		return -1;
307
+         }
308
+
309
+	return 0;
310
+}
311
+
312
+/*
313
+ * Returns the number of dependent interfaces in a bootrecord
314
+ * result < 0 if no valid dependent interface bootrecord is passed
315
+ */
316
+static INLINE int nof_dep_interfaces(const struct s_bootrecord *bootrec)
317
+{
318
+	if((bootrec->hdr.code != BR_CODE_DEPENDENT_IF) ||
319
+	   (valid_bootrecord(bootrec)))
320
+		return -1;
321
+
322
+	return (bootrec->hdr.length * sizeof(long)) / sizeof(struct s_bootrec_dep_if);
323
+}
324
+
325
+/*
326
+ * Returns the number of exposed interfaces in a bootrecord.
327
+ * result < 0 if no valid exposed interface bootrecord is passed
328
+ */
329
+static INLINE int nof_exp_interfaces(const struct s_bootrecord *bootrec)
330
+{
331
+	if((bootrec->hdr.code != BR_CODE_EXPOSED_IF) ||
332
+	   (valid_bootrecord(bootrec)))
333
+		return -1;
334
+
335
+	return (bootrec->hdr.length * sizeof(long)) / sizeof(struct s_bootrec_exp_if);
336
+}
337
+
338
+/*
339
+ * Returns the size in bytes of a bootrecord, including the header.
340
+ */
341
+static INLINE int bootrecord_size(const struct s_bootrecord *bootrec)
342
+{
343
+	return (sizeof(struct s_bootrec_hdr) + (bootrec->hdr.length * sizeof(long)));
344
+}
345
+
346
+/*
347
+ * Returns a pointer to the next bootrecord
348
+ */
349
+static INLINE struct s_bootrecord *next_bootrecord(const struct s_bootrecord *bootrec)
350
+{
351
+	struct s_bootrecord *next;
352
+	
353
+	next = (struct s_bootrecord *)((int)bootrec + bootrecord_size(bootrec));	
354
+	return next;
355
+}
356
+
357
+#endif // BOOT_BOOTREC
358
+
359
+#endif // __ASSEMBLER__
360
+
361
+#endif /* _BOOTREC_H */
362
+

+ 64
- 0
firmware/include/identification/components.h View File

@@ -0,0 +1,64 @@
1
+/*  $Header: //depot/Software/include/identification/components.h#11 $
2
+ *
3
+ *  Copyright (C) 2002 Intersil Americas Inc.
4
+ *
5
+ *  This program is free software; you can redistribute it and/or modify
6
+ *  it under the terms of the GNU General Public License as published by
7
+ *  the Free Software Foundation; either version 2 of the License
8
+ *
9
+ *  This program is distributed in the hope that it will be useful,
10
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12
+ *  GNU General Public License for more details.
13
+ *
14
+ *  You should have received a copy of the GNU General Public License
15
+ *  along with this program; if not, write to the Free Software
16
+ *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
17
+ *
18
+ */
19
+
20
+#ifndef _COMPONENTS_H
21
+#define _COMPONENTS_H
22
+
23
+/*----------------------------------------------*
24
+ | Component ID's uniquely identify components. |
25
+ *----------------------------------------------*/
26
+
27
+/*=====================*
28
+ | SOFTWARE COMPONENTS |
29
+ *=====================*/
30
+
31
+#define   BR_COMP_ID_BOOT   0x544F4F42   /*    "BOOT": Boot code                             */
32
+#define   BR_COMP_ID_DAP1   0x31504144   /*    "DAP1": Dual Band AP FW                       */
33
+#define   BR_COMP_ID_DBCO   0x4F434244   /*    "DBCO": DuetteAPDK combined image             */
34
+#define   BR_COMP_ID_DBO1   0x314F4244   /*    "DBO1": Dual Band Bootloader                  */
35
+#define   BR_COMP_ID_DFS1   0x31534644   /*    "DFS1": Dual Band File Set                    */
36
+#define   BR_COMP_ID_DMT1   0x31544D44   /*    "DMT1": Dual Band Manufacturing and Test FW   */
37
+#define	  BR_COMP_ID_DUMM   0x4D4D5544   /*    "DUMM": Dummy Micro AP FW                     */
38
+#define	  BR_COMP_ID_FA90   0x30394146   /*    "FA90": 3890 full mac AP FW                   */
39
+#define	  BR_COMP_ID_FC90   0x30394346   /*    "FC90": 3890 full mac client FW               */
40
+#define   BR_COMP_ID_ICL1   0x314C4349   /*    "ICL1": Indigo Client FW                      */
41
+#define   BR_COMP_ID_IMT1   0x31544D49   /*    "IMT1": Indigo Manufacturing and Test FW      */
42
+#define   BR_COMP_ID_ITM1   0x314D5449   /*    "ITM1": Indigo Micro AP FW                    */
43
+#define   BR_COMP_ID_LCL1   0x314C434C   /*    "LCL1": Liberty Client FW (Duette)            */
44
+#define   BR_COMP_ID_LDV1   0x3176444C   /*    "LDv1": 3.X Manufacturing and Test FW         */
45
+#define	  BR_COMP_ID_LM86   0x36384D4C   /*    "LM86": 3886 LMAC                             */
46
+#define	  BR_COMP_ID_LM93   0x33394D4C   /*    "LM93": 3893 LMAC                             */
47
+#define   BR_COMP_ID_LTM1   0x314D544C   /*    "LTM1": Liberty Micro AP FW (Duette)          */
48
+#define   BR_COMP_ID_LMT1   0x31544D4C   /*    "LMT1": Liberty Manufacturing and Test FW     */
49
+#define   BR_COMP_ID_MVC1   0x3143564D   /*    "MVC1": MVC                                   */
50
+#define   BR_COMP_ID_RESC   0x43534552   /*    "RESC": Rescue System                         */
51
+#define   BR_COMP_ID_SYST   0x54535953   /*    "SYST": uClinux System                        */
52
+
53
+/*=====================*
54
+ | HARDWARE COMPONENTS |
55
+ *=====================*/
56
+
57
+#define   BR_COMP_ID_ISL36356A   0x41566303   /* Intersil 36356A Reference Design (AP Builder's Kit and AP Developer's Kit) */
58
+#define   BR_COMP_ID_ISL37704C   0x43047703   /* Intersil 37704C Reference Design (Indigo Cardbus and MiniPCI)              */
59
+#define   BR_COMP_ID_ISL39000    0x00009003   /* Intersil 39000C and 39000M Reference Design (Liberty Cardbus and MiniPCI)  */
60
+#define   BR_COMP_ID_ISL39300A   0x41009303   /* Intersil 39300A Reference Design (Dual Band AP)                            */
61
+
62
+
63
+
64
+#endif /* _COMPONENTS_H */

+ 80
- 0
firmware/include/identification/customer.h View File

@@ -0,0 +1,80 @@
1
+/*  $Header: //depot/Software/include/identification/customer.h#4 $
2
+ *
3
+ *  Copyright (C) 2002 Intersil Americas Inc.
4
+ *
5
+ *  This program is free software; you can redistribute it and/or modify
6
+ *  it under the terms of the GNU General Public License as published by
7
+ *  the Free Software Foundation; either version 2 of the License
8
+ *
9
+ *  This program is distributed in the hope that it will be useful,
10
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12
+ *  GNU General Public License for more details.
13
+ *
14
+ *  You should have received a copy of the GNU General Public License
15
+ *  along with this program; if not, write to the Free Software
16
+ *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
17
+ *
18
+ */
19
+
20
+#ifndef _CUSTOMER_H
21
+#define _CUSTOMER_H
22
+
23
+// Contains OEM and Product names.
24
+//=========
25
+// OEM ID's
26
+//=========
27
+// To ensure that OEM ID's are unique, the SMI enterprise number must be used as OEM ID here.
28
+
29
+#define OEM_ID_INTERSIL				937
30
+#define OEM_ID_OEMNAME				937	// Replace the number by the SMI Enterprise Number of the OEM.
31
+
32
+
33
+//=========
34
+// Products
35
+//=========
36
+// This uniquely identifies a product for a specific OEM.
37
+
38
+#define PRODTYPE_APDK_REF_DESIGN	1	// AP Developer's Kit
39
+
40
+// the DBAP product variants
41
+#define PRODTYPE_DBAP_REF_DESIGN	1	// Duette APDK
42
+
43
+
44
+//=========
45
+// VARIANTS
46
+//=========
47
+
48
+//--------------
49
+// OEM Variants
50
+//--------------
51
+
52
+// Variants for interface BR_IF_ID_OEM_IF
53
+// Select one of the following sets of defines.
54
+// Either these ...
55
+// These defines create a product capable to upload OEM firmware AND Intersil reference firmware.
56
+#define BR_IF_VAR_OEM_1			OEM_ID_OEMNAME
57
+#define BR_IF_BOT_VAR_OEM_1			OEM_ID_INTERSIL
58
+#define BR_IF_TOP_VAR_OEM_1			OEM_ID_INTERSIL
59
+
60
+// Or these ...
61
+// These defines create a product capable to upload OEM specific firmware.
62
+//#define BR_IF_VAR_OEM_1			OEM_ID_OEMNAME
63
+//#define BR_IF_BOT_VAR_OEM_1			OEM_ID_OEMNAME
64
+//#define BR_IF_TOP_VAR_OEM_1			OEM_ID_OEMNAME
65
+
66
+
67
+//-----------------
68
+// Product Variants
69
+//-----------------
70
+
71
+// Variants for interface BR_IF_ID_PRODUCT_IF
72
+#define BR_IF_VAR_PRODUCT_1			PRODTYPE_APDK_REF_DESIGN
73
+#define BR_IF_BOT_VAR_PRODUCT_1			BR_IF_VAR_PRODUCT_1
74
+#define BR_IF_TOP_VAR_PRODUCT_1			BR_IF_VAR_PRODUCT_1
75
+
76
+#define BR_IF_VAR_PRODUCT_2			PRODTYPE_DBAP_REF_DESIGN
77
+#define BR_IF_BOT_VAR_PRODUCT_2			BR_IF_VAR_PRODUCT_2
78
+#define BR_IF_TOP_VAR_PRODUCT_2			BR_IF_VAR_PRODUCT_2
79
+
80
+#endif /* _CUSTOMER_H */

+ 73
- 0
firmware/include/identification/hardware_variants.h View File

@@ -0,0 +1,73 @@
1
+/*  $Header: //depot/Software/include/identification/hardware_variants.h#5 $
2
+ *
3
+ *  Copyright (C) 2002 Intersil Americas Inc.
4
+ *
5
+ *  This program is free software; you can redistribute it and/or modify
6
+ *  it under the terms of the GNU General Public License as published by
7
+ *  the Free Software Foundation; either version 2 of the License
8
+ *
9
+ *  This program is distributed in the hope that it will be useful,
10
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12
+ *  GNU General Public License for more details.
13
+ *
14
+ *  You should have received a copy of the GNU General Public License
15
+ *  along with this program; if not, write to the Free Software
16
+ *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
17
+ *
18
+ */
19
+
20
+#ifndef _HARDWARE_VARIANTS_H
21
+#define _HARDWARE_VARIANTS_H
22
+
23
+//------------------------------------------
24
+// Variants for interface BR_IF_ID_ISL36356A
25
+//------------------------------------------
26
+#define BR_IF_VAR_ISL36356A_1		1	// Compatible with Rev E
27
+#define BR_IF_BOT_VAR_ISL36356A_1		BR_IF_VAR_ISL36356A_1
28
+#define BR_IF_TOP_VAR_ISL36356A_1		BR_IF_VAR_ISL36356A_1
29
+
30
+//------------------------------------------
31
+// Variants for interface BR_IF_ID_ISL37704C
32
+//------------------------------------------
33
+#define BR_IF_VAR_ISL37704C_1		1	// Ext. IF VCO, ext. RF VCO
34
+#define BR_IF_BOT_VAR_ISL37704C_1		BR_IF_VAR_ISL37704C_1
35
+#define BR_IF_TOP_VAR_ISL37704C_1		BR_IF_VAR_ISL37704C_1
36
+
37
+#define BR_IF_VAR_ISL37704C_2		2	// Int. IF VCO, ext. RF VCO
38
+#define BR_IF_BOT_VAR_ISL37704C_2		BR_IF_VAR_ISL37704C_2
39
+#define BR_IF_TOP_VAR_ISL37704C_2		BR_IF_VAR_ISL37704C_2
40
+
41
+#define BR_IF_VAR_ISL37704C_3		3	// Ext. IF VCO, int. RF VCO
42
+#define BR_IF_BOT_VAR_ISL37704C_3		BR_IF_VAR_ISL37704C_3
43
+#define BR_IF_TOP_VAR_ISL37704C_3		BR_IF_VAR_ISL37704C_3
44
+
45
+#define BR_IF_VAR_ISL37704C_4		4	// Int. IF VCO, int. RF VCO
46
+#define BR_IF_BOT_VAR_ISL37704C_4		BR_IF_VAR_ISL37704C_4
47
+#define BR_IF_TOP_VAR_ISL37704C_4		BR_IF_VAR_ISL37704C_4
48
+
49
+
50
+//-----------------------------------------
51
+// Variants for interface BR_IF_ID_ISL39000
52
+//-----------------------------------------
53
+#define BR_IF_VAR_ISL39000_1		1	// Dual modulus prescaler
54
+#define BR_IF_BOT_VAR_ISL39000_1		BR_IF_VAR_ISL39000_1
55
+#define BR_IF_TOP_VAR_ISL39000_1		BR_IF_VAR_ISL39000_1
56
+
57
+#define BR_IF_VAR_ISL39000_2		2	// Triple modulus prescaler
58
+#define BR_IF_BOT_VAR_ISL39000_2		BR_IF_VAR_ISL39000_2
59
+#define BR_IF_TOP_VAR_ISL39000_2		BR_IF_VAR_ISL39000_2
60
+
61
+#define BR_IF_VAR_ISL39000_3		3	// Frisbee ZIF
62
+#define BR_IF_BOT_VAR_ISL39000_3		BR_IF_VAR_ISL39000_3
63
+#define BR_IF_TOP_VAR_ISL39000_3		BR_IF_VAR_ISL39000_3
64
+
65
+
66
+//------------------------------------------
67
+// Variants for interface BR_IF_ID_ISL39300A
68
+//------------------------------------------
69
+#define BR_IF_VAR_ISL39300A_1		1	// 
70
+#define BR_IF_BOT_VAR_ISL39300A_1		BR_IF_VAR_ISL39300A_1
71
+#define BR_IF_TOP_VAR_ISL39300A_1		BR_IF_VAR_ISL39300A_1
72
+
73
+#endif /* _HARDWARE_VARIANTS_H */

+ 30
- 0
firmware/include/identification/identification.h View File

@@ -0,0 +1,30 @@
1
+/*  $Header: //depot/Software/include/identification/identification.h#1 $
2
+ *
3
+ *  Copyright (C) 2002 Intersil Americas Inc.
4
+ *
5
+ *  This program is free software; you can redistribute it and/or modify
6
+ *  it under the terms of the GNU General Public License as published by
7
+ *  the Free Software Foundation; either version 2 of the License
8
+ *
9
+ *  This program is distributed in the hope that it will be useful,
10
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12
+ *  GNU General Public License for more details.
13
+ *
14
+ *  You should have received a copy of the GNU General Public License
15
+ *  along with this program; if not, write to the Free Software
16
+ *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
17
+ *
18
+ */
19
+
20
+#ifndef _IDENTIFICATION_H
21
+#define _IDENTIFICATION_H
22
+
23
+// Includes for implementing the Component Interfacing and Identification.
24
+#include "components.h"
25
+#include "customer.h"
26
+#include "hardware_variants.h"
27
+#include "interfaces.h"
28
+#include "software_variants.h"
29
+
30
+#endif /* _IDENTIFICATION_H */

+ 34
- 0
firmware/include/identification/image_header.h View File

@@ -0,0 +1,34 @@
1
+/*  $Header$
2
+ *  
3
+ *  Copyright (C) 2001 Intersil Americas Inc.
4
+ *
5
+ *  This library is free software; you can redistribute it and/or
6
+ *  modify it under the terms of the GNU Lesser General Public
7
+ *  License as published by the Free Software Foundation; either
8
+ *  version 2.1 of the License.
9
+ * 
10
+ *  This library is distributed in the hope that it will be useful,
11
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13
+ *  Lesser General Public License for more details.
14
+ * 
15
+ *  You should have received a copy of the GNU Lesser General Public
16
+ *  License along with this library; if not, write to the Free Software
17
+ *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
18
+ *
19
+ */
20
+#ifndef _IMAGE_HEADER_H
21
+#define _IMAGE_HEADER_H
22
+
23
+#define MAGIC_OKAY   0x59414B4F   /* OKAY */
24
+
25
+struct image_header_st {
26
+    unsigned long magic1;
27
+    unsigned long vector;
28
+    unsigned long crc_start;
29
+    unsigned long crc_end;
30
+    unsigned long crc_code;
31
+    unsigned long bootrec[3];
32
+} __attribute__((packed));
33
+
34
+#endif /* _IMAGE_HEADER_H */

+ 72
- 0
firmware/include/identification/interfaces.h View File

@@ -0,0 +1,72 @@
1
+/*  $Header: //depot/Software/include/identification/interfaces.h#7 $
2
+ *
3
+ *  Copyright (C) 2002 Intersil Americas Inc.
4
+ *
5
+ *  This program is free software; you can redistribute it and/or modify
6
+ *  it under the terms of the GNU General Public License as published by
7
+ *  the Free Software Foundation; either version 2 of the License
8
+ *
9
+ *  This program is distributed in the hope that it will be useful,
10
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12
+ *  GNU General Public License for more details.
13
+ *
14
+ *  You should have received a copy of the GNU General Public License
15
+ *  along with this program; if not, write to the Free Software
16
+ *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
17
+ *
18
+ */
19
+
20
+#ifndef _INTERFACES_H
21
+#define _INTERFACES_H
22
+
23
+//----------------
24
+// Interface Roles
25
+//----------------
26
+// The interface Role can be client or server */
27
+#define BR_IF_ROLE_SERVER		0x0000
28
+#define BR_IF_ROLE_CLIENT		0x8000
29
+
30
+//---------------
31
+// Interface ID's
32
+//---------------
33
+// The interface ID is a unique identification of a specific interface.
34
+// The following values are reserved: 0x0000, 0x0002
35
+//					0x0000	Reserved
36
+#define BR_IF_ID_ISL36356A		0x0001	// Interface between BR_COMP_ID_ISL36356A <-> Firmware
37
+//					0x0002	Reserved
38
+#define BR_IF_ID_MVC			0x0003	// MAC Virtual Coprocessor
39
+#define BR_IF_ID_SNMP_IF		0x0004	// SNMP Interface between Application <-> Firmware
40
+#define BR_IF_ID_SNWNMP_IF		0x0005	// SNWNMP Interface between Application <-> Firmware
41
+#define BR_IF_ID_HTTP_IF		0x0006	// HTTP Interface between Application <-> Firmware
42
+#define BR_IF_ID_MANUF_TST_IF	        0x0007	// Manufacturing and Test Interface between Application <-> Firmware
43
+#define BR_IF_ID_DEBUG_IF		0x0008	// PolDebug Interface between Application <-> Firmware
44
+// The PRODUCT and OEM interface are conceptual interfaces for product differentiation
45
+#define BR_IF_ID_PRODUCT_IF		0x0009
46
+#define BR_IF_ID_OEM_IF			0x000A
47
+#define BR_IF_ID_PCIHOST_IF		0x000B  // Host PCI Interface
48
+#define BR_IF_ID_PCI3877_IF		BR_IF_ID_PCIHOST_IF	// 3877 <-> Host PCI Interface
49
+#define BR_IF_ID_DAP1_MAP		BR_IF_ID_PCIHOST_IF	// Interface between BR_COMP_ID_DAP1 <-> Micro AP Firmware
50
+#define BR_IF_ID_ISL37704C		0x000C	// Interface between BR_COMP_ID_ISL37704C <-> Firmware
51
+#define BR_IF_ID_ISL37700M		BR_IF_ID_ISL37704C	// Interface between BR_COMP_ID_ISL37700M <-> Firmware
52
+#define BR_IF_ID_TFTP			0x000D	// TFTP Interface Application <-> Firmware
53
+#define BR_IF_ID_STFTP			0x000E	// STFTP Interface between Application <-> Firmware
54
+#define BR_IF_ID_ISL39000		0x000F  // Interface between BR_COMP_ID_ISL39000 <-> Firmware
55
+#define BR_IF_ID_ISL39000M              BR_IF_ID_ISL39000  // Interface between BR_COMP_ID_ISL39000M <-> Firmware
56
+#define BR_IF_ID_ISL39300A              0x0010  // Interface between BR_COMP_ID_ISL39300A <-> Firmware
57
+#define BR_IF_ID_BOOT_IF		0x0011  // Interface of bootloader and remaining firmware
58
+#define BR_IF_ID_DBO1                   BR_IF_ID_BOOT_IF  // Interface between BR_COMP_ID_DBO1 <-> Firmware
59
+//					0x0012  Reserved
60
+#define BR_IF_ID_FS_IF			0x0013	// File set interface (size, format, etc)
61
+#define BR_IF_ID_DAP1_FS		BR_IF_ID_FS_IF	// Interface between BR_COMP_ID_DAP1 <-> File Set
62
+//					0x0014  Reserved
63
+//					0x0015  Reserved
64
+#define BR_IF_ID_ISL37700_UAP_IF        0x0016	// Interface between ISL37700 uAP firmware <-> Firmware
65
+#define BR_IF_ID_ISL39000_UAP_IF        0x0017  // Interface between ISL39000 uAP firmware <-> Firmware
66
+// The Primary PRODUCT and Primary OEM interface are conceptual interfaces for product differentiation
67
+#define BR_IF_ID_PRIMARY_PRODUCT_IF     0x0018
68
+#define BR_IF_ID_PRIMARY_OEM_IF         0x0019
69
+#define BR_IF_ID_LMAC_IF		0x001A	// Interface exposed by LMAC, see doc. 553265
70
+
71
+
72
+#endif /* _INTERFACES_H */

+ 165
- 0
firmware/include/identification/software_variants.h View File

@@ -0,0 +1,165 @@
1
+/*  $Header: //depot/Software/include/identification/software_variants.h#12 $
2
+ *
3
+ *  Copyright (C) 2002 Intersil Americas Inc.
4
+ *
5
+ *  This program is free software; you can redistribute it and/or modify
6
+ *  it under the terms of the GNU General Public License as published by
7
+ *  the Free Software Foundation; either version 2 of the License
8
+ *
9
+ *  This program is distributed in the hope that it will be useful,
10
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12
+ *  GNU General Public License for more details.
13
+ *
14
+ *  You should have received a copy of the GNU General Public License
15
+ *  along with this program; if not, write to the Free Software
16
+ *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
17
+ *
18
+ */
19
+
20
+#ifndef _SOFTWARE_VARIANTS_H
21
+#define _SOFTWARE_VARIANTS_H
22
+
23
+//------------------------------------
24
+// Variants for interface BR_IF_ID_MVC
25
+//------------------------------------
26
+// Refer to 553091 for details
27
+#define BR_IF_VAR_MVC_1				1	//
28
+#define BR_IF_BOT_VAR_MVC_1				BR_IF_VAR_MVC_1
29
+#define BR_IF_TOP_VAR_MVC_1				BR_IF_VAR_MVC_1
30
+
31
+#define BR_IF_VAR_MVC_2				2	// Added SSN + Neighboring BSS
32
+#define BR_IF_BOT_VAR_MVC_2				BR_IF_VAR_MVC_1
33
+#define BR_IF_TOP_VAR_MVC_2				BR_IF_VAR_MVC_2
34
+
35
+#define BR_IF_VAR_MVC_3				3	// Added Reassociate trap + generec obj_stastat
36
+#define BR_IF_BOT_VAR_MVC_3				BR_IF_VAR_MVC_1
37
+#define BR_IF_TOP_VAR_MVC_3				BR_IF_VAR_MVC_3
38
+
39
+//----------------------------------------
40
+// Variants for interface BR_IF_ID_SNMP_IF
41
+//----------------------------------------
42
+// Every change in the MIB implementation requires a new variant
43
+#define BR_IF_VAR_SNMP_1			1	// Stones uCLinux System interface variant
44
+#define BR_IF_BOT_VAR_SNMP_1			BR_IF_VAR_SNMP_1
45
+#define BR_IF_TOP_VAR_SNMP_1			BR_IF_VAR_SNMP_1
46
+
47
+#define BR_IF_VAR_SNMP_2			2	// Added SSN support to Stones
48
+#define BR_IF_BOT_VAR_SNMP_2			BR_IF_VAR_SNMP_1
49
+#define BR_IF_TOP_VAR_SNMP_2			BR_IF_VAR_SNMP_2
50
+
51
+#define BR_IF_VAR_SNMP_16			0x0010	// DuetteAPDK until beta 2
52
+#define BR_IF_BOT_VAR_SNMP_16			BR_IF_VAR_SNMP_16
53
+#define BR_IF_TOP_VAR_SNMP_16			BR_IF_VAR_SNMP_16
54
+
55
+#define BR_IF_VAR_SNMP_17			0x0011	// DuetteAPDK beta 3
56
+#define BR_IF_BOT_VAR_SNMP_17			BR_IF_VAR_SNMP_16
57
+#define BR_IF_TOP_VAR_SNMP_17			BR_IF_VAR_SNMP_17
58
+
59
+#define BR_IF_VAR_SNMP_18			0x0012	// DuetteAPDK beta 4
60
+#define BR_IF_BOT_VAR_SNMP_18			BR_IF_VAR_SNMP_16
61
+#define BR_IF_TOP_VAR_SNMP_18			BR_IF_VAR_SNMP_18
62
+
63
+#define BR_IF_VAR_SNMP_1000			1000	// Rescue System interface variant
64
+#define BR_IF_BOT_VAR_SNMP_1000			BR_IF_VAR_SNMP_1000
65
+#define BR_IF_TOP_VAR_SNMP_1000			BR_IF_VAR_SNMP_1000
66
+
67
+//------------------------------------------
68
+// Variants for interface BR_IF_ID_SNWNMP_IF
69
+//------------------------------------------
70
+#define BR_IF_VAR_SNWNMP_1			1
71
+#define BR_IF_BOT_VAR_SNWNMP_1			BR_IF_VAR_SNWNMP_1
72
+#define BR_IF_TOP_VAR_SNWNMP_1			BR_IF_VAR_SNWNMP_1
73
+
74
+//----------------------------------------
75
+// Variants for interface BR_IF_ID_HTTP_IF
76
+//----------------------------------------
77
+#define BR_IF_VAR_HTTP_1			1	// Stones uCLinux System HTTP interface variant
78
+#define BR_IF_BOT_VAR_HTTP_1			BR_IF_VAR_HTTP_1
79
+#define BR_IF_TOP_VAR_HTTP_1			BR_IF_VAR_HTTP_1
80
+
81
+//---------------------------------------------
82
+// Variants for interface BR_IF_ID_MANUF_TST_IF
83
+//---------------------------------------------
84
+// There are three different mtfw's, so there may be a need for more interfaces and variants to be defined.
85
+#define BR_IF_VAR_MANUF_TST_1		1
86
+#define BR_IF_BOT_VAR_MANUF_TST_1		BR_IF_VAR_MANUF_TST_1
87
+#define BR_IF_TOP_VAR_MANUF_TST_1		BR_IF_VAR_MANUF_TST_1
88
+
89
+//-----------------------------------------
90
+// Variants for interface BR_IF_ID_DEBUG_IF
91
+//-----------------------------------------
92
+#define BR_IF_VAR_DEBUG_1			1
93
+#define BR_IF_BOT_VAR_DEBUG_1			BR_IF_VAR_DEBUG_1
94
+#define BR_IF_TOP_VAR_DEBUG_1			BR_IF_VAR_DEBUG_1
95
+
96
+//-------------------------------------------
97
+// Variants for interface BR_IF_ID_PCI3877_IF
98
+//-------------------------------------------
99
+#define BR_IF_VAR_PCI3877_1			1
100
+#define BR_IF_BOT_VAR_PCI3877_1			BR_IF_VAR_PCI3877_1
101
+#define BR_IF_TOP_VAR_PCI3877_1			BR_IF_VAR_PCI3877_1
102
+
103
+
104
+//-------------------------------------------
105
+// Variants for interface BR_IF_ID_TFTP
106
+//-------------------------------------------
107
+#define BR_IF_VAR_TFTP_1			1	// Rescue
108
+#define BR_IF_BOT_VAR_TFTP_1			BR_IF_VAR_TFTP_1
109
+#define BR_IF_TOP_VAR_TFTP_1			BR_IF_VAR_TFTP_1
110
+#define BR_IF_VAR_TFTP_10			10	// System
111
+#define BR_IF_BOT_VAR_TFTP_10			BR_IF_VAR_TFTP_10
112
+#define BR_IF_TOP_VAR_TFTP_10			BR_IF_VAR_TFTP_10
113
+
114
+//-------------------------------------------
115
+// Variants for interface BR_IF_ID_DBO1
116
+//-------------------------------------------
117
+#define BR_IF_VAR_DBO1_1			0x0001	// Initial variant
118
+#define BR_IF_BOT_VAR_DBO1_1			BR_IF_VAR_DBO1_1
119
+#define BR_IF_TOP_VAR_DBO1_1			BR_IF_VAR_DBO1_1
120
+
121
+//-------------------------------------------
122
+// Variants for interface BR_IF_ID_DAP1_MAP
123
+//-------------------------------------------
124
+#define BR_IF_VAR_DAP1_MAP_1		0x0001	// Support for Indigo Micro AP
125
+#define BR_IF_BOT_VAR_DAP1_MAP_1		BR_IF_VAR_DAP1_MAP_1
126
+#define BR_IF_TOP_VAR_DAP1_MAP1_1		BR_IF_VAR_DAP1_MAP_1
127
+
128
+#define BR_IF_VAR_DAP1_MAP_2		0x0002  // Support for Prism Duette/GT Micro AP
129
+#define BR_IF_BOT_VAR_DAP1_MAP_2		BR_IF_VAR_DAP1_MAP_2
130
+#define BR_IF_TOP_VAR_DAP1_MAP_2		BR_IF_VAR_DAP1_MAP_2
131
+
132
+#define BR_IF_VAR_DAP1_MAP_3		0x0003  // Support for X-Bow/SoftMac uAP
133
+#define BR_IF_BOT_VAR_DAP1_MAP_3		BR_IF_VAR_DAP1_MAP_3
134
+#define BR_IF_TOP_VAR_DAP1_MAP_3		BR_IF_VAR_DAP1_MAP_3
135
+
136
+//-------------------------------------------
137
+// Variants for interface BR_IF_ID_DAP1_FS
138
+//-------------------------------------------
139
+#define BR_IF_VAR_DAP1_FS_1			0x0001	// Initial variant
140
+#define BR_IF_BOT_VAR_DAP1_FS_1			BR_IF_VAR_DAP1_FS_1
141
+#define BR_IF_TOP_VAR_DAP1_FS_1			BR_IF_VAR_DAP1_FS_1
142
+
143
+//-----------------------------------------------
144
+// Variants for interface BR_IF_ID_ISL37700_UAP_IF
145
+//-----------------------------------------------
146
+#define BR_IF_VAR_ISL37700_UAP_IF_1		0x0001	// Initial variant
147
+#define BR_IF_BOT_ISL37700_VAR_IF_1		BR_IF_VAR_ISL37700_VAR_IF_1
148
+#define BR_IF_TOP_ISL37700_VAR_IF_1		BR_IF_VAR_ISL37700_VAR_IF_1
149
+
150
+//-----------------------------------------------
151
+// Variants for interface BR_IF_ID_ISL39000_UAP_IF
152
+//-----------------------------------------------
153
+#define BR_IF_VAR_ISL39000_UAP_IF_1		0x0001	// Initial variant
154
+#define BR_IF_BOT_ISL39000_VAR_IF_1		BR_IF_VAR_ISL39000_VAR_IF_1
155
+#define BR_IF_TOP_ISL39000_VAR_IF_1		BR_IF_VAR_ISL39000_VAR_IF_1
156
+
157
+//-----------------------------------------------
158
+// Variants for interface BR_IF_ID_LMAC_IF
159
+//-----------------------------------------------
160
+#define BR_IF_VAR_LMAC_IF_1			0x0001	// Initial variant, see version 1.1 of document 553265
161
+#define BR_IF_BOT_LMAC_IF_1			BR_IF_VAR_LMAC_IF_1
162
+#define BR_IF_TOP_LMAC_IF_1			BR_IF_VAR_LMAC_IF_1
163
+
164
+
165
+#endif /* _SOFTWARE_VARIANTS_H */

+ 750
- 0
firmware/include/mvc2/bloboid_2.h View File

@@ -0,0 +1,750 @@
1
+/*
2
+ *      IMPORTANT--READ CAREFULLY: The use, reproduction, modification, and
3
+ *      creation of derivative works of this Source Code ("Document") is
4
+ *      governed by a TECHNOLOGY LICENSE AGREEMENT("Agreement"), a legal
5
+ *      agreement between you (either an individual or a single entity) and
6
+ *      No Wires Needed B.V. ("NWN").  By reproducing, modifying, creating
7
+ *      derivative works, accepting, installing, viewing, accessing,
8
+ *      transforming or otherwise using this Document, you agree to be bound
9
+ *      by the terms of the Agreement.  If you do not agree to the terms of
10
+ *      the Agreement, NWN is unwilling to license the rights to use,
11
+ *      reproduce, modify, and create derivative works of this Document to you.
12
+ *      In such event, you may not use, reproduce, modify, create derivative
13
+ *      works, install, view, access, transport, transform or circulate this
14
+ *      Document, and you should promptly contact NWN or the licensor from
15
+ *      which you acquired this Document for instructions on returning or
16
+ *      destroying this Document.
17
+ *
18
+ *      CONFIDENTIAL, PROPRIETARY AND TRADE SECRET INFORMATION:  This Source
19
+ *      Code software contains confidential, proprietary and trade secret
20
+ *      information of No Wires Needed B.V. and should be treated in a
21
+ *      confidential manner.  Furthermore, this Source Code software is
22
+ *      protected by United States copyright laws and international treaties.
23
+ *      Unauthorized use, reproduction, modification, creation of derivative
24
+ *      works or circulation is strictly prohibited.
25
+ *
26
+ *      Copyright (C) 1994-2000 by No Wires Needed B.V. (NWN), The Netherlands,
27
+ *      ALL RIGHTS RESERVED
28
+ *
29
+ */
30
+
31
+#ifndef __BLOBOIDV2_2_H__
32
+#define __BLOBOIDV2_2_H__
33
+
34
+/* 
35
+ * Defines for generic OIDs
36
+ */
37
+#define LED_CONFIG_INVERT_LED_A 	14
38
+#define LED_CONFIG_INVERT_LED_B 	15
39
+
40
+/*
41
+ * Generic OIDs
42
+ */
43
+
44
+#define GEN_OID_MACADDRESS              0x00000000
45
+#define GEN_OID_LINKSTATE               0x00000001
46
+#define GEN_OID_WATCHDOG                0x00000002
47
+#define GEN_OID_MIBOP                   0x00000003
48
+#define GEN_OID_OPTIONS                 0x00000004
49
+#define GEN_OID_LEDCONFIG               0x00000005
50
+#define GEN_OID_00000006
51
+#define GEN_OID_00000007
52
+#define GEN_OID_00000008
53
+#define GEN_OID_00000009
54
+#define GEN_OID_0000000a
55
+#define GEN_OID_0000000b
56
+#define GEN_OID_0000000c
57
+#define GEN_OID_0000000d
58
+
59
+#define GEN_OID_MSDUTXSUCCESSFUL        0x01000000
60
+#define GEN_OID_MSDUTXMULTICAST         0x01000001
61
+#define GEN_OID_MSDUTXDROPPED           0x01000002
62
+#define GEN_OID_MSDUTXFAILED            0x01000003
63
+#define GEN_OID_MSDURXSUCCESSFUL        0x01000004
64
+#define GEN_OID_MSDURXMULTICAST         0x01000005
65
+#define GEN_OID_MSDURXDROPPED           0x01000006
66
+#define GEN_OID_MSDURXFAILED            0x01000007
67
+
68
+#define GEN_OID_02000000
69
+
70
+/*
71
+ * Blob OIDs
72
+ */
73
+
74
+#ifndef __ASSEMBLER__
75
+
76
+struct obj_ethdevice
77
+{
78
+    unsigned char nr;
79
+    unsigned char reg;
80
+    unsigned short data;
81
+};
82
+
83
+#endif /* __ASSEMBLER */
84
+
85
+#define BLOB_OID_80000000
86
+#define BLOB_OID_80000001
87
+#define BLOB_OID_80000002
88
+#define BLOB_OID_80000003
89
+#define BLOB_OID_TIMESTAMP              0x80000004
90
+#define BLOB_OID_GPIOBANK               0x80000005
91
+#define BLOB_OID_GPIOWM                 0x80000006
92
+#define BLOB_OID_GPIODATA               0x80000007
93
+#define BLOB_OID_GPIOSTATUS             0x80000008
94
+#define BLOB_OID_GPIODDR                0x80000009
95
+#define BLOB_OID_ETHDEVICE              0x8000000a
96
+#define BLOB_OID_RANDOMDATA             0x80000010
97
+
98
+#define BLOB_OID_NVID                   0x81000000
99
+#define BLOB_OID_NVOFFSET               0x81000001
100
+#define BLOB_OID_NVSIZE                 0x81000002
101
+#define BLOB_OID_NVDATA                 0x81000003
102
+
103
+/*
104
+ * Host/DS definitions
105
+ */
106
+
107
+#define HOSTDS_OPTION_WDS               0x00000001
108
+
109
+#define ETH_LINKSTATE_FD_MASK		0x80000000	//Linkstate Full Duplex Mask
110
+#define ETH_LINKSTATE_NO_PHY    	0x40000000	//Link status not supported by PHY.
111
+
112
+/*
113
+ * 802.11 definitions
114
+ */
115
+
116
+#define DOT11_SCAN_PASSIVE              0
117
+#define DOT11_SCAN_ACTIVE               1
118
+#define DOT11_SCAN_SELECTIVE		2
119
+
120
+#define DOT11_SCAN_MASK_ACTIVE		0x8000
121
+
122
+#define DOT11_BSSTYPE_NONE              0
123
+#define DOT11_BSSTYPE_INFRA             1
124
+#define DOT11_BSSTYPE_IBSS              2
125
+#define DOT11_BSSTYPE_ANY               3
126
+
127
+#define DOT11_STATE_NONE                0
128
+#define DOT11_STATE_AUTHING             1
129
+#define DOT11_STATE_AUTH                2
130
+#define DOT11_STATE_ASSOCING            3
131
+#define DOT11_STATE_ASSOC               5
132
+#define DOT11_STATE_IBSS                6
133
+#define DOT11_STATE_WDS			7
134
+
135
+#define DOT11_NODE_UNKNOWN              0
136
+#define DOT11_NODE_AP                   1
137
+#define DOT11_NODE_CLIENT               2
138
+
139
+#define DOT11_AUTH_NONE                 0x0000
140
+#define DOT11_AUTH_OS                   0x0001
141
+#define DOT11_AUTH_SK                   0x0002
142
+#define DOT11_AUTH_BOTH                 0x0003
143
+
144
+/* Key type */
145
+#define DOT11_PRIV_WEP                  0
146
+#define DOT11_PRIV_TKIP			1
147
+
148
+#define DOT11_PSM_ACTIVE                0
149
+#define DOT11_PSM_POWERSAVE             1
150
+#define DOT11_PSM_DYNAMIC               2
151
+
152
+#define DOT11_RP_NONE                   0
153
+#define DOT11_RP_DOT11G                 1
154
+#define DOT11_RP_DOT11A                 2
155
+
156
+#define DOT11_RATEMASK                  0x7f
157
+#define DOT11_BASICRATE                 0x80
158
+
159
+#define DOT11_MLME_AUTO                 0
160
+#define DOT11_MLME_INTERMEDIATE         1
161
+#define DOT11_MLME_EXTENDED             2
</