aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/brcm63xx-2.6/patches/001-bcm963xx.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/brcm63xx-2.6/patches/001-bcm963xx.patch')
-rw-r--r--target/linux/brcm63xx-2.6/patches/001-bcm963xx.patch3350
1 files changed, 72 insertions, 3278 deletions
diff --git a/target/linux/brcm63xx-2.6/patches/001-bcm963xx.patch b/target/linux/brcm63xx-2.6/patches/001-bcm963xx.patch
index abf9a7b74a..533418de33 100644
--- a/target/linux/brcm63xx-2.6/patches/001-bcm963xx.patch
+++ b/target/linux/brcm63xx-2.6/patches/001-bcm963xx.patch
@@ -7966,20 +7966,16 @@ diff -urN linux.old/arch/mips/kernel/proc.c linux.dev/arch/mips/kernel/proc.c
diff -urN linux.old/arch/mips/Makefile linux.dev/arch/mips/Makefile
--- linux.old/arch/mips/Makefile 2006-08-25 00:43:39.000000000 +0200
-+++ linux.dev/arch/mips/Makefile 2006-08-25 11:36:41.000000000 +0200
-@@ -145,6 +145,19 @@
++++ linux.dev/arch/mips/Makefile 2006-08-25 15:39:54.000000000 +0200
+@@ -145,6 +145,15 @@
#
#
+# Broadcom board
+#
+core-$(CONFIG_MIPS_BRCM) += arch/mips/bcm963xx/
-+core-$(CONFIG_MIPS_BRCM) += bcmdrivers/opensource/char/serial/impl1/
-+#core-$(CONFIG_MIPS_BRCM) += bcmdrivers/opensource/char/board/bcm963xx/impl1/
-+#core-$(CONFIG_MIPS_BRCM) += boardparms/bcm963xx/
-+#cflags-$(CONFIG_MIPS_BRCM) += -Iinclude/asm-mips/mach-bcm963xx
++cflags-$(CONFIG_MIPS_BRCM) += -Iinclude/asm-mips/mach-bcm963xx
+cflags-$(CONFIG_MIPS_BRCM) += -Iarch/mips/bcm963xx/include
-+cflags-$(CONFIG_MIPS_BRCM) += -Iboardparms/bcm963xx
+load-$(CONFIG_MIPS_BRCM) += 0xffffffff80010000
+
+
@@ -8455,10 +8451,10 @@ diff -urN linux.old/arch/mips/pci/pci-bcm96348.c linux.dev/arch/mips/pci/pci-bcm
+}
+
+arch_initcall(bcm96348_pci_init);
-diff -urN linux.old/bcmdrivers/opensource/char/serial/impl1/bcm63xx_cons.c linux.dev/bcmdrivers/opensource/char/serial/impl1/bcm63xx_cons.c
---- linux.old/bcmdrivers/opensource/char/serial/impl1/bcm63xx_cons.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/bcmdrivers/opensource/char/serial/impl1/bcm63xx_cons.c 2006-08-25 00:39:38.000000000 +0200
-@@ -0,0 +1,1056 @@
+diff -urN linux.old/drivers/serial/bcm63xx_cons.c linux.dev/drivers/serial/bcm63xx_cons.c
+--- linux.old/drivers/serial/bcm63xx_cons.c 1970-01-01 01:00:00.000000000 +0100
++++ linux.dev/drivers/serial/bcm63xx_cons.c 2006-08-25 15:37:34.000000000 +0200
+@@ -0,0 +1,1049 @@
+/*
+<:copyright-gpl
+ Copyright 2002 Broadcom Corp. All Rights Reserved.
@@ -8498,6 +8494,7 @@ diff -urN linux.old/bcmdrivers/opensource/char/serial/impl1/bcm63xx_cons.c linux
+#include <linux/tty.h>
+#include <linux/tty_flip.h>
+#include <linux/serial.h>
++#include <linux/serialP.h>
+#include <asm/uaccess.h>
+
+#include <bcmtypes.h>
@@ -8564,11 +8561,9 @@ diff -urN linux.old/bcmdrivers/opensource/char/serial/impl1/bcm63xx_cons.c linux
+
+static struct bcm_serial multi[BCM_NUM_UARTS];
+static struct bcm_serial *lines[BCM_NUM_UARTS];
-+static struct tty_driver serial_driver;
-+static struct tty_struct *serial_table[BCM_NUM_UARTS];
++static struct tty_driver *serial_driver;
+static struct termios *serial_termios[BCM_NUM_UARTS];
+static struct termios *serial_termios_locked[BCM_NUM_UARTS];
-+static int serial_refcount;
+
+
+static void bcm_stop (struct tty_struct *tty);
@@ -8578,7 +8573,7 @@ diff -urN linux.old/bcmdrivers/opensource/char/serial/impl1/bcm63xx_cons.c linux
+static void shutdown (struct bcm_serial * info);
+static void change_speed( volatile Uart *pUart, tcflag_t cFlag );
+static void bcm63xx_cons_flush_chars (struct tty_struct *tty);
-+static int bcm63xx_cons_write (struct tty_struct *tty, int from_user,
++static int bcm63xx_cons_write (struct tty_struct *tty,
+ const unsigned char *buf, int count);
+static int bcm63xx_cons_write_room (struct tty_struct *tty);
+static int bcm_chars_in_buffer (struct tty_struct *tty);
@@ -8634,7 +8629,7 @@ diff -urN linux.old/bcmdrivers/opensource/char/serial/impl1/bcm63xx_cons.c linux
+ UCHAR ch = 0;
+ while ((status = info->port->intStatus) & RXINT)
+ {
-+ char flag_char = 0;
++ char flag_char = TTY_NORMAL;
+
+ if (status & RXFIFONE)
+ ch = info->port->Data; // Read the character
@@ -8694,9 +8689,10 @@ diff -urN linux.old/bcmdrivers/opensource/char/serial/impl1/bcm63xx_cons.c linux
+ }
+ tty_insert_flip_char(tty, ch, flag_char);
+ }
-+ignore_char:
-+ if (tty)
-+ tty_flip_buffer_push(tty);
++ignore_char:;
++ tty_flip_buffer_push(tty);
++ tty_schedule_flip(tty);
++
+}
+
+
@@ -8768,9 +8764,6 @@ diff -urN linux.old/bcmdrivers/opensource/char/serial/impl1/bcm63xx_cons.c linux
+ if (!info->is_initialized)
+ return;
+
-+
-+ /*save_flags (flags);
-+ cli ();*/
+ spin_lock_irqsave(&bcm963xx_serial_lock, flags);
+
+ info->port->control &= ~(BRGEN|TXEN|RXEN);
@@ -8778,7 +8771,6 @@ diff -urN linux.old/bcmdrivers/opensource/char/serial/impl1/bcm63xx_cons.c linux
+ set_bit (TTY_IO_ERROR, &info->tty->flags);
+ info->is_initialized = 0;
+
-+ //restore_flags (flags);
+ spin_unlock_irqrestore(&bcm963xx_serial_lock, flags);
+}
+/*
@@ -8791,10 +8783,8 @@ diff -urN linux.old/bcmdrivers/opensource/char/serial/impl1/bcm63xx_cons.c linux
+static void change_speed( volatile Uart *pUart, tcflag_t cFlag )
+{
+ unsigned long ulFlags, ulBaud, ulClockFreqHz, ulTmp;
-+ /*save_flags(ulFlags);
-+ cli();*/
++
+ spin_lock_irqsave(&bcm963xx_serial_lock, ulFlags);
-+
+ switch( cFlag & (CBAUD | CBAUDEX) )
+ {
+ case B115200:
@@ -8874,7 +8864,6 @@ diff -urN linux.old/bcmdrivers/opensource/char/serial/impl1/bcm63xx_cons.c linux
+ case CS7:
+ ulTmp = BITS7SYM; /* select transmit 7 bit data size */
+ break;
-+ /*case CS8:*/
+ default:
+ ulTmp = BITS8SYM; /* select transmit 8 bit data size */
+ break;
@@ -8902,7 +8891,6 @@ diff -urN linux.old/bcmdrivers/opensource/char/serial/impl1/bcm63xx_cons.c linux
+
+ /* Reset and flush uart */
+ pUart->fifoctl = RSTTXFIFOS | RSTRXFIFOS;
-+ //restore_flags( ulFlags );
+ spin_unlock_irqrestore(&bcm963xx_serial_lock, ulFlags);
+}
+
@@ -8926,7 +8914,7 @@ diff -urN linux.old/bcmdrivers/opensource/char/serial/impl1/bcm63xx_cons.c linux
+ * Main output routine using polled I/O.
+ * -------------------------------------------------------------------
+ */
-+static int bcm63xx_cons_write (struct tty_struct *tty, int from_user,
++static int bcm63xx_cons_write (struct tty_struct *tty,
+ const unsigned char *buf, int count)
+{
+ int c;
@@ -8970,6 +8958,7 @@ diff -urN linux.old/bcmdrivers/opensource/char/serial/impl1/bcm63xx_cons.c linux
+ */
+static void bcm_flush_buffer (struct tty_struct *tty)
+{
++ tty_wakeup(tty);
+}
+
+/*
@@ -9343,6 +9332,7 @@ diff -urN linux.old/bcmdrivers/opensource/char/serial/impl1/bcm63xx_cons.c linux
+
+ info = lines[line];
+
++ tty->low_latency=1;
+ info->port->intMask = 0; /* Clear any pending interrupts */
+ info->port->intMask = RXINT; /* Enable RX */
+
@@ -9372,6 +9362,25 @@ diff -urN linux.old/bcmdrivers/opensource/char/serial/impl1/bcm63xx_cons.c linux
+ return 0;
+}
+
++
++static struct tty_operations rs_ops = {
++ .open = bcm63xx_cons_open,
++ .close = bcm63xx_cons_close,
++ .write = bcm63xx_cons_write,
++ .flush_chars = bcm63xx_cons_flush_chars,
++ .write_room = bcm63xx_cons_write_room,
++ .chars_in_buffer = bcm_chars_in_buffer,
++ .flush_buffer = bcm_flush_buffer,
++ .ioctl = bcm_ioctl,
++ .throttle = bcm_throttle,
++ .unthrottle = bcm_unthrottle,
++ .send_xchar = bcm_send_xchar,
++ .set_termios = bcm_set_termios,
++ .stop = bcm_stop,
++ .start = bcm_start,
++ .hangup = bcm_hangup,
++};
++
+/* --------------------------------------------------------------------------
+ Name: bcm63xx_serialinit
+ Purpose: Initialize our BCM63xx serial driver
@@ -9383,49 +9392,29 @@ diff -urN linux.old/bcmdrivers/opensource/char/serial/impl1/bcm63xx_cons.c linux
+
+ // Print the driver version information
+ printk(VER_STR);
++ serial_driver = alloc_tty_driver(BCM_NUM_UARTS);
++ if (!serial_driver)
++ return -ENOMEM;
++
++ serial_driver->owner = THIS_MODULE;
++ serial_driver->devfs_name = "tts/";
++// serial_driver.magic = TTY_DRIVER_MAGIC;
++ serial_driver->name = "ttyS";
++ serial_driver->major = TTY_MAJOR;
++ serial_driver->minor_start = 64;
++// serial_driver.num = BCM_NUM_UARTS;
++ serial_driver->type = TTY_DRIVER_TYPE_SERIAL;
++ serial_driver->subtype = SERIAL_TYPE_NORMAL;
++ serial_driver->init_termios = tty_std_termios;
++ serial_driver->init_termios.c_cflag = B115200 | CS8 | CREAD | HUPCL | CLOCAL;
++ serial_driver->flags = TTY_DRIVER_REAL_RAW;
++
++ serial_driver->termios = serial_termios;
++ serial_driver->termios_locked = serial_termios_locked;
++
++ tty_set_operations(serial_driver, &rs_ops);
+
-+ memset(&serial_driver, 0, sizeof(struct tty_driver));
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)
-+ serial_driver.owner = THIS_MODULE;
-+ serial_driver.devfs_name = "tts/";
-+#endif
-+ serial_driver.magic = TTY_DRIVER_MAGIC;
-+ serial_driver.name = "ttyS";
-+ serial_driver.major = TTY_MAJOR;
-+ serial_driver.minor_start = 64;
-+ serial_driver.num = BCM_NUM_UARTS;
-+ serial_driver.type = TTY_DRIVER_TYPE_SERIAL;
-+ serial_driver.subtype = SERIAL_TYPE_NORMAL;
-+ serial_driver.init_termios = tty_std_termios;
-+ serial_driver.init_termios.c_cflag = B115200 | CS8 | CREAD | CLOCAL;
-+ serial_driver.flags = TTY_DRIVER_REAL_RAW;
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)
-+ serial_driver.refcount = serial_refcount;
-+ serial_driver.ttys = serial_table;
-+#else
-+ serial_driver.refcount = &serial_refcount;
-+ serial_driver.table = serial_table;
-+#endif
-+
-+ serial_driver.termios = serial_termios;
-+ serial_driver.termios_locked = serial_termios_locked;
-+ serial_driver.open = bcm63xx_cons_open;
-+ serial_driver.close = bcm63xx_cons_close;
-+ serial_driver.write = bcm63xx_cons_write;
-+ serial_driver.flush_chars = bcm63xx_cons_flush_chars;
-+ serial_driver.write_room = bcm63xx_cons_write_room;
-+ serial_driver.chars_in_buffer = bcm_chars_in_buffer;
-+ serial_driver.flush_buffer = bcm_flush_buffer;
-+ serial_driver.ioctl = bcm_ioctl;
-+ serial_driver.throttle = bcm_throttle;
-+ serial_driver.unthrottle = bcm_unthrottle;
-+ serial_driver.send_xchar = bcm_send_xchar;
-+ serial_driver.set_termios = bcm_set_termios;
-+ serial_driver.stop = bcm_stop;
-+ serial_driver.start = bcm_start;
-+ serial_driver.hangup = bcm_hangup;
-+
-+ if (tty_register_driver (&serial_driver))
++ if (tty_register_driver (serial_driver))
+ panic("Couldn't register serial driver\n");
+
+ //save_flags(flags); cli();
@@ -9435,17 +9424,18 @@ diff -urN linux.old/bcmdrivers/opensource/char/serial/impl1/bcm63xx_cons.c linux
+ {
+ info = &multi[i];
+ lines[i] = info;
++ info->magic = SERIAL_MAGIC;
+ info->port = (Uart *) ((char *)UART_BASE + (i * 0x20));
++ info->tty = 0;
+ info->irq = (2 - i) + 8;
+ info->line = i;
-+ info->tty = 0;
+ info->close_delay = 50;
+ info->closing_wait = 3000;
+ info->x_char = 0;
+ info->event = 0;
+ info->count = 0;
+ info->blocked_open = 0;
-+ info->normal_termios = serial_driver.init_termios;
++ info->normal_termios = serial_driver->init_termios;
+ init_waitqueue_head(&info->open_wait);
+ init_waitqueue_head(&info->close_wait);
+
@@ -9461,7 +9451,6 @@ diff -urN linux.old/bcmdrivers/opensource/char/serial/impl1/bcm63xx_cons.c linux
+ * is updated... in request_irq - to immediatedly obliterate
+ * it is unwise.
+ */
-+ //restore_flags(flags);
+ spin_unlock_irqrestore(&bcm963xx_serial_lock, flags);
+ return 0;
+}
@@ -9491,7 +9480,7 @@ diff -urN linux.old/bcmdrivers/opensource/char/serial/impl1/bcm63xx_cons.c linux
+static struct tty_driver * bcm_console_device(struct console * c, int *index)
+{
+ *index = c->index;
-+ return &serial_driver;
++ return serial_driver;
+}
+
+static int __init bcm_console_setup(struct console * co, char * options)
@@ -9504,7 +9493,7 @@ diff -urN linux.old/bcmdrivers/opensource/char/serial/impl1/bcm63xx_cons.c linux
+ .write = bcm_console_print,
+ .device = bcm_console_device,
+ .setup = bcm_console_setup,
-+ .flags = CON_PRINTBUFFER, // CON_CONSDEV, CONSOLE_LINE,
++ .flags = CON_PRINTBUFFER,
+ .index = -1,
+};
+
@@ -9515,3209 +9504,14 @@ diff -urN linux.old/bcmdrivers/opensource/char/serial/impl1/bcm63xx_cons.c linux
+}
+
+console_initcall(bcm63xx_console_init);
-diff -urN linux.old/bcmdrivers/opensource/char/serial/impl1/Makefile linux.dev/bcmdrivers/opensource/char/serial/impl1/Makefile
---- linux.old/bcmdrivers/opensource/char/serial/impl1/Makefile 1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/bcmdrivers/opensource/char/serial/impl1/Makefile 2006-08-25 00:39:38.000000000 +0200
-@@ -0,0 +1,13 @@
-+# File: bcmdrivers/opensource/char/serial
-+#
-+# Makefile for the BCM63xx serial/console driver
-+
+diff -urN linux.old/drivers/serial/Makefile linux.dev/drivers/serial/Makefile
+--- linux.old/drivers/serial/Makefile 2006-06-18 03:49:35.000000000 +0200
++++ linux.dev/drivers/serial/Makefile 2006-08-25 15:38:44.000000000 +0200
+@@ -55,3 +55,4 @@
+ obj-$(CONFIG_SERIAL_SGI_IOC4) += ioc4_serial.o
+ obj-$(CONFIG_SERIAL_SGI_IOC3) += ioc3_serial.o
+ obj-$(CONFIG_SERIAL_AT91) += at91_serial.o
+obj-$(CONFIG_BCM_SERIAL) += bcm63xx_cons.o
-+
-+EXTRA_CFLAGS += -I$(INC_BRCMDRIVER_PUB_PATH)/$(BRCM_BOARD)
-+
-+-include $(TOPDIR)/Rules.make
-+
-+clean:
-+ rm -f core *.o *.a *.s
-+
-diff -urN linux.old/boardparms/bcm963xx/boardparms.c linux.dev/boardparms/bcm963xx/boardparms.c
---- linux.old/boardparms/bcm963xx/boardparms.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/boardparms/bcm963xx/boardparms.c 2006-08-25 00:39:38.000000000 +0200
-@@ -0,0 +1,2392 @@
-+/*
-+<:copyright-gpl
-+
-+ Copyright 2003 Broadcom Corp. All Rights Reserved.
-+
-+ This program is free software; you can distribute it and/or modify it
-+ under the terms of the GNU General Public License (Version 2) as
-+ published by the Free Software Foundation.
-+
-+ This program is distributed in the hope it will be useful, but WITHOUT
-+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-+ for more details.
-+
-+ You should have received a copy of the GNU General Public License along
-+ with this program; if not, write to the Free Software Foundation, Inc.,
-+ 59 Temple Place - Suite 330, Boston MA 02111-1307, USA.
-+
-+:>
-+*/
-+/**************************************************************************
-+ * File Name : boardparms.c
-+ *
-+ * Description: This file contains the implementation for the BCM63xx board
-+ * parameter access functions.
-+ *
-+ * Updates : 07/14/2003 Created.
-+ ***************************************************************************/
-+
-+/* Includes. */
-+#include <linux/config.h>
-+#include "boardparms.h"
-+
-+/* Defines. */
-+
-+/* Default psi size in K bytes */
-+#define BP_PSI_DEFAULT_SIZE 24
-+
-+/* Typedefs */
-+typedef struct boardparameters
-+{
-+ char szBoardId[BP_BOARD_ID_LEN]; /* board id string */
-+ ETHERNET_MAC_INFO EnetMacInfos[BP_MAX_ENET_MACS];
-+ VOIP_DSP_INFO VoIPDspInfo[BP_MAX_VOIP_DSP];
-+ unsigned short usSdramSize; /* SDRAM size and type */
-+ unsigned short usPsiSize; /* persistent storage in K bytes */
-+ unsigned short usGpioRj11InnerPair; /* GPIO pin or not defined */
-+ unsigned short usGpioRj11OuterPair; /* GPIO pin or not defined */
-+ unsigned short usGpioPressAndHoldReset; /* GPIO pin or not defined */
-+ unsigned short usGpioPcmciaReset; /* GPIO pin or not defined */
-+ unsigned short usGpioUartRts; /* GPIO pin or not defined */
-+ unsigned short usGpioUartCts; /* GPIO pin or not defined */
-+ unsigned short usGpioLedAdsl; /* GPIO pin or not defined */
-+ unsigned short usGpioLedAdslFail; /* GPIO pin or not defined */
-+ unsigned short usGpioLedWireless; /* GPIO pin or not defined */
-+ unsigned short usGpioLedUsb; /* GPIO pin or not defined */
-+ unsigned short usGpioLedHpna; /* GPIO pin or not defined */
-+ unsigned short usGpioLedWanData; /* GPIO pin or not defined */
-+ unsigned short usGpioLedPpp; /* GPIO pin or not defined */
-+ unsigned short usGpioLedPppFail; /* GPIO pin or not defined */
-+ unsigned short usGpioLedBlPowerOn; /* GPIO pin or not defined */
-+ unsigned short usGpioLedBlAlarm; /* GPIO pin or not defined */
-+ unsigned short usGpioLedBlResetCfg; /* GPIO pin or not defined */
-+ unsigned short usGpioLedBlStop; /* GPIO pin or not defined */
-+ unsigned short usExtIntrWireless; /* ext intr or not defined */
-+ unsigned short usExtIntrAdslDyingGasp; /* ext intr or not defined */
-+ unsigned short usExtIntrHpna; /* ext intr or not defined */
-+ unsigned short usCsHpna; /* chip select not defined */
-+ unsigned short usAntInUseWireless; /* antenna in use or not defined */
-+ unsigned short usGpioSesBtnWireless; /* GPIO pin or not defined */
-+ unsigned short usExtIntrSesBtnWireless; /* ext intr or not defined */
-+ unsigned short usGpioLedSesWireless; /* GPIO pin or not defined */
-+} BOARD_PARAMETERS, *PBOARD_PARAMETERS;
-+
-+/* Variables */
-+#if defined(_BCM96338_) || defined(CONFIG_BCM96338)
-+static BOARD_PARAMETERS g_bcm96338sv =
-+{
-+ "96338SV", /* szBoardId */
-+ {{BP_ENET_INTERNAL_PHY, /* ucPhyType */
-+ 0x01, /* ucPhyAddress */
-+ BP_NOT_DEFINED, /* usGpioPhySpiSck */
-+ BP_NOT_DEFINED, /* usGpioPhySpiSs */
-+ BP_NOT_DEFINED, /* usGpioPhySpiMosi */
-+ BP_NOT_DEFINED, /* usGpioPhySpiMiso */
-+ BP_NOT_DEFINED, /* usGpioPhyReset */
-+ 0x01, /* numSwitchPorts */
-+ BP_ENET_CONFIG_MDIO, /* usConfigType */
-+ BP_NOT_DEFINED}, /* usReverseMii */
-+ {BP_ENET_NO_PHY}}, /* ucPhyType */
-+ {{BP_VOIP_NO_DSP}, /* ucDspType */
-+ {BP_VOIP_NO_DSP}}, /* ucDspType */
-+ BP_MEMORY_16MB_1_CHIP, /* usSdramSize */
-+ BP_PSI_DEFAULT_SIZE, /* usPsiSize */
-+ BP_NOT_DEFINED, /* usGpioRj11InnerPair */
-+ BP_NOT_DEFINED, /* usGpioRj11OuterPair */
-+ BP_NOT_DEFINED, /* usGpioPressAndHoldReset */
-+ BP_NOT_DEFINED, /* usGpioPcmciaReset */
-+ BP_NOT_DEFINED, /* usGpioUartRts */
-+ BP_NOT_DEFINED, /* usGpioUartCts */
-+ BP_NOT_DEFINED, /* usGpioLedAdsl */
-+ BP_NOT_DEFINED, /* usGpioLedAdslFail */
-+ BP_NOT_DEFINED, /* usGpioLedWireless */
-+ BP_NOT_DEFINED, /* usGpioLedUsb */
-+ BP_NOT_DEFINED, /* usGpioLedHpna */
-+ BP_NOT_DEFINED, /* usGpioLedWanData */
-+ BP_NOT_DEFINED, /* usGpioLedPpp */
-+ BP_NOT_DEFINED, /* usGpioLedPppFail */
-+ BP_NOT_DEFINED, /* usGpioLedBlPowerOn */
-+ BP_NOT_DEFINED, /* usGpioLedBlAlarm */
-+ BP_NOT_DEFINED, /* usGpioLedBlResetCfg */
-+ BP_NOT_DEFINED, /* usGpioLedBlStop */
-+ BP_NOT_DEFINED, /* usExtIntrWireless */
-+ BP_HW_DEFINED, /* usExtIntrAdslDyingGasp */
-+ BP_NOT_DEFINED, /* usExtIntrHpna */
-+ BP_NOT_DEFINED, /* usCsHpna */
-+ BP_NOT_DEFINED, /* usAntInUseWireless */
-+ BP_NOT_DEFINED, /* usGpioSesBtnWireless */
-+ BP_NOT_DEFINED, /* usExtIntrSesBtnWireless */
-+ BP_NOT_DEFINED /* usGpioLedSesWireless */
-+};
-+static BOARD_PARAMETERS g_bcm96338l2m8m =
-+{
-+ "96338L-2M-8M", /* szBoardId */
-+ {{BP_ENET_INTERNAL_PHY, /* ucPhyType */
-+ 0x01, /* ucPhyAddress */
-+ BP_NOT_DEFINED, /* usGpioPhySpiSck */
-+ BP_NOT_DEFINED, /* usGpioPhySpiSs */
-+ BP_NOT_DEFINED, /* usGpioPhySpiMosi */
-+ BP_NOT_DEFINED, /* usGpioPhySpiMiso */
-+ BP_NOT_DEFINED, /* usGpioPhyReset */
-+ 0x01, /* numSwitchPorts */
-+ BP_ENET_CONFIG_MDIO, /* usConfigType */
-+ BP_NOT_DEFINED}, /* usReverseMii */
-+ {BP_ENET_NO_PHY}}, /* ucPhyType */
-+ {{BP_VOIP_NO_DSP}, /* ucDspType */
-+ {BP_VOIP_NO_DSP}}, /* ucDspType */
-+ BP_MEMORY_8MB_1_CHIP, /* usSdramSize */
-+ BP_PSI_DEFAULT_SIZE, /* usPsiSize */
-+ BP_NOT_DEFINED, /* usGpioRj11InnerPair */
-+ BP_NOT_DEFINED, /* usGpioRj11OuterPair */
-+ BP_NOT_DEFINED, /* usGpioPressAndHoldReset */
-+ BP_NOT_DEFINED, /* usGpioPcmciaReset */
-+ BP_NOT_DEFINED, /* usGpioUartRts */
-+ BP_NOT_DEFINED, /* usGpioUartCts */
-+ BP_NOT_DEFINED, /* usGpioLedAdsl */
-+ BP_GPIO_2_AL, /* usGpioLedAdslFail */
-+ BP_NOT_DEFINED, /* usGpioLedWireless */
-+ BP_NOT_DEFINED, /* usGpioLedUsb */
-+ BP_NOT_DEFINED, /* usGpioLedHpna */
-+ BP_GPIO_3_AL, /* usGpioLedWanData */
-+ BP_GPIO_3_AL, /* usGpioLedPpp */
-+ BP_GPIO_4_AL, /* usGpioLedPppFail */
-+ BP_GPIO_0_AL, /* usGpioLedBlPowerOn */
-+ BP_NOT_DEFINED, /* usGpioLedBlAlarm */
-+ BP_GPIO_3_AL, /* usGpioLedBlResetCfg */
-+ BP_GPIO_1_AL, /* usGpioLedBlStop */
-+ BP_NOT_DEFINED, /* usExtIntrWireless */
-+ BP_HW_DEFINED, /* usExtIntrAdslDyingGasp */
-+ BP_NOT_DEFINED, /* usExtIntrHpna */
-+ BP_NOT_DEFINED, /* usCsHpna */
-+ BP_NOT_DEFINED, /* usAntInUseWireless */
-+ BP_NOT_DEFINED, /* usGpioSesBtnWireless */
-+ BP_NOT_DEFINED, /* usExtIntrSesBtnWireless */
-+ BP_NOT_DEFINED /* usGpioLedSesWireless */
-+};
-+static PBOARD_PARAMETERS g_BoardParms[] =
-+ {&g_bcm96338sv, &g_bcm96338l2m8m, 0};
-+#endif
-+
-+#if defined(_BCM96345_) || defined(CONFIG_BCM96345)
-+static BOARD_PARAMETERS g_bcm96345r =
-+{
-+ "96345R", /* szBoardId */
-+ {{BP_ENET_INTERNAL_PHY, /* ucPhyType */
-+ 0x01, /* ucPhyAddress */
-+ BP_NOT_DEFINED, /* usGpioPhySpiSck */
-+ BP_NOT_DEFINED, /* usGpioPhySpiSs */
-+ BP_NOT_DEFINED, /* usGpioPhySpiMosi */
-+ BP_NOT_DEFINED, /* usGpioPhySpiMiso */
-+ BP_NOT_DEFINED, /* usGpioPhyReset */
-+ 0x01, /* numSwitchPorts */
-+ BP_ENET_CONFIG_MDIO, /* usConfigType */
-+ BP_NOT_DEFINED}, /* usReverseMii */
-+ {BP_ENET_NO_PHY}}, /* ucPhyType */
-+ {{BP_VOIP_NO_DSP}, /* ucDspType */
-+ {BP_VOIP_NO_DSP}}, /* ucDspType */
-+ BP_MEMORY_8MB_1_CHIP, /* usSdramSize */
-+ BP_PSI_DEFAULT_SIZE, /* usPsiSize */
-+ BP_GPIO_11_AH, /* usGpioRj11InnerPair */
-+ BP_GPIO_12_AH, /* usGpioRj11OuterPair */
-+ BP_GPIO_13_AH, /* usGpioPressAndHoldReset */
-+ BP_NOT_DEFINED, /* usGpioPcmciaReset */
-+ BP_NOT_DEFINED, /* usGpioUartRts */
-+ BP_NOT_DEFINED, /* usGpioUartCts */
-+ BP_GPIO_8_AH, /* usGpioLedAdsl */
-+ BP_NOT_DEFINED, /* usGpioLedAdslFail */
-+ BP_NOT_DEFINED, /* usGpioLedWireless */
-+ BP_NOT_DEFINED, /* usGpioLedUsb */
-+ BP_NOT_DEFINED, /* usGpioLedHpna */
-+ BP_GPIO_8_AH, /* usGpioLedWanData */
-+ BP_GPIO_9_AH, /* usGpioLedPpp */
-+ BP_NOT_DEFINED, /* usGpioLedPppFail */
-+ BP_NOT_DEFINED, /* usGpioLedBlPowerOn */
-+ BP_GPIO_10_AH, /* usGpioLedBlAlarm */
-+ BP_GPIO_9_AH, /* usGpioLedBlResetCfg */
-+ BP_GPIO_8_AH, /* usGpioLedBlStop */
-+ BP_NOT_DEFINED, /* usExtIntrWireless */
-+ BP_EXT_INTR_0, /* usExtIntrAdslDyingGasp */
-+ BP_NOT_DEFINED, /* usExtIntrHpna */
-+ BP_NOT_DEFINED, /* usCsHpna */
-+ BP_NOT_DEFINED, /* usAntInUseWireless */
-+ BP_NOT_DEFINED, /* usGpioSesBtnWireless */
-+ BP_NOT_DEFINED, /* usExtIntrSesBtnWireless */
-+ BP_NOT_DEFINED /* usGpioLedSesWireless */
-+};
-+
-+static BOARD_PARAMETERS g_bcm96345gw2 =
-+{
-+ /* A hardware jumper determines whether GPIO 13 is used for Press and Hold
-+ * Reset or RTS.
-+ */
-+ "96345GW2", /* szBoardId */
-+ {{BP_ENET_EXTERNAL_SWITCH, /* ucPhyType */
-+ 0x00, /* ucPhyAddress */
-+ BP_GPIO_0_AH, /* usGpioPhySpiSck */
-+ BP_GPIO_4_AH, /* usGpioPhySpiSs */
-+ BP_GPIO_12_AH, /* usGpioPhySpiMosi */
-+ BP_GPIO_11_AH, /* usGpioPhySpiMiso */
-+ BP_NOT_DEFINED, /* usGpioPhyReset */
-+ 0x04, /* numSwitchPorts */
-+ BP_ENET_CONFIG_GPIO, /* usConfigType */
-+ BP_ENET_REVERSE_MII}, /* usReverseMii */
-+ {BP_ENET_NO_PHY}}, /* ucPhyType */
-+ {{BP_VOIP_DSP, /* ucDspType */
-+ 0x00, /* ucDspAddress */
-+ BP_EXT_INTR_1, /* usExtIntrVoip */
-+ BP_GPIO_6_AH, /* usGpioVoipReset */
-+ BP_GPIO_15_AH, /* usGpioVoipIntr */
-+ BP_NOT_DEFINED, /* usGpioLedVoip */
-+ BP_CS_2}, /* usCsVoip */
-+ {BP_VOIP_NO_DSP}}, /* ucDspType */
-+ BP_MEMORY_16MB_1_CHIP, /* usSdramSize */
-+ BP_PSI_DEFAULT_SIZE, /* usPsiSize */
-+ BP_NOT_DEFINED, /* usGpioRj11InnerPair */
-+ BP_NOT_DEFINED, /* usGpioRj11OuterPair */
-+ BP_GPIO_13_AH, /* usGpioPressAndHoldReset */
-+ BP_GPIO_2_AH, /* usGpioPcmciaReset */
-+ BP_GPIO_13_AH, /* usGpioUartRts */
-+ BP_GPIO_9_AH, /* usGpioUartCts */
-+ BP_GPIO_8_AH, /* usGpioLedAdsl */
-+ BP_NOT_DEFINED, /* usGpioLedAdslFail */
-+ BP_NOT_DEFINED, /* usGpioLedWireless */
-+ BP_GPIO_7_AH, /* usGpioLedUsb */
-+ BP_NOT_DEFINED, /* usGpioLedHpna */
-+ BP_GPIO_8_AH, /* usGpioLedWanData */
-+ BP_NOT_DEFINED, /* usGpioLedPpp */
-+ BP_NOT_DEFINED, /* usGpioLedPppFail */
-+ BP_NOT_DEFINED, /* usGpioLedBlPowerOn */
-+ BP_GPIO_10_AH, /* usGpioLedBlAlarm */
-+ BP_GPIO_7_AH, /* usGpioLedBlResetCfg */
-+ BP_GPIO_8_AH, /* usGpioLedBlStop */
-+ BP_EXT_INTR_2, /* usExtIntrWireless */
-+ BP_EXT_INTR_0, /* usExtIntrAdslDyingGasp */
-+ BP_NOT_DEFINED, /* usExtIntrHpna */
-+ BP_NOT_DEFINED, /* usCsHpna */
-+ BP_WLAN_ANT_MAIN, /* usAntInUseWireless */
-+ BP_NOT_DEFINED, /* usGpioSesBtnWireless */
-+ BP_NOT_DEFINED, /* usExtIntrSesBtnWireless */
-+ BP_NOT_DEFINED /* usGpioLedSesWireless */
-+};
-+
-+static BOARD_PARAMETERS g_bcm96345gw =
-+{
-+ "96345GW", /* szBoardId */
-+ {{BP_ENET_EXTERNAL_SWITCH, /* ucPhyType */
-+ 0x00, /* ucPhyAddress */
-+ BP_NOT_DEFINED, /* usGpioPhySpiSck */
-+ BP_NOT_DEFINED, /* usGpioPhySpiSs */
-+ BP_NOT_DEFINED, /* usGpioPhySpiMosi */
-+ BP_NOT_DEFINED, /* usGpioPhySpiMiso */
-+ BP_NOT_DEFINED, /* usGpioPhyReset */
-+ 0x04, /* numSwitchPorts */
-+ BP_ENET_CONFIG_MDIO, /* usConfigType */
-+ BP_ENET_NO_REVERSE_MII}, /* usReverseMii */
-+ {BP_ENET_NO_PHY}}, /* ucPhyType */
-+ {{BP_VOIP_DSP, /* ucDspType */
-+ 0x00, /* ucDspAddress */
-+ BP_EXT_INTR_1, /* usExtIntrVoip */
-+ BP_GPIO_6_AH, /* usGpioVoipReset */
-+ BP_GPIO_15_AH, /* usGpioVoipIntr */
-+ BP_NOT_DEFINED, /* usGpioLedVoip */
-+ BP_CS_2}, /* usCsVoip */
-+ {BP_VOIP_NO_DSP}}, /* ucDspType */
-+ BP_MEMORY_16MB_1_CHIP, /* usSdramSize */
-+ BP_PSI_DEFAULT_SIZE, /* usPsiSize */
-+ BP_GPIO_11_AH, /* usGpioRj11InnerPair */
-+ BP_GPIO_1_AH, /* usGpioRj11OuterPair */
-+ BP_GPIO_13_AH, /* usGpioPressAndHoldReset */
-+ BP_GPIO_2_AH, /* usGpioPcmciaReset */
-+ BP_NOT_DEFINED, /* usGpioUartRts */
-+ BP_NOT_DEFINED, /* usGpioUartCts */
-+ BP_GPIO_8_AH, /* usGpioLedAdsl */
-+ BP_NOT_DEFINED, /* usGpioLedAdslFail */
-+ BP_GPIO_10_AH, /* usGpioLedWireless */
-+ BP_GPIO_7_AH, /* usGpioLedUsb */
-+ BP_NOT_DEFINED, /* usGpioLedHpna */
-+ BP_GPIO_8_AH, /* usGpioLedWanData */
-+ BP_NOT_DEFINED, /* usGpioLedPpp */
-+ BP_NOT_DEFINED, /* usGpioLedPppFail */
-+ BP_NOT_DEFINED, /* usGpioLedBlPowerOn */
-+ BP_GPIO_9_AH, /* usGpioLedBlAlarm */
-+ BP_GPIO_10_AH, /* usGpioLedBlResetCfg */
-+ BP_GPIO_8_AH, /* usGpioLedBlStop */
-+ BP_EXT_INTR_2, /* usExtIntrWireless */
-+ BP_EXT_INTR_0, /* usExtIntrAdslDyingGasp */
-+ BP_EXT_INTR_3, /* usExtIntrHpna */
-+ BP_CS_1, /* usCsHpna */
-+ BP_WLAN_ANT_MAIN, /* usAntInUseWireless */
-+ BP_NOT_DEFINED, /* usGpioSesBtnWireless */
-+ BP_NOT_DEFINED, /* usExtIntrSesBtnWireless */
-+ BP_NOT_DEFINED /* usGpioLedSesWireless */
-+};
-+
-+static BOARD_PARAMETERS g_bcm96335r =
-+{
-+ "96335R", /* szBoardId */
-+ {{BP_ENET_INTERNAL_PHY, /* ucPhyType */
-+ 0x01, /* ucPhyAddress */
-+ BP_NOT_DEFINED, /* usGpioPhySpiSck */
-+ BP_NOT_DEFINED, /* usGpioPhySpiSs */
-+ BP_NOT_DEFINED, /* usGpioPhySpiMosi */
-+ BP_NOT_DEFINED, /* usGpioPhySpiMiso */
-+ BP_NOT_DEFINED, /* usGpioPhyReset */
-+ 0x01, /* numSwitchPorts */
-+ BP_ENET_CONFIG_MDIO, /* usConfigType */
-+ BP_NOT_DEFINED}, /* usReverseMii */
-+ {BP_ENET_NO_PHY}}, /* ucPhyType */
-+ {{BP_VOIP_NO_DSP}, /* ucDspType */
-+ {BP_VOIP_NO_DSP}}, /* ucDspType */
-+ BP_MEMORY_8MB_1_CHIP, /* usSdramSize */
-+ BP_PSI_DEFAULT_SIZE, /* usPsiSize */
-+ BP_NOT_DEFINED, /* usGpioRj11InnerPair */
-+ BP_NOT_DEFINED, /* usGpioRj11OuterPair */
-+ BP_GPIO_14_AH, /* usGpioPressAndHoldReset */
-+ BP_NOT_DEFINED, /* usGpioPcmciaReset */
-+ BP_NOT_DEFINED, /* usGpioUartRts */
-+ BP_NOT_DEFINED, /* usGpioUartCts */
-+ BP_GPIO_9_AH, /* usGpioLedAdsl */
-+ BP_NOT_DEFINED, /* usGpioLedAdslFail */
-+ BP_NOT_DEFINED, /* usGpioLedWireless */
-+ BP_NOT_DEFINED, /* usGpioLedUsb */
-+ BP_NOT_DEFINED, /* usGpioLedHpna */
-+ BP_GPIO_9_AH, /* usGpioLedWanData */
-+ BP_GPIO_8_AH, /* usGpioLedPpp */
-+ BP_NOT_DEFINED, /* usGpioLedPppFail */
-+ BP_NOT_DEFINED, /* usGpioLedBlPowerOn */
-+ BP_GPIO_10_AH, /* usGpioLedBlAlarm */
-+ BP_GPIO_8_AH, /* usGpioLedBlResetCfg */
-+ BP_GPIO_9_AH, /* usGpioLedBlStop */
-+ BP_NOT_DEFINED, /* usExtIntrWireless */
-+ BP_NOT_DEFINED, /* usExtIntrAdslDyingGasp */
-+ BP_NOT_DEFINED, /* usExtIntrHpna */
-+ BP_NOT_DEFINED, /* usCsHpna */
-+ BP_NOT_DEFINED, /* usAntInUseWireless */
-+ BP_NOT_DEFINED, /* usGpioSesBtnWireless */
-+ BP_NOT_DEFINED, /* usExtIntrSesBtnWireless */
-+ BP_NOT_DEFINED /* usGpioLedSesWireless */
-+};
-+
-+static BOARD_PARAMETERS g_bcm96345r0 =
-+{
-+ "96345R0", /* szBoardId */
-+ {{BP_ENET_INTERNAL_PHY, /* ucPhyType */
-+ 0x01, /* ucPhyAddress */
-+ BP_NOT_DEFINED, /* usGpioPhySpiSck */
-+ BP_NOT_DEFINED, /* usGpioPhySpiSs */
-+ BP_NOT_DEFINED, /* usGpioPhySpiMosi */
-+ BP_NOT_DEFINED, /* usGpioPhySpiMiso */
-+ BP_NOT_DEFINED, /* usGpioPhyReset */
-+ 0x01, /* numSwitchPorts */
-+ BP_ENET_CONFIG_MDIO, /* usConfigType */
-+ BP_NOT_DEFINED}, /* usReverseMii */
-+ {BP_ENET_NO_PHY}}, /* ucPhyType */
-+ {{BP_VOIP_NO_DSP}, /* ucDspType */
-+ {BP_VOIP_NO_DSP}}, /* ucDspType */
-+ BP_MEMORY_8MB_1_CHIP, /* usSdramSize */
-+ BP_PSI_DEFAULT_SIZE, /* usPsiSize */
-+ BP_NOT_DEFINED, /* usGpioRj11InnerPair */
-+ BP_NOT_DEFINED, /* usGpioRj11OuterPair */
-+ BP_NOT_DEFINED, /* usGpioPressAndHoldReset */
-+ BP_NOT_DEFINED, /* usGpioPcmciaReset */
-+ BP_NOT_DEFINED, /* usGpioUartRts */
-+ BP_NOT_DEFINED, /* usGpioUartCts */
-+ BP_GPIO_8_AH, /* usGpioLedAdsl */
-+ BP_NOT_DEFINED, /* usGpioLedAdslFail */
-+ BP_NOT_DEFINED, /* usGpioLedWireless */
-+ BP_NOT_DEFINED, /* usGpioLedUsb */
-+ BP_NOT_DEFINED, /* usGpioLedHpna */
-+ BP_GPIO_9_AH, /* usGpioLedWanData */
-+ BP_GPIO_9_AH, /* usGpioLedPpp */
-+ BP_NOT_DEFINED, /* usGpioLedPppFail */
-+ BP_NOT_DEFINED, /* usGpioLedBlPowerOn */
-+ BP_GPIO_9_AH, /* usGpioLedBlAlarm */
-+ BP_GPIO_8_AH, /* usGpioLedBlResetCfg */
-+ BP_GPIO_8_AH, /* usGpioLedBlStop */
-+ BP_NOT_DEFINED, /* usExtIntrWireless */
-+ BP_NOT_DEFINED, /* usExtIntrAdslDyingGasp */
-+ BP_NOT_DEFINED, /* usExtIntrHpna */
-+ BP_NOT_DEFINED, /* usCsHpna */
-+ BP_NOT_DEFINED, /* usAntInUseWireless */
-+ BP_NOT_DEFINED, /* usGpioSesBtnWireless */
-+ BP_NOT_DEFINED, /* usExtIntrSesBtnWireless */
-+ BP_NOT_DEFINED /* usGpioLedSesWireless */
-+};
-+
-+static BOARD_PARAMETERS g_bcm96345rs =
-+{
-+ "96345RS", /* szBoardId */
-+ {{BP_ENET_EXTERNAL_SWITCH, /* ucPhyType */
-+ 0x00, /* ucPhyAddress */
-+ BP_NOT_DEFINED, /* usGpioPhySpiSck */
-+ BP_NOT_DEFINED, /* usGpioPhySpiSs */
-+ BP_NOT_DEFINED, /* usGpioPhySpiMosi */
-+ BP_NOT_DEFINED, /* usGpioPhySpiMiso */
-+ BP_NOT_DEFINED, /* usGpioPhyReset */
-+ 0x01, /* numSwitchPorts */
-+ BP_ENET_CONFIG_MDIO, /* usConfigType */
-+ BP_ENET_NO_REVERSE_MII}, /* usReverseMii */
-+ {BP_ENET_NO_PHY}}, /* ucPhyType */
-+ {{BP_VOIP_NO_DSP}, /* ucDspType */
-+ {BP_VOIP_NO_DSP}}, /* ucDspType */
-+ BP_MEMORY_8MB_1_CHIP, /* usSdramSize */
-+ BP_PSI_DEFAULT_SIZE, /* usPsiSize */
-+ BP_GPIO_11_AH, /* usGpioRj11InnerPair */
-+ BP_GPIO_12_AH, /* usGpioRj11OuterPair */
-+ BP_GPIO_13_AH, /* usGpioPressAndHoldReset */
-+ BP_NOT_DEFINED, /* usGpioPcmciaReset */
-+ BP_NOT_DEFINED, /* usGpioUartRts */
-+ BP_NOT_DEFINED, /* usGpioUartCts */
-+ BP_GPIO_8_AH, /* usGpioLedAdsl */
-+ BP_NOT_DEFINED, /* usGpioLedAdslFail */
-+ BP_NOT_DEFINED, /* usGpioLedWireless */
-+ BP_NOT_DEFINED, /* usGpioLedUsb */
-+ BP_NOT_DEFINED, /* usGpioLedHpna */
-+ BP_GPIO_8_AH, /* usGpioLedWanData */
-+ BP_GPIO_9_AH, /* usGpioLedPpp */
-+ BP_NOT_DEFINED, /* usGpioLedPppFail */
-+ BP_NOT_DEFINED, /* usGpioLedBlPowerOn */
-+ BP_GPIO_10_AH, /* usGpioLedBlAlarm */
-+ BP_GPIO_9_AH, /* usGpioLedBlResetCfg */
-+ BP_GPIO_8_AH, /* usGpioLedBlStop */
-+ BP_NOT_DEFINED, /* usExtIntrWireless */
-+ BP_EXT_INTR_0, /* usExtIntrAdslDyingGasp */
-+ BP_NOT_DEFINED, /* usExtIntrHpna */
-+ BP_NOT_DEFINED, /* usCsHpna */
-+ BP_NOT_DEFINED, /* usAntInUseWireless */
-+ BP_NOT_DEFINED, /* usGpioSesBtnWireless */
-+ BP_NOT_DEFINED, /* usExtIntrSesBtnWireless */
-+ BP_NOT_DEFINED /* usGpioLedSesWireless */
-+};
-+
-+static PBOARD_PARAMETERS g_BoardParms[] =
-+ {&g_bcm96345r, &g_bcm96345gw2, &g_bcm96345gw, &g_bcm96335r, &g_bcm96345r0,
-+ &g_bcm96345rs, 0};
-+#endif
-+
-+#if defined(_BCM96348_) || defined(CONFIG_BCM96348)
-+
-+static BOARD_PARAMETERS g_bcm96348r =
-+{
-+ "96348R", /* szBoardId */
-+ {{BP_ENET_INTERNAL_PHY, /* ucPhyType */
-+ 0x01, /* ucPhyAddress */
-+ BP_NOT_DEFINED, /* usGpioPhySpiSck */
-+ BP_NOT_DEFINED, /* usGpioPhySpiSs */
-+ BP_NOT_DEFINED, /* usGpioPhySpiMosi */
-+ BP_NOT_DEFINED, /* usGpioPhySpiMiso */
-+ BP_NOT_DEFINED, /* usGpioPhyReset */
-+ 0x01, /* numSwitchPorts */
-+ BP_ENET_CONFIG_MDIO, /* usConfigType */
-+ BP_NOT_DEFINED}, /* usReverseMii */
-+ {BP_ENET_NO_PHY}}, /* ucPhyType */
-+ {{BP_VOIP_NO_DSP}, /* ucDspType */
-+ {BP_VOIP_NO_DSP}}, /* ucDspType */
-+ BP_MEMORY_8MB_1_CHIP, /* usSdramSize */
-+ BP_PSI_DEFAULT_SIZE, /* usPsiSize */
-+ BP_NOT_DEFINED, /* usGpioRj11InnerPair */
-+ BP_NOT_DEFINED, /* usGpioRj11OuterPair */
-+ BP_GPIO_7_AH, /* usGpioPressAndHoldReset */
-+ BP_NOT_DEFINED, /* usGpioPcmciaReset */
-+ BP_NOT_DEFINED, /* usGpioUartRts */
-+ BP_NOT_DEFINED, /* usGpioUartCts */
-+ BP_NOT_DEFINED, /* usGpioLedAdsl */
-+ BP_GPIO_2_AL, /* usGpioLedAdslFail */
-+ BP_NOT_DEFINED, /* usGpioLedWireless */
-+ BP_NOT_DEFINED, /* usGpioLedUsb */
-+ BP_NOT_DEFINED, /* usGpioLedHpna */
-+ BP_GPIO_3_AL, /* usGpioLedWanData */
-+ BP_GPIO_3_AL, /* usGpioLedPpp */
-+ BP_GPIO_4_AL, /* usGpioLedPppFail */
-+ BP_GPIO_0_AL, /* usGpioLedBlPowerOn */
-+ BP_NOT_DEFINED, /* usGpioLedBlAlarm */
-+ BP_GPIO_3_AL, /* usGpioLedBlResetCfg */
-+ BP_GPIO_1_AL, /* usGpioLedBlStop */
-+ BP_NOT_DEFINED, /* usExtIntrWireless */
-+ BP_HW_DEFINED, /* usExtIntrAdslDyingGasp */
-+ BP_NOT_DEFINED, /* usExtIntrHpna */
-+ BP_NOT_DEFINED, /* usCsHpna */
-+ BP_NOT_DEFINED, /* usAntInUseWireless */
-+ BP_NOT_DEFINED, /* usGpioSesBtnWireless */
-+ BP_NOT_DEFINED, /* usExtIntrSesBtnWireless */
-+ BP_NOT_DEFINED /* usGpioLedSesWireless */
-+};
-+
-+static BOARD_PARAMETERS g_bcm96348lv =
-+{
-+ "96348LV", /* szBoardId */
-+ {{BP_ENET_INTERNAL_PHY, /* ucPhyType */
-+ 0x01, /* ucPhyAddress */
-+ BP_NOT_DEFINED, /* usGpioPhySpiSck */
-+ BP_NOT_DEFINED, /* usGpioPhySpiSs */
-+ BP_NOT_DEFINED, /* usGpioPhySpiMosi */
-+ BP_NOT_DEFINED, /* usGpioPhySpiMiso */
-+ BP_NOT_DEFINED, /* usGpioPhyReset */
-+ 0x01, /* numSwitchPorts */
-+ BP_ENET_CONFIG_MDIO, /* usConfigType */
-+ BP_NOT_DEFINED}, /* usReverseMii */
-+ {BP_ENET_EXTERNAL_PHY, /* ucPhyType */
-+ 0x02, /* ucPhyAddress */
-+ BP_NOT_DEFINED, /* usGpioPhySpiSck */
-+ BP_NOT_DEFINED, /* usGpioPhySpiSs */
-+ BP_NOT_DEFINED, /* usGpioPhySpiMosi */
-+ BP_NOT_DEFINED, /* usGpioPhySpiMiso */
-+ BP_GPIO_5_AL, /* usGpioPhyReset */
-+ 0x01, /* numSwitchPorts */
-+ BP_ENET_CONFIG_MDIO, /* usConfigType */
-+ BP_NOT_DEFINED}}, /* usReverseMii */
-+ {{BP_VOIP_NO_DSP}, /* ucDspType */
-+ {BP_VOIP_NO_DSP}}, /* ucDspType */
-+ BP_MEMORY_16MB_2_CHIP, /* usSdramSize */
-+ BP_PSI_DEFAULT_SIZE, /* usPsiSize */
-+ BP_NOT_DEFINED, /* usGpioRj11InnerPair */
-+ BP_NOT_DEFINED, /* usGpioRj11OuterPair */
-+ BP_GPIO_7_AH, /* usGpioPressAndHoldReset */
-+ BP_NOT_DEFINED, /* usGpioPcmciaReset */
-+ BP_NOT_DEFINED, /* usGpioUartRts */
-+ BP_NOT_DEFINED, /* usGpioUartCts */
-+ BP_NOT_DEFINED, /* usGpioLedAdsl */
-+ BP_GPIO_2_AL, /* usGpioLedAdslFail */
-+ BP_NOT_DEFINED, /* usGpioLedWireless */
-+ BP_NOT_DEFINED, /* usGpioLedUsb */
-+ BP_NOT_DEFINED, /* usGpioLedHpna */
-+ BP_GPIO_3_AL, /* usGpioLedWanData */
-+ BP_GPIO_3_AL, /* usGpioLedPpp */
-+ BP_GPIO_4_AL, /* usGpioLedPppFail */
-+ BP_GPIO_0_AL, /* usGpioLedBlPowerOn */
-+ BP_NOT_DEFINED, /* usGpioLedBlAlarm */
-+ BP_GPIO_3_AL, /* usGpioLedBlResetCfg */
-+ BP_GPIO_1_AL, /* usGpioLedBlStop */
-+ BP_NOT_DEFINED, /* usExtIntrWireless */
-+ BP_NOT_DEFINED, /* usExtIntrAdslDyingGasp */
-+ BP_NOT_DEFINED, /* usExtIntrHpna */
-+ BP_NOT_DEFINED, /* usCsHpna */
-+ BP_NOT_DEFINED, /* usAntInUseWireless */
-+ BP_NOT_DEFINED, /* usGpioSesBtnWireless */
-+ BP_NOT_DEFINED, /* usExtIntrSesBtnWireless */
-+ BP_NOT_DEFINED /* usGpioLedSesWireless */
-+};
-+
-+static BOARD_PARAMETERS g_bcm96348gw =
-+{
-+ "96348GW", /* szBoardId */
-+ {{BP_ENET_INTERNAL_PHY, /* ucPhyType */
-+ 0x01, /* ucPhyAddress */
-+ BP_NOT_DEFINED, /* usGpioPhySpiSck */
-+ BP_NOT_DEFINED, /* usGpioPhySpiSs */
-+ BP_NOT_DEFINED, /* usGpioPhySpiMosi */
-+ BP_NOT_DEFINED, /* usGpioPhySpiMiso */
-+ BP_NOT_DEFINED, /* usGpioPhyReset */
-+ 0x01, /* numSwitchPorts */
-+ BP_ENET_CONFIG_MDIO, /* usConfigType */
-+ BP_NOT_DEFINED}, /* usReverseMii */
-+ {BP_ENET_EXTERNAL_SWITCH, /* ucPhyType */
-+ 0x00, /* ucPhyAddress */
-+ BP_NOT_DEFINED, /* usGpioPhySpiSck */
-+ BP_NOT_DEFINED, /* usGpioPhySpiSs */
-+ BP_NOT_DEFINED, /* usGpioPhySpiMosi */
-+ BP_NOT_DEFINED, /* usGpioPhySpiMiso */
-+ BP_NOT_DEFINED, /* usGpioPhyReset */
-+ 0x03, /* numSwitchPorts */
-+ BP_ENET_CONFIG_SPI_SSB_0, /* usConfigType */
-+ BP_ENET_REVERSE_MII}}, /* usReverseMii */
-+ {{BP_VOIP_DSP, /* ucDspType */
-+ 0x00, /* ucDspAddress */
-+ BP_EXT_INTR_2, /* usExtIntrVoip */
-+ BP_GPIO_6_AH, /* usGpioVoipReset */
-+ BP_GPIO_34_AH, /* usGpioVoipIntr */
-+ BP_NOT_DEFINED, /* usGpioLedVoip */
-+ BP_CS_2}, /* usCsVoip */
-+ {BP_VOIP_NO_DSP}}, /* ucDspType */
-+ BP_MEMORY_16MB_2_CHIP, /* usSdramSize */
-+ BP_PSI_DEFAULT_SIZE, /* usPsiSize */
-+ BP_NOT_DEFINED, /* usGpioRj11InnerPair */
-+ BP_NOT_DEFINED, /* usGpioRj11OuterPair */
-+ BP_GPIO_33_AL, /* usGpioPressAndHoldReset */
-+ BP_NOT_DEFINED, /* usGpioPcmciaReset */
-+ BP_NOT_DEFINED, /* usGpioUartRts */
-+ BP_NOT_DEFINED, /* usGpioUartCts */
-+ BP_NOT_DEFINED, /* usGpioLedAdsl */
-+ BP_GPIO_2_AL, /* usGpioLedAdslFail */
-+ BP_NOT_DEFINED, /* usGpioLedWireless */
-+ BP_NOT_DEFINED, /* usGpioLedUsb */
-+ BP_NOT_DEFINED, /* usGpioLedHpna */
-+ BP_GPIO_3_AL, /* usGpioLedWanData */
-+ BP_GPIO_3_AL, /* usGpioLedPpp */
-+ BP_GPIO_4_AL, /* usGpioLedPppFail */
-+ BP_GPIO_0_AL, /* usGpioLedBlPowerOn */
-+ BP_NOT_DEFINED, /* usGpioLedBlAlarm */
-+ BP_GPIO_3_AL, /* usGpioLedBlResetCfg */
-+ BP_GPIO_1_AL, /* usGpioLedBlStop */
-+ BP_NOT_DEFINED, /* usExtIntrWireless */
-+ BP_HW_DEFINED, /* usExtIntrAdslDyingGasp */
-+ BP_NOT_DEFINED, /* usExtIntrHpna */
-+ BP_NOT_DEFINED, /* usCsHpna */
-+ BP_WLAN_ANT_MAIN, /* usAntInUseWireless */
-+ BP_NOT_DEFINED, /* BP_GPIO_35_AH, */ /* usGpioSesBtnWireless */
-+ BP_NOT_DEFINED, /* BP_EXT_INTR_3, */ /* usExtIntrSesBtnWireless */
-+ BP_NOT_DEFINED /* BP_GPIO_0_AL */ /* usGpioLedSesWireless */
-+};
-+
-+
-+static BOARD_PARAMETERS g_bcm96348gw_10 =
-+{
-+ "96348GW-10", /* szBoardId */
-+ {{BP_ENET_INTERNAL_PHY, /* ucPhyType */
-+ 0x01, /* ucPhyAddress */
-+ BP_NOT_DEFINED, /* usGpioPhySpiSck */
-+ BP_NOT_DEFINED, /* usGpioPhySpiSs */
-+ BP_NOT_DEFINED, /* usGpioPhySpiMosi */
-+ BP_NOT_DEFINED, /* usGpioPhySpiMiso */
-+ BP_NOT_DEFINED, /* usGpioPhyReset */
-+ 0x01, /* numSwitchPorts */
-+ BP_ENET_CONFIG_MDIO, /* usConfigType */
-+ BP_NOT_DEFINED}, /* usReverseMii */
-+ {BP_ENET_EXTERNAL_SWITCH, /* ucPhyType */
-+ 0x00, /* ucPhyAddress */
-+ BP_NOT_DEFINED, /* usGpioPhySpiSck */
-+ BP_NOT_DEFINED, /* usGpioPhySpiSs */
-+ BP_NOT_DEFINED, /* usGpioPhySpiMosi */
-+ BP_NOT_DEFINED, /* usGpioPhySpiMiso */
-+ BP_NOT_DEFINED, /* usGpioPhyReset */
-+ 0x03, /* numSwitchPorts */
-+ BP_ENET_CONFIG_SPI_SSB_1, /* usConfigType */
-+ BP_ENET_REVERSE_MII}}, /* usReverseMii */
-+ {{BP_VOIP_DSP, /* ucDspType */
-+ 0x00, /* ucDspAddress */
-+ BP_EXT_INTR_2, /* usExtIntrVoip */
-+ BP_GPIO_6_AH, /* usGpioVoipReset */
-+ BP_GPIO_34_AH, /* usGpioVoipIntr */
-+ BP_NOT_DEFINED, /* usGpioLedVoip */
-+ BP_CS_2}, /* usCsVoip */
-+ {BP_VOIP_NO_DSP}}, /* ucDspType */
-+ BP_MEMORY_16MB_2_CHIP, /* usSdramSize */
-+ BP_PSI_DEFAULT_SIZE, /* usPsiSize */
-+ BP_NOT_DEFINED, /* usGpioRj11InnerPair */
-+ BP_NOT_DEFINED, /* usGpioRj11OuterPair */
-+ BP_GPIO_33_AL, /* usGpioPressAndHoldReset */
-+ BP_NOT_DEFINED, /* usGpioPcmciaReset */
-+ BP_NOT_DEFINED, /* usGpioUartRts */
-+ BP_NOT_DEFINED, /* usGpioUartCts */
-+ BP_NOT_DEFINED, /* usGpioLedAdsl */
-+ BP_GPIO_2_AL, /* usGpioLedAdslFail */
-+ BP_NOT_DEFINED, /* usGpioLedWireless */
-+ BP_NOT_DEFINED, /* usGpioLedUsb */
-+ BP_NOT_DEFINED, /* usGpioLedHpna */
-+ BP_GPIO_3_AL, /* usGpioLedWanData */
-+ BP_GPIO_3_AL, /* usGpioLedPpp */
-+ BP_GPIO_4_AL, /* usGpioLedPppFail */
-+ BP_GPIO_0_AL, /* usGpioLedBlPowerOn */
-+ BP_NOT_DEFINED, /* usGpioLedBlAlarm */
-+ BP_GPIO_3_AL, /* usGpioLedBlResetCfg */
-+ BP_GPIO_1_AL, /* usGpioLedBlStop */
-+ BP_NOT_DEFINED, /* usExtIntrWireless */
-+ BP_HW_DEFINED, /* usExtIntrAdslDyingGasp */
-+ BP_NOT_DEFINED, /* usExtIntrHpna */
-+ BP_NOT_DEFINED, /* usCsHpna */
-+ BP_WLAN_ANT_MAIN, /* usAntInUseWireless */
-+ BP_NOT_DEFINED, /* usGpioSesBtnWireless */
-+ BP_NOT_DEFINED, /* usExtIntrSesBtnWireless */
-+ BP_NOT_DEFINED /* usGpioLedSesWireless */
-+};
-+
-+static BOARD_PARAMETERS g_bcm96348gw_11 =
-+{
-+ "96348GW-11", /* szBoardId */
-+ {{BP_ENET_NO_PHY}, /* ucPhyType */
-+ {BP_ENET_EXTERNAL_SWITCH, /* ucPhyType */
-+ 0x00, /* ucPhyAddress */
-+ BP_NOT_DEFINED, /* usGpioPhySpiSck */
-+ BP_NOT_DEFINED, /* usGpioPhySpiSs */
-+ BP_NOT_DEFINED, /* usGpioPhySpiMosi */
-+ BP_NOT_DEFINED, /* usGpioPhySpiMiso */
-+ BP_NOT_DEFINED, /* usGpioPhyReset */
-+ 0x04, /* numSwitchPorts */
-+ BP_ENET_CONFIG_SPI_SSB_1, /* usConfigType */
-+ BP_ENET_REVERSE_MII}}, /* usReverseMii */
-+ {{BP_VOIP_NO_DSP}, /* ucDspType */
-+ {BP_VOIP_NO_DSP}}, /* ucDspType */
-+ BP_MEMORY_16MB_2_CHIP, /* usSdramSize */
-+ BP_PSI_DEFAULT_SIZE, /* usPsiSize */
-+ BP_NOT_DEFINED, /* usGpioRj11InnerPair */
-+ BP_NOT_DEFINED, /* usGpioRj11OuterPair */
-+ BP_GPIO_33_AL, /* usGpioPressAndHoldReset */
-+ BP_NOT_DEFINED, /* usGpioPcmciaReset */
-+ BP_NOT_DEFINED, /* usGpioUartRts */
-+ BP_NOT_DEFINED, /* usGpioUartCts */
-+ BP_NOT_DEFINED, /* usGpioLedAdsl */
-+ BP_GPIO_2_AL, /* usGpioLedAdslFail */
-+ BP_NOT_DEFINED, /* usGpioLedWireless */
-+ BP_NOT_DEFINED, /* usGpioLedUsb */
-+ BP_NOT_DEFINED, /* usGpioLedHpna */
-+ BP_GPIO_3_AL, /* usGpioLedWanData */
-+ BP_GPIO_3_AL, /* usGpioLedPpp */
-+ BP_GPIO_4_AL, /* usGpioLedPppFail */
-+ BP_GPIO_0_AL, /* usGpioLedBlPowerOn */
-+ BP_NOT_DEFINED, /* usGpioLedBlAlarm */
-+ BP_GPIO_3_AL, /* usGpioLedBlResetCfg */
-+ BP_GPIO_1_AL, /* usGpioLedBlStop */
-+ BP_NOT_DEFINED, /* usExtIntrWireless */
-+ BP_HW_DEFINED, /* usExtIntrAdslDyingGasp */
-+ BP_NOT_DEFINED, /* usExtIntrHpna */
-+ BP_NOT_DEFINED, /* usCsHpna */
-+ BP_NOT_DEFINED, /* usAntInUseWireless */
-+ BP_NOT_DEFINED, /* usGpioSesBtnWireless */
-+ BP_NOT_DEFINED, /* usExtIntrSesBtnWireless */
-+ BP_NOT_DEFINED /* usGpioLedSesWireless */
-+};
-+
-+static BOARD_PARAMETERS g_bcm96348sv =
-+{
-+ "96348SV", /* szBoardId */
-+ {{BP_ENET_INTERNAL_PHY, /* ucPhyType */
-+ 0x01, /* ucPhyAddress */
-+ BP_NOT_DEFINED, /* usGpioPhySpiSck */
-+ BP_NOT_DEFINED, /* usGpioPhySpiSs */
-+ BP_NOT_DEFINED, /* usGpioPhySpiMosi */
-+ BP_NOT_DEFINED, /* usGpioPhySpiMiso */
-+ BP_NOT_DEFINED, /* usGpioPhyReset */
-+ 0x01, /* numSwitchPorts */
-+ BP_ENET_CONFIG_MDIO, /* usConfigType */
-+ BP_NOT_DEFINED}, /* usReverseMii */
-+ {BP_ENET_EXTERNAL_PHY, /* ucPhyType */
-+ 0x1f, /* ucPhyAddress */
-+ BP_NOT_DEFINED, /* usGpioPhySpiSck */
-+ BP_NOT_DEFINED, /* usGpioPhySpiSs */
-+ BP_NOT_DEFINED, /* usGpioPhySpiMosi */
-+ BP_NOT_DEFINED, /* usGpioPhySpiMiso */
-+ BP_NOT_DEFINED, /* usGpioPhyReset */
-+ 0x01, /* numSwitchPorts */
-+ BP_ENET_CONFIG_MDIO, /* usConfigType */
-+ BP_NOT_DEFINED}}, /* usReverseMii */
-+ {{BP_VOIP_NO_DSP}, /* ucDspType */
-+ {BP_VOIP_NO_DSP}}, /* ucDspType */
-+ BP_MEMORY_32MB_2_CHIP, /* usSdramSize */
-+ BP_PSI_DEFAULT_SIZE, /* usPsiSize */
-+ BP_NOT_DEFINED, /* usGpioRj11InnerPair */
-+ BP_NOT_DEFINED, /* usGpioRj11OuterPair */
-+ BP_NOT_DEFINED, /* usGpioPressAndHoldReset */
-+ BP_NOT_DEFINED, /* usGpioPcmciaReset */
-+ BP_NOT_DEFINED, /* usGpioUartRts */
-+ BP_NOT_DEFINED, /* usGpioUartCts */
-+ BP_NOT_DEFINED, /* usGpioLedAdsl */
-+ BP_NOT_DEFINED, /* usGpioLedAdslFail */
-+ BP_NOT_DEFINED, /* usGpioLedWireless */
-+ BP_NOT_DEFINED, /* usGpioLedUsb */
-+ BP_NOT_DEFINED, /* usGpioLedHpna */
-+ BP_NOT_DEFINED, /* usGpioLedWanData */
-+ BP_NOT_DEFINED, /* usGpioLedPpp */
-+ BP_NOT_DEFINED, /* usGpioLedPppFail */
-+ BP_NOT_DEFINED, /* usGpioLedBlPowerOn */
-+ BP_NOT_DEFINED, /* usGpioLedBlAlarm */
-+ BP_NOT_DEFINED, /* usGpioLedBlResetCfg */
-+ BP_NOT_DEFINED, /* usGpioLedBlStop */
-+ BP_NOT_DEFINED, /* usExtIntrWireless */
-+ BP_HW_DEFINED, /* usExtIntrAdslDyingGasp */
-+ BP_NOT_DEFINED, /* usExtIntrHpna */
-+ BP_NOT_DEFINED, /* usCsHpna */
-+ BP_NOT_DEFINED, /* usAntInUseWireless */
-+ BP_NOT_DEFINED, /* usGpioSesBtnWireless */
-+ BP_NOT_DEFINED, /* usExtIntrSesBtnWireless */
-+ BP_NOT_DEFINED /* usGpioLedSesWireless */
-+};
-+
-+
-+static BOARD_PARAMETERS g_bcm96348gw_dualDsp =
-+{
-+ "96348GW-DualDSP", /* szBoardId */
-+ {{BP_ENET_INTERNAL_PHY, /* ucPhyType */
-+ 0x01, /* ucPhyAddress */
-+ BP_NOT_DEFINED, /* usGpioPhySpiSck */
-+ BP_NOT_DEFINED, /* usGpioPhySpiSs */
-+ BP_NOT_DEFINED, /* usGpioPhySpiMosi */
-+ BP_NOT_DEFINED, /* usGpioPhySpiMiso */
-+ BP_NOT_DEFINED, /* usGpioPhyReset */
-+ 0x01, /* numSwitchPorts */
-+ BP_ENET_CONFIG_MDIO, /* usConfigType */
-+ BP_NOT_DEFINED}, /* usReverseMii */
-+ {BP_ENET_EXTERNAL_SWITCH, /* ucPhyType */
-+ 0x00, /* ucPhyAddress */
-+ BP_NOT_DEFINED, /* usGpioPhySpiSck */
-+ BP_NOT_DEFINED, /* usGpioPhySpiSs */
-+ BP_NOT_DEFINED, /* usGpioPhySpiMosi */
-+ BP_NOT_DEFINED, /* usGpioPhySpiMiso */
-+ BP_NOT_DEFINED, /* usGpioPhyReset */
-+ 0x03, /* numSwitchPorts */
-+ BP_ENET_CONFIG_SPI_SSB_1, /* usConfigType */
-+ BP_ENET_REVERSE_MII}}, /* usReverseMii */
-+ {{BP_VOIP_DSP, /* ucDspType */
-+ 0x00, /* ucDspAddress */
-+ BP_EXT_INTR_2, /* usExtIntrVoip */
-+ BP_UNEQUIPPED, /* usGpioVoipReset */
-+ BP_GPIO_34_AH, /* usGpioVoipIntr */
-+ BP_NOT_DEFINED, /* usGpioLedVoip */
-+ BP_CS_2}, /* usCsVoip */
-+ {BP_VOIP_DSP, /* ucDspType */
-+ 0x01, /* ucDspAddress */
-+ BP_EXT_INTR_3, /* usExtIntrVoip */
-+ BP_UNEQUIPPED , /* usGpioVoipReset */
-+ BP_GPIO_35_AH, /* usGpioVoipIntr */
-+ BP_NOT_DEFINED, /* usGpioLedVoip */
-+ BP_CS_3}}, /* usCsVoip */
-+ BP_MEMORY_16MB_2_CHIP, /* usSdramSize */
-+ BP_PSI_DEFAULT_SIZE, /* usPsiSize */
-+ BP_NOT_DEFINED, /* usGpioRj11InnerPair */
-+ BP_NOT_DEFINED, /* usGpioRj11OuterPair */
-+ BP_GPIO_33_AL, /* usGpioPressAndHoldReset */
-+ BP_NOT_DEFINED, /* usGpioPcmciaReset */
-+ BP_NOT_DEFINED, /* usGpioUartRts */
-+ BP_NOT_DEFINED, /* usGpioUartCts */
-+ BP_NOT_DEFINED, /* usGpioLedAdsl */
-+ BP_GPIO_2_AL, /* usGpioLedAdslFail */
-+ BP_NOT_DEFINED, /* usGpioLedWireless */
-+ BP_NOT_DEFINED, /* usGpioLedUsb */
-+ BP_NOT_DEFINED, /* usGpioLedHpna */
-+ BP_GPIO_3_AL, /* usGpioLedWanData */
-+ BP_GPIO_3_AL, /* usGpioLedPpp */
-+ BP_GPIO_4_AL, /* usGpioLedPppFail */
-+ BP_GPIO_0_AL, /* usGpioLedBlPowerOn */
-+ BP_NOT_DEFINED, /* usGpioLedBlAlarm */
-+ BP_GPIO_3_AL, /* usGpioLedBlResetCfg */
-+ BP_GPIO_1_AL, /* usGpioLedBlStop */
-+ BP_NOT_DEFINED, /* usExtIntrWireless */
-+ BP_HW_DEFINED, /* usExtIntrAdslDyingGasp */
-+ BP_NOT_DEFINED, /* usExtIntrHpna */
-+ BP_NOT_DEFINED, /* usCsHpna */
-+ BP_WLAN_ANT_MAIN, /* usAntInUseWireless */
-+ BP_NOT_DEFINED, /* usGpioSesBtnWireless */
-+ BP_NOT_DEFINED, /* usExtIntrSesBtnWireless */
-+ BP_NOT_DEFINED /* usGpioLedSesWireless */
-+};
-+
-+
-+static BOARD_PARAMETERS g_bcmCustom_01 =
-+{
-+ "BCMCUST_01", /* szBoardId */
-+ {{BP_ENET_INTERNAL_PHY, /* ucPhyType */
-+ 0x01, /* ucPhyAddress */
-+ BP_NOT_DEFINED, /* usGpioPhySpiSck */
-+ BP_NOT_DEFINED, /* usGpioPhySpiSs */
-+ BP_NOT_DEFINED, /* usGpioPhySpiMosi */
-+ BP_NOT_DEFINED, /* usGpioPhySpiMiso */
-+ BP_NOT_DEFINED, /* usGpioPhyReset */
-+ 0x01, /* numSwitchPorts */
-+ BP_ENET_CONFIG_MDIO, /* usConfigType */
-+ BP_NOT_DEFINED}, /* usReverseMii */
-+ {BP_ENET_NO_PHY, /* ucPhyType */
-+ 0x00, /* ucPhyAddress */
-+ BP_NOT_DEFINED, /* usGpioPhySpiSck */
-+ BP_NOT_DEFINED, /* usGpioPhySpiSs */
-+ BP_NOT_DEFINED, /* usGpioPhySpiMosi */
-+ BP_NOT_DEFINED, /* usGpioPhySpiMiso */
-+ BP_NOT_DEFINED, /* usGpioPhyReset */
-+ 0x01, /* numSwitchPorts */
-+ BP_ENET_CONFIG_SPI_SSB_1, /* usConfigType */
-+ BP_ENET_REVERSE_MII}}, /* usReverseMii */
-+ {{BP_VOIP_DSP, /* ucDspType */
-+ 0x00, /* ucDspAddress */
-+ BP_EXT_INTR_2, /* usExtIntrVoip */
-+ BP_GPIO_36_AH, /* usGpioVoipReset */
-+ BP_GPIO_34_AL, /* usGpioVoipIntr */
-+ BP_NOT_DEFINED, /* usGpioLedVoip */
-+ BP_CS_2}, /* usCsVoip */
-+ {BP_VOIP_NO_DSP}}, /* ucDspType */
-+ BP_MEMORY_16MB_2_CHIP, /* usSdramSize */
-+ BP_PSI_DEFAULT_SIZE, /* usPsiSize */
-+ BP_NOT_DEFINED, /* usGpioRj11InnerPair */
-+ BP_NOT_DEFINED, /* usGpioRj11OuterPair */
-+ BP_GPIO_33_AL, /* usGpioPressAndHoldReset */
-+ BP_NOT_DEFINED, /* usGpioPcmciaReset */
-+ BP_NOT_DEFINED, /* usGpioUartRts */
-+ BP_NOT_DEFINED, /* usGpioUartCts */
-+ BP_NOT_DEFINED, /* usGpioLedAdsl */
-+ BP_GPIO_2_AL, /* usGpioLedAdslFail */
-+ BP_NOT_DEFINED, /* usGpioLedWireless */
-+ BP_NOT_DEFINED, /* usGpioLedUsb */
-+ BP_NOT_DEFINED, /* usGpioLedHpna */
-+ BP_GPIO_3_AL, /* usGpioLedWanData */
-+ BP_GPIO_3_AL, /* usGpioLedPpp */
-+ BP_GPIO_4_AL, /* usGpioLedPppFail */
-+ BP_GPIO_0_AL, /* usGpioLedBlPowerOn */
-+ BP_NOT_DEFINED, /* usGpioLedBlAlarm */
-+ BP_GPIO_3_AL, /* usGpioLedBlResetCfg */
-+ BP_GPIO_1_AL, /* usGpioLedBlStop */
-+ BP_NOT_DEFINED, /* usExtIntrWireless */
-+ BP_NOT_DEFINED, /* usExtIntrAdslDyingGasp */
-+ BP_NOT_DEFINED, /* usExtIntrHpna */
-+ BP_NOT_DEFINED, /* usCsHpna */
-+ BP_NOT_DEFINED, /* usAntInUseWireless */
-+ BP_NOT_DEFINED, /* usGpioSesBtnWireless */
-+ BP_NOT_DEFINED, /* usExtIntrSesBtnWireless */
-+ BP_NOT_DEFINED /* usGpioLedSesWireless */
-+};
-+
-+static PBOARD_PARAMETERS g_BoardParms[] =
-+ {&g_bcm96348r, &g_bcm96348lv, &g_bcm96348gw, &g_bcm96348gw_10,
-+ &g_bcm96348gw_11, &g_bcm96348sv, &g_bcm96348gw_dualDsp,
-+ &g_bcmCustom_01, 0};
-+#endif
-+
-+static PBOARD_PARAMETERS g_pCurrentBp = 0;
-+
-+/**************************************************************************
-+ * Name : bpstrcmp
-+ *
-+ * Description: String compare for this file so it does not depend on an OS.
-+ * (Linux kernel and CFE share this source file.)
-+ *
-+ * Parameters : [IN] dest - destination string
-+ * [IN] src - source string
-+ *
-+ * Returns : -1 - dest < src, 1 - dest > src, 0 dest == src
-+ ***************************************************************************/
-+static int bpstrcmp(const char *dest,const char *src);
-+static int bpstrcmp(const char *dest,const char *src)
-+{
-+ while (*src && *dest)
-+ {
-+ if (*dest < *src) return -1;
-+ if (*dest > *src) return 1;
-+ dest++;
-+ src++;
-+ }
-+
-+ if (*dest && !*src) return 1;
-+ if (!*dest && *src) return -1;
-+ return 0;
-+} /* bpstrcmp */
-+
-+/**************************************************************************
-+ * Name : BpGetVoipDspConfig
-+ *
-+ * Description: Gets the DSP configuration from the board parameter
-+ * structure for a given DSP index.
-+ *
-+ * Parameters : [IN] dspNum - DSP index (number)
-+ *
-+ * Returns : Pointer to DSP configuration block if found/valid, NULL
-+ * otherwise.
-+ ***************************************************************************/
-+VOIP_DSP_INFO *BpGetVoipDspConfig( unsigned char dspNum );
-+VOIP_DSP_INFO *BpGetVoipDspConfig( unsigned char dspNum )
-+{
-+ VOIP_DSP_INFO *pDspConfig = 0;
-+ int i;
-+
-+ if( g_pCurrentBp )
-+ {
-+ for( i = 0 ; i < BP_MAX_VOIP_DSP ; i++ )
-+ {
-+ if( g_pCurrentBp->VoIPDspInfo[i].ucDspType != BP_VOIP_NO_DSP &&
-+ g_pCurrentBp->VoIPDspInfo[i].ucDspAddress == dspNum )
-+ {
-+ pDspConfig = &g_pCurrentBp->VoIPDspInfo[i];
-+ break;
-+ }
-+ }
-+ }
-+
-+ return pDspConfig;
-+}
-+
-+
-+/**************************************************************************
-+ * Name : BpSetBoardId
-+ *
-+ * Description: This function find the BOARD_PARAMETERS structure for the
-+ * specified board id string and assigns it to a global, static
-+ * variable.
-+ *
-+ * Parameters : [IN] pszBoardId - Board id string that is saved into NVRAM.
-+ *
-+ * Returns : BP_SUCCESS - Success, value is returned.
-+ * BP_BOARD_ID_NOT_FOUND - Error, board id input string does not
-+ * have a board parameters configuration record.
-+ ***************************************************************************/
-+int BpSetBoardId( char *pszBoardId )
-+{
-+ int nRet = BP_BOARD_ID_NOT_FOUND;
-+ PBOARD_PARAMETERS *ppBp;
-+
-+ for( ppBp = g_BoardParms; *ppBp; ppBp++ )
-+ {
-+ if( !bpstrcmp((*ppBp)->szBoardId, pszBoardId) )
-+ {
-+ g_pCurrentBp = *ppBp;
-+ nRet = BP_SUCCESS;
-+ break;
-+ }
-+ }
-+
-+ return( nRet );
-+} /* BpSetBoardId */
-+
-+/**************************************************************************
-+ * Name : BpGetBoardIds
-+ *
-+ * Description: This function returns all of the supported board id strings.
-+ *
-+ * Parameters : [OUT] pszBoardIds - Address of a buffer that the board id
-+ * strings are returned in. Each id starts at BP_BOARD_ID_LEN
-+ * boundary.
-+ * [IN] nBoardIdsSize - Number of BP_BOARD_ID_LEN elements that
-+ * were allocated in pszBoardIds.
-+ *
-+ * Returns : Number of board id strings returned.
-+ ***************************************************************************/
-+int BpGetBoardIds( char *pszBoardIds, int nBoardIdsSize )
-+{
-+ PBOARD_PARAMETERS *ppBp;
-+ int i;
-+ char *src;
-+ char *dest;
-+
-+ for( i = 0, ppBp = g_BoardParms; *ppBp && nBoardIdsSize;
-+ i++, ppBp++, nBoardIdsSize--, pszBoardIds += BP_BOARD_ID_LEN )
-+ {
-+ dest = pszBoardIds;
-+ src = (*ppBp)->szBoardId;
-+ while( *src )
-+ *dest++ = *src++;
-+ *dest = '\0';
-+ }
-+
-+ return( i );
-+} /* BpGetBoardIds */
-+
-+/**************************************************************************
-+ * Name : BpGetEthernetMacInfo
-+ *
-+ * Description: This function returns all of the supported board id strings.
-+ *
-+ * Parameters : [OUT] pEnetInfos - Address of an array of ETHERNET_MAC_INFO
-+ * buffers.
-+ * [IN] nNumEnetInfos - Number of ETHERNET_MAC_INFO elements that
-+ * are pointed to by pEnetInfos.
-+ *
-+ * Returns : BP_SUCCESS - Success, value is returned.
-+ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
-+ ***************************************************************************/
-+int BpGetEthernetMacInfo( PETHERNET_MAC_INFO pEnetInfos, int nNumEnetInfos )
-+{
-+ int i, nRet;
-+
-+ if( g_pCurrentBp )
-+ {
-+ for( i = 0; i < nNumEnetInfos; i++, pEnetInfos++ )
-+ {
-+ if( i < BP_MAX_ENET_MACS )
-+ {
-+ unsigned char *src = (unsigned char *)
-+ &g_pCurrentBp->EnetMacInfos[i];
-+ unsigned char *dest = (unsigned char *) pEnetInfos;
-+ int len = sizeof(ETHERNET_MAC_INFO);
-+ while( len-- )
-+ *dest++ = *src++;
-+ }
-+ else
-+ pEnetInfos->ucPhyType = BP_ENET_NO_PHY;
-+ }
-+
-+ nRet = BP_SUCCESS;
-+ }
-+ else
-+ {
-+ for( i = 0; i < nNumEnetInfos; i++, pEnetInfos++ )
-+ pEnetInfos->ucPhyType = BP_ENET_NO_PHY;
-+
-+ nRet = BP_BOARD_ID_NOT_SET;
-+ }
-+
-+ return( nRet );
-+} /* BpGetEthernetMacInfo */
-+
-+/**************************************************************************
-+ * Name : BpGetSdramSize
-+ *
-+ * Description: This function returns a constant that describees the board's
-+ * SDRAM type and size.
-+ *
-+ * Parameters : [OUT] pulSdramSize - Address of short word that the SDRAM size
-+ * is returned in.
-+ *
-+ * Returns : BP_SUCCESS - Success, value is returned.
-+ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
-+ ***************************************************************************/
-+int BpGetSdramSize( unsigned long *pulSdramSize )
-+{
-+ int nRet;
-+
-+ if( g_pCurrentBp )
-+ {
-+ *pulSdramSize = g_pCurrentBp->usSdramSize;
-+ nRet = BP_SUCCESS;
-+ }
-+ else
-+ {
-+ *pulSdramSize = BP_NOT_DEFINED;
-+ nRet = BP_BOARD_ID_NOT_SET;
-+ }
-+
-+ return( nRet );
-+} /* BpGetSdramSize */
-+
-+/**************************************************************************
-+ * Name : BpGetPsiSize
-+ *
-+ * Description: This function returns the persistent storage size in K bytes.
-+ *
-+ * Parameters : [OUT] pulPsiSize - Address of short word that the persistent
-+ * storage size is returned in.
-+ *
-+ * Returns : BP_SUCCESS - Success, value is returned.
-+ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
-+ ***************************************************************************/
-+int BpGetPsiSize( unsigned long *pulPsiSize )
-+{
-+ int nRet;
-+
-+ if( g_pCurrentBp )
-+ {
-+ *pulPsiSize = g_pCurrentBp->usPsiSize;
-+ nRet = BP_SUCCESS;
-+ }
-+ else
-+ {
-+ *pulPsiSize = BP_NOT_DEFINED;
-+ nRet = BP_BOARD_ID_NOT_SET;
-+ }
-+
-+ return( nRet );
-+} /* BpGetPsiSize */
-+
-+/**************************************************************************
-+ * Name : BpGetRj11InnerOuterPairGpios
-+ *
-+ * Description: This function returns the GPIO pin assignments for changing
-+ * between the RJ11 inner pair and RJ11 outer pair.
-+ *
-+ * Parameters : [OUT] pusInner - Address of short word that the RJ11 inner pair
-+ * GPIO pin is returned in.
-+ * [OUT] pusOuter - Address of short word that the RJ11 outer pair
-+ * GPIO pin is returned in.
-+ *
-+ * Returns : BP_SUCCESS - Success, values are returned.
-+ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
-+ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
-+ * for the board.
-+ ***************************************************************************/
-+int BpGetRj11InnerOuterPairGpios( unsigned short *pusInner,
-+ unsigned short *pusOuter )
-+{
-+ int nRet;
-+
-+ if( g_pCurrentBp )
-+ {
-+ *pusInner = g_pCurrentBp->usGpioRj11InnerPair;
-+ *pusOuter = g_pCurrentBp->usGpioRj11OuterPair;
-+
-+ if( g_pCurrentBp->usGpioRj11InnerPair != BP_NOT_DEFINED &&
-+ g_pCurrentBp->usGpioRj11OuterPair != BP_NOT_DEFINED )
-+ {
-+ nRet = BP_SUCCESS;
-+ }
-+ else
-+ {
-+ nRet = BP_VALUE_NOT_DEFINED;
-+ }
-+ }
-+ else
-+ {
-+ *pusInner = *pusOuter = BP_NOT_DEFINED;
-+ nRet = BP_BOARD_ID_NOT_SET;
-+ }
-+
-+ return( nRet );
-+} /* BpGetRj11InnerOuterPairGpios */
-+
-+/**************************************************************************
-+ * Name : BpGetPressAndHoldResetGpio
-+ *
-+ * Description: This function returns the GPIO pin assignment for the press
-+ * and hold reset button.
-+ *
-+ * Parameters : [OUT] pusValue - Address of short word that the press and hold
-+ * reset button GPIO pin is returned in.
-+ *
-+ * Returns : BP_SUCCESS - Success, value is returned.
-+ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
-+ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
-+ * for the board.
-+ ***************************************************************************/
-+int BpGetPressAndHoldResetGpio( unsigned short *pusValue )
-+{
-+ int nRet;
-+
-+ if( g_pCurrentBp )
-+ {
-+ *pusValue = g_pCurrentBp->usGpioPressAndHoldReset;
-+
-+ if( g_pCurrentBp->usGpioPressAndHoldReset != BP_NOT_DEFINED )
-+ {
-+ nRet = BP_SUCCESS;
-+ }
-+ else
-+ {
-+ nRet = BP_VALUE_NOT_DEFINED;
-+ }
-+ }
-+ else
-+ {
-+ *pusValue = BP_NOT_DEFINED;
-+ nRet = BP_BOARD_ID_NOT_SET;
-+ }
-+
-+ return( nRet );
-+} /* BpGetPressAndHoldResetGpio */
-+
-+/**************************************************************************
-+ * Name : BpGetVoipResetGpio
-+ *
-+ * Description: This function returns the GPIO pin assignment for the VOIP
-+ * Reset operation.
-+ *
-+ * Parameters : [OUT] pusValue - Address of short word that the VOIP reset
-+ * GPIO pin is returned in.
-+ * [IN] dspNum - Address of the DSP to query.
-+ *
-+ * Returns : BP_SUCCESS - Success, value is returned.
-+ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
-+ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
-+ * for the board.
-+ ***************************************************************************/
-+int BpGetVoipResetGpio( unsigned char dspNum, unsigned short *pusValue )
-+{
-+ int nRet;
-+
-+ if( g_pCurrentBp )
-+ {
-+ VOIP_DSP_INFO *pDspInfo = BpGetVoipDspConfig( dspNum );
-+
-+ if( pDspInfo )
-+ {
-+ *pusValue = pDspInfo->usGpioVoipReset;
-+
-+ if( *pusValue != BP_NOT_DEFINED ||
-+ *pusValue == BP_UNEQUIPPED )
-+ {
-+ nRet = BP_SUCCESS;
-+ }
-+ else
-+ {
-+ nRet = BP_VALUE_NOT_DEFINED;
-+ }
-+ }
-+ else
-+ {
-+ *pusValue = BP_NOT_DEFINED;
-+ nRet = BP_BOARD_ID_NOT_FOUND;
-+ }
-+ }
-+ else
-+ {
-+ *pusValue = BP_NOT_DEFINED;
-+ nRet = BP_BOARD_ID_NOT_SET;
-+ }
-+
-+ return( nRet );
-+} /* BpGetVoipResetGpio */
-+
-+/**************************************************************************
-+ * Name : BpGetVoipIntrGpio
-+ *
-+ * Description: This function returns the GPIO pin assignment for VoIP interrupt.
-+ *
-+ * Parameters : [OUT] pusValue - Address of short word that the VOIP interrupt
-+ * GPIO pin is returned in.
-+ * [IN] dspNum - Address of the DSP to query.
-+ *
-+ * Returns : BP_SUCCESS - Success, value is returned.
-+ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
-+ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
-+ * for the board.
-+ ***************************************************************************/
-+int BpGetVoipIntrGpio( unsigned char dspNum, unsigned short *pusValue )
-+{
-+ int nRet;
-+
-+ if( g_pCurrentBp )
-+ {
-+ VOIP_DSP_INFO *pDspInfo = BpGetVoipDspConfig( dspNum );
-+
-+ if( pDspInfo )
-+ {
-+ *pusValue = pDspInfo->usGpioVoipIntr;
-+
-+ if( *pusValue != BP_NOT_DEFINED )
-+ {
-+ nRet = BP_SUCCESS;
-+ }
-+ else
-+ {
-+ nRet = BP_VALUE_NOT_DEFINED;
-+ }
-+ }
-+ else
-+ {
-+ *pusValue = BP_NOT_DEFINED;
-+ nRet = BP_BOARD_ID_NOT_FOUND;
-+ }
-+ }
-+ else
-+ {
-+ *pusValue = BP_NOT_DEFINED;
-+ nRet = BP_BOARD_ID_NOT_SET;
-+ }
-+
-+ return( nRet );
-+} /* BpGetVoipIntrGpio */
-+
-+/**************************************************************************
-+ * Name : BpGetPcmciaResetGpio
-+ *
-+ * Description: This function returns the GPIO pin assignment for the PCMCIA
-+ * Reset operation.
-+ *
-+ * Parameters : [OUT] pusValue - Address of short word that the PCMCIA reset
-+ * GPIO pin is returned in.
-+ *
-+ * Returns : BP_SUCCESS - Success, value is returned.
-+ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
-+ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
-+ * for the board.
-+ ***************************************************************************/
-+int BpGetPcmciaResetGpio( unsigned short *pusValue )
-+{
-+ int nRet;
-+
-+ if( g_pCurrentBp )
-+ {
-+ *pusValue = g_pCurrentBp->usGpioPcmciaReset;
-+
-+ if( g_pCurrentBp->usGpioPcmciaReset != BP_NOT_DEFINED )
-+ {
-+ nRet = BP_SUCCESS;
-+ }
-+ else
-+ {
-+ nRet = BP_VALUE_NOT_DEFINED;
-+ }
-+ }
-+ else
-+ {
-+ *pusValue = BP_NOT_DEFINED;
-+ nRet = BP_BOARD_ID_NOT_SET;
-+ }
-+
-+ return( nRet );
-+} /* BpGetPcmciaResetGpio */
-+
-+/**************************************************************************
-+ * Name : BpGetUartRtsCtsGpios
-+ *
-+ * Description: This function returns the GPIO pin assignments for RTS and CTS
-+ * UART signals.
-+ *
-+ * Parameters : [OUT] pusRts - Address of short word that the UART RTS GPIO
-+ * pin is returned in.
-+ * [OUT] pusCts - Address of short word that the UART CTS GPIO
-+ * pin is returned in.
-+ *
-+ * Returns : BP_SUCCESS - Success, values are returned.
-+ * BP_BOARD_ID_NOT_SET - Error, board id input string does not
-+ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
-+ * for the board.
-+ ***************************************************************************/
-+int BpGetRtsCtsUartGpios( unsigned short *pusRts, unsigned short *pusCts )
-+{
-+ int nRet;
-+
-+ if( g_pCurrentBp )
-+ {
-+ *pusRts = g_pCurrentBp->usGpioUartRts;
-+ *pusCts = g_pCurrentBp->usGpioUartCts;
-+
-+ if( g_pCurrentBp->usGpioUartRts != BP_NOT_DEFINED &&
-+ g_pCurrentBp->usGpioUartCts != BP_NOT_DEFINED )
-+ {
-+ nRet = BP_SUCCESS;
-+ }
-+ else
-+ {
-+ nRet = BP_VALUE_NOT_DEFINED;
-+ }
-+ }
-+ else
-+ {
-+ *pusRts = *pusCts = BP_NOT_DEFINED;
-+ nRet = BP_BOARD_ID_NOT_SET;
-+ }
-+
-+ return( nRet );
-+} /* BpGetUartRtsCtsGpios */
-+
-+/**************************************************************************
-+ * Name : BpGetAdslLedGpio
-+ *
-+ * Description: This function returns the GPIO pin assignment for the ADSL
-+ * LED.
-+ *
-+ * Parameters : [OUT] pusValue - Address of short word that the ADSL LED
-+ * GPIO pin is returned in.
-+ *
-+ * Returns : BP_SUCCESS - Success, value is returned.
-+ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
-+ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
-+ * for the board.
-+ ***************************************************************************/
-+int BpGetAdslLedGpio( unsigned short *pusValue )
-+{
-+ int nRet;
-+
-+ if( g_pCurrentBp )
-+ {
-+ *pusValue = g_pCurrentBp->usGpioLedAdsl;
-+
-+ if( g_pCurrentBp->usGpioLedAdsl != BP_NOT_DEFINED )
-+ {
-+ nRet = BP_SUCCESS;
-+ }
-+ else
-+ {
-+ nRet = BP_VALUE_NOT_DEFINED;
-+ }
-+ }
-+ else
-+ {
-+ *pusValue = BP_NOT_DEFINED;
-+ nRet = BP_BOARD_ID_NOT_SET;
-+ }
-+
-+ return( nRet );
-+} /* BpGetAdslLedGpio */
-+
-+/**************************************************************************
-+ * Name : BpGetAdslFailLedGpio
-+ *
-+ * Description: This function returns the GPIO pin assignment for the ADSL
-+ * LED that is used when there is a DSL connection failure.
-+ *
-+ * Parameters : [OUT] pusValue - Address of short word that the ADSL LED
-+ * GPIO pin is returned in.
-+ *
-+ * Returns : BP_SUCCESS - Success, value is returned.
-+ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
-+ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
-+ * for the board.
-+ ***************************************************************************/
-+int BpGetAdslFailLedGpio( unsigned short *pusValue )
-+{
-+ int nRet;
-+
-+ if( g_pCurrentBp )
-+ {
-+ *pusValue = g_pCurrentBp->usGpioLedAdslFail;
-+
-+ if( g_pCurrentBp->usGpioLedAdslFail != BP_NOT_DEFINED )
-+ {
-+ nRet = BP_SUCCESS;
-+ }
-+ else
-+ {
-+ nRet = BP_VALUE_NOT_DEFINED;
-+ }
-+ }
-+ else
-+ {
-+ *pusValue = BP_NOT_DEFINED;
-+ nRet = BP_BOARD_ID_NOT_SET;
-+ }
-+
-+ return( nRet );
-+} /* BpGetAdslFailLedGpio */
-+
-+/**************************************************************************
-+ * Name : BpGetWirelessLedGpio
-+ *
-+ * Description: This function returns the GPIO pin assignment for the Wireless
-+ * LED.
-+ *
-+ * Parameters : [OUT] pusValue - Address of short word that the Wireless LED
-+ * GPIO pin is returned in.
-+ *
-+ * Returns : BP_SUCCESS - Success, value is returned.
-+ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
-+ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
-+ * for the board.
-+ ***************************************************************************/
-+int BpGetWirelessLedGpio( unsigned short *pusValue )
-+{
-+ int nRet;
-+
-+ if( g_pCurrentBp )
-+ {
-+ *pusValue = g_pCurrentBp->usGpioLedWireless;
-+
-+ if( g_pCurrentBp->usGpioLedWireless != BP_NOT_DEFINED )
-+ {
-+ nRet = BP_SUCCESS;
-+ }
-+ else
-+ {
-+ nRet = BP_VALUE_NOT_DEFINED;
-+ }
-+ }
-+ else
-+ {
-+ *pusValue = BP_NOT_DEFINED;
-+ nRet = BP_BOARD_ID_NOT_SET;
-+ }
-+
-+ return( nRet );
-+} /* BpGetWirelessLedGpio */
-+
-+/**************************************************************************
-+ * Name : BpGetWirelessAntInUse
-+ *
-+ * Description: This function returns the antennas in use for wireless
-+ *
-+ * Parameters : [OUT] pusValue - Address of short word that the Wireless Antenna
-+ * is in use.
-+ *
-+ * Returns : BP_SUCCESS - Success, value is returned.
-+ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
-+ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
-+ * for the board.
-+ ***************************************************************************/
-+int BpGetWirelessAntInUse( unsigned short *pusValue )
-+{
-+ int nRet;
-+
-+ if( g_pCurrentBp )
-+ {
-+ *pusValue = g_pCurrentBp->usAntInUseWireless;
-+
-+ if( g_pCurrentBp->usAntInUseWireless != BP_NOT_DEFINED )
-+ {
-+ nRet = BP_SUCCESS;
-+ }
-+ else
-+ {
-+ nRet = BP_VALUE_NOT_DEFINED;
-+ }
-+ }
-+ else
-+ {
-+ *pusValue = BP_NOT_DEFINED;
-+ nRet = BP_BOARD_ID_NOT_SET;
-+ }
-+
-+ return( nRet );
-+} /* BpGetWirelessAntInUse */
-+
-+/**************************************************************************
-+ * Name : BpGetWirelessSesBtnGpio
-+ *
-+ * Description: This function returns the GPIO pin assignment for the Wireless
-+ * Ses Button.
-+ *
-+ * Parameters : [OUT] pusValue - Address of short word that the Wireless LED
-+ * GPIO pin is returned in.
-+ *
-+ * Returns : BP_SUCCESS - Success, value is returned.
-+ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
-+ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
-+ * for the board.
-+ ***************************************************************************/
-+int BpGetWirelessSesBtnGpio( unsigned short *pusValue )
-+{
-+ int nRet;
-+
-+ if( g_pCurrentBp )
-+ {
-+ *pusValue = g_pCurrentBp->usGpioSesBtnWireless;
-+
-+ if( g_pCurrentBp->usGpioSesBtnWireless != BP_NOT_DEFINED )
-+ {
-+ nRet = BP_SUCCESS;
-+ }
-+ else
-+ {
-+ nRet = BP_VALUE_NOT_DEFINED;
-+ }
-+ }
-+ else
-+ {
-+ *pusValue = BP_NOT_DEFINED;
-+ nRet = BP_BOARD_ID_NOT_SET;
-+ }
-+
-+ return( nRet );
-+} /* BpGetWirelessSesBtnGpio */
-+
-+/**************************************************************************
-+ * Name : BpGetWirelessSesExtIntr
-+ *
-+ * Description: This function returns the external interrupt number for the
-+ * Wireless Ses Button.
-+ *
-+ * Parameters : [OUT] pusValue - Address of short word that the Wireless Ses
-+ * external interrup is returned in.
-+ *
-+ * Returns : BP_SUCCESS - Success, value is returned.
-+ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
-+ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
-+ * for the board.
-+ ***************************************************************************/
-+int BpGetWirelessSesExtIntr( unsigned short *pusValue )
-+{
-+ int nRet;
-+
-+ if( g_pCurrentBp )
-+ {
-+ *pusValue = g_pCurrentBp->usExtIntrSesBtnWireless;
-+
-+ if( g_pCurrentBp->usExtIntrSesBtnWireless != BP_NOT_DEFINED )
-+ {
-+ nRet = BP_SUCCESS;
-+ }
-+ else
-+ {
-+ nRet = BP_VALUE_NOT_DEFINED;
-+ }
-+ }
-+ else
-+ {
-+ *pusValue = BP_NOT_DEFINED;
-+ nRet = BP_BOARD_ID_NOT_SET;
-+ }
-+
-+ return( nRet );
-+
-+} /* BpGetWirelessSesExtIntr */
-+
-+/**************************************************************************
-+ * Name : BpGetWirelessSesLedGpio
-+ *
-+ * Description: This function returns the GPIO pin assignment for the Wireless
-+ * Ses Led.
-+ *
-+ * Parameters : [OUT] pusValue - Address of short word that the Wireless Ses
-+ * Led GPIO pin is returned in.
-+ *
-+ * Returns : BP_SUCCESS - Success, value is returned.
-+ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
-+ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
-+ * for the board.
-+ ***************************************************************************/
-+int BpGetWirelessSesLedGpio( unsigned short *pusValue )
-+{
-+ int nRet;
-+
-+ if( g_pCurrentBp )
-+ {
-+ *pusValue = g_pCurrentBp->usGpioLedSesWireless;
-+
-+ if( g_pCurrentBp->usGpioLedSesWireless != BP_NOT_DEFINED )
-+ {
-+ nRet = BP_SUCCESS;
-+ }
-+ else
-+ {
-+ nRet = BP_VALUE_NOT_DEFINED;
-+ }
-+ }
-+ else
-+ {
-+ *pusValue = BP_NOT_DEFINED;
-+ nRet = BP_BOARD_ID_NOT_SET;
-+ }
-+
-+ return( nRet );
-+
-+} /* BpGetWirelessSesLedGpio */
-+
-+/**************************************************************************
-+ * Name : BpGetUsbLedGpio
-+ *
-+ * Description: This function returns the GPIO pin assignment for the USB
-+ * LED.
-+ *
-+ * Parameters : [OUT] pusValue - Address of short word that the USB LED
-+ * GPIO pin is returned in.
-+ *
-+ * Returns : BP_SUCCESS - Success, value is returned.
-+ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
-+ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
-+ * for the board.
-+ ***************************************************************************/
-+int BpGetUsbLedGpio( unsigned short *pusValue )
-+{
-+ int nRet;
-+
-+ if( g_pCurrentBp )
-+ {
-+ *pusValue = g_pCurrentBp->usGpioLedUsb;
-+
-+ if( g_pCurrentBp->usGpioLedUsb != BP_NOT_DEFINED )
-+ {
-+ nRet = BP_SUCCESS;
-+ }
-+ else
-+ {
-+ nRet = BP_VALUE_NOT_DEFINED;
-+ }
-+ }
-+ else
-+ {
-+ *pusValue = BP_NOT_DEFINED;
-+ nRet = BP_BOARD_ID_NOT_SET;
-+ }
-+
-+ return( nRet );
-+} /* BpGetUsbLedGpio */
-+
-+/**************************************************************************
-+ * Name : BpGetHpnaLedGpio
-+ *
-+ * Description: This function returns the GPIO pin assignment for the HPNA
-+ * LED.
-+ *
-+ * Parameters : [OUT] pusValue - Address of short word that the HPNA LED
-+ * GPIO pin is returned in.
-+ *
-+ * Returns : BP_SUCCESS - Success, value is returned.
-+ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
-+ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
-+ * for the board.
-+ ***************************************************************************/
-+int BpGetHpnaLedGpio( unsigned short *pusValue )
-+{
-+ int nRet;
-+
-+ if( g_pCurrentBp )
-+ {
-+ *pusValue = g_pCurrentBp->usGpioLedHpna;
-+
-+ if( g_pCurrentBp->usGpioLedHpna != BP_NOT_DEFINED )
-+ {
-+ nRet = BP_SUCCESS;
-+ }
-+ else
-+ {
-+ nRet = BP_VALUE_NOT_DEFINED;
-+ }
-+ }
-+ else
-+ {
-+ *pusValue = BP_NOT_DEFINED;
-+ nRet = BP_BOARD_ID_NOT_SET;
-+ }
-+
-+ return( nRet );
-+} /* BpGetHpnaLedGpio */
-+
-+/**************************************************************************
-+ * Name : BpGetWanDataLedGpio
-+ *
-+ * Description: This function returns the GPIO pin assignment for the WAN Data
-+ * LED.
-+ *
-+ * Parameters : [OUT] pusValue - Address of short word that the WAN Data LED
-+ * GPIO pin is returned in.
-+ *
-+ * Returns : BP_SUCCESS - Success, value is returned.
-+ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
-+ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
-+ * for the board.
-+ ***************************************************************************/
-+int BpGetWanDataLedGpio( unsigned short *pusValue )
-+{
-+ int nRet;
-+
-+ if( g_pCurrentBp )
-+ {
-+ *pusValue = g_pCurrentBp->usGpioLedWanData;
-+
-+ if( g_pCurrentBp->usGpioLedWanData != BP_NOT_DEFINED )
-+ {
-+ nRet = BP_SUCCESS;
-+ }
-+ else
-+ {
-+ nRet = BP_VALUE_NOT_DEFINED;
-+ }
-+ }
-+ else
-+ {
-+ *pusValue = BP_NOT_DEFINED;
-+ nRet = BP_BOARD_ID_NOT_SET;
-+ }
-+
-+ return( nRet );
-+} /* BpGetWanDataLedGpio */
-+
-+/**************************************************************************
-+ * Name : BpGetPppLedGpio
-+ *
-+ * Description: This function returns the GPIO pin assignment for the PPP
-+ * LED.
-+ *
-+ * Parameters : [OUT] pusValue - Address of short word that the PPP LED
-+ * GPIO pin is returned in.
-+ *
-+ * Returns : BP_SUCCESS - Success, value is returned.
-+ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
-+ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
-+ * for the board.
-+ ***************************************************************************/
-+int BpGetPppLedGpio( unsigned short *pusValue )
-+{
-+ int nRet;
-+
-+ if( g_pCurrentBp )
-+ {
-+ *pusValue = g_pCurrentBp->usGpioLedPpp;
-+
-+ if( g_pCurrentBp->usGpioLedPpp != BP_NOT_DEFINED )
-+ {
-+ nRet = BP_SUCCESS;
-+ }
-+ else
-+ {
-+ nRet = BP_VALUE_NOT_DEFINED;
-+ }
-+ }
-+ else
-+ {
-+ *pusValue = BP_NOT_DEFINED;
-+ nRet = BP_BOARD_ID_NOT_SET;
-+ }
-+
-+ return( nRet );
-+} /* BpGetPppLedGpio */
-+
-+/**************************************************************************
-+ * Name : BpGetPppFailLedGpio
-+ *
-+ * Description: This function returns the GPIO pin assignment for the PPP
-+ * LED that is used when there is a PPP connection failure.
-+ *
-+ * Parameters : [OUT] pusValue - Address of short word that the PPP LED
-+ * GPIO pin is returned in.
-+ *
-+ * Returns : BP_SUCCESS - Success, value is returned.
-+ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
-+ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
-+ * for the board.
-+ ***************************************************************************/
-+int BpGetPppFailLedGpio( unsigned short *pusValue )
-+{
-+ int nRet;
-+
-+ if( g_pCurrentBp )
-+ {
-+ *pusValue = g_pCurrentBp->usGpioLedPppFail;
-+
-+ if( g_pCurrentBp->usGpioLedPppFail != BP_NOT_DEFINED )
-+ {
-+ nRet = BP_SUCCESS;
-+ }
-+ else
-+ {
-+ nRet = BP_VALUE_NOT_DEFINED;
-+ }
-+ }
-+ else
-+ {
-+ *pusValue = BP_NOT_DEFINED;
-+ nRet = BP_BOARD_ID_NOT_SET;
-+ }
-+
-+ return( nRet );
-+} /* BpGetPppFailLedGpio */
-+
-+/**************************************************************************
-+ * Name : BpGetBootloaderPowerOnLedGpio
-+ *
-+ * Description: This function returns the GPIO pin assignment for the power
-+ * on LED that is set by the bootloader.
-+ *
-+ * Parameters : [OUT] pusValue - Address of short word that the alarm LED
-+ * GPIO pin is returned in.
-+ *
-+ * Returns : BP_SUCCESS - Success, value is returned.
-+ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
-+ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
-+ * for the board.
-+ ***************************************************************************/
-+int BpGetBootloaderPowerOnLedGpio( unsigned short *pusValue )
-+{
-+ int nRet;
-+
-+ if( g_pCurrentBp )
-+ {
-+ *pusValue = g_pCurrentBp->usGpioLedBlPowerOn;
-+
-+ if( g_pCurrentBp->usGpioLedBlPowerOn != BP_NOT_DEFINED )
-+ {
-+ nRet = BP_SUCCESS;
-+ }
-+ else
-+ {
-+ nRet = BP_VALUE_NOT_DEFINED;
-+ }
-+ }
-+ else
-+ {
-+ *pusValue = BP_NOT_DEFINED;
-+ nRet = BP_BOARD_ID_NOT_SET;
-+ }
-+
-+ return( nRet );
-+} /* BpGetBootloaderPowerOn */
-+
-+/**************************************************************************
-+ * Name : BpGetBootloaderAlarmLedGpio
-+ *
-+ * Description: This function returns the GPIO pin assignment for the alarm
-+ * LED that is set by the bootloader.
-+ *
-+ * Parameters : [OUT] pusValue - Address of short word that the alarm LED
-+ * GPIO pin is returned in.
-+ *
-+ * Returns : BP_SUCCESS - Success, value is returned.
-+ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
-+ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
-+ * for the board.
-+ ***************************************************************************/
-+int BpGetBootloaderAlarmLedGpio( unsigned short *pusValue )
-+{
-+ int nRet;
-+
-+ if( g_pCurrentBp )
-+ {
-+ *pusValue = g_pCurrentBp->usGpioLedBlAlarm;
-+
-+ if( g_pCurrentBp->usGpioLedBlAlarm != BP_NOT_DEFINED )
-+ {
-+ nRet = BP_SUCCESS;
-+ }
-+ else
-+ {
-+ nRet = BP_VALUE_NOT_DEFINED;
-+ }
-+ }
-+ else
-+ {
-+ *pusValue = BP_NOT_DEFINED;
-+ nRet = BP_BOARD_ID_NOT_SET;
-+ }
-+
-+ return( nRet );
-+} /* BpGetBootloaderAlarmLedGpio */
-+
-+/**************************************************************************
-+ * Name : BpGetBootloaderResetCfgLedGpio
-+ *
-+ * Description: This function returns the GPIO pin assignment for the reset
-+ * configuration LED that is set by the bootloader.
-+ *
-+ * Parameters : [OUT] pusValue - Address of short word that the reset
-+ * configuration LED GPIO pin is returned in.
-+ *
-+ * Returns : BP_SUCCESS - Success, value is returned.
-+ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
-+ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
-+ * for the board.
-+ ***************************************************************************/
-+int BpGetBootloaderResetCfgLedGpio( unsigned short *pusValue )
-+{
-+ int nRet;
-+
-+ if( g_pCurrentBp )
-+ {
-+ *pusValue = g_pCurrentBp->usGpioLedBlResetCfg;
-+
-+ if( g_pCurrentBp->usGpioLedBlResetCfg != BP_NOT_DEFINED )
-+ {
-+ nRet = BP_SUCCESS;
-+ }
-+ else
-+ {
-+ nRet = BP_VALUE_NOT_DEFINED;
-+ }
-+ }
-+ else
-+ {
-+ *pusValue = BP_NOT_DEFINED;
-+ nRet = BP_BOARD_ID_NOT_SET;
-+ }
-+
-+ return( nRet );
-+} /* BpGetBootloaderResetCfgLedGpio */
-+
-+/**************************************************************************
-+ * Name : BpGetBootloaderStopLedGpio
-+ *
-+ * Description: This function returns the GPIO pin assignment for the break
-+ * into bootloader LED that is set by the bootloader.
-+ *
-+ * Parameters : [OUT] pusValue - Address of short word that the break into
-+ * bootloader LED GPIO pin is returned in.
-+ *
-+ * Returns : BP_SUCCESS - Success, value is returned.
-+ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
-+ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
-+ * for the board.
-+ ***************************************************************************/
-+int BpGetBootloaderStopLedGpio( unsigned short *pusValue )
-+{
-+ int nRet;
-+
-+ if( g_pCurrentBp )
-+ {
-+ *pusValue = g_pCurrentBp->usGpioLedBlStop;
-+
-+ if( g_pCurrentBp->usGpioLedBlStop != BP_NOT_DEFINED )
-+ {
-+ nRet = BP_SUCCESS;
-+ }
-+ else
-+ {
-+ nRet = BP_VALUE_NOT_DEFINED;
-+ }
-+ }
-+ else
-+ {
-+ *pusValue = BP_NOT_DEFINED;
-+ nRet = BP_BOARD_ID_NOT_SET;
-+ }
-+
-+ return( nRet );
-+} /* BpGetBootloaderStopLedGpio */
-+
-+/**************************************************************************
-+ * Name : BpGetVoipLedGpio
-+ *
-+ * Description: This function returns the GPIO pin assignment for the VOIP
-+ * LED.
-+ *
-+ * Parameters : [OUT] pusValue - Address of short word that the VOIP LED
-+ * GPIO pin is returned in.
-+ *
-+ * Returns : BP_SUCCESS - Success, value is returned.
-+ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
-+ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
-+ * for the board.
-+ *
-+ * Note : The VoIP structure would allow for having one LED per DSP
-+ * however, the board initialization function assumes only one
-+ * LED per functionality (ie one LED for VoIP). Therefore in
-+ * order to keep this tidy and simple we do not make usage of the
-+ * one-LED-per-DSP function. Instead, we assume that the LED for
-+ * VoIP is unique and associated with DSP 0 (always present on
-+ * any VoIP platform). If changing this to a LED-per-DSP function
-+ * then one need to update the board initialization driver in
-+ * bcmdrivers\opensource\char\board\bcm963xx\impl1
-+ ***************************************************************************/
-+int BpGetVoipLedGpio( unsigned short *pusValue )
-+{
-+ int nRet;
-+
-+ if( g_pCurrentBp )
-+ {
-+ VOIP_DSP_INFO *pDspInfo = BpGetVoipDspConfig( 0 );
-+
-+ if( pDspInfo )
-+ {
-+ *pusValue = pDspInfo->usGpioLedVoip;
-+
-+ if( *pusValue != BP_NOT_DEFINED )
-+ {
-+ nRet = BP_SUCCESS;
-+ }
-+ else
-+ {
-+ nRet = BP_VALUE_NOT_DEFINED;
-+ }
-+ }
-+ else
-+ {
-+ *pusValue = BP_NOT_DEFINED;
-+ nRet = BP_BOARD_ID_NOT_FOUND;
-+ }
-+ }
-+ else
-+ {
-+ *pusValue = BP_NOT_DEFINED;
-+ nRet = BP_BOARD_ID_NOT_SET;
-+ }
-+
-+ return( nRet );
-+} /* BpGetVoipLedGpio */
-+
-+/**************************************************************************
-+ * Name : BpGetWirelessExtIntr
-+ *
-+ * Description: This function returns the Wireless external interrupt number.
-+ *
-+ * Parameters : [OUT] pulValue - Address of short word that the wireless
-+ * external interrupt number is returned in.
-+ *
-+ * Returns : BP_SUCCESS - Success, value is returned.
-+ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
-+ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
-+ * for the board.
-+ ***************************************************************************/
-+int BpGetWirelessExtIntr( unsigned long *pulValue )
-+{
-+ int nRet;
-+
-+ if( g_pCurrentBp )
-+ {
-+ *pulValue = g_pCurrentBp->usExtIntrWireless;
-+
-+ if( g_pCurrentBp->usExtIntrWireless != BP_NOT_DEFINED )
-+ {
-+ nRet = BP_SUCCESS;
-+ }
-+ else
-+ {
-+ nRet = BP_VALUE_NOT_DEFINED;
-+ }
-+ }
-+ else
-+ {
-+ *pulValue = BP_NOT_DEFINED;
-+ nRet = BP_BOARD_ID_NOT_SET;
-+ }
-+
-+ return( nRet );
-+} /* BpGetWirelessExtIntr */
-+
-+/**************************************************************************
-+ * Name : BpGetAdslDyingGaspExtIntr
-+ *
-+ * Description: This function returns the ADSL Dying Gasp external interrupt
-+ * number.
-+ *
-+ * Parameters : [OUT] pulValue - Address of short word that the ADSL Dying Gasp
-+ * external interrupt number is returned in.
-+ *
-+ * Returns : BP_SUCCESS - Success, value is returned.
-+ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
-+ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
-+ * for the board.
-+ ***************************************************************************/
-+int BpGetAdslDyingGaspExtIntr( unsigned long *pulValue )
-+{
-+ int nRet;
-+
-+ if( g_pCurrentBp )
-+ {
-+ *pulValue = g_pCurrentBp->usExtIntrAdslDyingGasp;
-+
-+ if( g_pCurrentBp->usExtIntrAdslDyingGasp != BP_NOT_DEFINED )
-+ {
-+ nRet = BP_SUCCESS;
-+ }
-+ else
-+ {
-+ nRet = BP_VALUE_NOT_DEFINED;
-+ }
-+ }
-+ else
-+ {
-+ *pulValue = BP_NOT_DEFINED;
-+ nRet = BP_BOARD_ID_NOT_SET;
-+ }
-+
-+ return( nRet );
-+} /* BpGetAdslDyingGaspExtIntr */
-+
-+/**************************************************************************
-+ * Name : BpGetVoipExtIntr
-+ *
-+ * Description: This function returns the VOIP external interrupt number.
-+ *
-+ * Parameters : [OUT] pulValue - Address of short word that the VOIP
-+ * external interrupt number is returned in.
-+ * [IN] dspNum - Address of the DSP to query.
-+ *
-+ * Returns : BP_SUCCESS - Success, value is returned.
-+ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
-+ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
-+ * for the board.
-+ ***************************************************************************/
-+int BpGetVoipExtIntr( unsigned char dspNum, unsigned long *pulValue )
-+{
-+ int nRet;
-+
-+ if( g_pCurrentBp )
-+ {
-+ VOIP_DSP_INFO *pDspInfo = BpGetVoipDspConfig( dspNum );
-+
-+ if( pDspInfo )
-+ {
-+ *pulValue = pDspInfo->usExtIntrVoip;
-+
-+ if( *pulValue != BP_NOT_DEFINED )
-+ {
-+ nRet = BP_SUCCESS;
-+ }
-+ else
-+ {
-+ nRet = BP_VALUE_NOT_DEFINED;
-+ }
-+ }
-+ else
-+ {
-+ *pulValue = BP_NOT_DEFINED;
-+ nRet = BP_BOARD_ID_NOT_FOUND;
-+ }
-+ }
-+ else
-+ {
-+ *pulValue = BP_NOT_DEFINED;
-+ nRet = BP_BOARD_ID_NOT_SET;
-+ }
-+
-+ return( nRet );
-+} /* BpGetVoipExtIntr */
-+
-+/**************************************************************************
-+ * Name : BpGetHpnaExtIntr
-+ *
-+ * Description: This function returns the HPNA external interrupt number.
-+ *
-+ * Parameters : [OUT] pulValue - Address of short word that the HPNA
-+ * external interrupt number is returned in.
-+ *
-+ * Returns : BP_SUCCESS - Success, value is returned.
-+ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
-+ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
-+ * for the board.
-+ ***************************************************************************/
-+int BpGetHpnaExtIntr( unsigned long *pulValue )
-+{
-+ int nRet;
-+
-+ if( g_pCurrentBp )
-+ {
-+ *pulValue = g_pCurrentBp->usExtIntrHpna;
-+
-+ if( g_pCurrentBp->usExtIntrHpna != BP_NOT_DEFINED )
-+ {
-+ nRet = BP_SUCCESS;
-+ }
-+ else
-+ {
-+ nRet = BP_VALUE_NOT_DEFINED;
-+ }
-+ }
-+ else
-+ {
-+ *pulValue = BP_NOT_DEFINED;
-+ nRet = BP_BOARD_ID_NOT_SET;
-+ }
-+
-+ return( nRet );
-+} /* BpGetHpnaExtIntr */
-+
-+/**************************************************************************
-+ * Name : BpGetHpnaChipSelect
-+ *
-+ * Description: This function returns the HPNA chip select number.
-+ *
-+ * Parameters : [OUT] pulValue - Address of short word that the HPNA
-+ * chip select number is returned in.
-+ *
-+ * Returns : BP_SUCCESS - Success, value is returned.
-+ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
-+ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
-+ * for the board.
-+ ***************************************************************************/
-+int BpGetHpnaChipSelect( unsigned long *pulValue )
-+{
-+ int nRet;
-+
-+ if( g_pCurrentBp )
-+ {
-+ *pulValue = g_pCurrentBp->usCsHpna;
-+
-+ if( g_pCurrentBp->usCsHpna != BP_NOT_DEFINED )
-+ {
-+ nRet = BP_SUCCESS;
-+ }
-+ else
-+ {
-+ nRet = BP_VALUE_NOT_DEFINED;
-+ }
-+ }
-+ else
-+ {
-+ *pulValue = BP_NOT_DEFINED;
-+ nRet = BP_BOARD_ID_NOT_SET;
-+ }
-+
-+ return( nRet );
-+} /* BpGetHpnaChipSelect */
-+
-+/**************************************************************************
-+ * Name : BpGetVoipChipSelect
-+ *
-+ * Description: This function returns the VOIP chip select number.
-+ *
-+ * Parameters : [OUT] pulValue - Address of short word that the VOIP
-+ * chip select number is returned in.
-+ * [IN] dspNum - Address of the DSP to query.
-+ *
-+ * Returns : BP_SUCCESS - Success, value is returned.
-+ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
-+ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
-+ * for the board.
-+ ***************************************************************************/
-+int BpGetVoipChipSelect( unsigned char dspNum, unsigned long *pulValue )
-+{
-+ int nRet;
-+
-+ if( g_pCurrentBp )
-+ {
-+ VOIP_DSP_INFO *pDspInfo = BpGetVoipDspConfig( dspNum );
-+
-+ if( pDspInfo )
-+ {
-+ *pulValue = pDspInfo->usCsVoip;
-+
-+ if( *pulValue != BP_NOT_DEFINED )
-+ {
-+ nRet = BP_SUCCESS;
-+ }
-+ else
-+ {
-+ nRet = BP_VALUE_NOT_DEFINED;
-+ }
-+ }
-+ else
-+ {
-+ *pulValue = BP_NOT_DEFINED;
-+ nRet = BP_BOARD_ID_NOT_FOUND;
-+ }
-+ }
-+ else
-+ {
-+ *pulValue = BP_NOT_DEFINED;
-+ nRet = BP_BOARD_ID_NOT_SET;
-+ }
-+
-+ return( nRet );
-+} /* BpGetVoipChipSelect */
-+
-diff -urN linux.old/boardparms/bcm963xx/boardparms.h linux.dev/boardparms/bcm963xx/boardparms.h
---- linux.old/boardparms/bcm963xx/boardparms.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/boardparms/bcm963xx/boardparms.h 2006-08-25 00:39:38.000000000 +0200
-@@ -0,0 +1,766 @@
-+/*
-+<:copyright-gpl
-+
-+ Copyright 2003 Broadcom Corp. All Rights Reserved.
-+
-+ This program is free software; you can distribute it and/or modify it
-+ under the terms of the GNU General Public License (Version 2) as
-+ published by the Free Software Foundation.
-+
-+ This program is distributed in the hope it will be useful, but WITHOUT
-+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-+ for more details.
-+
-+ You should have received a copy of the GNU General Public License along
-+ with this program; if not, write to the Free Software Foundation, Inc.,
-+ 59 Temple Place - Suite 330, Boston MA 02111-1307, USA.
-+
-+:>
-+*/
-+/**************************************************************************
-+ * File Name : boardparms.h
-+ *
-+ * Description: This file contains definitions and function prototypes for
-+ * the BCM63xx board parameter access functions.
-+ *
-+ * Updates : 07/14/2003 Created.
-+ ***************************************************************************/
-+
-+#if !defined(_BOARDPARMS_H)
-+#define _BOARDPARMS_H
-+
-+#if __cplusplus
-+extern "C" {
-+#endif
-+
-+/* Return codes. */
-+#define BP_SUCCESS 0
-+#define BP_BOARD_ID_NOT_FOUND 1
-+#define BP_VALUE_NOT_DEFINED 2
-+#define BP_BOARD_ID_NOT_SET 3
-+
-+/* Values for BpGetSdramSize. */
-+#define BP_MEMORY_8MB_1_CHIP 0
-+#define BP_MEMORY_16MB_1_CHIP 1
-+#define BP_MEMORY_32MB_1_CHIP 2
-+#define BP_MEMORY_64MB_2_CHIP 3
-+#define BP_MEMORY_32MB_2_CHIP 4
-+#define BP_MEMORY_16MB_2_CHIP 5
-+
-+/* Values for EthernetMacInfo PhyType. */
-+#define BP_ENET_NO_PHY 0
-+#define BP_ENET_INTERNAL_PHY 1
-+#define BP_ENET_EXTERNAL_PHY 2
-+#define BP_ENET_EXTERNAL_SWITCH 3
-+
-+/* Values for EthernetMacInfo Configuration type. */
-+#define BP_ENET_CONFIG_MDIO 0 /* Internal PHY, External PHY, Switch+(no GPIO, no SPI, no MDIO Pseudo phy */
-+#define BP_ENET_CONFIG_GPIO 1 /* Bcm96345GW board + Bcm5325M/E */
-+#define BP_ENET_CONFIG_MDIO_PSEUDO_PHY 2 /* Bcm96348GW board + Bcm5325E */
-+#define BP_ENET_CONFIG_SPI_SSB_0 3 /* Bcm96348GW board + Bcm5325M/E */
-+#define BP_ENET_CONFIG_SPI_SSB_1 4 /* Bcm96348GW board + Bcm5325M/E */
-+#define BP_ENET_CONFIG_SPI_SSB_2 5 /* Bcm96348GW board + Bcm5325M/E */
-+#define BP_ENET_CONFIG_SPI_SSB_3 6 /* Bcm96348GW board + Bcm5325M/E */
-+
-+/* Values for EthernetMacInfo Reverse MII. */
-+#define BP_ENET_NO_REVERSE_MII 0
-+#define BP_ENET_REVERSE_MII 1
-+
-+/* Values for VoIPDSPInfo DSPType. */
-+#define BP_VOIP_NO_DSP 0
-+#define BP_VOIP_DSP 1
-+
-+
-+/* Values for GPIO pin assignments (AH = Active High, AL = Active Low). */
-+#define BP_ACTIVE_MASK 0x8000
-+#define BP_ACTIVE_HIGH 0x0000
-+#define BP_ACTIVE_LOW 0x8000
-+#define BP_GPIO_0_AH (0 | BP_ACTIVE_HIGH)
-+#define BP_GPIO_0_AL (0 | BP_ACTIVE_LOW)
-+#define BP_GPIO_1_AH (1 | BP_ACTIVE_HIGH)
-+#define BP_GPIO_1_AL (1 | BP_ACTIVE_LOW)
-+#define BP_GPIO_2_AH (2 | BP_ACTIVE_HIGH)
-+#define BP_GPIO_2_AL (2 | BP_ACTIVE_LOW)
-+#define BP_GPIO_3_AH (3 | BP_ACTIVE_HIGH)
-+#define BP_GPIO_3_AL (3 | BP_ACTIVE_LOW)
-+#define BP_GPIO_4_AH (4 | BP_ACTIVE_HIGH)
-+#define BP_GPIO_4_AL (4 | BP_ACTIVE_LOW)
-+#define BP_GPIO_5_AH (5 | BP_ACTIVE_HIGH)
-+#define BP_GPIO_5_AL (5 | BP_ACTIVE_LOW)
-+#define BP_GPIO_6_AH (6 | BP_ACTIVE_HIGH)
-+#define BP_GPIO_6_AL (6 | BP_ACTIVE_LOW)
-+#define BP_GPIO_7_AH (7 | BP_ACTIVE_HIGH)
-+#define BP_GPIO_7_AL (7 | BP_ACTIVE_LOW)
-+#define BP_GPIO_8_AH (8 | BP_ACTIVE_HIGH)
-+#define BP_GPIO_8_AL (8 | BP_ACTIVE_LOW)
-+#define BP_GPIO_9_AH (9 | BP_ACTIVE_HIGH)
-+#define BP_GPIO_9_AL (9 | BP_ACTIVE_LOW)
-+#define BP_GPIO_10_AH (10 | BP_ACTIVE_HIGH)
-+#define BP_GPIO_10_AL (10 | BP_ACTIVE_LOW)
-+#define BP_GPIO_11_AH (11 | BP_ACTIVE_HIGH)
-+#define BP_GPIO_11_AL (11 | BP_ACTIVE_LOW)
-+#define BP_GPIO_12_AH (12 | BP_ACTIVE_HIGH)
-+#define BP_GPIO_12_AL (12 | BP_ACTIVE_LOW)
-+#define BP_GPIO_13_AH (13 | BP_ACTIVE_HIGH)
-+#define BP_GPIO_13_AL (13 | BP_ACTIVE_LOW)
-+#define BP_GPIO_14_AH (14 | BP_ACTIVE_HIGH)
-+#define BP_GPIO_14_AL (14 | BP_ACTIVE_LOW)
-+#define BP_GPIO_15_AH (15 | BP_ACTIVE_HIGH)
-+#define BP_GPIO_15_AL (15 | BP_ACTIVE_LOW)
-+#define BP_GPIO_16_AH (16 | BP_ACTIVE_HIGH)
-+#define BP_GPIO_16_AL (16 | BP_ACTIVE_LOW)
-+#define BP_GPIO_17_AH (17 | BP_ACTIVE_HIGH)
-+#define BP_GPIO_17_AL (17 | BP_ACTIVE_LOW)
-+#define BP_GPIO_18_AH (18 | BP_ACTIVE_HIGH)
-+#define BP_GPIO_18_AL (18 | BP_ACTIVE_LOW)
-+#define BP_GPIO_19_AH (19 | BP_ACTIVE_HIGH)
-+#define BP_GPIO_19_AL (19 | BP_ACTIVE_LOW)
-+#define BP_GPIO_20_AH (20 | BP_ACTIVE_HIGH)
-+#define BP_GPIO_20_AL (20 | BP_ACTIVE_LOW)
-+#define BP_GPIO_21_AH (21 | BP_ACTIVE_HIGH)
-+#define BP_GPIO_21_AL (21 | BP_ACTIVE_LOW)
-+#define BP_GPIO_22_AH (22 | BP_ACTIVE_HIGH)
-+#define BP_GPIO_22_AL (22 | BP_ACTIVE_LOW)
-+#define BP_GPIO_23_AH (23 | BP_ACTIVE_HIGH)
-+#define BP_GPIO_23_AL (23 | BP_ACTIVE_LOW)
-+#define BP_GPIO_24_AH (24 | BP_ACTIVE_HIGH)
-+#define BP_GPIO_24_AL (24 | BP_ACTIVE_LOW)
-+#define BP_GPIO_25_AH (25 | BP_ACTIVE_HIGH)
-+#define BP_GPIO_25_AL (25 | BP_ACTIVE_LOW)
-+#define BP_GPIO_26_AH (26 | BP_ACTIVE_HIGH)
-+#define BP_GPIO_26_AL (26 | BP_ACTIVE_LOW)
-+#define BP_GPIO_27_AH (27 | BP_ACTIVE_HIGH)
-+#define BP_GPIO_27_AL (27 | BP_ACTIVE_LOW)
-+#define BP_GPIO_28_AH (28 | BP_ACTIVE_HIGH)
-+#define BP_GPIO_28_AL (28 | BP_ACTIVE_LOW)
-+#define BP_GPIO_29_AH (29 | BP_ACTIVE_HIGH)
-+#define BP_GPIO_29_AL (29 | BP_ACTIVE_LOW)
-+#define BP_GPIO_30_AH (30 | BP_ACTIVE_HIGH)
-+#define BP_GPIO_30_AL (30 | BP_ACTIVE_LOW)
-+#define BP_GPIO_31_AH (31 | BP_ACTIVE_HIGH)
-+#define BP_GPIO_31_AL (31 | BP_ACTIVE_LOW)
-+#define BP_GPIO_32_AH (32 | BP_ACTIVE_HIGH)
-+#define BP_GPIO_32_AL (32 | BP_ACTIVE_LOW)
-+#define BP_GPIO_33_AH (33 | BP_ACTIVE_HIGH)
-+#define BP_GPIO_33_AL (33 | BP_ACTIVE_LOW)
-+#define BP_GPIO_34_AH (34 | BP_ACTIVE_HIGH)
-+#define BP_GPIO_34_AL (34 | BP_ACTIVE_LOW)
-+#define BP_GPIO_35_AH (35 | BP_ACTIVE_HIGH)
-+#define BP_GPIO_35_AL (35 | BP_ACTIVE_LOW)
-+#define BP_GPIO_36_AH (36 | BP_ACTIVE_HIGH)
-+#define BP_GPIO_36_AL (36 | BP_ACTIVE_LOW)
-+
-+/* Values for external interrupt assignments. */
-+#define BP_EXT_INTR_0 0
-+#define BP_EXT_INTR_1 1
-+#define BP_EXT_INTR_2 2
-+#define BP_EXT_INTR_3 3
-+
-+/* Values for chip select assignments. */
-+#define BP_CS_0 0
-+#define BP_CS_1 1
-+#define BP_CS_2 2
-+#define BP_CS_3 3
-+
-+/* Value for GPIO and external interrupt fields that are not used. */
-+#define BP_NOT_DEFINED 0xffff
-+#define BP_HW_DEFINED 0xfff0
-+#define BP_UNEQUIPPED 0xfff1
-+
-+/* Maximum size of the board id string. */
-+#define BP_BOARD_ID_LEN 16
-+
-+/* Maximum number of Ethernet MACs. */
-+#define BP_MAX_ENET_MACS 2
-+
-+/* Maximum number of VoIP DSPs. */
-+#define BP_MAX_VOIP_DSP 2
-+
-+/* Wireless Antenna Settings. */
-+#define BP_WLAN_ANT_MAIN 0
-+#define BP_WLAN_ANT_AUX 1
-+#define BP_WLAN_ANT_BOTH 3
-+
-+#if !defined(__ASSEMBLER__)
-+
-+/* Information about an Ethernet MAC. If ucPhyType is BP_ENET_NO_PHY,
-+ * then the other fields are not valid.
-+ */
-+typedef struct EthernetMacInfo
-+{
-+ unsigned char ucPhyType; /* BP_ENET_xxx */
-+ unsigned char ucPhyAddress; /* 0 to 31 */
-+ unsigned short usGpioPhySpiSck; /* GPIO pin or not defined */
-+ unsigned short usGpioPhySpiSs; /* GPIO pin or not defined */
-+ unsigned short usGpioPhySpiMosi; /* GPIO pin or not defined */
-+ unsigned short usGpioPhySpiMiso; /* GPIO pin or not defined */
-+ unsigned short usGpioPhyReset; /* GPIO pin or not defined (96348LV) */
-+ unsigned short numSwitchPorts; /* Number of PHY ports */
-+ unsigned short usConfigType; /* Configuration type */
-+ unsigned short usReverseMii; /* Reverse MII */
-+} ETHERNET_MAC_INFO, *PETHERNET_MAC_INFO;
-+
-+
-+/* Information about VoIP DSPs. If ucDspType is BP_VOIP_NO_DSP,
-+ * then the other fields are not valid.
-+ */
-+typedef struct VoIPDspInfo
-+{
-+ unsigned char ucDspType;
-+ unsigned char ucDspAddress;
-+ unsigned short usExtIntrVoip;
-+ unsigned short usGpioVoipReset;
-+ unsigned short usGpioVoipIntr;
-+ unsigned short usGpioLedVoip;
-+ unsigned short usCsVoip;
-+
-+} VOIP_DSP_INFO;
-+
-+
-+/**************************************************************************
-+ * Name : BpSetBoardId
-+ *
-+ * Description: This function find the BOARD_PARAMETERS structure for the
-+ * specified board id string and assigns it to a global, static
-+ * variable.
-+ *
-+ * Parameters : [IN] pszBoardId - Board id string that is saved into NVRAM.
-+ *
-+ * Returns : BP_SUCCESS - Success, value is returned.
-+ * BP_BOARD_ID_NOT_FOUND - Error, board id input string does not
-+ * have a board parameters configuration record.
-+ ***************************************************************************/
-+int BpSetBoardId( char *pszBoardId );
-+
-+/**************************************************************************
-+ * Name : BpGetBoardIds
-+ *
-+ * Description: This function returns all of the supported board id strings.
-+ *
-+ * Parameters : [OUT] pszBoardIds - Address of a buffer that the board id
-+ * strings are returned in. Each id starts at BP_BOARD_ID_LEN
-+ * boundary.
-+ * [IN] nBoardIdsSize - Number of BP_BOARD_ID_LEN elements that
-+ * were allocated in pszBoardIds.
-+ *
-+ * Returns : Number of board id strings returned.
-+ ***************************************************************************/
-+int BpGetBoardIds( char *pszBoardIds, int nBoardIdsSize );
-+
-+/**************************************************************************
-+ * Name : BpGetEthernetMacInfo
-+ *
-+ * Description: This function returns all of the supported board id strings.
-+ *
-+ * Parameters : [OUT] pEnetInfos - Address of an array of ETHERNET_MAC_INFO
-+ * buffers.
-+ * [IN] nNumEnetInfos - Number of ETHERNET_MAC_INFO elements that
-+ * are pointed to by pEnetInfos.
-+ *
-+ * Returns : BP_SUCCESS - Success, value is returned.
-+ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
-+ ***************************************************************************/
-+int BpGetEthernetMacInfo( PETHERNET_MAC_INFO pEnetInfos, int nNumEnetInfos );
-+
-+/**************************************************************************
-+ * Name : BpGetSdramSize
-+ *
-+ * Description: This function returns a constant that describees the board's
-+ * SDRAM type and size.
-+ *
-+ * Parameters : [OUT] pulSdramSize - Address of short word that the SDRAM size
-+ * is returned in.
-+ *
-+ * Returns : BP_SUCCESS - Success, value is returned.
-+ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
-+ ***************************************************************************/
-+int BpGetSdramSize( unsigned long *pulSdramSize );
-+
-+/**************************************************************************
-+ * Name : BpGetPsiSize
-+ *
-+ * Description: This function returns the persistent storage size in K bytes.
-+ *
-+ * Parameters : [OUT] pulPsiSize - Address of short word that the persistent
-+ * storage size is returned in.
-+ *
-+ * Returns : BP_SUCCESS - Success, value is returned.
-+ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
-+ ***************************************************************************/
-+int BpGetPsiSize( unsigned long *pulPsiSize );
-+
-+/**************************************************************************
-+ * Name : BpGetRj11InnerOuterPairGpios
-+ *
-+ * Description: This function returns the GPIO pin assignments for changing
-+ * between the RJ11 inner pair and RJ11 outer pair.
-+ *
-+ * Parameters : [OUT] pusInner - Address of short word that the RJ11 inner pair
-+ * GPIO pin is returned in.
-+ * [OUT] pusOuter - Address of short word that the RJ11 outer pair
-+ * GPIO pin is returned in.
-+ *
-+ * Returns : BP_SUCCESS - Success, values are returned.
-+ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
-+ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
-+ * for the board.
-+ ***************************************************************************/
-+int BpGetRj11InnerOuterPairGpios( unsigned short *pusInner,
-+ unsigned short *pusOuter );
-+
-+/**************************************************************************
-+ * Name : BpGetPressAndHoldResetGpio
-+ *
-+ * Description: This function returns the GPIO pin assignment for the press
-+ * and hold reset button.
-+ *
-+ * Parameters : [OUT] pusValue - Address of short word that the press and hold
-+ * reset button GPIO pin is returned in.
-+ *
-+ * Returns : BP_SUCCESS - Success, value is returned.
-+ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
-+ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
-+ * for the board.
-+ ***************************************************************************/
-+int BpGetPressAndHoldResetGpio( unsigned short *pusValue );
-+
-+/**************************************************************************
-+ * Name : BpGetVoipResetGpio
-+ *
-+ * Description: This function returns the GPIO pin assignment for the VOIP
-+ * Reset operation.
-+ *
-+ * Parameters : [OUT] pusValue - Address of short word that the VOIP reset
-+ * GPIO pin is returned in.
-+ * [IN] dspNum - Address of the DSP to query.
-+ *
-+ * Returns : BP_SUCCESS - Success, value is returned.
-+ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
-+ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
-+ * for the board.
-+ ***************************************************************************/
-+int BpGetVoipResetGpio( unsigned char dspNum, unsigned short *pusValue );
-+
-+/**************************************************************************
-+ * Name : BpGetVoipIntrGpio
-+ *
-+ * Description: This function returns the GPIO pin assignment for VoIP interrupt.
-+ *
-+ * Parameters : [OUT] pusValue - Address of short word that the VOIP interrupt
-+ * GPIO pin is returned in.
-+ * [IN] dspNum - Address of the DSP to query.
-+ *
-+ * Returns : BP_SUCCESS - Success, value is returned.
-+ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
-+ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
-+ * for the board.
-+ ***************************************************************************/
-+int BpGetVoipIntrGpio( unsigned char dspNum, unsigned short *pusValue );
-+
-+/**************************************************************************
-+ * Name : BpGetPcmciaResetGpio
-+ *
-+ * Description: This function returns the GPIO pin assignment for the PCMCIA
-+ * Reset operation.
-+ *
-+ * Parameters : [OUT] pusValue - Address of short word that the PCMCIA reset
-+ * GPIO pin is returned in.
-+ *
-+ * Returns : BP_SUCCESS - Success, value is returned.
-+ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
-+ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
-+ * for the board.
-+ ***************************************************************************/
-+int BpGetPcmciaResetGpio( unsigned short *pusValue );
-+
-+/**************************************************************************
-+ * Name : BpGetUartRtsCtsGpios
-+ *
-+ * Description: This function returns the GPIO pin assignments for RTS and CTS
-+ * UART signals.
-+ *
-+ * Parameters : [OUT] pusRts - Address of short word that the UART RTS GPIO
-+ * pin is returned in.
-+ * [OUT] pusCts - Address of short word that the UART CTS GPIO
-+ * pin is returned in.
-+ *
-+ * Returns : BP_SUCCESS - Success, values are returned.
-+ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
-+ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
-+ * for the board.
-+ ***************************************************************************/
-+int BpGetRtsCtsUartGpios( unsigned short *pusRts, unsigned short *pusCts );
-+
-+/**************************************************************************
-+ * Name : BpGetAdslLedGpio
-+ *
-+ * Description: This function returns the GPIO pin assignment for the ADSL
-+ * LED.
-+ *
-+ * Parameters : [OUT] pusValue - Address of short word that the ADSL LED
-+ * GPIO pin is returned in.
-+ *
-+ * Returns : BP_SUCCESS - Success, value is returned.
-+ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
-+ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
-+ * for the board.
-+ ***************************************************************************/
-+int BpGetAdslLedGpio( unsigned short *pusValue );
-+
-+/**************************************************************************
-+ * Name : BpGetAdslFailLedGpio
-+ *
-+ * Description: This function returns the GPIO pin assignment for the ADSL
-+ * LED that is used when there is a DSL connection failure.
-+ *
-+ * Parameters : [OUT] pusValue - Address of short word that the ADSL LED
-+ * GPIO pin is returned in.
-+ *
-+ * Returns : BP_SUCCESS - Success, value is returned.
-+ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
-+ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
-+ * for the board.
-+ ***************************************************************************/
-+int BpGetAdslFailLedGpio( unsigned short *pusValue );
-+
-+/**************************************************************************
-+ * Name : BpGetWirelessLedGpio
-+ *
-+ * Description: This function returns the GPIO pin assignment for the Wireless
-+ * LED.
-+ *
-+ * Parameters : [OUT] pusValue - Address of short word that the Wireless LED
-+ * GPIO pin is returned in.
-+ *
-+ * Returns : BP_SUCCESS - Success, value is returned.
-+ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
-+ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
-+ * for the board.
-+ ***************************************************************************/
-+int BpGetWirelessLedGpio( unsigned short *pusValue );
-+
-+/**************************************************************************
-+ * Name : BpGetWirelessAntInUse
-+ *
-+ * Description: This function returns the antennas in use for wireless
-+ *
-+ * Parameters : [OUT] pusValue - Address of short word that the Wireless Antenna
-+ * is in use.
-+ *
-+ * Returns : BP_SUCCESS - Success, value is returned.
-+ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
-+ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
-+ * for the board.
-+ ***************************************************************************/
-+int BpGetWirelessAntInUse( unsigned short *pusValue );
-+
-+/**************************************************************************
-+ * Name : BpGetWirelessSesBtnGpio
-+ *
-+ * Description: This function returns the GPIO pin assignment for the Wireless
-+ * Ses Button.
-+ *
-+ * Parameters : [OUT] pusValue - Address of short word that the Wireless Ses
-+ * Button GPIO pin is returned in.
-+ *
-+ * Returns : BP_SUCCESS - Success, value is returned.
-+ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
-+ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
-+ * for the board.
-+ ***************************************************************************/
-+int BpGetWirelessSesBtnGpio( unsigned short *pusValue );
-+
-+/**************************************************************************
-+ * Name : BpGetWirelessSesExtIntr
-+ *
-+ * Description: This function returns the external interrupt number for the
-+ * Wireless Ses Button.
-+ *
-+ * Parameters : [OUT] pusValue - Address of short word that the Wireless Ses
-+ * external interrup is returned in.
-+ *
-+ * Returns : BP_SUCCESS - Success, value is returned.
-+ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
-+ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
-+ * for the board.
-+ ***************************************************************************/
-+int BpGetWirelessSesExtIntr( unsigned short *pusValue );
-+
-+/**************************************************************************
-+ * Name : BpGetWirelessSesLedGpio
-+ *
-+ * Description: This function returns the GPIO pin assignment for the Wireless
-+ * Ses Led.
-+ *
-+ * Parameters : [OUT] pusValue - Address of short word that the Wireless Ses
-+ * Led GPIO pin is returned in.
-+ *
-+ * Returns : BP_SUCCESS - Success, value is returned.
-+ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
-+ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
-+ * for the board.
-+ ***************************************************************************/
-+int BpGetWirelessSesLedGpio( unsigned short *pusValue );
-+
-+/**************************************************************************
-+ * Name : BpGetUsbLedGpio
-+ *
-+ * Description: This function returns the GPIO pin assignment for the USB
-+ * LED.
-+ *
-+ * Parameters : [OUT] pusValue - Address of short word that the USB LED
-+ * GPIO pin is returned in.
-+ *
-+ * Returns : BP_SUCCESS - Success, value is returned.
-+ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
-+ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
-+ * for the board.
-+ ***************************************************************************/
-+int BpGetUsbLedGpio( unsigned short *pusValue );
-+
-+/**************************************************************************
-+ * Name : BpGetHpnaLedGpio
-+ *
-+ * Description: This function returns the GPIO pin assignment for the HPNA
-+ * LED.
-+ *
-+ * Parameters : [OUT] pusValue - Address of short word that the HPNA LED
-+ * GPIO pin is returned in.
-+ *
-+ * Returns : BP_SUCCESS - Success, value is returned.
-+ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
-+ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
-+ * for the board.
-+ ***************************************************************************/
-+int BpGetHpnaLedGpio( unsigned short *pusValue );
-+
-+/**************************************************************************
-+ * Name : BpGetWanDataLedGpio
-+ *
-+ * Description: This function returns the GPIO pin assignment for the WAN Data
-+ * LED.
-+ *
-+ * Parameters : [OUT] pusValue - Address of short word that the WAN Data LED
-+ * GPIO pin is returned in.
-+ *
-+ * Returns : BP_SUCCESS - Success, value is returned.
-+ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
-+ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
-+ * for the board.
-+ ***************************************************************************/
-+int BpGetWanDataLedGpio( unsigned short *pusValue );
-+
-+/**************************************************************************
-+ * Name : BpGetPppLedGpio
-+ *
-+ * Description: This function returns the GPIO pin assignment for the PPP
-+ * LED.
-+ *
-+ * Parameters : [OUT] pusValue - Address of short word that the PPP LED
-+ * GPIO pin is returned in.
-+ *
-+ * Returns : BP_SUCCESS - Success, value is returned.
-+ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
-+ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
-+ * for the board.
-+ ***************************************************************************/
-+int BpGetPppLedGpio( unsigned short *pusValue );
-+
-+/**************************************************************************
-+ * Name : BpGetPppFailLedGpio
-+ *
-+ * Description: This function returns the GPIO pin assignment for the PPP
-+ * LED that is used when there is a PPP connection failure.
-+ *
-+ * Parameters : [OUT] pusValue - Address of short word that the PPP LED
-+ * GPIO pin is returned in.
-+ *
-+ * Returns : BP_SUCCESS - Success, value is returned.
-+ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
-+ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
-+ * for the board.
-+ ***************************************************************************/
-+int BpGetPppFailLedGpio( unsigned short *pusValue );
-+
-+/**************************************************************************
-+ * Name : BpGetVoipLedGpio
-+ *
-+ * Description: This function returns the GPIO pin assignment for the VOIP
-+ * LED.
-+ *
-+ * Parameters : [OUT] pusValue - Address of short word that the VOIP LED
-+ * GPIO pin is returned in.
-+ *
-+ * Returns : BP_SUCCESS - Success, value is returned.
-+ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
-+ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
-+ * for the board.
-+ ***************************************************************************/
-+int BpGetVoipLedGpio( unsigned short *pusValue );
-+
-+/**************************************************************************
-+ * Name : BpGetBootloaderPowerOnLedGpio
-+ *
-+ * Description: This function returns the GPIO pin assignment for the power
-+ * on LED that is set by the bootloader.
-+ *
-+ * Parameters : [OUT] pusValue - Address of short word that the alarm LED
-+ * GPIO pin is returned in.
-+ *
-+ * Returns : BP_SUCCESS - Success, value is returned.
-+ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
-+ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
-+ * for the board.
-+ ***************************************************************************/
-+int BpGetBootloaderPowerOnLedGpio( unsigned short *pusValue );
-+
-+/**************************************************************************
-+ * Name : BpGetBootloaderAlarmLedGpio
-+ *
-+ * Description: This function returns the GPIO pin assignment for the alarm
-+ * LED that is set by the bootloader.
-+ *
-+ * Parameters : [OUT] pusValue - Address of short word that the alarm LED
-+ * GPIO pin is returned in.
-+ *
-+ * Returns : BP_SUCCESS - Success, value is returned.
-+ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
-+ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
-+ * for the board.
-+ ***************************************************************************/
-+int BpGetBootloaderAlarmLedGpio( unsigned short *pusValue );
-+
-+/**************************************************************************
-+ * Name : BpGetBootloaderResetCfgLedGpio
-+ *
-+ * Description: This function returns the GPIO pin assignment for the reset
-+ * configuration LED that is set by the bootloader.
-+ *
-+ * Parameters : [OUT] pusValue - Address of short word that the reset
-+ * configuration LED GPIO pin is returned in.
-+ *
-+ * Returns : BP_SUCCESS - Success, value is returned.
-+ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
-+ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
-+ * for the board.
-+ ***************************************************************************/
-+int BpGetBootloaderResetCfgLedGpio( unsigned short *pusValue );
-+
-+/**************************************************************************
-+ * Name : BpGetBootloaderStopLedGpio
-+ *
-+ * Description: This function returns the GPIO pin assignment for the break
-+ * into bootloader LED that is set by the bootloader.
-+ *
-+ * Parameters : [OUT] pusValue - Address of short word that the break into
-+ * bootloader LED GPIO pin is returned in.
-+ *
-+ * Returns : BP_SUCCESS - Success, value is returned.
-+ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
-+ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
-+ * for the board.
-+ ***************************************************************************/
-+int BpGetBootloaderStopLedGpio( unsigned short *pusValue );
-+
-+/**************************************************************************
-+ * Name : BpGetWirelessExtIntr
-+ *
-+ * Description: This function returns the Wireless external interrupt number.
-+ *
-+ * Parameters : [OUT] pulValue - Address of short word that the wireless
-+ * external interrupt number is returned in.
-+ *
-+ * Returns : BP_SUCCESS - Success, value is returned.
-+ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
-+ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
-+ * for the board.
-+ ***************************************************************************/
-+int BpGetWirelessExtIntr( unsigned long *pulValue );
-+
-+/**************************************************************************
-+ * Name : BpGetAdslDyingGaspExtIntr
-+ *
-+ * Description: This function returns the ADSL Dying Gasp external interrupt
-+ * number.
-+ *
-+ * Parameters : [OUT] pulValue - Address of short word that the ADSL Dying Gasp
-+ * external interrupt number is returned in.
-+ *
-+ * Returns : BP_SUCCESS - Success, value is returned.
-+ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
-+ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
-+ * for the board.
-+ ***************************************************************************/
-+int BpGetAdslDyingGaspExtIntr( unsigned long *pulValue );
-+
-+/**************************************************************************
-+ * Name : BpGetVoipExtIntr
-+ *
-+ * Description: This function returns the VOIP external interrupt number.
-+ *
-+ * Parameters : [OUT] pulValue - Address of short word that the VOIP
-+ * external interrupt number is returned in.
-+ * [IN] dspNum - Address of the DSP to query.
-+ *
-+ * Returns : BP_SUCCESS - Success, value is returned.
-+ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
-+ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
-+ * for the board.
-+ ***************************************************************************/
-+int BpGetVoipExtIntr( unsigned char dspNum, unsigned long *pulValue );
-+
-+/**************************************************************************
-+ * Name : BpGetHpnaExtIntr
-+ *
-+ * Description: This function returns the HPNA external interrupt number.
-+ *
-+ * Parameters : [OUT] pulValue - Address of short word that the HPNA
-+ * external interrupt number is returned in.
-+ *
-+ * Returns : BP_SUCCESS - Success, value is returned.
-+ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
-+ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
-+ * for the board.
-+ ***************************************************************************/
-+int BpGetHpnaExtIntr( unsigned long *pulValue );
-+
-+/**************************************************************************
-+ * Name : BpGetHpnaChipSelect
-+ *
-+ * Description: This function returns the HPNA chip select number.
-+ *
-+ * Parameters : [OUT] pulValue - Address of short word that the HPNA
-+ * chip select number is returned in.
-+ *
-+ * Returns : BP_SUCCESS - Success, value is returned.
-+ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
-+ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
-+ * for the board.
-+ ***************************************************************************/
-+int BpGetHpnaChipSelect( unsigned long *pulValue );
-+
-+/**************************************************************************
-+ * Name : BpGetVoipChipSelect
-+ *
-+ * Description: This function returns the VOIP chip select number.
-+ *
-+ * Parameters : [OUT] pulValue - Address of short word that the VOIP
-+ * chip select number is returned in.
-+ * [IN] dspNum - Address of the DSP to query.
-+ *
-+ * Returns : BP_SUCCESS - Success, value is returned.
-+ * BP_BOARD_ID_NOT_SET - Error, BpSetBoardId has not been called.
-+ * BP_VALUE_NOT_DEFINED - At least one return value is not defined
-+ * for the board.
-+ ***************************************************************************/
-+int BpGetVoipChipSelect( unsigned char dspNum, unsigned long *pulValue );
-+
-+#endif /* __ASSEMBLER__ */
-+
-+#if __cplusplus
-+}
-+#endif
-+
-+#endif /* _BOARDPARMS_H */
-+
-diff -urN linux.old/boardparms/bcm963xx/Makefile linux.dev/boardparms/bcm963xx/Makefile
---- linux.old/boardparms/bcm963xx/Makefile 1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/boardparms/bcm963xx/Makefile 2006-08-25 00:39:38.000000000 +0200
-@@ -0,0 +1,16 @@
-+
-+ifeq ($(CONFIG_MIPS_BRCM),y)
-+
-+# Linux
-+obj-y += boardparms.o
-+EXTRA_CFLAGS += -DCONFIG_BCM9$(BRCM_CHIP)
-+-include $(TOPDIR)/Rules.make
-+
-+else
-+
-+# CFE
-+BSPOBJS += boardparms.o
-+
-+endif
-+
-+
diff -urN linux.old/include/asm-mips/bootinfo.h linux.dev/include/asm-mips/bootinfo.h
--- linux.old/include/asm-mips/bootinfo.h 2006-08-25 00:43:22.000000000 +0200
+++ linux.dev/include/asm-mips/bootinfo.h 2006-08-25 00:39:38.000000000 +0200