more cleanups
authorFelix Fietkau <nbd@openwrt.org>
Fri, 25 Aug 2006 14:02:28 +0000 (14:02 +0000)
committerFelix Fietkau <nbd@openwrt.org>
Fri, 25 Aug 2006 14:02:28 +0000 (14:02 +0000)
SVN-Revision: 4668

openwrt/target/linux/brcm63xx-2.6/config
openwrt/target/linux/brcm63xx-2.6/patches/001-bcm963xx.patch

index 50c4cfc3b67ccf41b36a0ead1fa249cab423e1d6..19968aaff2c54d05a1d595839cb46d23884ef036 100644 (file)
@@ -1251,7 +1251,7 @@ CONFIG_DETECT_SOFTLOCKUP=y
 # CONFIG_DEBUG_SPINLOCK is not set
 # CONFIG_DEBUG_SPINLOCK_SLEEP is not set
 # CONFIG_DEBUG_KOBJECT is not set
-CONFIG_DEBUG_INFO=y
+# CONFIG_DEBUG_INFO is not set
 CONFIG_DEBUG_FS=y
 # CONFIG_DEBUG_VM is not set
 CONFIG_FORCED_INLINING=y
index abf9a7b74a28c3bbd90f5efb069fac2cc8e0cf4d..533418de337fd4b9d96f75063fc041eddf105467 100644 (file)
@@ -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