Fix brcm63xx support. Now a kernel is booting, detecting the flash, and can probably...
[openwrt.git] / target / linux / brcm63xx-2.6 / patches / 030-boardparms.patch
1 diff -Naurp linux-2.6.16.7-generic-patched/boardparms/bcm963xx/Makefile linux-2.6.16.7-patched/boardparms/bcm963xx/Makefile
2 --- linux-2.6.16.7-generic-patched/boardparms/bcm963xx/Makefile 1970-01-01 01:00:00.000000000 +0100
3 +++ linux-2.6.16.7-patched/boardparms/bcm963xx/Makefile 2006-07-05 15:21:58.000000000 +0200
4 @@ -0,0 +1,16 @@
5 +
6 +ifeq ($(CONFIG_MIPS_BRCM),y)
7 +
8 +# Linux
9 +obj-y          += boardparms.o
10 +EXTRA_CFLAGS += -DCONFIG_BCM9$(BRCM_CHIP)
11 +-include $(TOPDIR)/Rules.make
12 +
13 +else
14 +
15 +# CFE
16 +BSPOBJS += boardparms.o
17 +
18 +endif
19 +
20 +
21 diff -Naurp linux-2.6.16.7-generic-patched/boardparms/bcm963xx/boardparms.c linux-2.6.16.7-patched/boardparms/bcm963xx/boardparms.c
22 --- linux-2.6.16.7-generic-patched/boardparms/bcm963xx/boardparms.c     1970-01-01 01:00:00.000000000 +0100
23 +++ linux-2.6.16.7-patched/boardparms/bcm963xx/boardparms.c     2006-07-05 15:21:58.000000000 +0200
24 @@ -0,0 +1,2392 @@
25 +/*
26 +<:copyright-gpl 
27 +
28 + Copyright 2003 Broadcom Corp. All Rights Reserved. 
29
30 + This program is free software; you can distribute it and/or modify it 
31 + under the terms of the GNU General Public License (Version 2) as 
32 + published by the Free Software Foundation. 
33
34 + This program is distributed in the hope it will be useful, but WITHOUT 
35 + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 
36 + FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License 
37 + for more details. 
38
39 + You should have received a copy of the GNU General Public License along 
40 + with this program; if not, write to the Free Software Foundation, Inc., 
41 + 59 Temple Place - Suite 330, Boston MA 02111-1307, USA. 
42 +
43 +:>
44 +*/
45 +/**************************************************************************
46 + * File Name  : boardparms.c
47 + *
48 + * Description: This file contains the implementation for the BCM63xx board
49 + *              parameter access functions.
50 + * 
51 + * Updates    : 07/14/2003  Created.
52 + ***************************************************************************/
53 +
54 +/* Includes. */
55 +#include <linux/config.h>
56 +#include "boardparms.h"
57 +
58 +/* Defines. */
59 +
60 +/* Default psi size in K bytes */
61 +#define BP_PSI_DEFAULT_SIZE                     24   
62 +
63 +/* Typedefs */
64 +typedef struct boardparameters
65 +{
66 +    char szBoardId[BP_BOARD_ID_LEN];        /* board id string */
67 +    ETHERNET_MAC_INFO EnetMacInfos[BP_MAX_ENET_MACS];
68 +    VOIP_DSP_INFO VoIPDspInfo[BP_MAX_VOIP_DSP];
69 +    unsigned short usSdramSize;             /* SDRAM size and type */
70 +    unsigned short usPsiSize;               /* persistent storage in K bytes */
71 +    unsigned short usGpioRj11InnerPair;     /* GPIO pin or not defined */
72 +    unsigned short usGpioRj11OuterPair;     /* GPIO pin or not defined */
73 +    unsigned short usGpioPressAndHoldReset; /* GPIO pin or not defined */
74 +    unsigned short usGpioPcmciaReset;       /* GPIO pin or not defined */
75 +    unsigned short usGpioUartRts;           /* GPIO pin or not defined */
76 +    unsigned short usGpioUartCts;           /* GPIO pin or not defined */
77 +    unsigned short usGpioLedAdsl;           /* GPIO pin or not defined */
78 +    unsigned short usGpioLedAdslFail;       /* GPIO pin or not defined */
79 +    unsigned short usGpioLedWireless;       /* GPIO pin or not defined */
80 +    unsigned short usGpioLedUsb;            /* GPIO pin or not defined */
81 +    unsigned short usGpioLedHpna;           /* GPIO pin or not defined */
82 +    unsigned short usGpioLedWanData;        /* GPIO pin or not defined */
83 +    unsigned short usGpioLedPpp;            /* GPIO pin or not defined */
84 +    unsigned short usGpioLedPppFail;        /* GPIO pin or not defined */
85 +    unsigned short usGpioLedBlPowerOn;      /* GPIO pin or not defined */
86 +    unsigned short usGpioLedBlAlarm;        /* GPIO pin or not defined */
87 +    unsigned short usGpioLedBlResetCfg;     /* GPIO pin or not defined */
88 +    unsigned short usGpioLedBlStop;         /* GPIO pin or not defined */
89 +    unsigned short usExtIntrWireless;       /* ext intr or not defined */
90 +    unsigned short usExtIntrAdslDyingGasp;  /* ext intr or not defined */
91 +    unsigned short usExtIntrHpna;           /* ext intr or not defined */
92 +    unsigned short usCsHpna;                /* chip select not defined */
93 +    unsigned short usAntInUseWireless;     /* antenna in use or not defined */
94 +    unsigned short usGpioSesBtnWireless;    /* GPIO pin or not defined */
95 +    unsigned short usExtIntrSesBtnWireless; /* ext intr or not defined */        
96 +    unsigned short usGpioLedSesWireless;    /* GPIO pin or not defined */        
97 +} BOARD_PARAMETERS, *PBOARD_PARAMETERS;
98 +
99 +/* Variables */
100 +#if defined(_BCM96338_) || defined(CONFIG_BCM96338)
101 +static BOARD_PARAMETERS g_bcm96338sv =
102 +{
103 +    "96338SV",                               /* szBoardId */
104 +    {{BP_ENET_INTERNAL_PHY,                 /* ucPhyType */
105 +      0x01,                                 /* ucPhyAddress */
106 +      BP_NOT_DEFINED,                       /* usGpioPhySpiSck */
107 +      BP_NOT_DEFINED,                       /* usGpioPhySpiSs */
108 +      BP_NOT_DEFINED,                       /* usGpioPhySpiMosi */
109 +      BP_NOT_DEFINED,                       /* usGpioPhySpiMiso */
110 +      BP_NOT_DEFINED,                       /* usGpioPhyReset */
111 +      0x01,                                 /* numSwitchPorts */
112 +      BP_ENET_CONFIG_MDIO,                  /* usConfigType */
113 +      BP_NOT_DEFINED},                      /* usReverseMii */
114 +     {BP_ENET_NO_PHY}},                     /* ucPhyType */
115 +    {{BP_VOIP_NO_DSP},                      /* ucDspType */
116 +     {BP_VOIP_NO_DSP}},                     /* ucDspType */
117 +    BP_MEMORY_16MB_1_CHIP,                  /* usSdramSize */
118 +    BP_PSI_DEFAULT_SIZE,                    /* usPsiSize */
119 +    BP_NOT_DEFINED,                         /* usGpioRj11InnerPair */
120 +    BP_NOT_DEFINED,                         /* usGpioRj11OuterPair */
121 +    BP_NOT_DEFINED,                         /* usGpioPressAndHoldReset */
122 +    BP_NOT_DEFINED,                         /* usGpioPcmciaReset */
123 +    BP_NOT_DEFINED,                         /* usGpioUartRts */
124 +    BP_NOT_DEFINED,                         /* usGpioUartCts */
125 +    BP_NOT_DEFINED,                         /* usGpioLedAdsl */
126 +    BP_NOT_DEFINED,                         /* usGpioLedAdslFail */
127 +    BP_NOT_DEFINED,                         /* usGpioLedWireless */
128 +    BP_NOT_DEFINED,                         /* usGpioLedUsb */
129 +    BP_NOT_DEFINED,                         /* usGpioLedHpna */
130 +    BP_NOT_DEFINED,                         /* usGpioLedWanData */
131 +    BP_NOT_DEFINED,                         /* usGpioLedPpp */
132 +    BP_NOT_DEFINED,                         /* usGpioLedPppFail */
133 +    BP_NOT_DEFINED,                         /* usGpioLedBlPowerOn */
134 +    BP_NOT_DEFINED,                         /* usGpioLedBlAlarm */
135 +    BP_NOT_DEFINED,                         /* usGpioLedBlResetCfg */
136 +    BP_NOT_DEFINED,                         /* usGpioLedBlStop */
137 +    BP_NOT_DEFINED,                         /* usExtIntrWireless */
138 +    BP_HW_DEFINED,                          /* usExtIntrAdslDyingGasp */
139 +    BP_NOT_DEFINED,                         /* usExtIntrHpna */
140 +    BP_NOT_DEFINED,                         /* usCsHpna */
141 +    BP_NOT_DEFINED,                         /* usAntInUseWireless */
142 +    BP_NOT_DEFINED,                         /* usGpioSesBtnWireless */
143 +    BP_NOT_DEFINED,                         /* usExtIntrSesBtnWireless */
144 +    BP_NOT_DEFINED                          /* usGpioLedSesWireless */     
145 +};
146 +static BOARD_PARAMETERS g_bcm96338l2m8m =
147 +{
148 +    "96338L-2M-8M",                         /* szBoardId */
149 +    {{BP_ENET_INTERNAL_PHY,                 /* ucPhyType */
150 +      0x01,                                 /* ucPhyAddress */
151 +      BP_NOT_DEFINED,                       /* usGpioPhySpiSck */
152 +      BP_NOT_DEFINED,                       /* usGpioPhySpiSs */
153 +      BP_NOT_DEFINED,                       /* usGpioPhySpiMosi */
154 +      BP_NOT_DEFINED,                       /* usGpioPhySpiMiso */
155 +      BP_NOT_DEFINED,                       /* usGpioPhyReset */
156 +      0x01,                                 /* numSwitchPorts */
157 +      BP_ENET_CONFIG_MDIO,                  /* usConfigType */
158 +      BP_NOT_DEFINED},                      /* usReverseMii */
159 +     {BP_ENET_NO_PHY}},                     /* ucPhyType */
160 +    {{BP_VOIP_NO_DSP},                      /* ucDspType */
161 +     {BP_VOIP_NO_DSP}},                     /* ucDspType */
162 +    BP_MEMORY_8MB_1_CHIP,                   /* usSdramSize */
163 +    BP_PSI_DEFAULT_SIZE,                    /* usPsiSize */
164 +    BP_NOT_DEFINED,                         /* usGpioRj11InnerPair */
165 +    BP_NOT_DEFINED,                         /* usGpioRj11OuterPair */
166 +    BP_NOT_DEFINED,                         /* usGpioPressAndHoldReset */
167 +    BP_NOT_DEFINED,                         /* usGpioPcmciaReset */
168 +    BP_NOT_DEFINED,                         /* usGpioUartRts */
169 +    BP_NOT_DEFINED,                         /* usGpioUartCts */
170 +    BP_NOT_DEFINED,                         /* usGpioLedAdsl */
171 +    BP_GPIO_2_AL,                           /* usGpioLedAdslFail */
172 +    BP_NOT_DEFINED,                         /* usGpioLedWireless */
173 +    BP_NOT_DEFINED,                         /* usGpioLedUsb */
174 +    BP_NOT_DEFINED,                         /* usGpioLedHpna */
175 +    BP_GPIO_3_AL,                           /* usGpioLedWanData */
176 +    BP_GPIO_3_AL,                           /* usGpioLedPpp */
177 +    BP_GPIO_4_AL,                           /* usGpioLedPppFail */
178 +    BP_GPIO_0_AL,                           /* usGpioLedBlPowerOn */
179 +    BP_NOT_DEFINED,                         /* usGpioLedBlAlarm */
180 +    BP_GPIO_3_AL,                           /* usGpioLedBlResetCfg */
181 +    BP_GPIO_1_AL,                           /* usGpioLedBlStop */
182 +    BP_NOT_DEFINED,                         /* usExtIntrWireless */
183 +    BP_HW_DEFINED,                          /* usExtIntrAdslDyingGasp */
184 +    BP_NOT_DEFINED,                         /* usExtIntrHpna */
185 +    BP_NOT_DEFINED,                         /* usCsHpna */
186 +    BP_NOT_DEFINED,                         /* usAntInUseWireless */
187 +    BP_NOT_DEFINED,                         /* usGpioSesBtnWireless */    
188 +    BP_NOT_DEFINED,                         /* usExtIntrSesBtnWireless */
189 +    BP_NOT_DEFINED                          /* usGpioLedSesWireless */         
190 +};
191 +static PBOARD_PARAMETERS g_BoardParms[] =
192 +    {&g_bcm96338sv, &g_bcm96338l2m8m, 0};
193 +#endif
194 +
195 +#if defined(_BCM96345_) || defined(CONFIG_BCM96345)
196 +static BOARD_PARAMETERS g_bcm96345r =
197 +{
198 +    "96345R",                               /* szBoardId */
199 +    {{BP_ENET_INTERNAL_PHY,                 /* ucPhyType */
200 +      0x01,                                 /* ucPhyAddress */
201 +      BP_NOT_DEFINED,                       /* usGpioPhySpiSck */
202 +      BP_NOT_DEFINED,                       /* usGpioPhySpiSs */
203 +      BP_NOT_DEFINED,                       /* usGpioPhySpiMosi */
204 +      BP_NOT_DEFINED,                       /* usGpioPhySpiMiso */
205 +      BP_NOT_DEFINED,                       /* usGpioPhyReset */
206 +      0x01,                                 /* numSwitchPorts */
207 +      BP_ENET_CONFIG_MDIO,                  /* usConfigType */
208 +      BP_NOT_DEFINED},                      /* usReverseMii */
209 +     {BP_ENET_NO_PHY}},                     /* ucPhyType */
210 +    {{BP_VOIP_NO_DSP},                      /* ucDspType */
211 +     {BP_VOIP_NO_DSP}},                     /* ucDspType */
212 +    BP_MEMORY_8MB_1_CHIP,                   /* usSdramSize */
213 +    BP_PSI_DEFAULT_SIZE,                    /* usPsiSize */
214 +    BP_GPIO_11_AH,                          /* usGpioRj11InnerPair */
215 +    BP_GPIO_12_AH,                          /* usGpioRj11OuterPair */
216 +    BP_GPIO_13_AH,                          /* usGpioPressAndHoldReset */
217 +    BP_NOT_DEFINED,                         /* usGpioPcmciaReset */
218 +    BP_NOT_DEFINED,                         /* usGpioUartRts */
219 +    BP_NOT_DEFINED,                         /* usGpioUartCts */
220 +    BP_GPIO_8_AH,                           /* usGpioLedAdsl */
221 +    BP_NOT_DEFINED,                         /* usGpioLedAdslFail */
222 +    BP_NOT_DEFINED,                         /* usGpioLedWireless */
223 +    BP_NOT_DEFINED,                         /* usGpioLedUsb */
224 +    BP_NOT_DEFINED,                         /* usGpioLedHpna */
225 +    BP_GPIO_8_AH,                           /* usGpioLedWanData */
226 +    BP_GPIO_9_AH,                           /* usGpioLedPpp */
227 +    BP_NOT_DEFINED,                         /* usGpioLedPppFail */
228 +    BP_NOT_DEFINED,                         /* usGpioLedBlPowerOn */
229 +    BP_GPIO_10_AH,                          /* usGpioLedBlAlarm */
230 +    BP_GPIO_9_AH,                           /* usGpioLedBlResetCfg */
231 +    BP_GPIO_8_AH,                           /* usGpioLedBlStop */
232 +    BP_NOT_DEFINED,                         /* usExtIntrWireless */
233 +    BP_EXT_INTR_0,                          /* usExtIntrAdslDyingGasp */
234 +    BP_NOT_DEFINED,                         /* usExtIntrHpna */
235 +    BP_NOT_DEFINED,                         /* usCsHpna */
236 +    BP_NOT_DEFINED,                         /* usAntInUseWireless */
237 +    BP_NOT_DEFINED,                         /* usGpioSesBtnWireless */
238 +    BP_NOT_DEFINED,                         /* usExtIntrSesBtnWireless */
239 +    BP_NOT_DEFINED                          /* usGpioLedSesWireless */
240 +};
241 +
242 +static BOARD_PARAMETERS g_bcm96345gw2 =
243 +{
244 +    /* A hardware jumper determines whether GPIO 13 is used for Press and Hold
245 +     * Reset or RTS.
246 +     */
247 +    "96345GW2",                             /* szBoardId */
248 +    {{BP_ENET_EXTERNAL_SWITCH,              /* ucPhyType */
249 +      0x00,                                 /* ucPhyAddress */
250 +      BP_GPIO_0_AH,                         /* usGpioPhySpiSck */
251 +      BP_GPIO_4_AH,                         /* usGpioPhySpiSs */
252 +      BP_GPIO_12_AH,                        /* usGpioPhySpiMosi */
253 +      BP_GPIO_11_AH,                        /* usGpioPhySpiMiso */
254 +      BP_NOT_DEFINED,                       /* usGpioPhyReset */
255 +      0x04,                                 /* numSwitchPorts */
256 +      BP_ENET_CONFIG_GPIO,                  /* usConfigType */
257 +      BP_ENET_REVERSE_MII},                 /* usReverseMii */
258 +     {BP_ENET_NO_PHY}},                     /* ucPhyType */
259 +    {{BP_VOIP_DSP,                          /* ucDspType */
260 +      0x00,                                 /* ucDspAddress */
261 +      BP_EXT_INTR_1,                        /* usExtIntrVoip */
262 +      BP_GPIO_6_AH,                         /* usGpioVoipReset */
263 +      BP_GPIO_15_AH,                        /* usGpioVoipIntr */
264 +      BP_NOT_DEFINED,                       /* usGpioLedVoip */
265 +      BP_CS_2},                             /* usCsVoip */
266 +     {BP_VOIP_NO_DSP}},                     /* ucDspType */
267 +    BP_MEMORY_16MB_1_CHIP,                  /* usSdramSize */
268 +    BP_PSI_DEFAULT_SIZE,                    /* usPsiSize */
269 +    BP_NOT_DEFINED,                         /* usGpioRj11InnerPair */
270 +    BP_NOT_DEFINED,                         /* usGpioRj11OuterPair */
271 +    BP_GPIO_13_AH,                          /* usGpioPressAndHoldReset */
272 +    BP_GPIO_2_AH,                           /* usGpioPcmciaReset */
273 +    BP_GPIO_13_AH,                          /* usGpioUartRts */
274 +    BP_GPIO_9_AH,                           /* usGpioUartCts */
275 +    BP_GPIO_8_AH,                           /* usGpioLedAdsl */
276 +    BP_NOT_DEFINED,                         /* usGpioLedAdslFail */
277 +    BP_NOT_DEFINED,                         /* usGpioLedWireless */
278 +    BP_GPIO_7_AH,                           /* usGpioLedUsb */
279 +    BP_NOT_DEFINED,                         /* usGpioLedHpna */
280 +    BP_GPIO_8_AH,                           /* usGpioLedWanData */
281 +    BP_NOT_DEFINED,                         /* usGpioLedPpp */
282 +    BP_NOT_DEFINED,                         /* usGpioLedPppFail */
283 +    BP_NOT_DEFINED,                         /* usGpioLedBlPowerOn */
284 +    BP_GPIO_10_AH,                          /* usGpioLedBlAlarm */
285 +    BP_GPIO_7_AH,                           /* usGpioLedBlResetCfg */
286 +    BP_GPIO_8_AH,                           /* usGpioLedBlStop */
287 +    BP_EXT_INTR_2,                          /* usExtIntrWireless */
288 +    BP_EXT_INTR_0,                          /* usExtIntrAdslDyingGasp */
289 +    BP_NOT_DEFINED,                         /* usExtIntrHpna */
290 +    BP_NOT_DEFINED,                         /* usCsHpna */
291 +    BP_WLAN_ANT_MAIN,                       /* usAntInUseWireless */
292 +    BP_NOT_DEFINED,                         /* usGpioSesBtnWireless */
293 +    BP_NOT_DEFINED,                         /* usExtIntrSesBtnWireless */
294 +    BP_NOT_DEFINED                          /* usGpioLedSesWireless */    
295 +};
296 +
297 +static BOARD_PARAMETERS g_bcm96345gw =
298 +{
299 +    "96345GW",                              /* szBoardId */
300 +    {{BP_ENET_EXTERNAL_SWITCH,              /* ucPhyType */
301 +      0x00,                                 /* ucPhyAddress */
302 +      BP_NOT_DEFINED,                       /* usGpioPhySpiSck */
303 +      BP_NOT_DEFINED,                       /* usGpioPhySpiSs */
304 +      BP_NOT_DEFINED,                       /* usGpioPhySpiMosi */
305 +      BP_NOT_DEFINED,                       /* usGpioPhySpiMiso */
306 +      BP_NOT_DEFINED,                       /* usGpioPhyReset */
307 +      0x04,                                 /* numSwitchPorts */
308 +      BP_ENET_CONFIG_MDIO,                  /* usConfigType */
309 +      BP_ENET_NO_REVERSE_MII},              /* usReverseMii */
310 +     {BP_ENET_NO_PHY}},                     /* ucPhyType */
311 +    {{BP_VOIP_DSP,                          /* ucDspType */
312 +      0x00,                                 /* ucDspAddress */
313 +      BP_EXT_INTR_1,                        /* usExtIntrVoip */
314 +      BP_GPIO_6_AH,                         /* usGpioVoipReset */
315 +      BP_GPIO_15_AH,                        /* usGpioVoipIntr */
316 +      BP_NOT_DEFINED,                       /* usGpioLedVoip */
317 +      BP_CS_2},                             /* usCsVoip */
318 +     {BP_VOIP_NO_DSP}},                     /* ucDspType */
319 +    BP_MEMORY_16MB_1_CHIP,                  /* usSdramSize */
320 +    BP_PSI_DEFAULT_SIZE,                    /* usPsiSize */
321 +    BP_GPIO_11_AH,                          /* usGpioRj11InnerPair */
322 +    BP_GPIO_1_AH,                           /* usGpioRj11OuterPair */
323 +    BP_GPIO_13_AH,                          /* usGpioPressAndHoldReset */
324 +    BP_GPIO_2_AH,                           /* usGpioPcmciaReset */
325 +    BP_NOT_DEFINED,                         /* usGpioUartRts */
326 +    BP_NOT_DEFINED,                         /* usGpioUartCts */
327 +    BP_GPIO_8_AH,                           /* usGpioLedAdsl */
328 +    BP_NOT_DEFINED,                         /* usGpioLedAdslFail */
329 +    BP_GPIO_10_AH,                          /* usGpioLedWireless */
330 +    BP_GPIO_7_AH,                           /* usGpioLedUsb */
331 +    BP_NOT_DEFINED,                         /* usGpioLedHpna */
332 +    BP_GPIO_8_AH,                           /* usGpioLedWanData */
333 +    BP_NOT_DEFINED,                         /* usGpioLedPpp */
334 +    BP_NOT_DEFINED,                         /* usGpioLedPppFail */
335 +    BP_NOT_DEFINED,                         /* usGpioLedBlPowerOn */
336 +    BP_GPIO_9_AH,                           /* usGpioLedBlAlarm */
337 +    BP_GPIO_10_AH,                          /* usGpioLedBlResetCfg */
338 +    BP_GPIO_8_AH,                           /* usGpioLedBlStop */
339 +    BP_EXT_INTR_2,                          /* usExtIntrWireless */
340 +    BP_EXT_INTR_0,                          /* usExtIntrAdslDyingGasp */
341 +    BP_EXT_INTR_3,                          /* usExtIntrHpna */
342 +    BP_CS_1,                                /* usCsHpna */
343 +    BP_WLAN_ANT_MAIN,                       /* usAntInUseWireless */
344 +    BP_NOT_DEFINED,                         /* usGpioSesBtnWireless */
345 +    BP_NOT_DEFINED,                         /* usExtIntrSesBtnWireless */
346 +    BP_NOT_DEFINED                          /* usGpioLedSesWireless */
347 +};
348 +
349 +static BOARD_PARAMETERS g_bcm96335r =
350 +{
351 +    "96335R",                               /* szBoardId */
352 +    {{BP_ENET_INTERNAL_PHY,                 /* ucPhyType */
353 +      0x01,                                 /* ucPhyAddress */
354 +      BP_NOT_DEFINED,                       /* usGpioPhySpiSck */
355 +      BP_NOT_DEFINED,                       /* usGpioPhySpiSs */
356 +      BP_NOT_DEFINED,                       /* usGpioPhySpiMosi */
357 +      BP_NOT_DEFINED,                       /* usGpioPhySpiMiso */
358 +      BP_NOT_DEFINED,                       /* usGpioPhyReset */
359 +      0x01,                                 /* numSwitchPorts */
360 +      BP_ENET_CONFIG_MDIO,                  /* usConfigType */
361 +      BP_NOT_DEFINED},                      /* usReverseMii */
362 +     {BP_ENET_NO_PHY}},                     /* ucPhyType */
363 +    {{BP_VOIP_NO_DSP},                      /* ucDspType */
364 +     {BP_VOIP_NO_DSP}},                     /* ucDspType */
365 +    BP_MEMORY_8MB_1_CHIP,                   /* usSdramSize */
366 +    BP_PSI_DEFAULT_SIZE,                    /* usPsiSize */
367 +    BP_NOT_DEFINED,                         /* usGpioRj11InnerPair */
368 +    BP_NOT_DEFINED,                         /* usGpioRj11OuterPair */
369 +    BP_GPIO_14_AH,                          /* usGpioPressAndHoldReset */
370 +    BP_NOT_DEFINED,                         /* usGpioPcmciaReset */
371 +    BP_NOT_DEFINED,                         /* usGpioUartRts */
372 +    BP_NOT_DEFINED,                         /* usGpioUartCts */
373 +    BP_GPIO_9_AH,                           /* usGpioLedAdsl */
374 +    BP_NOT_DEFINED,                         /* usGpioLedAdslFail */
375 +    BP_NOT_DEFINED,                         /* usGpioLedWireless */
376 +    BP_NOT_DEFINED,                         /* usGpioLedUsb */
377 +    BP_NOT_DEFINED,                         /* usGpioLedHpna */
378 +    BP_GPIO_9_AH,                           /* usGpioLedWanData */
379 +    BP_GPIO_8_AH,                           /* usGpioLedPpp */
380 +    BP_NOT_DEFINED,                         /* usGpioLedPppFail */
381 +    BP_NOT_DEFINED,                         /* usGpioLedBlPowerOn */
382 +    BP_GPIO_10_AH,                          /* usGpioLedBlAlarm */
383 +    BP_GPIO_8_AH,                           /* usGpioLedBlResetCfg */
384 +    BP_GPIO_9_AH,                           /* usGpioLedBlStop */
385 +    BP_NOT_DEFINED,                         /* usExtIntrWireless */
386 +    BP_NOT_DEFINED,                         /* usExtIntrAdslDyingGasp */
387 +    BP_NOT_DEFINED,                         /* usExtIntrHpna */
388 +    BP_NOT_DEFINED,                         /* usCsHpna */
389 +    BP_NOT_DEFINED,                         /* usAntInUseWireless */
390 +    BP_NOT_DEFINED,                         /* usGpioSesBtnWireless */
391 +    BP_NOT_DEFINED,                         /* usExtIntrSesBtnWireless */
392 +    BP_NOT_DEFINED                          /* usGpioLedSesWireless */
393 +};
394 +
395 +static BOARD_PARAMETERS g_bcm96345r0 =
396 +{
397 +    "96345R0",                              /* szBoardId */
398 +    {{BP_ENET_INTERNAL_PHY,                 /* ucPhyType */
399 +      0x01,                                 /* ucPhyAddress */
400 +      BP_NOT_DEFINED,                       /* usGpioPhySpiSck */
401 +      BP_NOT_DEFINED,                       /* usGpioPhySpiSs */
402 +      BP_NOT_DEFINED,                       /* usGpioPhySpiMosi */
403 +      BP_NOT_DEFINED,                       /* usGpioPhySpiMiso */
404 +      BP_NOT_DEFINED,                       /* usGpioPhyReset */
405 +      0x01,                                 /* numSwitchPorts */
406 +      BP_ENET_CONFIG_MDIO,                  /* usConfigType */
407 +      BP_NOT_DEFINED},                      /* usReverseMii */
408 +     {BP_ENET_NO_PHY}},                     /* ucPhyType */
409 +    {{BP_VOIP_NO_DSP},                      /* ucDspType */
410 +     {BP_VOIP_NO_DSP}},                     /* ucDspType */
411 +    BP_MEMORY_8MB_1_CHIP,                   /* usSdramSize */
412 +    BP_PSI_DEFAULT_SIZE,                    /* usPsiSize */
413 +    BP_NOT_DEFINED,                         /* usGpioRj11InnerPair */
414 +    BP_NOT_DEFINED,                         /* usGpioRj11OuterPair */
415 +    BP_NOT_DEFINED,                         /* usGpioPressAndHoldReset */
416 +    BP_NOT_DEFINED,                         /* usGpioPcmciaReset */
417 +    BP_NOT_DEFINED,                         /* usGpioUartRts */
418 +    BP_NOT_DEFINED,                         /* usGpioUartCts */
419 +    BP_GPIO_8_AH,                           /* usGpioLedAdsl */
420 +    BP_NOT_DEFINED,                         /* usGpioLedAdslFail */
421 +    BP_NOT_DEFINED,                         /* usGpioLedWireless */
422 +    BP_NOT_DEFINED,                         /* usGpioLedUsb */
423 +    BP_NOT_DEFINED,                         /* usGpioLedHpna */
424 +    BP_GPIO_9_AH,                           /* usGpioLedWanData */
425 +    BP_GPIO_9_AH,                           /* usGpioLedPpp */
426 +    BP_NOT_DEFINED,                         /* usGpioLedPppFail */
427 +    BP_NOT_DEFINED,                         /* usGpioLedBlPowerOn */
428 +    BP_GPIO_9_AH,                           /* usGpioLedBlAlarm */
429 +    BP_GPIO_8_AH,                           /* usGpioLedBlResetCfg */
430 +    BP_GPIO_8_AH,                           /* usGpioLedBlStop */
431 +    BP_NOT_DEFINED,                         /* usExtIntrWireless */
432 +    BP_NOT_DEFINED,                         /* usExtIntrAdslDyingGasp */
433 +    BP_NOT_DEFINED,                         /* usExtIntrHpna */
434 +    BP_NOT_DEFINED,                         /* usCsHpna */
435 +    BP_NOT_DEFINED,                         /* usAntInUseWireless */
436 +    BP_NOT_DEFINED,                         /* usGpioSesBtnWireless */     
437 +    BP_NOT_DEFINED,                         /* usExtIntrSesBtnWireless */
438 +    BP_NOT_DEFINED                          /* usGpioLedSesWireless */    
439 +};
440 +
441 +static BOARD_PARAMETERS g_bcm96345rs =
442 +{
443 +    "96345RS",                              /* szBoardId */
444 +    {{BP_ENET_EXTERNAL_SWITCH,              /* ucPhyType */
445 +      0x00,                                 /* ucPhyAddress */
446 +      BP_NOT_DEFINED,                       /* usGpioPhySpiSck */
447 +      BP_NOT_DEFINED,                       /* usGpioPhySpiSs */
448 +      BP_NOT_DEFINED,                       /* usGpioPhySpiMosi */
449 +      BP_NOT_DEFINED,                       /* usGpioPhySpiMiso */
450 +      BP_NOT_DEFINED,                       /* usGpioPhyReset */
451 +      0x01,                                 /* numSwitchPorts */
452 +      BP_ENET_CONFIG_MDIO,                  /* usConfigType */
453 +      BP_ENET_NO_REVERSE_MII},              /* usReverseMii */
454 +     {BP_ENET_NO_PHY}},                     /* ucPhyType */
455 +    {{BP_VOIP_NO_DSP},                      /* ucDspType */
456 +     {BP_VOIP_NO_DSP}},                     /* ucDspType */
457 +    BP_MEMORY_8MB_1_CHIP,                   /* usSdramSize */
458 +    BP_PSI_DEFAULT_SIZE,                    /* usPsiSize */
459 +    BP_GPIO_11_AH,                          /* usGpioRj11InnerPair */
460 +    BP_GPIO_12_AH,                          /* usGpioRj11OuterPair */
461 +    BP_GPIO_13_AH,                          /* usGpioPressAndHoldReset */
462 +    BP_NOT_DEFINED,                         /* usGpioPcmciaReset */
463 +    BP_NOT_DEFINED,                         /* usGpioUartRts */
464 +    BP_NOT_DEFINED,                         /* usGpioUartCts */
465 +    BP_GPIO_8_AH,                           /* usGpioLedAdsl */
466 +    BP_NOT_DEFINED,                         /* usGpioLedAdslFail */
467 +    BP_NOT_DEFINED,                         /* usGpioLedWireless */
468 +    BP_NOT_DEFINED,                         /* usGpioLedUsb */
469 +    BP_NOT_DEFINED,                         /* usGpioLedHpna */
470 +    BP_GPIO_8_AH,                           /* usGpioLedWanData */
471 +    BP_GPIO_9_AH,                           /* usGpioLedPpp */
472 +    BP_NOT_DEFINED,                         /* usGpioLedPppFail */
473 +    BP_NOT_DEFINED,                         /* usGpioLedBlPowerOn */
474 +    BP_GPIO_10_AH,                          /* usGpioLedBlAlarm */
475 +    BP_GPIO_9_AH,                           /* usGpioLedBlResetCfg */
476 +    BP_GPIO_8_AH,                           /* usGpioLedBlStop */
477 +    BP_NOT_DEFINED,                         /* usExtIntrWireless */
478 +    BP_EXT_INTR_0,                          /* usExtIntrAdslDyingGasp */
479 +    BP_NOT_DEFINED,                         /* usExtIntrHpna */
480 +    BP_NOT_DEFINED,                         /* usCsHpna */
481 +    BP_NOT_DEFINED,                         /* usAntInUseWireless */
482 +    BP_NOT_DEFINED,                         /* usGpioSesBtnWireless */
483 +    BP_NOT_DEFINED,                         /* usExtIntrSesBtnWireless */
484 +    BP_NOT_DEFINED                          /* usGpioLedSesWireless */
485 +};
486 +
487 +static PBOARD_PARAMETERS g_BoardParms[] =
488 +    {&g_bcm96345r, &g_bcm96345gw2, &g_bcm96345gw, &g_bcm96335r, &g_bcm96345r0,
489 +     &g_bcm96345rs, 0};
490 +#endif
491 +
492 +#if defined(_BCM96348_) || defined(CONFIG_BCM96348)
493 +
494 +static BOARD_PARAMETERS g_bcm96348r =
495 +{
496 +    "96348R",                               /* szBoardId */
497 +    {{BP_ENET_INTERNAL_PHY,                 /* ucPhyType */
498 +      0x01,                                 /* ucPhyAddress */
499 +      BP_NOT_DEFINED,                       /* usGpioPhySpiSck */
500 +      BP_NOT_DEFINED,                       /* usGpioPhySpiSs */
501 +      BP_NOT_DEFINED,                       /* usGpioPhySpiMosi */
502 +      BP_NOT_DEFINED,                       /* usGpioPhySpiMiso */
503 +      BP_NOT_DEFINED,                       /* usGpioPhyReset */
504 +      0x01,                                 /* numSwitchPorts */
505 +      BP_ENET_CONFIG_MDIO,                  /* usConfigType */
506 +      BP_NOT_DEFINED},                      /* usReverseMii */
507 +     {BP_ENET_NO_PHY}},                     /* ucPhyType */
508 +    {{BP_VOIP_NO_DSP},                      /* ucDspType */
509 +     {BP_VOIP_NO_DSP}},                     /* ucDspType */
510 +    BP_MEMORY_8MB_1_CHIP,                   /* usSdramSize */
511 +    BP_PSI_DEFAULT_SIZE,                    /* usPsiSize */
512 +    BP_NOT_DEFINED,                         /* usGpioRj11InnerPair */
513 +    BP_NOT_DEFINED,                         /* usGpioRj11OuterPair */
514 +    BP_GPIO_7_AH,                           /* usGpioPressAndHoldReset */
515 +    BP_NOT_DEFINED,                         /* usGpioPcmciaReset */
516 +    BP_NOT_DEFINED,                         /* usGpioUartRts */
517 +    BP_NOT_DEFINED,                         /* usGpioUartCts */
518 +    BP_NOT_DEFINED,                         /* usGpioLedAdsl */
519 +    BP_GPIO_2_AL,                           /* usGpioLedAdslFail */
520 +    BP_NOT_DEFINED,                         /* usGpioLedWireless */
521 +    BP_NOT_DEFINED,                         /* usGpioLedUsb */
522 +    BP_NOT_DEFINED,                         /* usGpioLedHpna */
523 +    BP_GPIO_3_AL,                           /* usGpioLedWanData */
524 +    BP_GPIO_3_AL,                           /* usGpioLedPpp */
525 +    BP_GPIO_4_AL,                           /* usGpioLedPppFail */
526 +    BP_GPIO_0_AL,                           /* usGpioLedBlPowerOn */
527 +    BP_NOT_DEFINED,                         /* usGpioLedBlAlarm */
528 +    BP_GPIO_3_AL,                           /* usGpioLedBlResetCfg */
529 +    BP_GPIO_1_AL,                           /* usGpioLedBlStop */
530 +    BP_NOT_DEFINED,                         /* usExtIntrWireless */
531 +    BP_HW_DEFINED,                          /* usExtIntrAdslDyingGasp */
532 +    BP_NOT_DEFINED,                         /* usExtIntrHpna */
533 +    BP_NOT_DEFINED,                         /* usCsHpna */
534 +    BP_NOT_DEFINED,                         /* usAntInUseWireless */
535 +    BP_NOT_DEFINED,                         /* usGpioSesBtnWireless */
536 +    BP_NOT_DEFINED,                         /* usExtIntrSesBtnWireless */
537 +    BP_NOT_DEFINED                          /* usGpioLedSesWireless */    
538 +};
539 +
540 +static BOARD_PARAMETERS g_bcm96348lv =
541 +{
542 +    "96348LV",                               /* szBoardId */
543 +    {{BP_ENET_INTERNAL_PHY,                 /* ucPhyType */
544 +      0x01,                                 /* ucPhyAddress */
545 +      BP_NOT_DEFINED,                       /* usGpioPhySpiSck */
546 +      BP_NOT_DEFINED,                       /* usGpioPhySpiSs */
547 +      BP_NOT_DEFINED,                       /* usGpioPhySpiMosi */
548 +      BP_NOT_DEFINED,                       /* usGpioPhySpiMiso */
549 +      BP_NOT_DEFINED,                       /* usGpioPhyReset */
550 +      0x01,                                 /* numSwitchPorts */
551 +      BP_ENET_CONFIG_MDIO,                  /* usConfigType */
552 +      BP_NOT_DEFINED},                      /* usReverseMii */
553 +     {BP_ENET_EXTERNAL_PHY,                 /* ucPhyType */
554 +      0x02,                                 /* ucPhyAddress */
555 +      BP_NOT_DEFINED,                       /* usGpioPhySpiSck */
556 +      BP_NOT_DEFINED,                       /* usGpioPhySpiSs */
557 +      BP_NOT_DEFINED,                       /* usGpioPhySpiMosi */
558 +      BP_NOT_DEFINED,                       /* usGpioPhySpiMiso */
559 +      BP_GPIO_5_AL,                         /* usGpioPhyReset */
560 +      0x01,                                 /* numSwitchPorts */
561 +      BP_ENET_CONFIG_MDIO,                  /* usConfigType */
562 +      BP_NOT_DEFINED}},                     /* usReverseMii */
563 +    {{BP_VOIP_NO_DSP},                      /* ucDspType */
564 +     {BP_VOIP_NO_DSP}},                     /* ucDspType */
565 +    BP_MEMORY_16MB_2_CHIP,                  /* usSdramSize */
566 +    BP_PSI_DEFAULT_SIZE,                    /* usPsiSize */
567 +    BP_NOT_DEFINED,                         /* usGpioRj11InnerPair */
568 +    BP_NOT_DEFINED,                         /* usGpioRj11OuterPair */
569 +    BP_GPIO_7_AH,                           /* usGpioPressAndHoldReset */
570 +    BP_NOT_DEFINED,                         /* usGpioPcmciaReset */
571 +    BP_NOT_DEFINED,                         /* usGpioUartRts */
572 +    BP_NOT_DEFINED,                         /* usGpioUartCts */
573 +    BP_NOT_DEFINED,                         /* usGpioLedAdsl */
574 +    BP_GPIO_2_AL,                           /* usGpioLedAdslFail */
575 +    BP_NOT_DEFINED,                         /* usGpioLedWireless */
576 +    BP_NOT_DEFINED,                         /* usGpioLedUsb */
577 +    BP_NOT_DEFINED,                         /* usGpioLedHpna */
578 +    BP_GPIO_3_AL,                           /* usGpioLedWanData */
579 +    BP_GPIO_3_AL,                           /* usGpioLedPpp */
580 +    BP_GPIO_4_AL,                           /* usGpioLedPppFail */
581 +    BP_GPIO_0_AL,                           /* usGpioLedBlPowerOn */
582 +    BP_NOT_DEFINED,                         /* usGpioLedBlAlarm */
583 +    BP_GPIO_3_AL,                           /* usGpioLedBlResetCfg */
584 +    BP_GPIO_1_AL,                           /* usGpioLedBlStop */
585 +    BP_NOT_DEFINED,                         /* usExtIntrWireless */
586 +    BP_NOT_DEFINED,                         /* usExtIntrAdslDyingGasp */
587 +    BP_NOT_DEFINED,                         /* usExtIntrHpna */
588 +    BP_NOT_DEFINED,                         /* usCsHpna */
589 +    BP_NOT_DEFINED,                         /* usAntInUseWireless */
590 +    BP_NOT_DEFINED,                         /* usGpioSesBtnWireless */
591 +    BP_NOT_DEFINED,                         /* usExtIntrSesBtnWireless */
592 +    BP_NOT_DEFINED                          /* usGpioLedSesWireless */
593 +};
594 +
595 +static BOARD_PARAMETERS g_bcm96348gw =
596 +{
597 +    "96348GW",                              /* szBoardId */
598 +    {{BP_ENET_INTERNAL_PHY,                 /* ucPhyType */
599 +      0x01,                                 /* ucPhyAddress */
600 +      BP_NOT_DEFINED,                       /* usGpioPhySpiSck */
601 +      BP_NOT_DEFINED,                       /* usGpioPhySpiSs */
602 +      BP_NOT_DEFINED,                       /* usGpioPhySpiMosi */
603 +      BP_NOT_DEFINED,                       /* usGpioPhySpiMiso */
604 +      BP_NOT_DEFINED,                       /* usGpioPhyReset */
605 +      0x01,                                 /* numSwitchPorts */
606 +      BP_ENET_CONFIG_MDIO,                  /* usConfigType */
607 +      BP_NOT_DEFINED},                      /* usReverseMii */
608 +     {BP_ENET_EXTERNAL_SWITCH,              /* ucPhyType */
609 +      0x00,                                 /* ucPhyAddress */
610 +      BP_NOT_DEFINED,                       /* usGpioPhySpiSck */
611 +      BP_NOT_DEFINED,                       /* usGpioPhySpiSs */
612 +      BP_NOT_DEFINED,                       /* usGpioPhySpiMosi */
613 +      BP_NOT_DEFINED,                       /* usGpioPhySpiMiso */
614 +      BP_NOT_DEFINED,                       /* usGpioPhyReset */
615 +      0x03,                                 /* numSwitchPorts */
616 +      BP_ENET_CONFIG_SPI_SSB_0,             /* usConfigType */
617 +      BP_ENET_REVERSE_MII}},                /* usReverseMii */
618 +    {{BP_VOIP_DSP,                          /* ucDspType */
619 +      0x00,                                 /* ucDspAddress */
620 +      BP_EXT_INTR_2,                        /* usExtIntrVoip */
621 +      BP_GPIO_6_AH,                         /* usGpioVoipReset */
622 +      BP_GPIO_34_AH,                        /* usGpioVoipIntr */
623 +      BP_NOT_DEFINED,                       /* usGpioLedVoip */
624 +      BP_CS_2},                             /* usCsVoip */
625 +     {BP_VOIP_NO_DSP}},                     /* ucDspType */
626 +    BP_MEMORY_16MB_2_CHIP,                  /* usSdramSize */
627 +    BP_PSI_DEFAULT_SIZE,                    /* usPsiSize */
628 +    BP_NOT_DEFINED,                         /* usGpioRj11InnerPair */
629 +    BP_NOT_DEFINED,                         /* usGpioRj11OuterPair */
630 +    BP_GPIO_33_AL,                          /* usGpioPressAndHoldReset */
631 +    BP_NOT_DEFINED,                         /* usGpioPcmciaReset */
632 +    BP_NOT_DEFINED,                         /* usGpioUartRts */
633 +    BP_NOT_DEFINED,                         /* usGpioUartCts */
634 +    BP_NOT_DEFINED,                         /* usGpioLedAdsl */
635 +    BP_GPIO_2_AL,                           /* usGpioLedAdslFail */
636 +    BP_NOT_DEFINED,                         /* usGpioLedWireless */
637 +    BP_NOT_DEFINED,                         /* usGpioLedUsb */
638 +    BP_NOT_DEFINED,                         /* usGpioLedHpna */
639 +    BP_GPIO_3_AL,                           /* usGpioLedWanData */
640 +    BP_GPIO_3_AL,                           /* usGpioLedPpp */
641 +    BP_GPIO_4_AL,                           /* usGpioLedPppFail */
642 +    BP_GPIO_0_AL,                           /* usGpioLedBlPowerOn */
643 +    BP_NOT_DEFINED,                         /* usGpioLedBlAlarm */
644 +    BP_GPIO_3_AL,                           /* usGpioLedBlResetCfg */
645 +    BP_GPIO_1_AL,                           /* usGpioLedBlStop */
646 +    BP_NOT_DEFINED,                         /* usExtIntrWireless */
647 +    BP_HW_DEFINED,                          /* usExtIntrAdslDyingGasp */
648 +    BP_NOT_DEFINED,                         /* usExtIntrHpna */
649 +    BP_NOT_DEFINED,                         /* usCsHpna */
650 +    BP_WLAN_ANT_MAIN,                       /* usAntInUseWireless */
651 +    BP_NOT_DEFINED, /* BP_GPIO_35_AH, */    /* usGpioSesBtnWireless */
652 +    BP_NOT_DEFINED, /* BP_EXT_INTR_3, */    /* usExtIntrSesBtnWireless */
653 +    BP_NOT_DEFINED  /* BP_GPIO_0_AL   */    /* usGpioLedSesWireless */
654 +};
655 +
656 +
657 +static BOARD_PARAMETERS g_bcm96348gw_10 =
658 +{
659 +    "96348GW-10",                           /* szBoardId */
660 +    {{BP_ENET_INTERNAL_PHY,                 /* ucPhyType */
661 +      0x01,                                 /* ucPhyAddress */
662 +      BP_NOT_DEFINED,                       /* usGpioPhySpiSck */
663 +      BP_NOT_DEFINED,                       /* usGpioPhySpiSs */
664 +      BP_NOT_DEFINED,                       /* usGpioPhySpiMosi */
665 +      BP_NOT_DEFINED,                       /* usGpioPhySpiMiso */
666 +      BP_NOT_DEFINED,                       /* usGpioPhyReset */
667 +      0x01,                                 /* numSwitchPorts */
668 +      BP_ENET_CONFIG_MDIO,                  /* usConfigType */
669 +      BP_NOT_DEFINED},                      /* usReverseMii */
670 +     {BP_ENET_EXTERNAL_SWITCH,              /* ucPhyType */
671 +      0x00,                                 /* ucPhyAddress */
672 +      BP_NOT_DEFINED,                       /* usGpioPhySpiSck */
673 +      BP_NOT_DEFINED,                       /* usGpioPhySpiSs */
674 +      BP_NOT_DEFINED,                       /* usGpioPhySpiMosi */
675 +      BP_NOT_DEFINED,                       /* usGpioPhySpiMiso */
676 +      BP_NOT_DEFINED,                       /* usGpioPhyReset */
677 +      0x03,                                 /* numSwitchPorts */
678 +      BP_ENET_CONFIG_SPI_SSB_1,             /* usConfigType */
679 +      BP_ENET_REVERSE_MII}},                /* usReverseMii */
680 +    {{BP_VOIP_DSP,                          /* ucDspType */
681 +      0x00,                                 /* ucDspAddress */
682 +      BP_EXT_INTR_2,                        /* usExtIntrVoip */
683 +      BP_GPIO_6_AH,                         /* usGpioVoipReset */
684 +      BP_GPIO_34_AH,                        /* usGpioVoipIntr */
685 +      BP_NOT_DEFINED,                       /* usGpioLedVoip */
686 +      BP_CS_2},                             /* usCsVoip */
687 +     {BP_VOIP_NO_DSP}},                     /* ucDspType */
688 +    BP_MEMORY_16MB_2_CHIP,                  /* usSdramSize */
689 +    BP_PSI_DEFAULT_SIZE,                    /* usPsiSize */
690 +    BP_NOT_DEFINED,                         /* usGpioRj11InnerPair */
691 +    BP_NOT_DEFINED,                         /* usGpioRj11OuterPair */
692 +    BP_GPIO_33_AL,                          /* usGpioPressAndHoldReset */
693 +    BP_NOT_DEFINED,                         /* usGpioPcmciaReset */
694 +    BP_NOT_DEFINED,                         /* usGpioUartRts */
695 +    BP_NOT_DEFINED,                         /* usGpioUartCts */
696 +    BP_NOT_DEFINED,                         /* usGpioLedAdsl */
697 +    BP_GPIO_2_AL,                           /* usGpioLedAdslFail */
698 +    BP_NOT_DEFINED,                         /* usGpioLedWireless */
699 +    BP_NOT_DEFINED,                         /* usGpioLedUsb */
700 +    BP_NOT_DEFINED,                         /* usGpioLedHpna */
701 +    BP_GPIO_3_AL,                           /* usGpioLedWanData */
702 +    BP_GPIO_3_AL,                           /* usGpioLedPpp */
703 +    BP_GPIO_4_AL,                           /* usGpioLedPppFail */
704 +    BP_GPIO_0_AL,                           /* usGpioLedBlPowerOn */
705 +    BP_NOT_DEFINED,                         /* usGpioLedBlAlarm */
706 +    BP_GPIO_3_AL,                           /* usGpioLedBlResetCfg */
707 +    BP_GPIO_1_AL,                           /* usGpioLedBlStop */
708 +    BP_NOT_DEFINED,                         /* usExtIntrWireless */
709 +    BP_HW_DEFINED,                          /* usExtIntrAdslDyingGasp */
710 +    BP_NOT_DEFINED,                         /* usExtIntrHpna */
711 +    BP_NOT_DEFINED,                         /* usCsHpna */
712 +    BP_WLAN_ANT_MAIN,                       /* usAntInUseWireless */
713 +    BP_NOT_DEFINED,                         /* usGpioSesBtnWireless */
714 +    BP_NOT_DEFINED,                         /* usExtIntrSesBtnWireless */
715 +    BP_NOT_DEFINED                          /* usGpioLedSesWireless */
716 +};
717 +
718 +static BOARD_PARAMETERS g_bcm96348gw_11 =
719 +{
720 +    "96348GW-11",                           /* szBoardId */
721 +    {{BP_ENET_NO_PHY},                      /* ucPhyType */
722 +     {BP_ENET_EXTERNAL_SWITCH,              /* ucPhyType */
723 +      0x00,                                 /* ucPhyAddress */
724 +      BP_NOT_DEFINED,                       /* usGpioPhySpiSck */
725 +      BP_NOT_DEFINED,                       /* usGpioPhySpiSs */
726 +      BP_NOT_DEFINED,                       /* usGpioPhySpiMosi */
727 +      BP_NOT_DEFINED,                       /* usGpioPhySpiMiso */
728 +      BP_NOT_DEFINED,                       /* usGpioPhyReset */
729 +      0x04,                                 /* numSwitchPorts */
730 +      BP_ENET_CONFIG_SPI_SSB_1,             /* usConfigType */
731 +      BP_ENET_REVERSE_MII}},                /* usReverseMii */
732 +    {{BP_VOIP_NO_DSP},                      /* ucDspType */
733 +     {BP_VOIP_NO_DSP}},                     /* ucDspType */
734 +    BP_MEMORY_16MB_2_CHIP,                  /* usSdramSize */
735 +    BP_PSI_DEFAULT_SIZE,                    /* usPsiSize */
736 +    BP_NOT_DEFINED,                         /* usGpioRj11InnerPair */
737 +    BP_NOT_DEFINED,                         /* usGpioRj11OuterPair */
738 +    BP_GPIO_33_AL,                          /* usGpioPressAndHoldReset */
739 +    BP_NOT_DEFINED,                         /* usGpioPcmciaReset */
740 +    BP_NOT_DEFINED,                         /* usGpioUartRts */
741 +    BP_NOT_DEFINED,                         /* usGpioUartCts */
742 +    BP_NOT_DEFINED,                         /* usGpioLedAdsl */
743 +    BP_GPIO_2_AL,                           /* usGpioLedAdslFail */
744 +    BP_NOT_DEFINED,                         /* usGpioLedWireless */
745 +    BP_NOT_DEFINED,                         /* usGpioLedUsb */
746 +    BP_NOT_DEFINED,                         /* usGpioLedHpna */
747 +    BP_GPIO_3_AL,                           /* usGpioLedWanData */
748 +    BP_GPIO_3_AL,                           /* usGpioLedPpp */
749 +    BP_GPIO_4_AL,                           /* usGpioLedPppFail */
750 +    BP_GPIO_0_AL,                           /* usGpioLedBlPowerOn */
751 +    BP_NOT_DEFINED,                         /* usGpioLedBlAlarm */
752 +    BP_GPIO_3_AL,                           /* usGpioLedBlResetCfg */
753 +    BP_GPIO_1_AL,                           /* usGpioLedBlStop */
754 +    BP_NOT_DEFINED,                         /* usExtIntrWireless */
755 +    BP_HW_DEFINED,                          /* usExtIntrAdslDyingGasp */
756 +    BP_NOT_DEFINED,                         /* usExtIntrHpna */
757 +    BP_NOT_DEFINED,                         /* usCsHpna */
758 +    BP_NOT_DEFINED,                         /* usAntInUseWireless */
759 +    BP_NOT_DEFINED,                         /* usGpioSesBtnWireless */
760 +    BP_NOT_DEFINED,                         /* usExtIntrSesBtnWireless */
761 +    BP_NOT_DEFINED                          /* usGpioLedSesWireless */    
762 +};
763 +
764 +static BOARD_PARAMETERS g_bcm96348sv =
765 +{
766 +    "96348SV",                              /* szBoardId */
767 +    {{BP_ENET_INTERNAL_PHY,                 /* ucPhyType */
768 +      0x01,                                 /* ucPhyAddress */
769 +      BP_NOT_DEFINED,                       /* usGpioPhySpiSck */
770 +      BP_NOT_DEFINED,                       /* usGpioPhySpiSs */
771 +      BP_NOT_DEFINED,                       /* usGpioPhySpiMosi */
772 +      BP_NOT_DEFINED,                       /* usGpioPhySpiMiso */
773 +      BP_NOT_DEFINED,                       /* usGpioPhyReset */
774 +      0x01,                                 /* numSwitchPorts */
775 +      BP_ENET_CONFIG_MDIO,                  /* usConfigType */
776 +      BP_NOT_DEFINED},                      /* usReverseMii */
777 +     {BP_ENET_EXTERNAL_PHY,                 /* ucPhyType */
778 +      0x1f,                                 /* ucPhyAddress */
779 +      BP_NOT_DEFINED,                       /* usGpioPhySpiSck */
780 +      BP_NOT_DEFINED,                       /* usGpioPhySpiSs */
781 +      BP_NOT_DEFINED,                       /* usGpioPhySpiMosi */
782 +      BP_NOT_DEFINED,                       /* usGpioPhySpiMiso */
783 +      BP_NOT_DEFINED,                       /* usGpioPhyReset */
784 +      0x01,                                 /* numSwitchPorts */
785 +      BP_ENET_CONFIG_MDIO,                  /* usConfigType */
786 +      BP_NOT_DEFINED}},                     /* usReverseMii */
787 +    {{BP_VOIP_NO_DSP},                      /* ucDspType */
788 +     {BP_VOIP_NO_DSP}},                     /* ucDspType */
789 +    BP_MEMORY_32MB_2_CHIP,                  /* usSdramSize */
790 +    BP_PSI_DEFAULT_SIZE,                    /* usPsiSize */
791 +    BP_NOT_DEFINED,                         /* usGpioRj11InnerPair */
792 +    BP_NOT_DEFINED,                         /* usGpioRj11OuterPair */
793 +    BP_NOT_DEFINED,                         /* usGpioPressAndHoldReset */
794 +    BP_NOT_DEFINED,                         /* usGpioPcmciaReset */
795 +    BP_NOT_DEFINED,                         /* usGpioUartRts */
796 +    BP_NOT_DEFINED,                         /* usGpioUartCts */
797 +    BP_NOT_DEFINED,                         /* usGpioLedAdsl */
798 +    BP_NOT_DEFINED,                         /* usGpioLedAdslFail */
799 +    BP_NOT_DEFINED,                         /* usGpioLedWireless */
800 +    BP_NOT_DEFINED,                         /* usGpioLedUsb */
801 +    BP_NOT_DEFINED,                         /* usGpioLedHpna */
802 +    BP_NOT_DEFINED,                         /* usGpioLedWanData */
803 +    BP_NOT_DEFINED,                         /* usGpioLedPpp */
804 +    BP_NOT_DEFINED,                         /* usGpioLedPppFail */
805 +    BP_NOT_DEFINED,                         /* usGpioLedBlPowerOn */
806 +    BP_NOT_DEFINED,                         /* usGpioLedBlAlarm */
807 +    BP_NOT_DEFINED,                         /* usGpioLedBlResetCfg */
808 +    BP_NOT_DEFINED,                         /* usGpioLedBlStop */
809 +    BP_NOT_DEFINED,                         /* usExtIntrWireless */
810 +    BP_HW_DEFINED,                          /* usExtIntrAdslDyingGasp */
811 +    BP_NOT_DEFINED,                         /* usExtIntrHpna */
812 +    BP_NOT_DEFINED,                         /* usCsHpna */
813 +    BP_NOT_DEFINED,                         /* usAntInUseWireless */
814 +    BP_NOT_DEFINED,                         /* usGpioSesBtnWireless */
815 +    BP_NOT_DEFINED,                         /* usExtIntrSesBtnWireless */
816 +    BP_NOT_DEFINED                          /* usGpioLedSesWireless */
817 +};
818 +
819 +
820 +static BOARD_PARAMETERS g_bcm96348gw_dualDsp =
821 +{
822 +    "96348GW-DualDSP",                      /* szBoardId */
823 +    {{BP_ENET_INTERNAL_PHY,                 /* ucPhyType */
824 +      0x01,                                 /* ucPhyAddress */
825 +      BP_NOT_DEFINED,                       /* usGpioPhySpiSck */
826 +      BP_NOT_DEFINED,                       /* usGpioPhySpiSs */
827 +      BP_NOT_DEFINED,                       /* usGpioPhySpiMosi */
828 +      BP_NOT_DEFINED,                       /* usGpioPhySpiMiso */
829 +      BP_NOT_DEFINED,                       /* usGpioPhyReset */
830 +      0x01,                                 /* numSwitchPorts */
831 +      BP_ENET_CONFIG_MDIO,                  /* usConfigType */
832 +      BP_NOT_DEFINED},                      /* usReverseMii */
833 +     {BP_ENET_EXTERNAL_SWITCH,              /* ucPhyType */
834 +      0x00,                                 /* ucPhyAddress */
835 +      BP_NOT_DEFINED,                       /* usGpioPhySpiSck */
836 +      BP_NOT_DEFINED,                       /* usGpioPhySpiSs */
837 +      BP_NOT_DEFINED,                       /* usGpioPhySpiMosi */
838 +      BP_NOT_DEFINED,                       /* usGpioPhySpiMiso */
839 +      BP_NOT_DEFINED,                       /* usGpioPhyReset */
840 +      0x03,                                 /* numSwitchPorts */
841 +      BP_ENET_CONFIG_SPI_SSB_1,             /* usConfigType */
842 +      BP_ENET_REVERSE_MII}},                /* usReverseMii */
843 +    {{BP_VOIP_DSP,                          /* ucDspType */
844 +      0x00,                                 /* ucDspAddress */
845 +      BP_EXT_INTR_2,                        /* usExtIntrVoip */
846 +      BP_UNEQUIPPED,                        /* usGpioVoipReset */
847 +      BP_GPIO_34_AH,                        /* usGpioVoipIntr */
848 +      BP_NOT_DEFINED,                       /* usGpioLedVoip */
849 +      BP_CS_2},                             /* usCsVoip */
850 +     {BP_VOIP_DSP,                          /* ucDspType */
851 +      0x01,                                 /* ucDspAddress */
852 +      BP_EXT_INTR_3,                        /* usExtIntrVoip */
853 +      BP_UNEQUIPPED ,                       /* usGpioVoipReset */
854 +      BP_GPIO_35_AH,                        /* usGpioVoipIntr */
855 +      BP_NOT_DEFINED,                       /* usGpioLedVoip */
856 +      BP_CS_3}},                            /* usCsVoip */
857 +    BP_MEMORY_16MB_2_CHIP,                  /* usSdramSize */
858 +    BP_PSI_DEFAULT_SIZE,                    /* usPsiSize */
859 +    BP_NOT_DEFINED,                         /* usGpioRj11InnerPair */
860 +    BP_NOT_DEFINED,                         /* usGpioRj11OuterPair */
861 +    BP_GPIO_33_AL,                          /* usGpioPressAndHoldReset */
862 +    BP_NOT_DEFINED,                         /* usGpioPcmciaReset */
863 +    BP_NOT_DEFINED,                         /* usGpioUartRts */
864 +    BP_NOT_DEFINED,                         /* usGpioUartCts */
865 +    BP_NOT_DEFINED,                         /* usGpioLedAdsl */
866 +    BP_GPIO_2_AL,                           /* usGpioLedAdslFail */
867 +    BP_NOT_DEFINED,                         /* usGpioLedWireless */
868 +    BP_NOT_DEFINED,                         /* usGpioLedUsb */
869 +    BP_NOT_DEFINED,                         /* usGpioLedHpna */
870 +    BP_GPIO_3_AL,                           /* usGpioLedWanData */
871 +    BP_GPIO_3_AL,                           /* usGpioLedPpp */
872 +    BP_GPIO_4_AL,                           /* usGpioLedPppFail */
873 +    BP_GPIO_0_AL,                           /* usGpioLedBlPowerOn */
874 +    BP_NOT_DEFINED,                         /* usGpioLedBlAlarm */
875 +    BP_GPIO_3_AL,                           /* usGpioLedBlResetCfg */
876 +    BP_GPIO_1_AL,                           /* usGpioLedBlStop */
877 +    BP_NOT_DEFINED,                         /* usExtIntrWireless */
878 +    BP_HW_DEFINED,                          /* usExtIntrAdslDyingGasp */
879 +    BP_NOT_DEFINED,                         /* usExtIntrHpna */
880 +    BP_NOT_DEFINED,                         /* usCsHpna */
881 +    BP_WLAN_ANT_MAIN,                       /* usAntInUseWireless */
882 +    BP_NOT_DEFINED,                         /* usGpioSesBtnWireless */
883 +    BP_NOT_DEFINED,                         /* usExtIntrSesBtnWireless */
884 +    BP_NOT_DEFINED                          /* usGpioLedSesWireless */
885 +};
886 +
887 +
888 +static BOARD_PARAMETERS g_bcmCustom_01 =
889 +{
890 +     "BCMCUST_01",                          /* szBoardId */
891 +    {{BP_ENET_INTERNAL_PHY,                 /* ucPhyType */
892 +      0x01,                                 /* ucPhyAddress */
893 +      BP_NOT_DEFINED,                       /* usGpioPhySpiSck */
894 +      BP_NOT_DEFINED,                       /* usGpioPhySpiSs */
895 +      BP_NOT_DEFINED,                       /* usGpioPhySpiMosi */
896 +      BP_NOT_DEFINED,                       /* usGpioPhySpiMiso */
897 +      BP_NOT_DEFINED,                       /* usGpioPhyReset */
898 +      0x01,                                 /* numSwitchPorts */
899 +      BP_ENET_CONFIG_MDIO,                  /* usConfigType */
900 +      BP_NOT_DEFINED},                      /* usReverseMii */
901 +     {BP_ENET_NO_PHY,                       /* ucPhyType */
902 +      0x00,                                 /* ucPhyAddress */
903 +      BP_NOT_DEFINED,                       /* usGpioPhySpiSck */
904 +      BP_NOT_DEFINED,                       /* usGpioPhySpiSs */
905 +      BP_NOT_DEFINED,                       /* usGpioPhySpiMosi */
906 +      BP_NOT_DEFINED,                       /* usGpioPhySpiMiso */
907 +      BP_NOT_DEFINED,                       /* usGpioPhyReset */
908 +      0x01,                                 /* numSwitchPorts */
909 +      BP_ENET_CONFIG_SPI_SSB_1,             /* usConfigType */
910 +      BP_ENET_REVERSE_MII}},                /* usReverseMii */
911 +    {{BP_VOIP_DSP,                          /* ucDspType */
912 +      0x00,                                 /* ucDspAddress */
913 +      BP_EXT_INTR_2,                        /* usExtIntrVoip */
914 +      BP_GPIO_36_AH,                        /* usGpioVoipReset */
915 +      BP_GPIO_34_AL,                        /* usGpioVoipIntr */
916 +      BP_NOT_DEFINED,                       /* usGpioLedVoip */
917 +      BP_CS_2},                             /* usCsVoip */
918 +     {BP_VOIP_NO_DSP}},                     /* ucDspType */
919 +    BP_MEMORY_16MB_2_CHIP,                  /* usSdramSize */
920 +    BP_PSI_DEFAULT_SIZE,                    /* usPsiSize */
921 +    BP_NOT_DEFINED,                         /* usGpioRj11InnerPair */
922 +    BP_NOT_DEFINED,                         /* usGpioRj11OuterPair */
923 +    BP_GPIO_33_AL,                          /* usGpioPressAndHoldReset */
924 +    BP_NOT_DEFINED,                         /* usGpioPcmciaReset */
925 +    BP_NOT_DEFINED,                         /* usGpioUartRts */
926 +    BP_NOT_DEFINED,                         /* usGpioUartCts */
927 +    BP_NOT_DEFINED,                         /* usGpioLedAdsl */
928 +    BP_GPIO_2_AL,                           /* usGpioLedAdslFail */
929 +    BP_NOT_DEFINED,                         /* usGpioLedWireless */
930 +    BP_NOT_DEFINED,                         /* usGpioLedUsb */
931 +    BP_NOT_DEFINED,                         /* usGpioLedHpna */
932 +    BP_GPIO_3_AL,                           /* usGpioLedWanData */
933 +    BP_GPIO_3_AL,                           /* usGpioLedPpp */
934 +    BP_GPIO_4_AL,                           /* usGpioLedPppFail */
935 +    BP_GPIO_0_AL,                           /* usGpioLedBlPowerOn */
936 +    BP_NOT_DEFINED,                         /* usGpioLedBlAlarm */
937 +    BP_GPIO_3_AL,                           /* usGpioLedBlResetCfg */
938 +    BP_GPIO_1_AL,                           /* usGpioLedBlStop */
939 +    BP_NOT_DEFINED,                         /* usExtIntrWireless */
940 +    BP_NOT_DEFINED,                         /* usExtIntrAdslDyingGasp */
941 +    BP_NOT_DEFINED,                         /* usExtIntrHpna */
942 +    BP_NOT_DEFINED,                         /* usCsHpna */
943 +    BP_NOT_DEFINED,                         /* usAntInUseWireless */
944 +    BP_NOT_DEFINED,                         /* usGpioSesBtnWireless */
945 +    BP_NOT_DEFINED,                         /* usExtIntrSesBtnWireless */
946 +    BP_NOT_DEFINED                          /* usGpioLedSesWireless */
947 +};
948 +
949 +static PBOARD_PARAMETERS g_BoardParms[] =
950 +    {&g_bcm96348r, &g_bcm96348lv, &g_bcm96348gw, &g_bcm96348gw_10,
951 +     &g_bcm96348gw_11, &g_bcm96348sv, &g_bcm96348gw_dualDsp,
952 +     &g_bcmCustom_01, 0};
953 +#endif
954 +
955 +static PBOARD_PARAMETERS g_pCurrentBp = 0;
956 +
957 +/**************************************************************************
958 + * Name       : bpstrcmp
959 + *
960 + * Description: String compare for this file so it does not depend on an OS.
961 + *              (Linux kernel and CFE share this source file.)
962 + *
963 + * Parameters : [IN] dest - destination string
964 + *              [IN] src - source string
965 + *
966 + * Returns    : -1 - dest < src, 1 - dest > src, 0 dest == src
967 + ***************************************************************************/
968 +static int bpstrcmp(const char *dest,const char *src);
969 +static int bpstrcmp(const char *dest,const char *src)
970 +{
971 +    while (*src && *dest)
972 +    {
973 +        if (*dest < *src) return -1;
974 +        if (*dest > *src) return 1;
975 +        dest++;
976 +        src++;
977 +    }
978 +
979 +    if (*dest && !*src) return 1;
980 +    if (!*dest && *src) return -1;
981 +    return 0;
982 +} /* bpstrcmp */
983 +
984 +/**************************************************************************
985 + * Name       : BpGetVoipDspConfig
986 + *
987 + * Description: Gets the DSP configuration from the board parameter
988 + *              structure for a given DSP index.
989 + *
990 + * Parameters : [IN] dspNum - DSP index (number)
991 + *
992 + * Returns    : Pointer to DSP configuration block if found/valid, NULL
993 + *              otherwise.
994 + ***************************************************************************/
995 +VOIP_DSP_INFO *BpGetVoipDspConfig( unsigned char dspNum );
996 +VOIP_DSP_INFO *BpGetVoipDspConfig( unsigned char dspNum )
997 +{
998 +    VOIP_DSP_INFO *pDspConfig = 0;
999 +    int i;
1000 +
1001 +    if( g_pCurrentBp )
1002 +    {
1003 +        for( i = 0 ; i < BP_MAX_VOIP_DSP ; i++ )
1004 +        {
1005 +            if( g_pCurrentBp->VoIPDspInfo[i].ucDspType != BP_VOIP_NO_DSP &&
1006 +                g_pCurrentBp->VoIPDspInfo[i].ucDspAddress == dspNum )
1007 +            {
1008 +                pDspConfig = &g_pCurrentBp->VoIPDspInfo[i];
1009 +                break;
1010 +            }
1011 +        }
1012 +    }
1013 +
1014 +    return pDspConfig;
1015 +}
1016 +
1017 +
1018 +/**************************************************************************
1019 + * Name       : BpSetBoardId
1020 + *
1021 + * Description: This function find the BOARD_PARAMETERS structure for the
1022 + *              specified board id string and assigns it to a global, static
1023 + *              variable.
1024 + *
1025 + * Parameters : [IN] pszBoardId - Board id string that is saved into NVRAM.
1026 + *
1027 + * Returns    : BP_SUCCESS - Success, value is returned.
1028 + *              BP_BOARD_ID_NOT_FOUND - Error, board id input string does not
1029 + *                  have a board parameters configuration record.
1030 + ***************************************************************************/
1031 +int BpSetBoardId( char *pszBoardId )
1032 +{
1033 +    int nRet = BP_BOARD_ID_NOT_FOUND;
1034 +    PBOARD_PARAMETERS *ppBp;
1035 +
1036 +    for( ppBp = g_BoardParms; *ppBp; ppBp++ )
1037 +    {
1038 +        if( !bpstrcmp((*ppBp)->szBoardId, pszBoardId) )
1039 +        {
1040 +            g_pCurrentBp = *ppBp;
1041 +            nRet = BP_SUCCESS;
1042 +            break;
1043 +        }
1044 +    }
1045 +
1046 +    return( nRet );
1047 +} /* BpSetBoardId */
1048 +
1049 +/**************************************************************************
1050 + * Name       : BpGetBoardIds
1051 + *
1052 + * Description: This function returns all of the supported board id strings.
1053 + *
1054 + * Parameters : [OUT] pszBoardIds - Address of a buffer that the board id
1055 + *                  strings are returned in.  Each id starts at BP_BOARD_ID_LEN
1056 + *                  boundary.
1057 + *              [IN] nBoardIdsSize - Number of BP_BOARD_ID_LEN elements that
1058 + *                  were allocated in pszBoardIds.
1059 + *
1060 + * Returns    : Number of board id strings returned.
1061 + ***************************************************************************/
1062 +int BpGetBoardIds( char *pszBoardIds, int nBoardIdsSize )
1063 +{
1064 +    PBOARD_PARAMETERS *ppBp;
1065 +    int i;
1066 +    char *src;
1067 +    char *dest;
1068 +
1069 +    for( i = 0, ppBp = g_BoardParms; *ppBp && nBoardIdsSize;
1070 +        i++, ppBp++, nBoardIdsSize--, pszBoardIds += BP_BOARD_ID_LEN )
1071 +    {
1072 +        dest = pszBoardIds;
1073 +        src = (*ppBp)->szBoardId;
1074 +        while( *src )
1075 +            *dest++ = *src++;
1076 +        *dest = '\0';
1077 +    }
1078 +
1079 +    return( i );
1080 +} /* BpGetBoardIds */
1081 +
1082 +/**************************************************************************
1083 + * Name       : BpGetEthernetMacInfo
1084 + *
1085 + * Description: This function returns all of the supported board id strings.
1086 + *
1087 + * Parameters : [OUT] pEnetInfos - Address of an array of ETHERNET_MAC_INFO
1088 + *                  buffers.
1089 + *              [IN] nNumEnetInfos - Number of ETHERNET_MAC_INFO elements that
1090 + *                  are pointed to by pEnetInfos.
1091 + *
1092 + * Returns    : BP_SUCCESS - Success, value is returned.
1093 + *              BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
1094 + ***************************************************************************/
1095 +int BpGetEthernetMacInfo( PETHERNET_MAC_INFO pEnetInfos, int nNumEnetInfos )
1096 +{
1097 +    int i, nRet;
1098 +
1099 +    if( g_pCurrentBp )
1100 +    {
1101 +        for( i = 0; i < nNumEnetInfos; i++, pEnetInfos++ )
1102 +        {
1103 +            if( i < BP_MAX_ENET_MACS )
1104 +            {
1105 +                unsigned char *src = (unsigned char *)
1106 +                    &g_pCurrentBp->EnetMacInfos[i];
1107 +                unsigned char *dest = (unsigned char *) pEnetInfos;
1108 +                int len = sizeof(ETHERNET_MAC_INFO);
1109 +                while( len-- )
1110 +                    *dest++ = *src++;
1111 +            }
1112 +            else
1113 +                pEnetInfos->ucPhyType = BP_ENET_NO_PHY;
1114 +        }
1115 +
1116 +        nRet = BP_SUCCESS;
1117 +    }
1118 +    else
1119 +    {
1120 +        for( i = 0; i < nNumEnetInfos; i++, pEnetInfos++ )
1121 +            pEnetInfos->ucPhyType = BP_ENET_NO_PHY;
1122 +
1123 +        nRet = BP_BOARD_ID_NOT_SET;
1124 +    }
1125 +
1126 +    return( nRet );
1127 +} /* BpGetEthernetMacInfo */
1128 +
1129 +/**************************************************************************
1130 + * Name       : BpGetSdramSize
1131 + *
1132 + * Description: This function returns a constant that describees the board's
1133 + *              SDRAM type and size.
1134 + *
1135 + * Parameters : [OUT] pulSdramSize - Address of short word that the SDRAM size
1136 + *                  is returned in.
1137 + *
1138 + * Returns    : BP_SUCCESS - Success, value is returned.
1139 + *              BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
1140 + ***************************************************************************/
1141 +int BpGetSdramSize( unsigned long *pulSdramSize )
1142 +{
1143 +    int nRet;
1144 +
1145 +    if( g_pCurrentBp )
1146 +    {
1147 +        *pulSdramSize = g_pCurrentBp->usSdramSize;
1148 +        nRet = BP_SUCCESS;
1149 +    }
1150 +    else
1151 +    {
1152 +        *pulSdramSize = BP_NOT_DEFINED;
1153 +        nRet = BP_BOARD_ID_NOT_SET;
1154 +    }
1155 +
1156 +    return( nRet );
1157 +} /* BpGetSdramSize */
1158 +
1159 +/**************************************************************************
1160 + * Name       : BpGetPsiSize
1161 + *
1162 + * Description: This function returns the persistent storage size in K bytes.
1163 + *
1164 + * Parameters : [OUT] pulPsiSize - Address of short word that the persistent
1165 + *                  storage size is returned in.
1166 + *
1167 + * Returns    : BP_SUCCESS - Success, value is returned.
1168 + *              BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
1169 + ***************************************************************************/
1170 +int BpGetPsiSize( unsigned long *pulPsiSize )
1171 +{
1172 +    int nRet;
1173 +
1174 +    if( g_pCurrentBp )
1175 +    {
1176 +        *pulPsiSize = g_pCurrentBp->usPsiSize;
1177 +        nRet = BP_SUCCESS;
1178 +    }
1179 +    else
1180 +    {
1181 +        *pulPsiSize = BP_NOT_DEFINED;
1182 +        nRet = BP_BOARD_ID_NOT_SET;
1183 +    }
1184 +
1185 +    return( nRet );
1186 +} /* BpGetPsiSize */
1187 +
1188 +/**************************************************************************
1189 + * Name       : BpGetRj11InnerOuterPairGpios
1190 + *
1191 + * Description: This function returns the GPIO pin assignments for changing
1192 + *              between the RJ11 inner pair and RJ11 outer pair.
1193 + *
1194 + * Parameters : [OUT] pusInner - Address of short word that the RJ11 inner pair
1195 + *                  GPIO pin is returned in.
1196 + *              [OUT] pusOuter - Address of short word that the RJ11 outer pair
1197 + *                  GPIO pin is returned in.
1198 + *
1199 + * Returns    : BP_SUCCESS - Success, values are returned.
1200 + *              BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
1201 + *              BP_VALUE_NOT_DEFINED - At least one return value is not defined
1202 + *                  for the board.
1203 + ***************************************************************************/
1204 +int BpGetRj11InnerOuterPairGpios( unsigned short *pusInner,
1205 +    unsigned short *pusOuter )
1206 +{
1207 +    int nRet;
1208 +
1209 +    if( g_pCurrentBp )
1210 +    {
1211 +        *pusInner = g_pCurrentBp->usGpioRj11InnerPair;
1212 +        *pusOuter = g_pCurrentBp->usGpioRj11OuterPair;
1213 +
1214 +        if( g_pCurrentBp->usGpioRj11InnerPair != BP_NOT_DEFINED &&
1215 +            g_pCurrentBp->usGpioRj11OuterPair != BP_NOT_DEFINED )
1216 +        {
1217 +            nRet = BP_SUCCESS;
1218 +        }
1219 +        else
1220 +        {
1221 +            nRet = BP_VALUE_NOT_DEFINED;
1222 +        }
1223 +    }
1224 +    else
1225 +    {
1226 +        *pusInner = *pusOuter = BP_NOT_DEFINED;
1227 +        nRet = BP_BOARD_ID_NOT_SET;
1228 +    }
1229 +
1230 +    return( nRet );
1231 +} /* BpGetRj11InnerOuterPairGpios */
1232 +
1233 +/**************************************************************************
1234 + * Name       : BpGetPressAndHoldResetGpio
1235 + *
1236 + * Description: This function returns the GPIO pin assignment for the press
1237 + *              and hold reset button.
1238 + *
1239 + * Parameters : [OUT] pusValue - Address of short word that the press and hold
1240 + *                  reset button GPIO pin is returned in.
1241 + *
1242 + * Returns    : BP_SUCCESS - Success, value is returned.
1243 + *              BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
1244 + *              BP_VALUE_NOT_DEFINED - At least one return value is not defined
1245 + *                  for the board.
1246 + ***************************************************************************/
1247 +int BpGetPressAndHoldResetGpio( unsigned short *pusValue )
1248 +{
1249 +    int nRet;
1250 +
1251 +    if( g_pCurrentBp )
1252 +    {
1253 +        *pusValue = g_pCurrentBp->usGpioPressAndHoldReset;
1254 +
1255 +        if( g_pCurrentBp->usGpioPressAndHoldReset != BP_NOT_DEFINED )
1256 +        {
1257 +            nRet = BP_SUCCESS;
1258 +        }
1259 +        else
1260 +        {
1261 +            nRet = BP_VALUE_NOT_DEFINED;
1262 +        }
1263 +    }
1264 +    else
1265 +    {
1266 +        *pusValue = BP_NOT_DEFINED;
1267 +        nRet = BP_BOARD_ID_NOT_SET;
1268 +    }
1269 +
1270 +    return( nRet );
1271 +} /* BpGetPressAndHoldResetGpio */
1272 +
1273 +/**************************************************************************
1274 + * Name       : BpGetVoipResetGpio
1275 + *
1276 + * Description: This function returns the GPIO pin assignment for the VOIP
1277 + *              Reset operation.
1278 + *
1279 + * Parameters : [OUT] pusValue - Address of short word that the VOIP reset
1280 + *                  GPIO pin is returned in.
1281 + *              [IN] dspNum - Address of the DSP to query.
1282 + *
1283 + * Returns    : BP_SUCCESS - Success, value is returned.
1284 + *              BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
1285 + *              BP_VALUE_NOT_DEFINED - At least one return value is not defined
1286 + *                  for the board.
1287 + ***************************************************************************/
1288 +int BpGetVoipResetGpio( unsigned char dspNum, unsigned short *pusValue )
1289 +{
1290 +    int nRet;
1291 +
1292 +    if( g_pCurrentBp )
1293 +    {
1294 +        VOIP_DSP_INFO *pDspInfo = BpGetVoipDspConfig( dspNum );
1295 +
1296 +        if( pDspInfo )
1297 +        {
1298 +           *pusValue = pDspInfo->usGpioVoipReset;
1299 +
1300 +           if( *pusValue != BP_NOT_DEFINED ||
1301 +               *pusValue == BP_UNEQUIPPED )
1302 +           {
1303 +              nRet = BP_SUCCESS;
1304 +           }
1305 +           else
1306 +           {
1307 +              nRet = BP_VALUE_NOT_DEFINED;
1308 +           }
1309 +        }
1310 +        else
1311 +        {
1312 +           *pusValue = BP_NOT_DEFINED;
1313 +           nRet = BP_BOARD_ID_NOT_FOUND;
1314 +        }
1315 +    }
1316 +    else
1317 +    {
1318 +        *pusValue = BP_NOT_DEFINED;
1319 +        nRet = BP_BOARD_ID_NOT_SET;
1320 +    }
1321 +
1322 +    return( nRet );
1323 +} /* BpGetVoipResetGpio */
1324 +
1325 +/**************************************************************************
1326 + * Name       : BpGetVoipIntrGpio
1327 + *
1328 + * Description: This function returns the GPIO pin assignment for VoIP interrupt.
1329 + *
1330 + * Parameters : [OUT] pusValue - Address of short word that the VOIP interrupt
1331 + *                  GPIO pin is returned in.
1332 + *              [IN] dspNum - Address of the DSP to query.
1333 + *
1334 + * Returns    : BP_SUCCESS - Success, value is returned.
1335 + *              BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
1336 + *              BP_VALUE_NOT_DEFINED - At least one return value is not defined
1337 + *                  for the board.
1338 + ***************************************************************************/
1339 +int BpGetVoipIntrGpio( unsigned char dspNum, unsigned short *pusValue )
1340 +{
1341 +    int nRet;
1342 +
1343 +    if( g_pCurrentBp )
1344 +    {
1345 +        VOIP_DSP_INFO *pDspInfo = BpGetVoipDspConfig( dspNum );
1346 +
1347 +        if( pDspInfo )
1348 +        {
1349 +           *pusValue = pDspInfo->usGpioVoipIntr;
1350 +
1351 +           if( *pusValue != BP_NOT_DEFINED )
1352 +           {
1353 +              nRet = BP_SUCCESS;
1354 +           }
1355 +           else
1356 +           {
1357 +              nRet = BP_VALUE_NOT_DEFINED;
1358 +           }
1359 +        }
1360 +        else
1361 +        {
1362 +           *pusValue = BP_NOT_DEFINED;
1363 +           nRet = BP_BOARD_ID_NOT_FOUND;
1364 +        }
1365 +    }
1366 +    else
1367 +    {
1368 +        *pusValue = BP_NOT_DEFINED;
1369 +        nRet = BP_BOARD_ID_NOT_SET;
1370 +    }
1371 +
1372 +    return( nRet );
1373 +} /* BpGetVoipIntrGpio */
1374 +
1375 +/**************************************************************************
1376 + * Name       : BpGetPcmciaResetGpio
1377 + *
1378 + * Description: This function returns the GPIO pin assignment for the PCMCIA
1379 + *              Reset operation.
1380 + *
1381 + * Parameters : [OUT] pusValue - Address of short word that the PCMCIA reset
1382 + *                  GPIO pin is returned in.
1383 + *
1384 + * Returns    : BP_SUCCESS - Success, value is returned.
1385 + *              BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
1386 + *              BP_VALUE_NOT_DEFINED - At least one return value is not defined
1387 + *                  for the board.
1388 + ***************************************************************************/
1389 +int BpGetPcmciaResetGpio( unsigned short *pusValue )
1390 +{
1391 +    int nRet;
1392 +
1393 +    if( g_pCurrentBp )
1394 +    {
1395 +        *pusValue = g_pCurrentBp->usGpioPcmciaReset;
1396 +
1397 +        if( g_pCurrentBp->usGpioPcmciaReset != BP_NOT_DEFINED )
1398 +        {
1399 +            nRet = BP_SUCCESS;
1400 +        }
1401 +        else
1402 +        {
1403 +            nRet = BP_VALUE_NOT_DEFINED;
1404 +        }
1405 +    }
1406 +    else
1407 +    {
1408 +        *pusValue = BP_NOT_DEFINED;
1409 +        nRet = BP_BOARD_ID_NOT_SET;
1410 +    }
1411 +
1412 +    return( nRet );
1413 +} /* BpGetPcmciaResetGpio */
1414 +
1415 +/**************************************************************************
1416 + * Name       : BpGetUartRtsCtsGpios
1417 + *
1418 + * Description: This function returns the GPIO pin assignments for RTS and CTS
1419 + *              UART signals.
1420 + *
1421 + * Parameters : [OUT] pusRts - Address of short word that the UART RTS GPIO
1422 + *                  pin is returned in.
1423 + *              [OUT] pusCts - Address of short word that the UART CTS GPIO
1424 + *                  pin is returned in.
1425 + *
1426 + * Returns    : BP_SUCCESS - Success, values are returned.
1427 + *              BP_BOARD_ID_NOT_SET - Error, board id input string does not
1428 + *              BP_VALUE_NOT_DEFINED - At least one return value is not defined
1429 + *                  for the board.
1430 + ***************************************************************************/
1431 +int BpGetRtsCtsUartGpios( unsigned short *pusRts, unsigned short *pusCts )
1432 +{
1433 +    int nRet;
1434 +
1435 +    if( g_pCurrentBp )
1436 +    {
1437 +        *pusRts = g_pCurrentBp->usGpioUartRts;
1438 +        *pusCts = g_pCurrentBp->usGpioUartCts;
1439 +
1440 +        if( g_pCurrentBp->usGpioUartRts != BP_NOT_DEFINED &&
1441 +            g_pCurrentBp->usGpioUartCts != BP_NOT_DEFINED )
1442 +        {
1443 +            nRet = BP_SUCCESS;
1444 +        }
1445 +        else
1446 +        {
1447 +            nRet = BP_VALUE_NOT_DEFINED;
1448 +        }
1449 +    }
1450 +    else
1451 +    {
1452 +        *pusRts = *pusCts = BP_NOT_DEFINED;
1453 +        nRet = BP_BOARD_ID_NOT_SET;
1454 +    }
1455 +
1456 +    return( nRet );
1457 +} /* BpGetUartRtsCtsGpios */
1458 +
1459 +/**************************************************************************
1460 + * Name       : BpGetAdslLedGpio
1461 + *
1462 + * Description: This function returns the GPIO pin assignment for the ADSL
1463 + *              LED.
1464 + *
1465 + * Parameters : [OUT] pusValue - Address of short word that the ADSL LED
1466 + *                  GPIO pin is returned in.
1467 + *
1468 + * Returns    : BP_SUCCESS - Success, value is returned.
1469 + *              BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
1470 + *              BP_VALUE_NOT_DEFINED - At least one return value is not defined
1471 + *                  for the board.
1472 + ***************************************************************************/
1473 +int BpGetAdslLedGpio( unsigned short *pusValue )
1474 +{
1475 +    int nRet;
1476 +
1477 +    if( g_pCurrentBp )
1478 +    {
1479 +        *pusValue = g_pCurrentBp->usGpioLedAdsl;
1480 +
1481 +        if( g_pCurrentBp->usGpioLedAdsl != BP_NOT_DEFINED )
1482 +        {
1483 +            nRet = BP_SUCCESS;
1484 +        }
1485 +        else
1486 +        {
1487 +            nRet = BP_VALUE_NOT_DEFINED;
1488 +        }
1489 +    }
1490 +    else
1491 +    {
1492 +        *pusValue = BP_NOT_DEFINED;
1493 +        nRet = BP_BOARD_ID_NOT_SET;
1494 +    }
1495 +
1496 +    return( nRet );
1497 +} /* BpGetAdslLedGpio */
1498 +
1499 +/**************************************************************************
1500 + * Name       : BpGetAdslFailLedGpio
1501 + *
1502 + * Description: This function returns the GPIO pin assignment for the ADSL
1503 + *              LED that is used when there is a DSL connection failure.
1504 + *
1505 + * Parameters : [OUT] pusValue - Address of short word that the ADSL LED
1506 + *                  GPIO pin is returned in.
1507 + *
1508 + * Returns    : BP_SUCCESS - Success, value is returned.
1509 + *              BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
1510 + *              BP_VALUE_NOT_DEFINED - At least one return value is not defined
1511 + *                  for the board.
1512 + ***************************************************************************/
1513 +int BpGetAdslFailLedGpio( unsigned short *pusValue )
1514 +{
1515 +    int nRet;
1516 +
1517 +    if( g_pCurrentBp )
1518 +    {
1519 +        *pusValue = g_pCurrentBp->usGpioLedAdslFail;
1520 +
1521 +        if( g_pCurrentBp->usGpioLedAdslFail != BP_NOT_DEFINED )
1522 +        {
1523 +            nRet = BP_SUCCESS;
1524 +        }
1525 +        else
1526 +        {
1527 +            nRet = BP_VALUE_NOT_DEFINED;
1528 +        }
1529 +    }
1530 +    else
1531 +    {
1532 +        *pusValue = BP_NOT_DEFINED;
1533 +        nRet = BP_BOARD_ID_NOT_SET;
1534 +    }
1535 +
1536 +    return( nRet );
1537 +} /* BpGetAdslFailLedGpio */
1538 +
1539 +/**************************************************************************
1540 + * Name       : BpGetWirelessLedGpio
1541 + *
1542 + * Description: This function returns the GPIO pin assignment for the Wireless
1543 + *              LED.
1544 + *
1545 + * Parameters : [OUT] pusValue - Address of short word that the Wireless LED
1546 + *                  GPIO pin is returned in.
1547 + *
1548 + * Returns    : BP_SUCCESS - Success, value is returned.
1549 + *              BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
1550 + *              BP_VALUE_NOT_DEFINED - At least one return value is not defined
1551 + *                  for the board.
1552 + ***************************************************************************/
1553 +int BpGetWirelessLedGpio( unsigned short *pusValue )
1554 +{
1555 +    int nRet;
1556 +
1557 +    if( g_pCurrentBp )
1558 +    {
1559 +        *pusValue = g_pCurrentBp->usGpioLedWireless;
1560 +
1561 +        if( g_pCurrentBp->usGpioLedWireless != BP_NOT_DEFINED )
1562 +        {
1563 +            nRet = BP_SUCCESS;
1564 +        }
1565 +        else
1566 +        {
1567 +            nRet = BP_VALUE_NOT_DEFINED;
1568 +        }
1569 +    }
1570 +    else
1571 +    {
1572 +        *pusValue = BP_NOT_DEFINED;
1573 +        nRet = BP_BOARD_ID_NOT_SET;
1574 +    }
1575 +
1576 +    return( nRet );
1577 +} /* BpGetWirelessLedGpio */
1578 +
1579 +/**************************************************************************
1580 + * Name       : BpGetWirelessAntInUse
1581 + *
1582 + * Description: This function returns the antennas in use for wireless
1583 + *
1584 + * Parameters : [OUT] pusValue - Address of short word that the Wireless Antenna
1585 + *                  is in use.
1586 + *
1587 + * Returns    : BP_SUCCESS - Success, value is returned.
1588 + *              BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
1589 + *              BP_VALUE_NOT_DEFINED - At least one return value is not defined
1590 + *                  for the board.
1591 + ***************************************************************************/
1592 +int BpGetWirelessAntInUse( unsigned short *pusValue )
1593 +{
1594 +    int nRet;
1595 +
1596 +    if( g_pCurrentBp )
1597 +    {
1598 +        *pusValue = g_pCurrentBp->usAntInUseWireless;
1599 +
1600 +        if( g_pCurrentBp->usAntInUseWireless != BP_NOT_DEFINED )
1601 +        {
1602 +            nRet = BP_SUCCESS;
1603 +        }
1604 +        else
1605 +        {
1606 +            nRet = BP_VALUE_NOT_DEFINED;
1607 +        }
1608 +    }
1609 +    else
1610 +    {
1611 +        *pusValue = BP_NOT_DEFINED;
1612 +        nRet = BP_BOARD_ID_NOT_SET;
1613 +    }
1614 +
1615 +    return( nRet );    
1616 +} /* BpGetWirelessAntInUse */
1617 +
1618 +/**************************************************************************
1619 + * Name       : BpGetWirelessSesBtnGpio
1620 + *
1621 + * Description: This function returns the GPIO pin assignment for the Wireless
1622 + *              Ses Button.
1623 + *
1624 + * Parameters : [OUT] pusValue - Address of short word that the Wireless LED
1625 + *                  GPIO pin is returned in.
1626 + *
1627 + * Returns    : BP_SUCCESS - Success, value is returned.
1628 + *              BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
1629 + *              BP_VALUE_NOT_DEFINED - At least one return value is not defined
1630 + *                  for the board.
1631 + ***************************************************************************/
1632 +int BpGetWirelessSesBtnGpio( unsigned short *pusValue )
1633 +{
1634 +    int nRet;
1635 +
1636 +    if( g_pCurrentBp )
1637 +    {
1638 +        *pusValue = g_pCurrentBp->usGpioSesBtnWireless;
1639 +
1640 +        if( g_pCurrentBp->usGpioSesBtnWireless != BP_NOT_DEFINED )
1641 +        {
1642 +            nRet = BP_SUCCESS;
1643 +        }
1644 +        else
1645 +        {
1646 +            nRet = BP_VALUE_NOT_DEFINED;
1647 +        }
1648 +    }
1649 +    else
1650 +    {
1651 +        *pusValue = BP_NOT_DEFINED;
1652 +        nRet = BP_BOARD_ID_NOT_SET;
1653 +    }
1654 +
1655 +    return( nRet );    
1656 +} /* BpGetWirelessSesBtnGpio */
1657 +
1658 +/**************************************************************************
1659 + * Name       : BpGetWirelessSesExtIntr
1660 + *
1661 + * Description: This function returns the external interrupt number for the 
1662 + *              Wireless Ses Button.
1663 + *
1664 + * Parameters : [OUT] pusValue - Address of short word that the Wireless Ses
1665 + *                  external interrup is returned in.
1666 + *
1667 + * Returns    : BP_SUCCESS - Success, value is returned.
1668 + *              BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
1669 + *              BP_VALUE_NOT_DEFINED - At least one return value is not defined
1670 + *                  for the board.
1671 + ***************************************************************************/
1672 +int BpGetWirelessSesExtIntr( unsigned short *pusValue )
1673 +{
1674 +    int nRet;
1675 +
1676 +    if( g_pCurrentBp )
1677 +    {
1678 +        *pusValue = g_pCurrentBp->usExtIntrSesBtnWireless;
1679 +
1680 +        if( g_pCurrentBp->usExtIntrSesBtnWireless != BP_NOT_DEFINED )
1681 +        {
1682 +            nRet = BP_SUCCESS;
1683 +        }
1684 +        else
1685 +        {
1686 +            nRet = BP_VALUE_NOT_DEFINED;
1687 +        }
1688 +    }
1689 +    else
1690 +    {
1691 +        *pusValue = BP_NOT_DEFINED;
1692 +        nRet = BP_BOARD_ID_NOT_SET;
1693 +    }
1694 +
1695 +    return( nRet );    
1696 +               
1697 +} /* BpGetWirelessSesExtIntr */
1698 +
1699 +/**************************************************************************
1700 + * Name       : BpGetWirelessSesLedGpio
1701 + *
1702 + * Description: This function returns the GPIO pin assignment for the Wireless
1703 + *              Ses Led.
1704 + *
1705 + * Parameters : [OUT] pusValue - Address of short word that the Wireless Ses
1706 + *                  Led GPIO pin is returned in.
1707 + *
1708 + * Returns    : BP_SUCCESS - Success, value is returned.
1709 + *              BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
1710 + *              BP_VALUE_NOT_DEFINED - At least one return value is not defined
1711 + *                  for the board.
1712 + ***************************************************************************/
1713 +int BpGetWirelessSesLedGpio( unsigned short *pusValue )
1714 +{
1715 +    int nRet;
1716 +
1717 +    if( g_pCurrentBp )
1718 +    {
1719 +        *pusValue = g_pCurrentBp->usGpioLedSesWireless;
1720 +
1721 +        if( g_pCurrentBp->usGpioLedSesWireless != BP_NOT_DEFINED )
1722 +        {
1723 +            nRet = BP_SUCCESS;
1724 +        }
1725 +        else
1726 +        {
1727 +            nRet = BP_VALUE_NOT_DEFINED;
1728 +        }
1729 +    }
1730 +    else
1731 +    {
1732 +        *pusValue = BP_NOT_DEFINED;
1733 +        nRet = BP_BOARD_ID_NOT_SET;
1734 +    }
1735 +
1736 +    return( nRet );
1737 +       
1738 +} /* BpGetWirelessSesLedGpio */
1739 +
1740 +/**************************************************************************
1741 + * Name       : BpGetUsbLedGpio
1742 + *
1743 + * Description: This function returns the GPIO pin assignment for the USB
1744 + *              LED.
1745 + *
1746 + * Parameters : [OUT] pusValue - Address of short word that the USB LED
1747 + *                  GPIO pin is returned in.
1748 + *
1749 + * Returns    : BP_SUCCESS - Success, value is returned.
1750 + *              BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
1751 + *              BP_VALUE_NOT_DEFINED - At least one return value is not defined
1752 + *                  for the board.
1753 + ***************************************************************************/
1754 +int BpGetUsbLedGpio( unsigned short *pusValue )
1755 +{
1756 +    int nRet;
1757 +
1758 +    if( g_pCurrentBp )
1759 +    {
1760 +        *pusValue = g_pCurrentBp->usGpioLedUsb;
1761 +
1762 +        if( g_pCurrentBp->usGpioLedUsb != BP_NOT_DEFINED )
1763 +        {
1764 +            nRet = BP_SUCCESS;
1765 +        }
1766 +        else
1767 +        {
1768 +            nRet = BP_VALUE_NOT_DEFINED;
1769 +        }
1770 +    }
1771 +    else
1772 +    {
1773 +        *pusValue = BP_NOT_DEFINED;
1774 +        nRet = BP_BOARD_ID_NOT_SET;
1775 +    }
1776 +
1777 +    return( nRet );
1778 +} /* BpGetUsbLedGpio */
1779 +
1780 +/**************************************************************************
1781 + * Name       : BpGetHpnaLedGpio
1782 + *
1783 + * Description: This function returns the GPIO pin assignment for the HPNA
1784 + *              LED.
1785 + *
1786 + * Parameters : [OUT] pusValue - Address of short word that the HPNA LED
1787 + *                  GPIO pin is returned in.
1788 + *
1789 + * Returns    : BP_SUCCESS - Success, value is returned.
1790 + *              BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
1791 + *              BP_VALUE_NOT_DEFINED - At least one return value is not defined
1792 + *                  for the board.
1793 + ***************************************************************************/
1794 +int BpGetHpnaLedGpio( unsigned short *pusValue )
1795 +{
1796 +    int nRet;
1797 +
1798 +    if( g_pCurrentBp )
1799 +    {
1800 +        *pusValue = g_pCurrentBp->usGpioLedHpna;
1801 +
1802 +        if( g_pCurrentBp->usGpioLedHpna != BP_NOT_DEFINED )
1803 +        {
1804 +            nRet = BP_SUCCESS;
1805 +        }
1806 +        else
1807 +        {
1808 +            nRet = BP_VALUE_NOT_DEFINED;
1809 +        }
1810 +    }
1811 +    else
1812 +    {
1813 +        *pusValue = BP_NOT_DEFINED;
1814 +        nRet = BP_BOARD_ID_NOT_SET;
1815 +    }
1816 +
1817 +    return( nRet );
1818 +} /* BpGetHpnaLedGpio */
1819 +
1820 +/**************************************************************************
1821 + * Name       : BpGetWanDataLedGpio
1822 + *
1823 + * Description: This function returns the GPIO pin assignment for the WAN Data
1824 + *              LED.
1825 + *
1826 + * Parameters : [OUT] pusValue - Address of short word that the WAN Data LED
1827 + *                  GPIO pin is returned in.
1828 + *
1829 + * Returns    : BP_SUCCESS - Success, value is returned.
1830 + *              BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
1831 + *              BP_VALUE_NOT_DEFINED - At least one return value is not defined
1832 + *                  for the board.
1833 + ***************************************************************************/
1834 +int BpGetWanDataLedGpio( unsigned short *pusValue )
1835 +{
1836 +    int nRet;
1837 +
1838 +    if( g_pCurrentBp )
1839 +    {
1840 +        *pusValue = g_pCurrentBp->usGpioLedWanData;
1841 +
1842 +        if( g_pCurrentBp->usGpioLedWanData != BP_NOT_DEFINED )
1843 +        {
1844 +            nRet = BP_SUCCESS;
1845 +        }
1846 +        else
1847 +        {
1848 +            nRet = BP_VALUE_NOT_DEFINED;
1849 +        }
1850 +    }
1851 +    else
1852 +    {
1853 +        *pusValue = BP_NOT_DEFINED;
1854 +        nRet = BP_BOARD_ID_NOT_SET;
1855 +    }
1856 +
1857 +    return( nRet );
1858 +} /* BpGetWanDataLedGpio */
1859 +
1860 +/**************************************************************************
1861 + * Name       : BpGetPppLedGpio
1862 + *
1863 + * Description: This function returns the GPIO pin assignment for the PPP
1864 + *              LED.
1865 + *
1866 + * Parameters : [OUT] pusValue - Address of short word that the PPP LED
1867 + *                  GPIO pin is returned in.
1868 + *
1869 + * Returns    : BP_SUCCESS - Success, value is returned.
1870 + *              BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
1871 + *              BP_VALUE_NOT_DEFINED - At least one return value is not defined
1872 + *                  for the board.
1873 + ***************************************************************************/
1874 +int BpGetPppLedGpio( unsigned short *pusValue )
1875 +{
1876 +    int nRet;
1877 +
1878 +    if( g_pCurrentBp )
1879 +    {
1880 +        *pusValue = g_pCurrentBp->usGpioLedPpp;
1881 +
1882 +        if( g_pCurrentBp->usGpioLedPpp != BP_NOT_DEFINED )
1883 +        {
1884 +            nRet = BP_SUCCESS;
1885 +        }
1886 +        else
1887 +        {
1888 +            nRet = BP_VALUE_NOT_DEFINED;
1889 +        }
1890 +    }
1891 +    else
1892 +    {
1893 +        *pusValue = BP_NOT_DEFINED;
1894 +        nRet = BP_BOARD_ID_NOT_SET;
1895 +    }
1896 +
1897 +    return( nRet );
1898 +} /* BpGetPppLedGpio */
1899 +
1900 +/**************************************************************************
1901 + * Name       : BpGetPppFailLedGpio
1902 + *
1903 + * Description: This function returns the GPIO pin assignment for the PPP
1904 + *              LED that is used when there is a PPP connection failure.
1905 + *
1906 + * Parameters : [OUT] pusValue - Address of short word that the PPP LED
1907 + *                  GPIO pin is returned in.
1908 + *
1909 + * Returns    : BP_SUCCESS - Success, value is returned.
1910 + *              BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
1911 + *              BP_VALUE_NOT_DEFINED - At least one return value is not defined
1912 + *                  for the board.
1913 + ***************************************************************************/
1914 +int BpGetPppFailLedGpio( unsigned short *pusValue )
1915 +{
1916 +    int nRet;
1917 +
1918 +    if( g_pCurrentBp )
1919 +    {
1920 +        *pusValue = g_pCurrentBp->usGpioLedPppFail;
1921 +
1922 +        if( g_pCurrentBp->usGpioLedPppFail != BP_NOT_DEFINED )
1923 +        {
1924 +            nRet = BP_SUCCESS;
1925 +        }
1926 +        else
1927 +        {
1928 +            nRet = BP_VALUE_NOT_DEFINED;
1929 +        }
1930 +    }
1931 +    else
1932 +    {
1933 +        *pusValue = BP_NOT_DEFINED;
1934 +        nRet = BP_BOARD_ID_NOT_SET;
1935 +    }
1936 +
1937 +    return( nRet );
1938 +} /* BpGetPppFailLedGpio */
1939 +
1940 +/**************************************************************************
1941 + * Name       : BpGetBootloaderPowerOnLedGpio
1942 + *
1943 + * Description: This function returns the GPIO pin assignment for the power
1944 + *              on LED that is set by the bootloader.
1945 + *
1946 + * Parameters : [OUT] pusValue - Address of short word that the alarm LED
1947 + *                  GPIO pin is returned in.
1948 + *
1949 + * Returns    : BP_SUCCESS - Success, value is returned.
1950 + *              BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
1951 + *              BP_VALUE_NOT_DEFINED - At least one return value is not defined
1952 + *                  for the board.
1953 + ***************************************************************************/
1954 +int BpGetBootloaderPowerOnLedGpio( unsigned short *pusValue )
1955 +{
1956 +    int nRet;
1957 +
1958 +    if( g_pCurrentBp )
1959 +    {
1960 +        *pusValue = g_pCurrentBp->usGpioLedBlPowerOn;
1961 +
1962 +        if( g_pCurrentBp->usGpioLedBlPowerOn != BP_NOT_DEFINED )
1963 +        {
1964 +            nRet = BP_SUCCESS;
1965 +        }
1966 +        else
1967 +        {
1968 +            nRet = BP_VALUE_NOT_DEFINED;
1969 +        }
1970 +    }
1971 +    else
1972 +    {
1973 +        *pusValue = BP_NOT_DEFINED;
1974 +        nRet = BP_BOARD_ID_NOT_SET;
1975 +    }
1976 +
1977 +    return( nRet );
1978 +} /* BpGetBootloaderPowerOn */
1979 +
1980 +/**************************************************************************
1981 + * Name       : BpGetBootloaderAlarmLedGpio
1982 + *
1983 + * Description: This function returns the GPIO pin assignment for the alarm
1984 + *              LED that is set by the bootloader.
1985 + *
1986 + * Parameters : [OUT] pusValue - Address of short word that the alarm LED
1987 + *                  GPIO pin is returned in.
1988 + *
1989 + * Returns    : BP_SUCCESS - Success, value is returned.
1990 + *              BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
1991 + *              BP_VALUE_NOT_DEFINED - At least one return value is not defined
1992 + *                  for the board.
1993 + ***************************************************************************/
1994 +int BpGetBootloaderAlarmLedGpio( unsigned short *pusValue )
1995 +{
1996 +    int nRet;
1997 +
1998 +    if( g_pCurrentBp )
1999 +    {
2000 +        *pusValue = g_pCurrentBp->usGpioLedBlAlarm;
2001 +
2002 +        if( g_pCurrentBp->usGpioLedBlAlarm != BP_NOT_DEFINED )
2003 +        {
2004 +            nRet = BP_SUCCESS;
2005 +        }
2006 +        else
2007 +        {
2008 +            nRet = BP_VALUE_NOT_DEFINED;
2009 +        }
2010 +    }
2011 +    else
2012 +    {
2013 +        *pusValue = BP_NOT_DEFINED;
2014 +        nRet = BP_BOARD_ID_NOT_SET;
2015 +    }
2016 +
2017 +    return( nRet );
2018 +} /* BpGetBootloaderAlarmLedGpio */
2019 +
2020 +/**************************************************************************
2021 + * Name       : BpGetBootloaderResetCfgLedGpio
2022 + *
2023 + * Description: This function returns the GPIO pin assignment for the reset
2024 + *              configuration LED that is set by the bootloader.
2025 + *
2026 + * Parameters : [OUT] pusValue - Address of short word that the reset
2027 + *                  configuration LED GPIO pin is returned in.
2028 + *
2029 + * Returns    : BP_SUCCESS - Success, value is returned.
2030 + *              BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
2031 + *              BP_VALUE_NOT_DEFINED - At least one return value is not defined
2032 + *                  for the board.
2033 + ***************************************************************************/
2034 +int BpGetBootloaderResetCfgLedGpio( unsigned short *pusValue )
2035 +{
2036 +    int nRet;
2037 +
2038 +    if( g_pCurrentBp )
2039 +    {
2040 +        *pusValue = g_pCurrentBp->usGpioLedBlResetCfg;
2041 +
2042 +        if( g_pCurrentBp->usGpioLedBlResetCfg != BP_NOT_DEFINED )
2043 +        {
2044 +            nRet = BP_SUCCESS;
2045 +        }
2046 +        else
2047 +        {
2048 +            nRet = BP_VALUE_NOT_DEFINED;
2049 +        }
2050 +    }
2051 +    else
2052 +    {
2053 +        *pusValue = BP_NOT_DEFINED;
2054 +        nRet = BP_BOARD_ID_NOT_SET;
2055 +    }
2056 +
2057 +    return( nRet );
2058 +} /* BpGetBootloaderResetCfgLedGpio */
2059 +
2060 +/**************************************************************************
2061 + * Name       : BpGetBootloaderStopLedGpio
2062 + *
2063 + * Description: This function returns the GPIO pin assignment for the break
2064 + *              into bootloader LED that is set by the bootloader.
2065 + *
2066 + * Parameters : [OUT] pusValue - Address of short word that the break into
2067 + *                  bootloader LED GPIO pin is returned in.
2068 + *
2069 + * Returns    : BP_SUCCESS - Success, value is returned.
2070 + *              BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
2071 + *              BP_VALUE_NOT_DEFINED - At least one return value is not defined
2072 + *                  for the board.
2073 + ***************************************************************************/
2074 +int BpGetBootloaderStopLedGpio( unsigned short *pusValue )
2075 +{
2076 +    int nRet;
2077 +
2078 +    if( g_pCurrentBp )
2079 +    {
2080 +        *pusValue = g_pCurrentBp->usGpioLedBlStop;
2081 +
2082 +        if( g_pCurrentBp->usGpioLedBlStop != BP_NOT_DEFINED )
2083 +        {
2084 +            nRet = BP_SUCCESS;
2085 +        }
2086 +        else
2087 +        {
2088 +            nRet = BP_VALUE_NOT_DEFINED;
2089 +        }
2090 +    }
2091 +    else
2092 +    {
2093 +        *pusValue = BP_NOT_DEFINED;
2094 +        nRet = BP_BOARD_ID_NOT_SET;
2095 +    }
2096 +
2097 +    return( nRet );
2098 +} /* BpGetBootloaderStopLedGpio */
2099 +
2100 +/**************************************************************************
2101 + * Name       : BpGetVoipLedGpio
2102 + *
2103 + * Description: This function returns the GPIO pin assignment for the VOIP
2104 + *              LED.
2105 + *
2106 + * Parameters : [OUT] pusValue - Address of short word that the VOIP LED
2107 + *                  GPIO pin is returned in.
2108 + *
2109 + * Returns    : BP_SUCCESS - Success, value is returned.
2110 + *              BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
2111 + *              BP_VALUE_NOT_DEFINED - At least one return value is not defined
2112 + *                  for the board.
2113 + *
2114 + * Note       : The VoIP structure would allow for having one LED per DSP
2115 + *              however, the board initialization function assumes only one
2116 + *              LED per functionality (ie one LED for VoIP).  Therefore in
2117 + *              order to keep this tidy and simple we do not make usage of the
2118 + *              one-LED-per-DSP function.  Instead, we assume that the LED for
2119 + *              VoIP is unique and associated with DSP 0 (always present on
2120 + *              any VoIP platform).  If changing this to a LED-per-DSP function
2121 + *              then one need to update the board initialization driver in
2122 + *              bcmdrivers\opensource\char\board\bcm963xx\impl1
2123 + ***************************************************************************/
2124 +int BpGetVoipLedGpio( unsigned short *pusValue )
2125 +{
2126 +    int nRet;
2127 +
2128 +    if( g_pCurrentBp )
2129 +    {
2130 +        VOIP_DSP_INFO *pDspInfo = BpGetVoipDspConfig( 0 );
2131 +
2132 +        if( pDspInfo )
2133 +        {
2134 +           *pusValue = pDspInfo->usGpioLedVoip;
2135 +
2136 +           if( *pusValue != BP_NOT_DEFINED )
2137 +           {
2138 +              nRet = BP_SUCCESS;
2139 +           }
2140 +           else
2141 +           {
2142 +              nRet = BP_VALUE_NOT_DEFINED;
2143 +           }
2144 +        }
2145 +        else
2146 +        {
2147 +           *pusValue = BP_NOT_DEFINED;
2148 +           nRet = BP_BOARD_ID_NOT_FOUND;
2149 +        }
2150 +    }
2151 +    else
2152 +    {
2153 +        *pusValue = BP_NOT_DEFINED;
2154 +        nRet = BP_BOARD_ID_NOT_SET;
2155 +    }
2156 +
2157 +    return( nRet );
2158 +} /* BpGetVoipLedGpio */
2159 +
2160 +/**************************************************************************
2161 + * Name       : BpGetWirelessExtIntr
2162 + *
2163 + * Description: This function returns the Wireless external interrupt number.
2164 + *
2165 + * Parameters : [OUT] pulValue - Address of short word that the wireless
2166 + *                  external interrupt number is returned in.
2167 + *
2168 + * Returns    : BP_SUCCESS - Success, value is returned.
2169 + *              BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
2170 + *              BP_VALUE_NOT_DEFINED - At least one return value is not defined
2171 + *                  for the board.
2172 + ***************************************************************************/
2173 +int BpGetWirelessExtIntr( unsigned long *pulValue )
2174 +{
2175 +    int nRet;
2176 +
2177 +    if( g_pCurrentBp )
2178 +    {
2179 +        *pulValue = g_pCurrentBp->usExtIntrWireless;
2180 +
2181 +        if( g_pCurrentBp->usExtIntrWireless != BP_NOT_DEFINED )
2182 +        {
2183 +            nRet = BP_SUCCESS;
2184 +        }
2185 +        else
2186 +        {
2187 +            nRet = BP_VALUE_NOT_DEFINED;
2188 +        }
2189 +    }
2190 +    else
2191 +    {
2192 +        *pulValue = BP_NOT_DEFINED;
2193 +        nRet = BP_BOARD_ID_NOT_SET;
2194 +    }
2195 +
2196 +    return( nRet );
2197 +} /* BpGetWirelessExtIntr */
2198 +
2199 +/**************************************************************************
2200 + * Name       : BpGetAdslDyingGaspExtIntr
2201 + *
2202 + * Description: This function returns the ADSL Dying Gasp external interrupt
2203 + *              number.
2204 + *
2205 + * Parameters : [OUT] pulValue - Address of short word that the ADSL Dying Gasp
2206 + *                  external interrupt number is returned in.
2207 + *
2208 + * Returns    : BP_SUCCESS - Success, value is returned.
2209 + *              BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
2210 + *              BP_VALUE_NOT_DEFINED - At least one return value is not defined
2211 + *                  for the board.
2212 + ***************************************************************************/
2213 +int BpGetAdslDyingGaspExtIntr( unsigned long *pulValue )
2214 +{
2215 +    int nRet;
2216 +
2217 +    if( g_pCurrentBp )
2218 +    {
2219 +        *pulValue = g_pCurrentBp->usExtIntrAdslDyingGasp;
2220 +
2221 +        if( g_pCurrentBp->usExtIntrAdslDyingGasp != BP_NOT_DEFINED )
2222 +        {
2223 +            nRet = BP_SUCCESS;
2224 +        }
2225 +        else
2226 +        {
2227 +            nRet = BP_VALUE_NOT_DEFINED;
2228 +        }
2229 +    }
2230 +    else
2231 +    {
2232 +        *pulValue = BP_NOT_DEFINED;
2233 +        nRet = BP_BOARD_ID_NOT_SET;
2234 +    }
2235 +
2236 +    return( nRet );
2237 +} /* BpGetAdslDyingGaspExtIntr */
2238 +
2239 +/**************************************************************************
2240 + * Name       : BpGetVoipExtIntr
2241 + *
2242 + * Description: This function returns the VOIP external interrupt number.
2243 + *
2244 + * Parameters : [OUT] pulValue - Address of short word that the VOIP
2245 + *                  external interrupt number is returned in.
2246 + *              [IN] dspNum - Address of the DSP to query.
2247 + *
2248 + * Returns    : BP_SUCCESS - Success, value is returned.
2249 + *              BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
2250 + *              BP_VALUE_NOT_DEFINED - At least one return value is not defined
2251 + *                  for the board.
2252 + ***************************************************************************/
2253 +int BpGetVoipExtIntr( unsigned char dspNum, unsigned long *pulValue )
2254 +{
2255 +    int nRet;
2256 +
2257 +    if( g_pCurrentBp )
2258 +    {
2259 +        VOIP_DSP_INFO *pDspInfo = BpGetVoipDspConfig( dspNum );
2260 +
2261 +        if( pDspInfo )
2262 +        {
2263 +           *pulValue = pDspInfo->usExtIntrVoip;
2264 +
2265 +           if( *pulValue != BP_NOT_DEFINED )
2266 +           {
2267 +              nRet = BP_SUCCESS;
2268 +           }
2269 +           else
2270 +           {
2271 +              nRet = BP_VALUE_NOT_DEFINED;
2272 +           }
2273 +        }
2274 +        else
2275 +        {
2276 +           *pulValue = BP_NOT_DEFINED;
2277 +           nRet = BP_BOARD_ID_NOT_FOUND;
2278 +        }
2279 +    }
2280 +    else
2281 +    {
2282 +        *pulValue = BP_NOT_DEFINED;
2283 +        nRet = BP_BOARD_ID_NOT_SET;
2284 +    }
2285 +
2286 +    return( nRet );
2287 +} /* BpGetVoipExtIntr */
2288 +
2289 +/**************************************************************************
2290 + * Name       : BpGetHpnaExtIntr
2291 + *
2292 + * Description: This function returns the HPNA external interrupt number.
2293 + *
2294 + * Parameters : [OUT] pulValue - Address of short word that the HPNA
2295 + *                  external interrupt number is returned in.
2296 + *
2297 + * Returns    : BP_SUCCESS - Success, value is returned.
2298 + *              BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
2299 + *              BP_VALUE_NOT_DEFINED - At least one return value is not defined
2300 + *                  for the board.
2301 + ***************************************************************************/
2302 +int BpGetHpnaExtIntr( unsigned long *pulValue )
2303 +{
2304 +    int nRet;
2305 +
2306 +    if( g_pCurrentBp )
2307 +    {
2308 +        *pulValue = g_pCurrentBp->usExtIntrHpna;
2309 +
2310 +        if( g_pCurrentBp->usExtIntrHpna != BP_NOT_DEFINED )
2311 +        {
2312 +            nRet = BP_SUCCESS;
2313 +        }
2314 +        else
2315 +        {
2316 +            nRet = BP_VALUE_NOT_DEFINED;
2317 +        }
2318 +    }
2319 +    else
2320 +    {
2321 +        *pulValue = BP_NOT_DEFINED;
2322 +        nRet = BP_BOARD_ID_NOT_SET;
2323 +    }
2324 +
2325 +    return( nRet );
2326 +} /* BpGetHpnaExtIntr */
2327 +
2328 +/**************************************************************************
2329 + * Name       : BpGetHpnaChipSelect
2330 + *
2331 + * Description: This function returns the HPNA chip select number.
2332 + *
2333 + * Parameters : [OUT] pulValue - Address of short word that the HPNA
2334 + *                  chip select number is returned in.
2335 + *
2336 + * Returns    : BP_SUCCESS - Success, value is returned.
2337 + *              BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
2338 + *              BP_VALUE_NOT_DEFINED - At least one return value is not defined
2339 + *                  for the board.
2340 + ***************************************************************************/
2341 +int BpGetHpnaChipSelect( unsigned long *pulValue )
2342 +{
2343 +    int nRet;
2344 +
2345 +    if( g_pCurrentBp )
2346 +    {
2347 +        *pulValue = g_pCurrentBp->usCsHpna;
2348 +
2349 +        if( g_pCurrentBp->usCsHpna != BP_NOT_DEFINED )
2350 +        {
2351 +            nRet = BP_SUCCESS;
2352 +        }
2353 +        else
2354 +        {
2355 +            nRet = BP_VALUE_NOT_DEFINED;
2356 +        }
2357 +    }
2358 +    else
2359 +    {
2360 +        *pulValue = BP_NOT_DEFINED;
2361 +        nRet = BP_BOARD_ID_NOT_SET;
2362 +    }
2363 +
2364 +    return( nRet );
2365 +} /* BpGetHpnaChipSelect */
2366 +
2367 +/**************************************************************************
2368 + * Name       : BpGetVoipChipSelect
2369 + *
2370 + * Description: This function returns the VOIP chip select number.
2371 + *
2372 + * Parameters : [OUT] pulValue - Address of short word that the VOIP
2373 + *                  chip select number is returned in.
2374 + *              [IN] dspNum - Address of the DSP to query.
2375 + *
2376 + * Returns    : BP_SUCCESS - Success, value is returned.
2377 + *              BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
2378 + *              BP_VALUE_NOT_DEFINED - At least one return value is not defined
2379 + *                  for the board.
2380 + ***************************************************************************/
2381 +int BpGetVoipChipSelect( unsigned char dspNum, unsigned long *pulValue )
2382 +{
2383 +    int nRet;
2384 +
2385 +    if( g_pCurrentBp )
2386 +    {
2387 +        VOIP_DSP_INFO *pDspInfo = BpGetVoipDspConfig( dspNum );
2388 +
2389 +        if( pDspInfo )
2390 +        {
2391 +           *pulValue = pDspInfo->usCsVoip;
2392 +
2393 +           if( *pulValue != BP_NOT_DEFINED )
2394 +           {
2395 +              nRet = BP_SUCCESS;
2396 +           }
2397 +           else
2398 +           {
2399 +              nRet = BP_VALUE_NOT_DEFINED;
2400 +           }
2401 +        }
2402 +        else
2403 +        {
2404 +           *pulValue = BP_NOT_DEFINED;
2405 +           nRet = BP_BOARD_ID_NOT_FOUND;
2406 +        }
2407 +    }
2408 +    else
2409 +    {
2410 +        *pulValue = BP_NOT_DEFINED;
2411 +        nRet = BP_BOARD_ID_NOT_SET;
2412 +    }
2413 +
2414 +    return( nRet );
2415 +} /* BpGetVoipChipSelect */
2416 +
2417 diff -Naurp linux-2.6.16.7-generic-patched/boardparms/bcm963xx/boardparms.h linux-2.6.16.7-patched/boardparms/bcm963xx/boardparms.h
2418 --- linux-2.6.16.7-generic-patched/boardparms/bcm963xx/boardparms.h     1970-01-01 01:00:00.000000000 +0100
2419 +++ linux-2.6.16.7-patched/boardparms/bcm963xx/boardparms.h     2006-07-05 15:21:58.000000000 +0200
2420 @@ -0,0 +1,766 @@
2421 +/*
2422 +<:copyright-gpl 
2423 +
2424 + Copyright 2003 Broadcom Corp. All Rights Reserved. 
2425
2426 + This program is free software; you can distribute it and/or modify it 
2427 + under the terms of the GNU General Public License (Version 2) as 
2428 + published by the Free Software Foundation. 
2429
2430 + This program is distributed in the hope it will be useful, but WITHOUT 
2431 + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 
2432 + FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License 
2433 + for more details. 
2434
2435 + You should have received a copy of the GNU General Public License along 
2436 + with this program; if not, write to the Free Software Foundation, Inc., 
2437 + 59 Temple Place - Suite 330, Boston MA 02111-1307, USA. 
2438 +
2439 +:>
2440 +*/
2441 +/**************************************************************************
2442 + * File Name  : boardparms.h
2443 + *
2444 + * Description: This file contains definitions and function prototypes for
2445 + *              the BCM63xx board parameter access functions.
2446 + * 
2447 + * Updates    : 07/14/2003  Created.
2448 + ***************************************************************************/
2449 +
2450 +#if !defined(_BOARDPARMS_H)
2451 +#define _BOARDPARMS_H
2452 +
2453 +#if __cplusplus
2454 +extern "C" {
2455 +#endif
2456 +
2457 +/* Return codes. */
2458 +#define BP_SUCCESS                              0
2459 +#define BP_BOARD_ID_NOT_FOUND                   1
2460 +#define BP_VALUE_NOT_DEFINED                    2
2461 +#define BP_BOARD_ID_NOT_SET                     3
2462 +
2463 +/* Values for BpGetSdramSize. */
2464 +#define BP_MEMORY_8MB_1_CHIP                    0
2465 +#define BP_MEMORY_16MB_1_CHIP                   1
2466 +#define BP_MEMORY_32MB_1_CHIP                   2
2467 +#define BP_MEMORY_64MB_2_CHIP                   3
2468 +#define BP_MEMORY_32MB_2_CHIP                   4
2469 +#define BP_MEMORY_16MB_2_CHIP                   5
2470 +
2471 +/* Values for EthernetMacInfo PhyType. */
2472 +#define BP_ENET_NO_PHY                          0
2473 +#define BP_ENET_INTERNAL_PHY                    1
2474 +#define BP_ENET_EXTERNAL_PHY                    2
2475 +#define BP_ENET_EXTERNAL_SWITCH                 3
2476 +
2477 +/* Values for EthernetMacInfo Configuration type. */
2478 +#define BP_ENET_CONFIG_MDIO                     0       /* Internal PHY, External PHY, Switch+(no GPIO, no SPI, no MDIO Pseudo phy */
2479 +#define BP_ENET_CONFIG_GPIO                     1       /* Bcm96345GW board + Bcm5325M/E */
2480 +#define BP_ENET_CONFIG_MDIO_PSEUDO_PHY          2       /* Bcm96348GW board + Bcm5325E */
2481 +#define BP_ENET_CONFIG_SPI_SSB_0                3       /* Bcm96348GW board + Bcm5325M/E */
2482 +#define BP_ENET_CONFIG_SPI_SSB_1                4       /* Bcm96348GW board + Bcm5325M/E */
2483 +#define BP_ENET_CONFIG_SPI_SSB_2                5       /* Bcm96348GW board + Bcm5325M/E */
2484 +#define BP_ENET_CONFIG_SPI_SSB_3                6       /* Bcm96348GW board + Bcm5325M/E */
2485 +
2486 +/* Values for EthernetMacInfo Reverse MII. */
2487 +#define BP_ENET_NO_REVERSE_MII                  0
2488 +#define BP_ENET_REVERSE_MII                     1
2489 +
2490 +/* Values for VoIPDSPInfo DSPType. */
2491 +#define BP_VOIP_NO_DSP                          0
2492 +#define BP_VOIP_DSP                             1
2493 +
2494 +
2495 +/* Values for GPIO pin assignments (AH = Active High, AL = Active Low). */
2496 +#define BP_ACTIVE_MASK                          0x8000
2497 +#define BP_ACTIVE_HIGH                          0x0000
2498 +#define BP_ACTIVE_LOW                           0x8000
2499 +#define BP_GPIO_0_AH                            (0  | BP_ACTIVE_HIGH)
2500 +#define BP_GPIO_0_AL                            (0  | BP_ACTIVE_LOW)
2501 +#define BP_GPIO_1_AH                            (1  | BP_ACTIVE_HIGH)
2502 +#define BP_GPIO_1_AL                            (1  | BP_ACTIVE_LOW)
2503 +#define BP_GPIO_2_AH                            (2  | BP_ACTIVE_HIGH)
2504 +#define BP_GPIO_2_AL                            (2  | BP_ACTIVE_LOW)
2505 +#define BP_GPIO_3_AH                            (3  | BP_ACTIVE_HIGH)
2506 +#define BP_GPIO_3_AL                            (3  | BP_ACTIVE_LOW)
2507 +#define BP_GPIO_4_AH                            (4  | BP_ACTIVE_HIGH)
2508 +#define BP_GPIO_4_AL                            (4  | BP_ACTIVE_LOW)
2509 +#define BP_GPIO_5_AH                            (5  | BP_ACTIVE_HIGH)
2510 +#define BP_GPIO_5_AL                            (5  | BP_ACTIVE_LOW)
2511 +#define BP_GPIO_6_AH                            (6  | BP_ACTIVE_HIGH)
2512 +#define BP_GPIO_6_AL                            (6  | BP_ACTIVE_LOW)
2513 +#define BP_GPIO_7_AH                            (7  | BP_ACTIVE_HIGH)
2514 +#define BP_GPIO_7_AL                            (7  | BP_ACTIVE_LOW)
2515 +#define BP_GPIO_8_AH                            (8  | BP_ACTIVE_HIGH)
2516 +#define BP_GPIO_8_AL                            (8  | BP_ACTIVE_LOW)
2517 +#define BP_GPIO_9_AH                            (9  | BP_ACTIVE_HIGH)
2518 +#define BP_GPIO_9_AL                            (9  | BP_ACTIVE_LOW)
2519 +#define BP_GPIO_10_AH                           (10 | BP_ACTIVE_HIGH)
2520 +#define BP_GPIO_10_AL                           (10 | BP_ACTIVE_LOW)
2521 +#define BP_GPIO_11_AH                           (11 | BP_ACTIVE_HIGH)
2522 +#define BP_GPIO_11_AL                           (11 | BP_ACTIVE_LOW)
2523 +#define BP_GPIO_12_AH                           (12 | BP_ACTIVE_HIGH)
2524 +#define BP_GPIO_12_AL                           (12 | BP_ACTIVE_LOW)
2525 +#define BP_GPIO_13_AH                           (13 | BP_ACTIVE_HIGH)
2526 +#define BP_GPIO_13_AL                           (13 | BP_ACTIVE_LOW)
2527 +#define BP_GPIO_14_AH                           (14 | BP_ACTIVE_HIGH)
2528 +#define BP_GPIO_14_AL                           (14 | BP_ACTIVE_LOW)
2529 +#define BP_GPIO_15_AH                           (15 | BP_ACTIVE_HIGH)
2530 +#define BP_GPIO_15_AL                           (15 | BP_ACTIVE_LOW)
2531 +#define BP_GPIO_16_AH                           (16 | BP_ACTIVE_HIGH)
2532 +#define BP_GPIO_16_AL                           (16 | BP_ACTIVE_LOW)
2533 +#define BP_GPIO_17_AH                           (17 | BP_ACTIVE_HIGH)
2534 +#define BP_GPIO_17_AL                           (17 | BP_ACTIVE_LOW)
2535 +#define BP_GPIO_18_AH                           (18 | BP_ACTIVE_HIGH)
2536 +#define BP_GPIO_18_AL                           (18 | BP_ACTIVE_LOW)
2537 +#define BP_GPIO_19_AH                           (19 | BP_ACTIVE_HIGH)
2538 +#define BP_GPIO_19_AL                           (19 | BP_ACTIVE_LOW)
2539 +#define BP_GPIO_20_AH                           (20 | BP_ACTIVE_HIGH)
2540 +#define BP_GPIO_20_AL                           (20 | BP_ACTIVE_LOW)
2541 +#define BP_GPIO_21_AH                           (21 | BP_ACTIVE_HIGH)
2542 +#define BP_GPIO_21_AL                           (21 | BP_ACTIVE_LOW)
2543 +#define BP_GPIO_22_AH                           (22 | BP_ACTIVE_HIGH)
2544 +#define BP_GPIO_22_AL                           (22 | BP_ACTIVE_LOW)
2545 +#define BP_GPIO_23_AH                           (23 | BP_ACTIVE_HIGH)
2546 +#define BP_GPIO_23_AL                           (23 | BP_ACTIVE_LOW)
2547 +#define BP_GPIO_24_AH                           (24 | BP_ACTIVE_HIGH)
2548 +#define BP_GPIO_24_AL                           (24 | BP_ACTIVE_LOW)
2549 +#define BP_GPIO_25_AH                           (25 | BP_ACTIVE_HIGH)
2550 +#define BP_GPIO_25_AL                           (25 | BP_ACTIVE_LOW)
2551 +#define BP_GPIO_26_AH                           (26 | BP_ACTIVE_HIGH)
2552 +#define BP_GPIO_26_AL                           (26 | BP_ACTIVE_LOW)
2553 +#define BP_GPIO_27_AH                           (27 | BP_ACTIVE_HIGH)
2554 +#define BP_GPIO_27_AL                           (27 | BP_ACTIVE_LOW)
2555 +#define BP_GPIO_28_AH                           (28 | BP_ACTIVE_HIGH)
2556 +#define BP_GPIO_28_AL                           (28 | BP_ACTIVE_LOW)
2557 +#define BP_GPIO_29_AH                           (29 | BP_ACTIVE_HIGH)
2558 +#define BP_GPIO_29_AL                           (29 | BP_ACTIVE_LOW)
2559 +#define BP_GPIO_30_AH                           (30 | BP_ACTIVE_HIGH)
2560 +#define BP_GPIO_30_AL                           (30 | BP_ACTIVE_LOW)
2561 +#define BP_GPIO_31_AH                           (31 | BP_ACTIVE_HIGH)
2562 +#define BP_GPIO_31_AL                           (31 | BP_ACTIVE_LOW)
2563 +#define BP_GPIO_32_AH                           (32 | BP_ACTIVE_HIGH)
2564 +#define BP_GPIO_32_AL                           (32 | BP_ACTIVE_LOW)
2565 +#define BP_GPIO_33_AH                           (33 | BP_ACTIVE_HIGH)
2566 +#define BP_GPIO_33_AL                           (33 | BP_ACTIVE_LOW)
2567 +#define BP_GPIO_34_AH                           (34 | BP_ACTIVE_HIGH)
2568 +#define BP_GPIO_34_AL                           (34 | BP_ACTIVE_LOW)
2569 +#define BP_GPIO_35_AH                           (35 | BP_ACTIVE_HIGH)
2570 +#define BP_GPIO_35_AL                           (35 | BP_ACTIVE_LOW)
2571 +#define BP_GPIO_36_AH                           (36 | BP_ACTIVE_HIGH)
2572 +#define BP_GPIO_36_AL                           (36 | BP_ACTIVE_LOW)
2573 +
2574 +/* Values for external interrupt assignments. */
2575 +#define BP_EXT_INTR_0                           0
2576 +#define BP_EXT_INTR_1                           1
2577 +#define BP_EXT_INTR_2                           2
2578 +#define BP_EXT_INTR_3                           3
2579 +
2580 +/* Values for chip select assignments. */
2581 +#define BP_CS_0                                 0
2582 +#define BP_CS_1                                 1
2583 +#define BP_CS_2                                 2
2584 +#define BP_CS_3                                 3
2585 +
2586 +/* Value for GPIO and external interrupt fields that are not used. */
2587 +#define BP_NOT_DEFINED                          0xffff
2588 +#define BP_HW_DEFINED                           0xfff0
2589 +#define BP_UNEQUIPPED                           0xfff1
2590 +
2591 +/* Maximum size of the board id string. */
2592 +#define BP_BOARD_ID_LEN                         16
2593 +
2594 +/* Maximum number of Ethernet MACs. */
2595 +#define BP_MAX_ENET_MACS                        2
2596 +
2597 +/* Maximum number of VoIP DSPs. */
2598 +#define BP_MAX_VOIP_DSP                         2
2599 +
2600 +/* Wireless Antenna Settings. */
2601 +#define BP_WLAN_ANT_MAIN                        0
2602 +#define BP_WLAN_ANT_AUX                         1
2603 +#define BP_WLAN_ANT_BOTH                        3
2604 +
2605 +#if !defined(__ASSEMBLER__)
2606 +
2607 +/* Information about an Ethernet MAC.  If ucPhyType is BP_ENET_NO_PHY,
2608 + * then the other fields are not valid.
2609 + */
2610 +typedef struct EthernetMacInfo
2611 +{
2612 +    unsigned char ucPhyType;                    /* BP_ENET_xxx             */
2613 +    unsigned char ucPhyAddress;                 /* 0 to 31                 */
2614 +    unsigned short usGpioPhySpiSck;             /* GPIO pin or not defined */
2615 +    unsigned short usGpioPhySpiSs;              /* GPIO pin or not defined */
2616 +    unsigned short usGpioPhySpiMosi;            /* GPIO pin or not defined */
2617 +    unsigned short usGpioPhySpiMiso;            /* GPIO pin or not defined */
2618 +    unsigned short usGpioPhyReset;              /* GPIO pin or not defined (96348LV) */
2619 +    unsigned short numSwitchPorts;              /* Number of PHY ports */
2620 +    unsigned short usConfigType;                /* Configuration type */
2621 +    unsigned short usReverseMii;                /* Reverse MII */
2622 +} ETHERNET_MAC_INFO, *PETHERNET_MAC_INFO;
2623 +
2624 +
2625 +/* Information about VoIP DSPs.  If ucDspType is BP_VOIP_NO_DSP,
2626 + * then the other fields are not valid.
2627 + */
2628 +typedef struct VoIPDspInfo
2629 +{
2630 +    unsigned char  ucDspType;
2631 +    unsigned char  ucDspAddress;
2632 +    unsigned short usExtIntrVoip;
2633 +    unsigned short usGpioVoipReset;
2634 +    unsigned short usGpioVoipIntr;
2635 +    unsigned short usGpioLedVoip;
2636 +    unsigned short usCsVoip;
2637 +
2638 +} VOIP_DSP_INFO;
2639 +
2640 +
2641 +/**************************************************************************
2642 + * Name       : BpSetBoardId
2643 + *
2644 + * Description: This function find the BOARD_PARAMETERS structure for the
2645 + *              specified board id string and assigns it to a global, static
2646 + *              variable.
2647 + *
2648 + * Parameters : [IN] pszBoardId - Board id string that is saved into NVRAM.
2649 + *
2650 + * Returns    : BP_SUCCESS - Success, value is returned.
2651 + *              BP_BOARD_ID_NOT_FOUND - Error, board id input string does not
2652 + *                  have a board parameters configuration record.
2653 + ***************************************************************************/
2654 +int BpSetBoardId( char *pszBoardId );
2655 +
2656 +/**************************************************************************
2657 + * Name       : BpGetBoardIds
2658 + *
2659 + * Description: This function returns all of the supported board id strings.
2660 + *
2661 + * Parameters : [OUT] pszBoardIds - Address of a buffer that the board id
2662 + *                  strings are returned in.  Each id starts at BP_BOARD_ID_LEN
2663 + *                  boundary.
2664 + *              [IN] nBoardIdsSize - Number of BP_BOARD_ID_LEN elements that
2665 + *                  were allocated in pszBoardIds.
2666 + *
2667 + * Returns    : Number of board id strings returned.
2668 + ***************************************************************************/
2669 +int BpGetBoardIds( char *pszBoardIds, int nBoardIdsSize );
2670 +
2671 +/**************************************************************************
2672 + * Name       : BpGetEthernetMacInfo
2673 + *
2674 + * Description: This function returns all of the supported board id strings.
2675 + *
2676 + * Parameters : [OUT] pEnetInfos - Address of an array of ETHERNET_MAC_INFO
2677 + *                  buffers.
2678 + *              [IN] nNumEnetInfos - Number of ETHERNET_MAC_INFO elements that
2679 + *                  are pointed to by pEnetInfos.
2680 + *
2681 + * Returns    : BP_SUCCESS - Success, value is returned.
2682 + *              BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
2683 + ***************************************************************************/
2684 +int BpGetEthernetMacInfo( PETHERNET_MAC_INFO pEnetInfos, int nNumEnetInfos );
2685 +
2686 +/**************************************************************************
2687 + * Name       : BpGetSdramSize
2688 + *
2689 + * Description: This function returns a constant that describees the board's
2690 + *              SDRAM type and size.
2691 + *
2692 + * Parameters : [OUT] pulSdramSize - Address of short word that the SDRAM size
2693 + *                  is returned in.
2694 + *
2695 + * Returns    : BP_SUCCESS - Success, value is returned.
2696 + *              BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
2697 + ***************************************************************************/
2698 +int BpGetSdramSize( unsigned long *pulSdramSize );
2699 +
2700 +/**************************************************************************
2701 + * Name       : BpGetPsiSize
2702 + *
2703 + * Description: This function returns the persistent storage size in K bytes.
2704 + *
2705 + * Parameters : [OUT] pulPsiSize - Address of short word that the persistent
2706 + *                  storage size is returned in.
2707 + *
2708 + * Returns    : BP_SUCCESS - Success, value is returned.
2709 + *              BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
2710 + ***************************************************************************/
2711 +int BpGetPsiSize( unsigned long *pulPsiSize );
2712 +
2713 +/**************************************************************************
2714 + * Name       : BpGetRj11InnerOuterPairGpios
2715 + *
2716 + * Description: This function returns the GPIO pin assignments for changing
2717 + *              between the RJ11 inner pair and RJ11 outer pair.
2718 + *
2719 + * Parameters : [OUT] pusInner - Address of short word that the RJ11 inner pair
2720 + *                  GPIO pin is returned in.
2721 + *              [OUT] pusOuter - Address of short word that the RJ11 outer pair
2722 + *                  GPIO pin is returned in.
2723 + *
2724 + * Returns    : BP_SUCCESS - Success, values are returned.
2725 + *              BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
2726 + *              BP_VALUE_NOT_DEFINED - At least one return value is not defined
2727 + *                  for the board.
2728 + ***************************************************************************/
2729 +int BpGetRj11InnerOuterPairGpios( unsigned short *pusInner,
2730 +    unsigned short *pusOuter );
2731 +
2732 +/**************************************************************************
2733 + * Name       : BpGetPressAndHoldResetGpio
2734 + *
2735 + * Description: This function returns the GPIO pin assignment for the press
2736 + *              and hold reset button.
2737 + *
2738 + * Parameters : [OUT] pusValue - Address of short word that the press and hold
2739 + *                  reset button GPIO pin is returned in.
2740 + *
2741 + * Returns    : BP_SUCCESS - Success, value is returned.
2742 + *              BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
2743 + *              BP_VALUE_NOT_DEFINED - At least one return value is not defined
2744 + *                  for the board.
2745 + ***************************************************************************/
2746 +int BpGetPressAndHoldResetGpio( unsigned short *pusValue );
2747 +
2748 +/**************************************************************************
2749 + * Name       : BpGetVoipResetGpio
2750 + *
2751 + * Description: This function returns the GPIO pin assignment for the VOIP
2752 + *              Reset operation.
2753 + *
2754 + * Parameters : [OUT] pusValue - Address of short word that the VOIP reset
2755 + *                  GPIO pin is returned in.
2756 + *              [IN] dspNum - Address of the DSP to query.
2757 + *
2758 + * Returns    : BP_SUCCESS - Success, value is returned.
2759 + *              BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
2760 + *              BP_VALUE_NOT_DEFINED - At least one return value is not defined
2761 + *                  for the board.
2762 + ***************************************************************************/
2763 +int BpGetVoipResetGpio( unsigned char dspNum, unsigned short *pusValue );
2764 +
2765 +/**************************************************************************
2766 + * Name       : BpGetVoipIntrGpio
2767 + *
2768 + * Description: This function returns the GPIO pin assignment for VoIP interrupt.
2769 + *
2770 + * Parameters : [OUT] pusValue - Address of short word that the VOIP interrupt
2771 + *                  GPIO pin is returned in.
2772 + *              [IN] dspNum - Address of the DSP to query.
2773 + *
2774 + * Returns    : BP_SUCCESS - Success, value is returned.
2775 + *              BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
2776 + *              BP_VALUE_NOT_DEFINED - At least one return value is not defined
2777 + *                  for the board.
2778 + ***************************************************************************/
2779 +int BpGetVoipIntrGpio( unsigned char dspNum, unsigned short *pusValue );
2780 +
2781 +/**************************************************************************
2782 + * Name       : BpGetPcmciaResetGpio
2783 + *
2784 + * Description: This function returns the GPIO pin assignment for the PCMCIA
2785 + *              Reset operation.
2786 + *
2787 + * Parameters : [OUT] pusValue - Address of short word that the PCMCIA reset
2788 + *                  GPIO pin is returned in.
2789 + *
2790 + * Returns    : BP_SUCCESS - Success, value is returned.
2791 + *              BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
2792 + *              BP_VALUE_NOT_DEFINED - At least one return value is not defined
2793 + *                  for the board.
2794 + ***************************************************************************/
2795 +int BpGetPcmciaResetGpio( unsigned short *pusValue );
2796 +
2797 +/**************************************************************************
2798 + * Name       : BpGetUartRtsCtsGpios
2799 + *
2800 + * Description: This function returns the GPIO pin assignments for RTS and CTS
2801 + *              UART signals.
2802 + *
2803 + * Parameters : [OUT] pusRts - Address of short word that the UART RTS GPIO
2804 + *                  pin is returned in.
2805 + *              [OUT] pusCts - Address of short word that the UART CTS GPIO
2806 + *                  pin is returned in.
2807 + *
2808 + * Returns    : BP_SUCCESS - Success, values are returned.
2809 + *              BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
2810 + *              BP_VALUE_NOT_DEFINED - At least one return value is not defined
2811 + *                  for the board.
2812 + ***************************************************************************/
2813 +int BpGetRtsCtsUartGpios( unsigned short *pusRts, unsigned short *pusCts );
2814 +
2815 +/**************************************************************************
2816 + * Name       : BpGetAdslLedGpio
2817 + *
2818 + * Description: This function returns the GPIO pin assignment for the ADSL
2819 + *              LED.
2820 + *
2821 + * Parameters : [OUT] pusValue - Address of short word that the ADSL LED
2822 + *                  GPIO pin is returned in.
2823 + *
2824 + * Returns    : BP_SUCCESS - Success, value is returned.
2825 + *              BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
2826 + *              BP_VALUE_NOT_DEFINED - At least one return value is not defined
2827 + *                  for the board.
2828 + ***************************************************************************/
2829 +int BpGetAdslLedGpio( unsigned short *pusValue );
2830 +
2831 +/**************************************************************************
2832 + * Name       : BpGetAdslFailLedGpio
2833 + *
2834 + * Description: This function returns the GPIO pin assignment for the ADSL
2835 + *              LED that is used when there is a DSL connection failure.
2836 + *
2837 + * Parameters : [OUT] pusValue - Address of short word that the ADSL LED
2838 + *                  GPIO pin is returned in.
2839 + *
2840 + * Returns    : BP_SUCCESS - Success, value is returned.
2841 + *              BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
2842 + *              BP_VALUE_NOT_DEFINED - At least one return value is not defined
2843 + *                  for the board.
2844 + ***************************************************************************/
2845 +int BpGetAdslFailLedGpio( unsigned short *pusValue );
2846 +
2847 +/**************************************************************************
2848 + * Name       : BpGetWirelessLedGpio
2849 + *
2850 + * Description: This function returns the GPIO pin assignment for the Wireless
2851 + *              LED.
2852 + *
2853 + * Parameters : [OUT] pusValue - Address of short word that the Wireless LED
2854 + *                  GPIO pin is returned in.
2855 + *
2856 + * Returns    : BP_SUCCESS - Success, value is returned.
2857 + *              BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
2858 + *              BP_VALUE_NOT_DEFINED - At least one return value is not defined
2859 + *                  for the board.
2860 + ***************************************************************************/
2861 +int BpGetWirelessLedGpio( unsigned short *pusValue );
2862 +
2863 +/**************************************************************************
2864 + * Name       : BpGetWirelessAntInUse
2865 + *
2866 + * Description: This function returns the antennas in use for wireless
2867 + *
2868 + * Parameters : [OUT] pusValue - Address of short word that the Wireless Antenna
2869 + *                  is in use.
2870 + *
2871 + * Returns    : BP_SUCCESS - Success, value is returned.
2872 + *              BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
2873 + *              BP_VALUE_NOT_DEFINED - At least one return value is not defined
2874 + *                  for the board.
2875 + ***************************************************************************/
2876 +int BpGetWirelessAntInUse( unsigned short *pusValue );
2877 +
2878 +/**************************************************************************
2879 + * Name       : BpGetWirelessSesBtnGpio
2880 + *
2881 + * Description: This function returns the GPIO pin assignment for the Wireless
2882 + *              Ses Button.
2883 + *
2884 + * Parameters : [OUT] pusValue - Address of short word that the Wireless Ses
2885 + *                  Button GPIO pin is returned in.
2886 + *
2887 + * Returns    : BP_SUCCESS - Success, value is returned.
2888 + *              BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
2889 + *              BP_VALUE_NOT_DEFINED - At least one return value is not defined
2890 + *                  for the board.
2891 + ***************************************************************************/
2892 +int BpGetWirelessSesBtnGpio( unsigned short *pusValue );
2893 +
2894 +/**************************************************************************
2895 + * Name       : BpGetWirelessSesExtIntr
2896 + *
2897 + * Description: This function returns the external interrupt number for the 
2898 + *              Wireless Ses Button.
2899 + *
2900 + * Parameters : [OUT] pusValue - Address of short word that the Wireless Ses
2901 + *                  external interrup is returned in.
2902 + *
2903 + * Returns    : BP_SUCCESS - Success, value is returned.
2904 + *              BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
2905 + *              BP_VALUE_NOT_DEFINED - At least one return value is not defined
2906 + *                  for the board.
2907 + ***************************************************************************/
2908 +int BpGetWirelessSesExtIntr( unsigned short *pusValue );
2909 +
2910 +/**************************************************************************
2911 + * Name       : BpGetWirelessSesLedGpio
2912 + *
2913 + * Description: This function returns the GPIO pin assignment for the Wireless
2914 + *              Ses Led.
2915 + *
2916 + * Parameters : [OUT] pusValue - Address of short word that the Wireless Ses
2917 + *                  Led GPIO pin is returned in.
2918 + *
2919 + * Returns    : BP_SUCCESS - Success, value is returned.
2920 + *              BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
2921 + *              BP_VALUE_NOT_DEFINED - At least one return value is not defined
2922 + *                  for the board.
2923 + ***************************************************************************/
2924 +int BpGetWirelessSesLedGpio( unsigned short *pusValue );
2925 +
2926 +/**************************************************************************
2927 + * Name       : BpGetUsbLedGpio
2928 + *
2929 + * Description: This function returns the GPIO pin assignment for the USB
2930 + *              LED.
2931 + *
2932 + * Parameters : [OUT] pusValue - Address of short word that the USB LED
2933 + *                  GPIO pin is returned in.
2934 + *
2935 + * Returns    : BP_SUCCESS - Success, value is returned.
2936 + *              BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
2937 + *              BP_VALUE_NOT_DEFINED - At least one return value is not defined
2938 + *                  for the board.
2939 + ***************************************************************************/
2940 +int BpGetUsbLedGpio( unsigned short *pusValue );
2941 +
2942 +/**************************************************************************
2943 + * Name       : BpGetHpnaLedGpio
2944 + *
2945 + * Description: This function returns the GPIO pin assignment for the HPNA
2946 + *              LED.
2947 + *
2948 + * Parameters : [OUT] pusValue - Address of short word that the HPNA LED
2949 + *                  GPIO pin is returned in.
2950 + *
2951 + * Returns    : BP_SUCCESS - Success, value is returned.
2952 + *              BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
2953 + *              BP_VALUE_NOT_DEFINED - At least one return value is not defined
2954 + *                  for the board.
2955 + ***************************************************************************/
2956 +int BpGetHpnaLedGpio( unsigned short *pusValue );
2957 +
2958 +/**************************************************************************
2959 + * Name       : BpGetWanDataLedGpio
2960 + *
2961 + * Description: This function returns the GPIO pin assignment for the WAN Data
2962 + *              LED.
2963 + *
2964 + * Parameters : [OUT] pusValue - Address of short word that the WAN Data LED
2965 + *                  GPIO pin is returned in.
2966 + *
2967 + * Returns    : BP_SUCCESS - Success, value is returned.
2968 + *              BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
2969 + *              BP_VALUE_NOT_DEFINED - At least one return value is not defined
2970 + *                  for the board.
2971 + ***************************************************************************/
2972 +int BpGetWanDataLedGpio( unsigned short *pusValue );
2973 +
2974 +/**************************************************************************
2975 + * Name       : BpGetPppLedGpio
2976 + *
2977 + * Description: This function returns the GPIO pin assignment for the PPP
2978 + *              LED.
2979 + *
2980 + * Parameters : [OUT] pusValue - Address of short word that the PPP LED
2981 + *                  GPIO pin is returned in.
2982 + *
2983 + * Returns    : BP_SUCCESS - Success, value is returned.
2984 + *              BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
2985 + *              BP_VALUE_NOT_DEFINED - At least one return value is not defined
2986 + *                  for the board.
2987 + ***************************************************************************/
2988 +int BpGetPppLedGpio( unsigned short *pusValue );
2989 +
2990 +/**************************************************************************
2991 + * Name       : BpGetPppFailLedGpio
2992 + *
2993 + * Description: This function returns the GPIO pin assignment for the PPP
2994 + *              LED that is used when there is a PPP connection failure.
2995 + *
2996 + * Parameters : [OUT] pusValue - Address of short word that the PPP LED
2997 + *                  GPIO pin is returned in.
2998 + *
2999 + * Returns    : BP_SUCCESS - Success, value is returned.
3000 + *              BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
3001 + *              BP_VALUE_NOT_DEFINED - At least one return value is not defined
3002 + *                  for the board.
3003 + ***************************************************************************/
3004 +int BpGetPppFailLedGpio( unsigned short *pusValue );
3005 +
3006 +/**************************************************************************
3007 + * Name       : BpGetVoipLedGpio
3008 + *
3009 + * Description: This function returns the GPIO pin assignment for the VOIP
3010 + *              LED.
3011 + *
3012 + * Parameters : [OUT] pusValue - Address of short word that the VOIP LED
3013 + *                  GPIO pin is returned in.
3014 + *
3015 + * Returns    : BP_SUCCESS - Success, value is returned.
3016 + *              BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
3017 + *              BP_VALUE_NOT_DEFINED - At least one return value is not defined
3018 + *                  for the board.
3019 + ***************************************************************************/
3020 +int BpGetVoipLedGpio( unsigned short *pusValue );
3021 +
3022 +/**************************************************************************
3023 + * Name       : BpGetBootloaderPowerOnLedGpio
3024 + *
3025 + * Description: This function returns the GPIO pin assignment for the power
3026 + *              on LED that is set by the bootloader.
3027 + *
3028 + * Parameters : [OUT] pusValue - Address of short word that the alarm LED
3029 + *                  GPIO pin is returned in.
3030 + *
3031 + * Returns    : BP_SUCCESS - Success, value is returned.
3032 + *              BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
3033 + *              BP_VALUE_NOT_DEFINED - At least one return value is not defined
3034 + *                  for the board.
3035 + ***************************************************************************/
3036 +int BpGetBootloaderPowerOnLedGpio( unsigned short *pusValue );
3037 +
3038 +/**************************************************************************
3039 + * Name       : BpGetBootloaderAlarmLedGpio
3040 + *
3041 + * Description: This function returns the GPIO pin assignment for the alarm
3042 + *              LED that is set by the bootloader.
3043 + *
3044 + * Parameters : [OUT] pusValue - Address of short word that the alarm LED
3045 + *                  GPIO pin is returned in.
3046 + *
3047 + * Returns    : BP_SUCCESS - Success, value is returned.
3048 + *              BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
3049 + *              BP_VALUE_NOT_DEFINED - At least one return value is not defined
3050 + *                  for the board.
3051 + ***************************************************************************/
3052 +int BpGetBootloaderAlarmLedGpio( unsigned short *pusValue );
3053 +
3054 +/**************************************************************************
3055 + * Name       : BpGetBootloaderResetCfgLedGpio
3056 + *
3057 + * Description: This function returns the GPIO pin assignment for the reset
3058 + *              configuration LED that is set by the bootloader.
3059 + *
3060 + * Parameters : [OUT] pusValue - Address of short word that the reset
3061 + *                  configuration LED GPIO pin is returned in.
3062 + *
3063 + * Returns    : BP_SUCCESS - Success, value is returned.
3064 + *              BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
3065 + *              BP_VALUE_NOT_DEFINED - At least one return value is not defined
3066 + *                  for the board.
3067 + ***************************************************************************/
3068 +int BpGetBootloaderResetCfgLedGpio( unsigned short *pusValue );
3069 +
3070 +/**************************************************************************
3071 + * Name       : BpGetBootloaderStopLedGpio
3072 + *
3073 + * Description: This function returns the GPIO pin assignment for the break
3074 + *              into bootloader LED that is set by the bootloader.
3075 + *
3076 + * Parameters : [OUT] pusValue - Address of short word that the break into
3077 + *                  bootloader LED GPIO pin is returned in.
3078 + *
3079 + * Returns    : BP_SUCCESS - Success, value is returned.
3080 + *              BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
3081 + *              BP_VALUE_NOT_DEFINED - At least one return value is not defined
3082 + *                  for the board.
3083 + ***************************************************************************/
3084 +int BpGetBootloaderStopLedGpio( unsigned short *pusValue );
3085 +
3086 +/**************************************************************************
3087 + * Name       : BpGetWirelessExtIntr
3088 + *
3089 + * Description: This function returns the Wireless external interrupt number.
3090 + *
3091 + * Parameters : [OUT] pulValue - Address of short word that the wireless
3092 + *                  external interrupt number is returned in.
3093 + *
3094 + * Returns    : BP_SUCCESS - Success, value is returned.
3095 + *              BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
3096 + *              BP_VALUE_NOT_DEFINED - At least one return value is not defined
3097 + *                  for the board.
3098 + ***************************************************************************/
3099 +int BpGetWirelessExtIntr( unsigned long *pulValue );
3100 +
3101 +/**************************************************************************
3102 + * Name       : BpGetAdslDyingGaspExtIntr
3103 + *
3104 + * Description: This function returns the ADSL Dying Gasp external interrupt
3105 + *              number.
3106 + *
3107 + * Parameters : [OUT] pulValue - Address of short word that the ADSL Dying Gasp
3108 + *                  external interrupt number is returned in.
3109 + *
3110 + * Returns    : BP_SUCCESS - Success, value is returned.
3111 + *              BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
3112 + *              BP_VALUE_NOT_DEFINED - At least one return value is not defined
3113 + *                  for the board.
3114 + ***************************************************************************/
3115 +int BpGetAdslDyingGaspExtIntr( unsigned long *pulValue );
3116 +
3117 +/**************************************************************************
3118 + * Name       : BpGetVoipExtIntr
3119 + *
3120 + * Description: This function returns the VOIP external interrupt number.
3121 + *
3122 + * Parameters : [OUT] pulValue - Address of short word that the VOIP
3123 + *                  external interrupt number is returned in.
3124 + *              [IN] dspNum - Address of the DSP to query.
3125 + *
3126 + * Returns    : BP_SUCCESS - Success, value is returned.
3127 + *              BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
3128 + *              BP_VALUE_NOT_DEFINED - At least one return value is not defined
3129 + *                  for the board.
3130 + ***************************************************************************/
3131 +int BpGetVoipExtIntr( unsigned char dspNum, unsigned long *pulValue );
3132 +
3133 +/**************************************************************************
3134 + * Name       : BpGetHpnaExtIntr
3135 + *
3136 + * Description: This function returns the HPNA external interrupt number.
3137 + *
3138 + * Parameters : [OUT] pulValue - Address of short word that the HPNA
3139 + *                  external interrupt number is returned in.
3140 + *
3141 + * Returns    : BP_SUCCESS - Success, value is returned.
3142 + *              BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
3143 + *              BP_VALUE_NOT_DEFINED - At least one return value is not defined
3144 + *                  for the board.
3145 + ***************************************************************************/
3146 +int BpGetHpnaExtIntr( unsigned long *pulValue );
3147 +
3148 +/**************************************************************************
3149 + * Name       : BpGetHpnaChipSelect
3150 + *
3151 + * Description: This function returns the HPNA chip select number.
3152 + *
3153 + * Parameters : [OUT] pulValue - Address of short word that the HPNA
3154 + *                  chip select number is returned in.
3155 + *
3156 + * Returns    : BP_SUCCESS - Success, value is returned.
3157 + *              BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
3158 + *              BP_VALUE_NOT_DEFINED - At least one return value is not defined
3159 + *                  for the board.
3160 + ***************************************************************************/
3161 +int BpGetHpnaChipSelect( unsigned long *pulValue );
3162 +
3163 +/**************************************************************************
3164 + * Name       : BpGetVoipChipSelect
3165 + *
3166 + * Description: This function returns the VOIP chip select number.
3167 + *
3168 + * Parameters : [OUT] pulValue - Address of short word that the VOIP
3169 + *                  chip select number is returned in.
3170 + *              [IN] dspNum - Address of the DSP to query.
3171 + *
3172 + * Returns    : BP_SUCCESS - Success, value is returned.
3173 + *              BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
3174 + *              BP_VALUE_NOT_DEFINED - At least one return value is not defined
3175 + *                  for the board.
3176 + ***************************************************************************/
3177 +int BpGetVoipChipSelect( unsigned char dspNum, unsigned long *pulValue );
3178 +
3179 +#endif /* __ASSEMBLER__ */
3180 +
3181 +#if __cplusplus
3182 +}
3183 +#endif
3184 +
3185 +#endif /* _BOARDPARMS_H */
3186 +