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