Update brcm63xx patch to run on 2.6.19, remove binary hacks patch till we update...
[openwrt.git] / target / linux / brcm63xx-2.6 / patches / 001-bcm963xx.patch
index 23d0d69..c5a74e0 100644 (file)
@@ -1,6 +1,221 @@
-diff -urN linux.old/arch/mips/bcm963xx/bcm63xx_led.c linux.dev/arch/mips/bcm963xx/bcm63xx_led.c
---- linux.old/arch/mips/bcm963xx/bcm63xx_led.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/arch/mips/bcm963xx/bcm63xx_led.c 2006-08-25 00:39:38.000000000 +0200
+diff -urN linux-2.6.19/arch/mips/Kconfig linux-2.6.19.new/arch/mips/Kconfig
+--- linux-2.6.19/arch/mips/Kconfig     2006-11-29 22:57:37.000000000 +0100
++++ linux-2.6.19.new/arch/mips/Kconfig 2006-12-16 18:46:31.000000000 +0100
+@@ -12,6 +12,15 @@
+       prompt "System type"
+       default SGI_IP22
++config BCM963XX 
++      bool "Support for the Broadcom boards"
++      select SYS_SUPPORTS_32BIT_KERNEL
++      select SYS_SUPPORTS_BIG_ENDIAN
++      select SYS_HAS_CPU_MIPS32_R1
++      select IRQ_CPU
++      help
++       This is a fmaily of boards based on the Broadcom MIPS32
++
+ config MIPS_MTX1
+       bool "4G Systems MTX-1 board"
+       select DMA_NONCOHERENT
+@@ -766,6 +775,7 @@
+ endchoice
++source "arch/mips/bcm963xx/Kconfig"
+ source "arch/mips/ddb5xxx/Kconfig"
+ source "arch/mips/gt64120/ev64120/Kconfig"
+ source "arch/mips/jazz/Kconfig"
+diff -urN linux-2.6.19/arch/mips/Makefile linux-2.6.19.new/arch/mips/Makefile
+--- linux-2.6.19/arch/mips/Makefile    2006-12-16 17:36:29.000000000 +0100
++++ linux-2.6.19.new/arch/mips/Makefile        2006-12-16 18:46:31.000000000 +0100
+@@ -158,6 +158,15 @@
+ #
+ #
++# Broadcom board
++#
++core-$(CONFIG_BCM963XX)       += arch/mips/bcm963xx/
++cflags-$(CONFIG_BCM963XX)             += -Iinclude/asm-mips/mach-bcm963xx
++cflags-$(CONFIG_BCM963XX)             += -Iarch/mips/bcm963xx/include
++load-$(CONFIG_BCM963XX)       += 0xffffffff80010000
++
++
++#
+ # Acer PICA 61, Mips Magnum 4000 and Olivetti M700.
+ #
+ core-$(CONFIG_MACH_JAZZ)      += arch/mips/jazz/
+diff -urN linux-2.6.19/arch/mips/bcm963xx/Kconfig linux-2.6.19.new/arch/mips/bcm963xx/Kconfig
+--- linux-2.6.19/arch/mips/bcm963xx/Kconfig    1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.19.new/arch/mips/bcm963xx/Kconfig        2006-12-16 18:46:31.000000000 +0100
+@@ -0,0 +1,138 @@
++# Kernel and Driver configuration for Broadcom Commengine ADSL board
++choice
++      prompt "Broadcom Commengine ADSL board"
++      depends on BCM963XX
++      default BCM96345
++      help
++        Select different Broadcom ADSL board
++
++config BCM96338
++      bool "96338 ADSL board"
++      select DMA_NONCOHERENT
++      select HW_HAS_PCI
++
++config BCM96345
++      bool "96345 ADSL board"
++      select DMA_NONCOHERENT
++      select HW_HAS_PCI
++
++config BCM96348
++      bool "96348 ADSL board"
++      select DMA_NONCOHERENT
++      select HW_HAS_PCI
++
++endchoice
++
++config BCM_BOARD
++      bool "Support for Broadcom Board"
++      depends on BCM96338 || BCM96345 || BCM96348
++
++config BCM_SERIAL
++      bool "Support for Serial Port"
++      depends on BCM96338 || BCM96345 || BCM96348
++
++config BCM_ENET
++      tristate "Support for Ethernet"
++      depends on BCM96338 || BCM96345 || BCM96348
++
++config BCM_USB
++      tristate "Support for USB"
++      depends on BCM96338 || BCM96345 || BCM96348
++
++config BCM_WLAN
++      tristate "Support for Wireless"
++      depends on BCM96338 || BCM96345 || BCM96348
++
++config BCM_PCI
++      bool "Support for PCI"
++      depends on BCM96338 || BCM96345 || BCM96348
++      select PCI
++
++config BCM_ATMAPI
++      tristate "Support for ATM"
++      depends on BCM96338 || BCM96345 || BCM96348
++
++config BCM_ATMTEST
++      tristate "Support for ATM Diagnostic"
++      depends on BCM96338 || BCM96345 || BCM96348
++
++config BCM_ADSL
++      tristate "Support for ADSL"
++      depends on BCM96338 || BCM96345 || BCM96348
++
++config BCM_ENDPOINT
++      tristate "Support for VOICE"
++      depends on BCM96338 || BCM96345 || BCM96348
++
++config BCM_PROCFS
++      tristate "Support for PROCFS"
++      depends on BCM96338 || BCM96345 || BCM96348
++
++config BCM_VDSL
++      tristate "Support for VDSL"
++      depends on BCM96338 || BCM96345 || BCM96348
++
++config BCM_SECURITY
++      tristate "Support for SECURITY"
++      depends on BCM96338 || BCM96345 || BCM96348
++
++config BCM_HPNA
++      tristate "Support for HPNA"
++      depends on BCM96338 || BCM96345 || BCM96348
++
++config BCM_BOARD_IMPL
++      int "Implementation index for ADSL Board"
++      depends on BCM96338 || BCM96345 || BCM96348
++
++config BCM_SERIAL_IMPL
++      int "Implementation index for Serial"
++      depends on BCM96338 || BCM96345 || BCM96348
++
++config BCM_ENET_IMPL
++      int "Implementation index for Ethernet"
++      depends on BCM96338 || BCM96345 || BCM96348
++
++config BCM_USB_IMPL
++      int "Implementation index for USB"
++      depends on BCM96338 || BCM96345 || BCM96348
++
++config BCM_WLAN_IMPL
++      int "Implementation index for WIRELESS"
++      depends on BCM96338 || BCM96345 || BCM96348
++
++config BCM_ATMAPI_IMPL
++      int "Implementation index for ATM"
++      depends on BCM96338 || BCM96345 || BCM96348
++
++config BCM_ATMTEST_IMPL
++      int "Implementation index for ATM Diagnostic"
++      depends on BCM96338 || BCM96345 || BCM96348
++
++config BCM_BLAA_IMPL
++      int "Implementation index for BLAA"
++      depends on BCM96338 || BCM96345 || BCM96348
++
++config BCM_ADSL_IMPL
++      int "Implementation index for ADSL"
++      depends on BCM96338 || BCM96345 || BCM96348
++
++config BCM_ENDPOINT_IMPL
++      int "Implementation index for VOICE"
++      depends on BCM96338 || BCM96345 || BCM96348
++
++config BCM_PROCFS_IMPL
++      int "Implementation index for PROCFS"
++      depends on BCM96338 || BCM96345 || BCM96348
++
++config BCM_VDSL_IMPL
++      int "Implementation index for VDSL"
++      depends on BCM96338 || BCM96345 || BCM96348
++
++config BCM_SECURITY_IMPL
++      int "Implementation index for SECURITY"
++      depends on BCM96338 || BCM96345 || BCM96348
++
++config BCM_HPNA_IMPL
++      int "Implementation index for HPNA"
++      depends on BCM96338 || BCM96345 || BCM96348
++
+diff -urN linux-2.6.19/arch/mips/bcm963xx/Makefile linux-2.6.19.new/arch/mips/bcm963xx/Makefile
+--- linux-2.6.19/arch/mips/bcm963xx/Makefile   1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.19.new/arch/mips/bcm963xx/Makefile       2006-12-16 18:46:31.000000000 +0100
+@@ -0,0 +1,23 @@
++#
++# Makefile for generic Broadcom MIPS boards
++#
++# Copyright (C) 2004 Broadcom Corporation
++#
++obj-y           := irq.o prom.o setup.o time.o ser_init.o bcm63xx_led.o  board.o  boardparms.o int-handler.o
++
++SRCBASE         := $(TOPDIR)
++EXTRA_CFLAGS    += -I$(SRCBASE)/include
++#EXTRA_CFLAGS    += -I$(INC_ADSLDRV_PATH) -DDBG
++EXTRA_CFLAGS    += -I$(INC_ADSLDRV_PATH) 
++
++
++ifeq "$(ADSL)" "ANNEX_B"
++EXTRA_CFLAGS += -DADSL_ANNEXB
++endif
++ifeq "$(ADSL)" "SADSL"
++EXTRA_CFLAGS += -DADSL_SADSL
++endif
++ifeq "$(ADSL)" "ANNEX_C"
++EXTRA_CFLAGS += -DADSL_ANNEXC
++endif
++
+diff -urN linux-2.6.19/arch/mips/bcm963xx/bcm63xx_led.c linux-2.6.19.new/arch/mips/bcm963xx/bcm63xx_led.c
+--- linux-2.6.19/arch/mips/bcm963xx/bcm63xx_led.c      1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.19.new/arch/mips/bcm963xx/bcm63xx_led.c  2006-12-16 18:46:31.000000000 +0100
 @@ -0,0 +1,582 @@
 +/*
 +<:copyright-gpl 
@@ -584,9 +799,9 @@ diff -urN linux.old/arch/mips/bcm963xx/bcm63xx_led.c linux.dev/arch/mips/bcm963x
 +    }
 +}
 +
-diff -urN linux.old/arch/mips/bcm963xx/board.c linux.dev/arch/mips/bcm963xx/board.c
---- linux.old/arch/mips/bcm963xx/board.c       1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/arch/mips/bcm963xx/board.c       2006-08-27 21:02:04.000000000 +0200
+diff -urN linux-2.6.19/arch/mips/bcm963xx/board.c linux-2.6.19.new/arch/mips/bcm963xx/board.c
+--- linux-2.6.19/arch/mips/bcm963xx/board.c    1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.19.new/arch/mips/bcm963xx/board.c        2006-12-16 18:46:31.000000000 +0100
 @@ -0,0 +1,559 @@
 +/*
 +<:copyright-gpl 
@@ -710,7 +925,7 @@ diff -urN linux.old/arch/mips/bcm963xx/board.c linux.dev/arch/mips/bcm963xx/boar
 +
 +/* DyingGasp function prototype */
 +static void __init kerSysDyingGaspMapIntr(void);
-+static irqreturn_t kerSysDyingGaspIsr(int irq, void * dev_id, struct pt_regs * regs);
++static irqreturn_t kerSysDyingGaspIsr(int irq, void * dev_id);
 +static void __init kerSysInitDyingGaspHandler( void );
 +static void __exit kerSysDeinitDyingGaspHandler( void );
 +/* -DyingGasp function prototype - */
@@ -982,7 +1197,7 @@ diff -urN linux.old/arch/mips/bcm963xx/board.c linux.dev/arch/mips/bcm963xx/boar
 +}
 +
 +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0))
-+static irqreturn_t kerSysDyingGaspIsr(int irq, void * dev_id, struct pt_regs * regs)
++static irqreturn_t kerSysDyingGaspIsr(int irq, void * dev_id)
 +#else
 +static unsigned int kerSysDyingGaspIsr(void)
 +#endif
@@ -1147,9 +1362,9 @@ diff -urN linux.old/arch/mips/bcm963xx/board.c linux.dev/arch/mips/bcm963xx/boar
 +EXPORT_SYMBOL(kerSysSetWdTimer);
 +EXPORT_SYMBOL(kerSysWakeupMonitorTask);
 +
-diff -urN linux.old/arch/mips/bcm963xx/boardparms.c linux.dev/arch/mips/bcm963xx/boardparms.c
---- linux.old/arch/mips/bcm963xx/boardparms.c  1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/arch/mips/bcm963xx/boardparms.c  2006-08-25 00:39:38.000000000 +0200
+diff -urN linux-2.6.19/arch/mips/bcm963xx/boardparms.c linux-2.6.19.new/arch/mips/bcm963xx/boardparms.c
+--- linux-2.6.19/arch/mips/bcm963xx/boardparms.c       1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.19.new/arch/mips/bcm963xx/boardparms.c   2006-12-16 18:46:31.000000000 +0100
 @@ -0,0 +1,2391 @@
 +/*
 +<:copyright-gpl 
@@ -3542,9 +3757,9 @@ diff -urN linux.old/arch/mips/bcm963xx/boardparms.c linux.dev/arch/mips/bcm963xx
 +    return( nRet );
 +} /* BpGetVoipChipSelect */
 +
-diff -urN linux.old/arch/mips/bcm963xx/boardparms.h linux.dev/arch/mips/bcm963xx/boardparms.h
---- linux.old/arch/mips/bcm963xx/boardparms.h  1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/arch/mips/bcm963xx/boardparms.h  2006-08-25 00:39:38.000000000 +0200
+diff -urN linux-2.6.19/arch/mips/bcm963xx/boardparms.h linux-2.6.19.new/arch/mips/bcm963xx/boardparms.h
+--- linux-2.6.19/arch/mips/bcm963xx/boardparms.h       1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.19.new/arch/mips/bcm963xx/boardparms.h   2006-12-16 18:46:31.000000000 +0100
 @@ -0,0 +1,758 @@
 +/*
 +<:copyright-gpl 
@@ -4304,9 +4519,9 @@ diff -urN linux.old/arch/mips/bcm963xx/boardparms.h linux.dev/arch/mips/bcm963xx
 +
 +#endif /* _BOARDPARMS_H */
 +
-diff -urN linux.old/arch/mips/bcm963xx/include/6338_intr.h linux.dev/arch/mips/bcm963xx/include/6338_intr.h
---- linux.old/arch/mips/bcm963xx/include/6338_intr.h   1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/arch/mips/bcm963xx/include/6338_intr.h   2006-08-25 00:39:38.000000000 +0200
+diff -urN linux-2.6.19/arch/mips/bcm963xx/include/6338_intr.h linux-2.6.19.new/arch/mips/bcm963xx/include/6338_intr.h
+--- linux-2.6.19/arch/mips/bcm963xx/include/6338_intr.h        1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.19.new/arch/mips/bcm963xx/include/6338_intr.h    2006-12-16 18:46:31.000000000 +0100
 @@ -0,0 +1,64 @@
 +/*
 +<:copyright-gpl 
@@ -4372,9 +4587,9 @@ diff -urN linux.old/arch/mips/bcm963xx/include/6338_intr.h linux.dev/arch/mips/b
 +
 +#endif  /* __BCM6338_H */
 +
-diff -urN linux.old/arch/mips/bcm963xx/include/6338_map_part.h linux.dev/arch/mips/bcm963xx/include/6338_map_part.h
---- linux.old/arch/mips/bcm963xx/include/6338_map_part.h       1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/arch/mips/bcm963xx/include/6338_map_part.h       2006-08-25 00:39:38.000000000 +0200
+diff -urN linux-2.6.19/arch/mips/bcm963xx/include/6338_map_part.h linux-2.6.19.new/arch/mips/bcm963xx/include/6338_map_part.h
+--- linux-2.6.19/arch/mips/bcm963xx/include/6338_map_part.h    1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.19.new/arch/mips/bcm963xx/include/6338_map_part.h        2006-12-16 18:46:31.000000000 +0100
 @@ -0,0 +1,334 @@
 +/*
 +<:copyright-gpl 
@@ -4710,9 +4925,9 @@ diff -urN linux.old/arch/mips/bcm963xx/include/6338_map_part.h linux.dev/arch/mi
 +
 +#endif
 +
-diff -urN linux.old/arch/mips/bcm963xx/include/6345_intr.h linux.dev/arch/mips/bcm963xx/include/6345_intr.h
---- linux.old/arch/mips/bcm963xx/include/6345_intr.h   1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/arch/mips/bcm963xx/include/6345_intr.h   2006-08-25 00:39:38.000000000 +0200
+diff -urN linux-2.6.19/arch/mips/bcm963xx/include/6345_intr.h linux-2.6.19.new/arch/mips/bcm963xx/include/6345_intr.h
+--- linux-2.6.19/arch/mips/bcm963xx/include/6345_intr.h        1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.19.new/arch/mips/bcm963xx/include/6345_intr.h    2006-12-16 18:46:31.000000000 +0100
 @@ -0,0 +1,72 @@
 +/*
 +<:copyright-gpl 
@@ -4786,9 +5001,9 @@ diff -urN linux.old/arch/mips/bcm963xx/include/6345_intr.h linux.dev/arch/mips/b
 +
 +#endif  /* __BCM6345_H */
 +
-diff -urN linux.old/arch/mips/bcm963xx/include/6345_map_part.h linux.dev/arch/mips/bcm963xx/include/6345_map_part.h
---- linux.old/arch/mips/bcm963xx/include/6345_map_part.h       1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/arch/mips/bcm963xx/include/6345_map_part.h       2006-08-25 00:39:38.000000000 +0200
+diff -urN linux-2.6.19/arch/mips/bcm963xx/include/6345_map_part.h linux-2.6.19.new/arch/mips/bcm963xx/include/6345_map_part.h
+--- linux-2.6.19/arch/mips/bcm963xx/include/6345_map_part.h    1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.19.new/arch/mips/bcm963xx/include/6345_map_part.h        2006-12-16 18:46:31.000000000 +0100
 @@ -0,0 +1,163 @@
 +/*
 +<:copyright-gpl 
@@ -4953,9 +5168,9 @@ diff -urN linux.old/arch/mips/bcm963xx/include/6345_map_part.h linux.dev/arch/mi
 +
 +#endif
 +
-diff -urN linux.old/arch/mips/bcm963xx/include/6348_intr.h linux.dev/arch/mips/bcm963xx/include/6348_intr.h
---- linux.old/arch/mips/bcm963xx/include/6348_intr.h   1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/arch/mips/bcm963xx/include/6348_intr.h   2006-08-25 00:39:38.000000000 +0200
+diff -urN linux-2.6.19/arch/mips/bcm963xx/include/6348_intr.h linux-2.6.19.new/arch/mips/bcm963xx/include/6348_intr.h
+--- linux-2.6.19/arch/mips/bcm963xx/include/6348_intr.h        1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.19.new/arch/mips/bcm963xx/include/6348_intr.h    2006-12-16 18:46:31.000000000 +0100
 @@ -0,0 +1,74 @@
 +/*
 +<:copyright-gpl 
@@ -5031,9 +5246,9 @@ diff -urN linux.old/arch/mips/bcm963xx/include/6348_intr.h linux.dev/arch/mips/b
 +
 +#endif  /* __BCM6348_H */
 +
-diff -urN linux.old/arch/mips/bcm963xx/include/6348_map_part.h linux.dev/arch/mips/bcm963xx/include/6348_map_part.h
---- linux.old/arch/mips/bcm963xx/include/6348_map_part.h       1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/arch/mips/bcm963xx/include/6348_map_part.h       2006-08-25 00:39:38.000000000 +0200
+diff -urN linux-2.6.19/arch/mips/bcm963xx/include/6348_map_part.h linux-2.6.19.new/arch/mips/bcm963xx/include/6348_map_part.h
+--- linux-2.6.19/arch/mips/bcm963xx/include/6348_map_part.h    1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.19.new/arch/mips/bcm963xx/include/6348_map_part.h        2006-12-16 18:46:31.000000000 +0100
 @@ -0,0 +1,500 @@
 +/*
 +<:copyright-gpl 
@@ -5535,13 +5750,13 @@ diff -urN linux.old/arch/mips/bcm963xx/include/6348_map_part.h linux.dev/arch/mi
 +
 +#endif
 +
-diff -urN linux.old/arch/mips/bcm963xx/include/bcm_intr.h linux.dev/arch/mips/bcm963xx/include/bcm_intr.h
---- linux.old/arch/mips/bcm963xx/include/bcm_intr.h    1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/arch/mips/bcm963xx/include/bcm_intr.h    2006-08-25 00:39:38.000000000 +0200
-@@ -0,0 +1,59 @@
+diff -urN linux-2.6.19/arch/mips/bcm963xx/include/bcmTag.h linux-2.6.19.new/arch/mips/bcm963xx/include/bcmTag.h
+--- linux-2.6.19/arch/mips/bcm963xx/include/bcmTag.h   1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.19.new/arch/mips/bcm963xx/include/bcmTag.h       2006-12-16 18:46:31.000000000 +0100
+@@ -0,0 +1,153 @@
 +/*
 +<:copyright-gpl 
-+ Copyright 2003 Broadcom Corp. All Rights Reserved. 
++ Copyright 2002 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 
@@ -5557,50 +5772,207 @@ diff -urN linux.old/arch/mips/bcm963xx/include/bcm_intr.h linux.dev/arch/mips/bc
 + 59 Temple Place - Suite 330, Boston MA 02111-1307, USA. 
 +:>
 +*/
++//**************************************************************************************
++// File Name  : bcmTag.h
++//
++// Description: add tag with validation system to the firmware image file to be uploaded
++//              via http
++//
++// Created    : 02/28/2002  seanl
++//**************************************************************************************
 +
-+#ifndef __BCM_INTR_H
-+#define __BCM_INTR_H
++#ifndef _BCMTAG_H_
++#define _BCMTAG_H_
 +
-+#ifdef __cplusplus
-+    extern "C" {
-+#endif
 +
-+#if defined(CONFIG_BCM96338)
-+#include <6338_intr.h>
-+#endif
-+#if defined(CONFIG_BCM96345)
-+#include <6345_intr.h>
-+#endif
-+#if defined(CONFIG_BCM96348)
-+#include <6348_intr.h>
-+#endif
++#define BCM_SIG_1   "Broadcom Corporation"
++#define BCM_SIG_2   "ver. 2.0"          // was "firmware version 2.0" now it is split 6 char out for chip id.
 +
-+/* defines */
-+struct pt_regs;
-+typedef int (*FN_HANDLER) (int, void *, struct pt_regs *);
++#define BCM_TAG_VER         "6"
++#define BCM_TAG_VER_LAST    "26"
 +
-+/* prototypes */
-+extern void enable_brcm_irq(unsigned int irq);
-+extern void disable_brcm_irq(unsigned int irq);
-+extern int request_external_irq(unsigned int irq,
-+    FN_HANDLER handler, unsigned long irqflags, 
-+    const char * devname, void *dev_id);
-+extern unsigned int BcmHalMapInterrupt(FN_HANDLER isr, unsigned int param,
-+    unsigned int interruptId);
-+extern void dump_intr_regs(void);
++// file tag (head) structure all is in clear text except validationTokens (crc, md5, sha1, etc). Total: 128 unsigned chars
++#define TAG_LEN         256
++#define TAG_VER_LEN     4
++#define SIG_LEN         20
++#define SIG_LEN_2       14   // Original second SIG = 20 is now devided into 14 for SIG_LEN_2 and 6 for CHIP_ID
++#define CHIP_ID_LEN           6       
++#define IMAGE_LEN       10
++#define ADDRESS_LEN     12
++#define FLAG_LEN        2
++#define TOKEN_LEN       20
++#define BOARD_ID_LEN    16
++#define RESERVED_LEN    (TAG_LEN - TAG_VER_LEN - SIG_LEN - SIG_LEN_2 - CHIP_ID_LEN - BOARD_ID_LEN - \
++                        (4*IMAGE_LEN) - (3*ADDRESS_LEN) - (3*FLAG_LEN) - (2*TOKEN_LEN))
 +
-+/* compatibility definitions */
-+#define BcmHalInterruptEnable(irq)      enable_brcm_irq( irq )
-+#define BcmHalInterruptDisable(irq)     disable_brcm_irq( irq )
 +
-+#ifdef __cplusplus
-+    }
++// TAG for downloadable image (kernel plus file system)
++typedef struct _FILE_TAG
++{
++    unsigned char tagVersion[TAG_VER_LEN];       // tag version.  Will be 2 here.
++    unsigned char signiture_1[SIG_LEN];          // text line for company info
++    unsigned char signiture_2[SIG_LEN_2];        // additional info (can be version number)
++    unsigned char chipId[CHIP_ID_LEN];                         // chip id 
++    unsigned char boardId[BOARD_ID_LEN];         // board id
++    unsigned char bigEndian[FLAG_LEN];           // if = 1 - big, = 0 - little endia of the host
++    unsigned char totalImageLen[IMAGE_LEN];      // the sum of all the following length
++    unsigned char cfeAddress[ADDRESS_LEN];       // if non zero, cfe starting address
++    unsigned char cfeLen[IMAGE_LEN];             // if non zero, cfe size in clear ASCII text.
++    unsigned char rootfsAddress[ADDRESS_LEN];    // if non zero, filesystem starting address
++    unsigned char rootfsLen[IMAGE_LEN];          // if non zero, filesystem size in clear ASCII text.
++    unsigned char kernelAddress[ADDRESS_LEN];    // if non zero, kernel starting address
++    unsigned char kernelLen[IMAGE_LEN];          // if non zero, kernel size in clear ASCII text.
++    unsigned char dualImage[FLAG_LEN];           // if 1, dual image
++    unsigned char inactiveLen[FLAG_LEN];         // if 1, the image is INACTIVE; if 0, active 
++    unsigned char reserved[RESERVED_LEN];        // reserved for later use
++    unsigned char imageValidationToken[TOKEN_LEN];// image validation token - can be crc, md5, sha;  for
++                                                 // now will be 4 unsigned char crc
++    unsigned char tagValidationToken[TOKEN_LEN]; // validation token for tag(from signiture_1 to end of // mageValidationToken)
++} FILE_TAG, *PFILE_TAG;
++
++#define CRC32_INIT_VALUE 0xffffffff /* Initial CRC32 checksum value */
++#define CRC_LEN 4
++
++// only included if for bcmTag.exe program
++#ifdef BCMTAG_EXE_USE
++
++static unsigned long Crc32_table[256] = {
++    0x00000000, 0x77073096, 0xEE0E612C, 0x990951BA,
++    0x076DC419, 0x706AF48F, 0xE963A535, 0x9E6495A3,
++    0x0EDB8832, 0x79DCB8A4, 0xE0D5E91E, 0x97D2D988,
++    0x09B64C2B, 0x7EB17CBD, 0xE7B82D07, 0x90BF1D91,
++    0x1DB71064, 0x6AB020F2, 0xF3B97148, 0x84BE41DE,
++    0x1ADAD47D, 0x6DDDE4EB, 0xF4D4B551, 0x83D385C7,
++    0x136C9856, 0x646BA8C0, 0xFD62F97A, 0x8A65C9EC,
++    0x14015C4F, 0x63066CD9, 0xFA0F3D63, 0x8D080DF5,
++    0x3B6E20C8, 0x4C69105E, 0xD56041E4, 0xA2677172,
++    0x3C03E4D1, 0x4B04D447, 0xD20D85FD, 0xA50AB56B,
++    0x35B5A8FA, 0x42B2986C, 0xDBBBC9D6, 0xACBCF940,
++    0x32D86CE3, 0x45DF5C75, 0xDCD60DCF, 0xABD13D59,
++    0x26D930AC, 0x51DE003A, 0xC8D75180, 0xBFD06116,
++    0x21B4F4B5, 0x56B3C423, 0xCFBA9599, 0xB8BDA50F,
++    0x2802B89E, 0x5F058808, 0xC60CD9B2, 0xB10BE924,
++    0x2F6F7C87, 0x58684C11, 0xC1611DAB, 0xB6662D3D,
++    0x76DC4190, 0x01DB7106, 0x98D220BC, 0xEFD5102A,
++    0x71B18589, 0x06B6B51F, 0x9FBFE4A5, 0xE8B8D433,
++    0x7807C9A2, 0x0F00F934, 0x9609A88E, 0xE10E9818,
++    0x7F6A0DBB, 0x086D3D2D, 0x91646C97, 0xE6635C01,
++    0x6B6B51F4, 0x1C6C6162, 0x856530D8, 0xF262004E,
++    0x6C0695ED, 0x1B01A57B, 0x8208F4C1, 0xF50FC457,
++    0x65B0D9C6, 0x12B7E950, 0x8BBEB8EA, 0xFCB9887C,
++    0x62DD1DDF, 0x15DA2D49, 0x8CD37CF3, 0xFBD44C65,
++    0x4DB26158, 0x3AB551CE, 0xA3BC0074, 0xD4BB30E2,
++    0x4ADFA541, 0x3DD895D7, 0xA4D1C46D, 0xD3D6F4FB,
++    0x4369E96A, 0x346ED9FC, 0xAD678846, 0xDA60B8D0,
++    0x44042D73, 0x33031DE5, 0xAA0A4C5F, 0xDD0D7CC9,
++    0x5005713C, 0x270241AA, 0xBE0B1010, 0xC90C2086,
++    0x5768B525, 0x206F85B3, 0xB966D409, 0xCE61E49F,
++    0x5EDEF90E, 0x29D9C998, 0xB0D09822, 0xC7D7A8B4,
++    0x59B33D17, 0x2EB40D81, 0xB7BD5C3B, 0xC0BA6CAD,
++    0xEDB88320, 0x9ABFB3B6, 0x03B6E20C, 0x74B1D29A,
++    0xEAD54739, 0x9DD277AF, 0x04DB2615, 0x73DC1683,
++    0xE3630B12, 0x94643B84, 0x0D6D6A3E, 0x7A6A5AA8,
++    0xE40ECF0B, 0x9309FF9D, 0x0A00AE27, 0x7D079EB1,
++    0xF00F9344, 0x8708A3D2, 0x1E01F268, 0x6906C2FE,
++    0xF762575D, 0x806567CB, 0x196C3671, 0x6E6B06E7,
++    0xFED41B76, 0x89D32BE0, 0x10DA7A5A, 0x67DD4ACC,
++    0xF9B9DF6F, 0x8EBEEFF9, 0x17B7BE43, 0x60B08ED5,
++    0xD6D6A3E8, 0xA1D1937E, 0x38D8C2C4, 0x4FDFF252,
++    0xD1BB67F1, 0xA6BC5767, 0x3FB506DD, 0x48B2364B,
++    0xD80D2BDA, 0xAF0A1B4C, 0x36034AF6, 0x41047A60,
++    0xDF60EFC3, 0xA867DF55, 0x316E8EEF, 0x4669BE79,
++    0xCB61B38C, 0xBC66831A, 0x256FD2A0, 0x5268E236,
++    0xCC0C7795, 0xBB0B4703, 0x220216B9, 0x5505262F,
++    0xC5BA3BBE, 0xB2BD0B28, 0x2BB45A92, 0x5CB36A04,
++    0xC2D7FFA7, 0xB5D0CF31, 0x2CD99E8B, 0x5BDEAE1D,
++    0x9B64C2B0, 0xEC63F226, 0x756AA39C, 0x026D930A,
++    0x9C0906A9, 0xEB0E363F, 0x72076785, 0x05005713,
++    0x95BF4A82, 0xE2B87A14, 0x7BB12BAE, 0x0CB61B38,
++    0x92D28E9B, 0xE5D5BE0D, 0x7CDCEFB7, 0x0BDBDF21,
++    0x86D3D2D4, 0xF1D4E242, 0x68DDB3F8, 0x1FDA836E,
++    0x81BE16CD, 0xF6B9265B, 0x6FB077E1, 0x18B74777,
++    0x88085AE6, 0xFF0F6A70, 0x66063BCA, 0x11010B5C,
++    0x8F659EFF, 0xF862AE69, 0x616BFFD3, 0x166CCF45,
++    0xA00AE278, 0xD70DD2EE, 0x4E048354, 0x3903B3C2,
++    0xA7672661, 0xD06016F7, 0x4969474D, 0x3E6E77DB,
++    0xAED16A4A, 0xD9D65ADC, 0x40DF0B66, 0x37D83BF0,
++    0xA9BCAE53, 0xDEBB9EC5, 0x47B2CF7F, 0x30B5FFE9,
++    0xBDBDF21C, 0xCABAC28A, 0x53B39330, 0x24B4A3A6,
++    0xBAD03605, 0xCDD70693, 0x54DE5729, 0x23D967BF,
++    0xB3667A2E, 0xC4614AB8, 0x5D681B02, 0x2A6F2B94,
++    0xB40BBE37, 0xC30C8EA1, 0x5A05DF1B, 0x2D02EF8D
++};
++#endif // BCMTAG_USE
++
++
++#endif // _BCMTAG_H_
++
+diff -urN linux-2.6.19/arch/mips/bcm963xx/include/bcm_intr.h linux-2.6.19.new/arch/mips/bcm963xx/include/bcm_intr.h
+--- linux-2.6.19/arch/mips/bcm963xx/include/bcm_intr.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.19.new/arch/mips/bcm963xx/include/bcm_intr.h     2006-12-16 18:46:31.000000000 +0100
+@@ -0,0 +1,59 @@
++/*
++<: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. 
++:>
++*/
++
++#ifndef __BCM_INTR_H
++#define __BCM_INTR_H
++
++#ifdef __cplusplus
++    extern "C" {
++#endif
++
++#if defined(CONFIG_BCM96338)
++#include <6338_intr.h>
++#endif
++#if defined(CONFIG_BCM96345)
++#include <6345_intr.h>
++#endif
++#if defined(CONFIG_BCM96348)
++#include <6348_intr.h>
++#endif
++
++/* defines */
++struct pt_regs;
++typedef int (*FN_HANDLER) (int, void *);
++
++/* prototypes */
++extern void enable_brcm_irq(unsigned int irq);
++extern void disable_brcm_irq(unsigned int irq);
++extern int request_external_irq(unsigned int irq,
++    FN_HANDLER handler, unsigned long irqflags, 
++    const char * devname, void *dev_id);
++extern unsigned int BcmHalMapInterrupt(FN_HANDLER isr, unsigned int param,
++    unsigned int interruptId);
++extern void dump_intr_regs(void);
++
++/* compatibility definitions */
++#define BcmHalInterruptEnable(irq)      enable_brcm_irq( irq )
++#define BcmHalInterruptDisable(irq)     disable_brcm_irq( irq )
++
++#ifdef __cplusplus
++    }
 +#endif
 +
 +#endif
-diff -urN linux.old/arch/mips/bcm963xx/include/bcm_map_part.h linux.dev/arch/mips/bcm963xx/include/bcm_map_part.h
---- linux.old/arch/mips/bcm963xx/include/bcm_map_part.h        1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/arch/mips/bcm963xx/include/bcm_map_part.h        2006-08-25 00:39:38.000000000 +0200
+diff -urN linux-2.6.19/arch/mips/bcm963xx/include/bcm_map_part.h linux-2.6.19.new/arch/mips/bcm963xx/include/bcm_map_part.h
+--- linux-2.6.19/arch/mips/bcm963xx/include/bcm_map_part.h     1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.19.new/arch/mips/bcm963xx/include/bcm_map_part.h 2006-12-16 18:46:31.000000000 +0100
 @@ -0,0 +1,34 @@
 +/*
 +<:copyright-gpl 
@@ -5636,9 +6008,9 @@ diff -urN linux.old/arch/mips/bcm963xx/include/bcm_map_part.h linux.dev/arch/mip
 +
 +#endif
 +
-diff -urN linux.old/arch/mips/bcm963xx/include/bcmpci.h linux.dev/arch/mips/bcm963xx/include/bcmpci.h
---- linux.old/arch/mips/bcm963xx/include/bcmpci.h      1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/arch/mips/bcm963xx/include/bcmpci.h      2006-08-25 00:39:38.000000000 +0200
+diff -urN linux-2.6.19/arch/mips/bcm963xx/include/bcmpci.h linux-2.6.19.new/arch/mips/bcm963xx/include/bcmpci.h
+--- linux-2.6.19/arch/mips/bcm963xx/include/bcmpci.h   1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.19.new/arch/mips/bcm963xx/include/bcmpci.h       2006-12-16 18:46:31.000000000 +0100
 @@ -0,0 +1,87 @@
 +/*
 +<:copyright-gpl 
@@ -5727,166 +6099,9 @@ diff -urN linux.old/arch/mips/bcm963xx/include/bcmpci.h linux.dev/arch/mips/bcm9
 +#define pcmciaIo            (pcmciaIoOffset   | pcmciaBase)
 +
 +#endif
-diff -urN linux.old/arch/mips/bcm963xx/include/bcmTag.h linux.dev/arch/mips/bcm963xx/include/bcmTag.h
---- linux.old/arch/mips/bcm963xx/include/bcmTag.h      1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/arch/mips/bcm963xx/include/bcmTag.h      2006-08-25 00:39:38.000000000 +0200
-@@ -0,0 +1,153 @@
-+/*
-+<:copyright-gpl 
-+ Copyright 2002 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  : bcmTag.h
-+//
-+// Description: add tag with validation system to the firmware image file to be uploaded
-+//              via http
-+//
-+// Created    : 02/28/2002  seanl
-+//**************************************************************************************
-+
-+#ifndef _BCMTAG_H_
-+#define _BCMTAG_H_
-+
-+
-+#define BCM_SIG_1   "Broadcom Corporation"
-+#define BCM_SIG_2   "ver. 2.0"          // was "firmware version 2.0" now it is split 6 char out for chip id.
-+
-+#define BCM_TAG_VER         "6"
-+#define BCM_TAG_VER_LAST    "26"
-+
-+// file tag (head) structure all is in clear text except validationTokens (crc, md5, sha1, etc). Total: 128 unsigned chars
-+#define TAG_LEN         256
-+#define TAG_VER_LEN     4
-+#define SIG_LEN         20
-+#define SIG_LEN_2       14   // Original second SIG = 20 is now devided into 14 for SIG_LEN_2 and 6 for CHIP_ID
-+#define CHIP_ID_LEN           6       
-+#define IMAGE_LEN       10
-+#define ADDRESS_LEN     12
-+#define FLAG_LEN        2
-+#define TOKEN_LEN       20
-+#define BOARD_ID_LEN    16
-+#define RESERVED_LEN    (TAG_LEN - TAG_VER_LEN - SIG_LEN - SIG_LEN_2 - CHIP_ID_LEN - BOARD_ID_LEN - \
-+                        (4*IMAGE_LEN) - (3*ADDRESS_LEN) - (3*FLAG_LEN) - (2*TOKEN_LEN))
-+
-+
-+// TAG for downloadable image (kernel plus file system)
-+typedef struct _FILE_TAG
-+{
-+    unsigned char tagVersion[TAG_VER_LEN];       // tag version.  Will be 2 here.
-+    unsigned char signiture_1[SIG_LEN];          // text line for company info
-+    unsigned char signiture_2[SIG_LEN_2];        // additional info (can be version number)
-+    unsigned char chipId[CHIP_ID_LEN];                         // chip id 
-+    unsigned char boardId[BOARD_ID_LEN];         // board id
-+    unsigned char bigEndian[FLAG_LEN];           // if = 1 - big, = 0 - little endia of the host
-+    unsigned char totalImageLen[IMAGE_LEN];      // the sum of all the following length
-+    unsigned char cfeAddress[ADDRESS_LEN];       // if non zero, cfe starting address
-+    unsigned char cfeLen[IMAGE_LEN];             // if non zero, cfe size in clear ASCII text.
-+    unsigned char rootfsAddress[ADDRESS_LEN];    // if non zero, filesystem starting address
-+    unsigned char rootfsLen[IMAGE_LEN];          // if non zero, filesystem size in clear ASCII text.
-+    unsigned char kernelAddress[ADDRESS_LEN];    // if non zero, kernel starting address
-+    unsigned char kernelLen[IMAGE_LEN];          // if non zero, kernel size in clear ASCII text.
-+    unsigned char dualImage[FLAG_LEN];           // if 1, dual image
-+    unsigned char inactiveLen[FLAG_LEN];         // if 1, the image is INACTIVE; if 0, active 
-+    unsigned char reserved[RESERVED_LEN];        // reserved for later use
-+    unsigned char imageValidationToken[TOKEN_LEN];// image validation token - can be crc, md5, sha;  for
-+                                                 // now will be 4 unsigned char crc
-+    unsigned char tagValidationToken[TOKEN_LEN]; // validation token for tag(from signiture_1 to end of // mageValidationToken)
-+} FILE_TAG, *PFILE_TAG;
-+
-+#define CRC32_INIT_VALUE 0xffffffff /* Initial CRC32 checksum value */
-+#define CRC_LEN 4
-+
-+// only included if for bcmTag.exe program
-+#ifdef BCMTAG_EXE_USE
-+
-+static unsigned long Crc32_table[256] = {
-+    0x00000000, 0x77073096, 0xEE0E612C, 0x990951BA,
-+    0x076DC419, 0x706AF48F, 0xE963A535, 0x9E6495A3,
-+    0x0EDB8832, 0x79DCB8A4, 0xE0D5E91E, 0x97D2D988,
-+    0x09B64C2B, 0x7EB17CBD, 0xE7B82D07, 0x90BF1D91,
-+    0x1DB71064, 0x6AB020F2, 0xF3B97148, 0x84BE41DE,
-+    0x1ADAD47D, 0x6DDDE4EB, 0xF4D4B551, 0x83D385C7,
-+    0x136C9856, 0x646BA8C0, 0xFD62F97A, 0x8A65C9EC,
-+    0x14015C4F, 0x63066CD9, 0xFA0F3D63, 0x8D080DF5,
-+    0x3B6E20C8, 0x4C69105E, 0xD56041E4, 0xA2677172,
-+    0x3C03E4D1, 0x4B04D447, 0xD20D85FD, 0xA50AB56B,
-+    0x35B5A8FA, 0x42B2986C, 0xDBBBC9D6, 0xACBCF940,
-+    0x32D86CE3, 0x45DF5C75, 0xDCD60DCF, 0xABD13D59,
-+    0x26D930AC, 0x51DE003A, 0xC8D75180, 0xBFD06116,
-+    0x21B4F4B5, 0x56B3C423, 0xCFBA9599, 0xB8BDA50F,
-+    0x2802B89E, 0x5F058808, 0xC60CD9B2, 0xB10BE924,
-+    0x2F6F7C87, 0x58684C11, 0xC1611DAB, 0xB6662D3D,
-+    0x76DC4190, 0x01DB7106, 0x98D220BC, 0xEFD5102A,
-+    0x71B18589, 0x06B6B51F, 0x9FBFE4A5, 0xE8B8D433,
-+    0x7807C9A2, 0x0F00F934, 0x9609A88E, 0xE10E9818,
-+    0x7F6A0DBB, 0x086D3D2D, 0x91646C97, 0xE6635C01,
-+    0x6B6B51F4, 0x1C6C6162, 0x856530D8, 0xF262004E,
-+    0x6C0695ED, 0x1B01A57B, 0x8208F4C1, 0xF50FC457,
-+    0x65B0D9C6, 0x12B7E950, 0x8BBEB8EA, 0xFCB9887C,
-+    0x62DD1DDF, 0x15DA2D49, 0x8CD37CF3, 0xFBD44C65,
-+    0x4DB26158, 0x3AB551CE, 0xA3BC0074, 0xD4BB30E2,
-+    0x4ADFA541, 0x3DD895D7, 0xA4D1C46D, 0xD3D6F4FB,
-+    0x4369E96A, 0x346ED9FC, 0xAD678846, 0xDA60B8D0,
-+    0x44042D73, 0x33031DE5, 0xAA0A4C5F, 0xDD0D7CC9,
-+    0x5005713C, 0x270241AA, 0xBE0B1010, 0xC90C2086,
-+    0x5768B525, 0x206F85B3, 0xB966D409, 0xCE61E49F,
-+    0x5EDEF90E, 0x29D9C998, 0xB0D09822, 0xC7D7A8B4,
-+    0x59B33D17, 0x2EB40D81, 0xB7BD5C3B, 0xC0BA6CAD,
-+    0xEDB88320, 0x9ABFB3B6, 0x03B6E20C, 0x74B1D29A,
-+    0xEAD54739, 0x9DD277AF, 0x04DB2615, 0x73DC1683,
-+    0xE3630B12, 0x94643B84, 0x0D6D6A3E, 0x7A6A5AA8,
-+    0xE40ECF0B, 0x9309FF9D, 0x0A00AE27, 0x7D079EB1,
-+    0xF00F9344, 0x8708A3D2, 0x1E01F268, 0x6906C2FE,
-+    0xF762575D, 0x806567CB, 0x196C3671, 0x6E6B06E7,
-+    0xFED41B76, 0x89D32BE0, 0x10DA7A5A, 0x67DD4ACC,
-+    0xF9B9DF6F, 0x8EBEEFF9, 0x17B7BE43, 0x60B08ED5,
-+    0xD6D6A3E8, 0xA1D1937E, 0x38D8C2C4, 0x4FDFF252,
-+    0xD1BB67F1, 0xA6BC5767, 0x3FB506DD, 0x48B2364B,
-+    0xD80D2BDA, 0xAF0A1B4C, 0x36034AF6, 0x41047A60,
-+    0xDF60EFC3, 0xA867DF55, 0x316E8EEF, 0x4669BE79,
-+    0xCB61B38C, 0xBC66831A, 0x256FD2A0, 0x5268E236,
-+    0xCC0C7795, 0xBB0B4703, 0x220216B9, 0x5505262F,
-+    0xC5BA3BBE, 0xB2BD0B28, 0x2BB45A92, 0x5CB36A04,
-+    0xC2D7FFA7, 0xB5D0CF31, 0x2CD99E8B, 0x5BDEAE1D,
-+    0x9B64C2B0, 0xEC63F226, 0x756AA39C, 0x026D930A,
-+    0x9C0906A9, 0xEB0E363F, 0x72076785, 0x05005713,
-+    0x95BF4A82, 0xE2B87A14, 0x7BB12BAE, 0x0CB61B38,
-+    0x92D28E9B, 0xE5D5BE0D, 0x7CDCEFB7, 0x0BDBDF21,
-+    0x86D3D2D4, 0xF1D4E242, 0x68DDB3F8, 0x1FDA836E,
-+    0x81BE16CD, 0xF6B9265B, 0x6FB077E1, 0x18B74777,
-+    0x88085AE6, 0xFF0F6A70, 0x66063BCA, 0x11010B5C,
-+    0x8F659EFF, 0xF862AE69, 0x616BFFD3, 0x166CCF45,
-+    0xA00AE278, 0xD70DD2EE, 0x4E048354, 0x3903B3C2,
-+    0xA7672661, 0xD06016F7, 0x4969474D, 0x3E6E77DB,
-+    0xAED16A4A, 0xD9D65ADC, 0x40DF0B66, 0x37D83BF0,
-+    0xA9BCAE53, 0xDEBB9EC5, 0x47B2CF7F, 0x30B5FFE9,
-+    0xBDBDF21C, 0xCABAC28A, 0x53B39330, 0x24B4A3A6,
-+    0xBAD03605, 0xCDD70693, 0x54DE5729, 0x23D967BF,
-+    0xB3667A2E, 0xC4614AB8, 0x5D681B02, 0x2A6F2B94,
-+    0xB40BBE37, 0xC30C8EA1, 0x5A05DF1B, 0x2D02EF8D
-+};
-+#endif // BCMTAG_USE
-+
-+
-+#endif // _BCMTAG_H_
-+
-diff -urN linux.old/arch/mips/bcm963xx/include/bcmtypes.h linux.dev/arch/mips/bcm963xx/include/bcmtypes.h
---- linux.old/arch/mips/bcm963xx/include/bcmtypes.h    1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/arch/mips/bcm963xx/include/bcmtypes.h    2006-08-25 00:39:38.000000000 +0200
+diff -urN linux-2.6.19/arch/mips/bcm963xx/include/bcmtypes.h linux-2.6.19.new/arch/mips/bcm963xx/include/bcmtypes.h
+--- linux-2.6.19/arch/mips/bcm963xx/include/bcmtypes.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.19.new/arch/mips/bcm963xx/include/bcmtypes.h     2006-12-16 18:46:31.000000000 +0100
 @@ -0,0 +1,163 @@
 +/*
 +<:copyright-gpl 
@@ -6051,9 +6266,9 @@ diff -urN linux.old/arch/mips/bcm963xx/include/bcmtypes.h linux.dev/arch/mips/bc
 +#define READ8(addr)         (*(volatile UINT8  *)((ULONG)&addr))
 +
 +#endif
-diff -urN linux.old/arch/mips/bcm963xx/include/board.h linux.dev/arch/mips/bcm963xx/include/board.h
---- linux.old/arch/mips/bcm963xx/include/board.h       1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/arch/mips/bcm963xx/include/board.h       2006-08-25 01:52:34.000000000 +0200
+diff -urN linux-2.6.19/arch/mips/bcm963xx/include/board.h linux-2.6.19.new/arch/mips/bcm963xx/include/board.h
+--- linux-2.6.19/arch/mips/bcm963xx/include/board.h    1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.19.new/arch/mips/bcm963xx/include/board.h        2006-12-16 18:46:31.000000000 +0100
 @@ -0,0 +1,373 @@
 +/*
 +<:copyright-gpl 
@@ -6428,9 +6643,9 @@ diff -urN linux.old/arch/mips/bcm963xx/include/board.h linux.dev/arch/mips/bcm96
 +
 +#endif /* _BOARD_H */
 +
-diff -urN linux.old/arch/mips/bcm963xx/int-handler.S linux.dev/arch/mips/bcm963xx/int-handler.S
---- linux.old/arch/mips/bcm963xx/int-handler.S 1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/arch/mips/bcm963xx/int-handler.S 2006-08-25 02:13:33.000000000 +0200
+diff -urN linux-2.6.19/arch/mips/bcm963xx/int-handler.S linux-2.6.19.new/arch/mips/bcm963xx/int-handler.S
+--- linux-2.6.19/arch/mips/bcm963xx/int-handler.S      1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.19.new/arch/mips/bcm963xx/int-handler.S  2006-12-16 18:46:31.000000000 +0100
 @@ -0,0 +1,59 @@
 +/*
 +<:copyright-gpl 
@@ -6454,7 +6669,7 @@ diff -urN linux.old/arch/mips/bcm963xx/int-handler.S linux.dev/arch/mips/bcm963x
 + * Generic interrupt handler for Broadcom MIPS boards
 + */
 +
-+#include <linux/config.h>
++#include <linux/autoconf.h>
 +
 +#include <asm/asm.h>
 +#include <asm/mipsregs.h>
@@ -6491,9 +6706,9 @@ diff -urN linux.old/arch/mips/bcm963xx/int-handler.S linux.dev/arch/mips/bcm963x
 +      nop
 +              
 +      END(brcmIRQ)
-diff -urN linux.old/arch/mips/bcm963xx/irq.c linux.dev/arch/mips/bcm963xx/irq.c
---- linux.old/arch/mips/bcm963xx/irq.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/arch/mips/bcm963xx/irq.c 2006-08-25 03:54:34.000000000 +0200
+diff -urN linux-2.6.19/arch/mips/bcm963xx/irq.c linux-2.6.19.new/arch/mips/bcm963xx/irq.c
+--- linux-2.6.19/arch/mips/bcm963xx/irq.c      1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.19.new/arch/mips/bcm963xx/irq.c  2006-12-16 18:46:31.000000000 +0100
 @@ -0,0 +1,256 @@
 +/*
 +<:copyright-gpl 
@@ -6555,13 +6770,13 @@ diff -urN linux.old/arch/mips/bcm963xx/irq.c linux.dev/arch/mips/bcm963xx/irq.c
 +      }
 +      if (pendingIrqs & irqBit) {
 +                      PERF->IrqMask &= ~irqBit; // mask
-+                      do_IRQ(isrNumber + INTERNAL_ISR_TABLE_OFFSET, regs);
++                      do_IRQ(isrNumber + INTERNAL_ISR_TABLE_OFFSET);
 +              break;
 +      }
 +      }
 +}
 +
-+static void irq_dispatch_ext(uint32 irq, struct pt_regs *regs)
++static void irq_dispatch_ext(uint32 irq)
 +{
 +      if (!(PERF->ExtIrqCfg & (1 << (irq - INTERRUPT_ID_EXTERNAL_0 + EI_MASK_SHFT)))) {
 +      printk("**** Ext IRQ mask. Should not dispatch ****\n");
@@ -6569,7 +6784,7 @@ diff -urN linux.old/arch/mips/bcm963xx/irq.c linux.dev/arch/mips/bcm963xx/irq.c
 +      /* disable and clear interrupt in the controller */
 +      PERF->ExtIrqCfg |= (1 << (irq - INTERRUPT_ID_EXTERNAL_0 + EI_CLEAR_SHFT));
 +      PERF->ExtIrqCfg &= ~(1 << (irq - INTERRUPT_ID_EXTERNAL_0 + EI_MASK_SHFT));
-+      do_IRQ(irq, regs);
++      do_IRQ(irq);
 +}
 +
 +
@@ -6584,13 +6799,13 @@ diff -urN linux.old/arch/mips/bcm963xx/irq.c linux.dev/arch/mips/bcm963xx/irq.c
 +              else if (cause & CAUSEF_IP2)
 +                      irq_dispatch_int(regs);
 +              else if (cause & CAUSEF_IP3)
-+                      irq_dispatch_ext(INTERRUPT_ID_EXTERNAL_0, regs);
++                      irq_dispatch_ext(INTERRUPT_ID_EXTERNAL_0);
 +              else if (cause & CAUSEF_IP4)
-+                      irq_dispatch_ext(INTERRUPT_ID_EXTERNAL_1, regs);
++                      irq_dispatch_ext(INTERRUPT_ID_EXTERNAL_1);
 +              else if (cause & CAUSEF_IP5)
-+                      irq_dispatch_ext(INTERRUPT_ID_EXTERNAL_2, regs);
++                      irq_dispatch_ext(INTERRUPT_ID_EXTERNAL_2);
 +              else if (cause & CAUSEF_IP6)
-+                      irq_dispatch_ext(INTERRUPT_ID_EXTERNAL_3, regs);
++                      irq_dispatch_ext(INTERRUPT_ID_EXTERNAL_3);
 +              local_irq_disable();
 +      }
 +}
@@ -6688,258 +6903,89 @@ diff -urN linux.old/arch/mips/bcm963xx/irq.c linux.dev/arch/mips/bcm963xx/irq.c
 +              irq_desc[i].action = 0;
 +              irq_desc[i].depth = 1;
 +              irq_desc[i].handler = &brcm_irq_type;
-+      }
-+}
-+
-+int request_external_irq(unsigned int irq, 
-+      FN_HANDLER handler,
-+              unsigned long irqflags, 
-+              const char * devname,
-+              void *dev_id)
-+{
-+      unsigned long flags;
-+
-+      local_irq_save(flags);
-+
-+      PERF->ExtIrqCfg |= (1 << (irq - INTERRUPT_ID_EXTERNAL_0 + EI_CLEAR_SHFT));      // Clear
-+      PERF->ExtIrqCfg &= ~(1 << (irq - INTERRUPT_ID_EXTERNAL_0 + EI_MASK_SHFT));      // Mask
-+      PERF->ExtIrqCfg &= ~(1 << (irq - INTERRUPT_ID_EXTERNAL_0 + EI_INSENS_SHFT));    // Edge insesnsitive
-+      PERF->ExtIrqCfg |= (1 << (irq - INTERRUPT_ID_EXTERNAL_0 + EI_LEVEL_SHFT));      // Level triggered
-+      PERF->ExtIrqCfg &= ~(1 << (irq - INTERRUPT_ID_EXTERNAL_0 + EI_SENSE_SHFT));     // Low level
-+
-+      local_irq_restore(flags);
-+
-+      return( request_irq(irq, handler, irqflags, devname, dev_id) );
-+}
-+
-+/* VxWorks compatibility function(s). */
-+
-+unsigned int BcmHalMapInterrupt(FN_HANDLER pfunc, unsigned int param,
-+      unsigned int interruptId)
-+{
-+      int nRet = -1;
-+      char *devname;
-+
-+      devname = kmalloc(16, GFP_KERNEL);
-+      if (devname)
-+              sprintf( devname, "brcm_%d", interruptId );
-+
-+      /* Set the IRQ description to not automatically enable the interrupt at
-+       * the end of an ISR.  The driver that handles the interrupt must
-+       * explicitly call BcmHalInterruptEnable or enable_brcm_irq.  This behavior
-+       * is consistent with interrupt handling on VxWorks.
-+       */
-+      irq_desc[interruptId].handler = &brcm_irq_no_end_type;
-+
-+      if( interruptId >= INTERNAL_ISR_TABLE_OFFSET )
-+      {
-+              nRet = request_irq( interruptId, pfunc, SA_SAMPLE_RANDOM | SA_INTERRUPT,
-+                      devname, (void *) param );
-+      }
-+      else if (interruptId >= INTERRUPT_ID_EXTERNAL_0 && interruptId <= INTERRUPT_ID_EXTERNAL_3)
-+      {
-+              nRet = request_external_irq( interruptId, pfunc, SA_SAMPLE_RANDOM | SA_INTERRUPT,
-+                      devname, (void *) param );
-+      }
-+
-+      return( nRet );
-+}
-+
-+
-+EXPORT_SYMBOL(enable_brcm_irq);
-+EXPORT_SYMBOL(disable_brcm_irq);
-+EXPORT_SYMBOL(request_external_irq);
-+EXPORT_SYMBOL(BcmHalMapInterrupt);
-+
-diff -urN linux.old/arch/mips/bcm963xx/Kconfig linux.dev/arch/mips/bcm963xx/Kconfig
---- linux.old/arch/mips/bcm963xx/Kconfig       1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/arch/mips/bcm963xx/Kconfig       2006-08-25 01:22:39.000000000 +0200
-@@ -0,0 +1,138 @@
-+# Kernel and Driver configuration for Broadcom Commengine ADSL board
-+choice
-+      prompt "Broadcom Commengine ADSL board"
-+      depends on MIPS_BRCM
-+      default BCM96345
-+      help
-+        Select different Broadcom ADSL board
-+
-+config BCM96338
-+      bool "96338 ADSL board"
-+      select DMA_NONCOHERENT
-+      select HW_HAS_PCI
-+
-+config BCM96345
-+      bool "96345 ADSL board"
-+      select DMA_NONCOHERENT
-+      select HW_HAS_PCI
-+
-+config BCM96348
-+      bool "96348 ADSL board"
-+      select DMA_NONCOHERENT
-+      select HW_HAS_PCI
-+
-+endchoice
-+
-+config BCM_BOARD
-+      bool "Support for Broadcom Board"
-+      depends on BCM96338 || BCM96345 || BCM96348
-+
-+config BCM_SERIAL
-+      bool "Support for Serial Port"
-+      depends on BCM96338 || BCM96345 || BCM96348
-+
-+config BCM_ENET
-+      tristate "Support for Ethernet"
-+      depends on BCM96338 || BCM96345 || BCM96348
-+
-+config BCM_USB
-+      tristate "Support for USB"
-+      depends on BCM96338 || BCM96345 || BCM96348
-+
-+config BCM_WLAN
-+      tristate "Support for Wireless"
-+      depends on BCM96338 || BCM96345 || BCM96348
-+
-+config BCM_PCI
-+      bool "Support for PCI"
-+      depends on BCM96338 || BCM96345 || BCM96348
-+      select PCI
-+
-+config BCM_ATMAPI
-+      tristate "Support for ATM"
-+      depends on BCM96338 || BCM96345 || BCM96348
-+
-+config BCM_ATMTEST
-+      tristate "Support for ATM Diagnostic"
-+      depends on BCM96338 || BCM96345 || BCM96348
-+
-+config BCM_ADSL
-+      tristate "Support for ADSL"
-+      depends on BCM96338 || BCM96345 || BCM96348
-+
-+config BCM_ENDPOINT
-+      tristate "Support for VOICE"
-+      depends on BCM96338 || BCM96345 || BCM96348
-+
-+config BCM_PROCFS
-+      tristate "Support for PROCFS"
-+      depends on BCM96338 || BCM96345 || BCM96348
-+
-+config BCM_VDSL
-+      tristate "Support for VDSL"
-+      depends on BCM96338 || BCM96345 || BCM96348
-+
-+config BCM_SECURITY
-+      tristate "Support for SECURITY"
-+      depends on BCM96338 || BCM96345 || BCM96348
-+
-+config BCM_HPNA
-+      tristate "Support for HPNA"
-+      depends on BCM96338 || BCM96345 || BCM96348
-+
-+config BCM_BOARD_IMPL
-+      int "Implementation index for ADSL Board"
-+      depends on BCM96338 || BCM96345 || BCM96348
-+
-+config BCM_SERIAL_IMPL
-+      int "Implementation index for Serial"
-+      depends on BCM96338 || BCM96345 || BCM96348
++      }
++}
 +
-+config BCM_ENET_IMPL
-+      int "Implementation index for Ethernet"
-+      depends on BCM96338 || BCM96345 || BCM96348
++int request_external_irq(unsigned int irq, 
++      FN_HANDLER handler,
++              unsigned long irqflags, 
++              const char * devname,
++              void *dev_id)
++{
++      unsigned long flags;
 +
-+config BCM_USB_IMPL
-+      int "Implementation index for USB"
-+      depends on BCM96338 || BCM96345 || BCM96348
++      local_irq_save(flags);
 +
-+config BCM_WLAN_IMPL
-+      int "Implementation index for WIRELESS"
-+      depends on BCM96338 || BCM96345 || BCM96348
++      PERF->ExtIrqCfg |= (1 << (irq - INTERRUPT_ID_EXTERNAL_0 + EI_CLEAR_SHFT));      // Clear
++      PERF->ExtIrqCfg &= ~(1 << (irq - INTERRUPT_ID_EXTERNAL_0 + EI_MASK_SHFT));      // Mask
++      PERF->ExtIrqCfg &= ~(1 << (irq - INTERRUPT_ID_EXTERNAL_0 + EI_INSENS_SHFT));    // Edge insesnsitive
++      PERF->ExtIrqCfg |= (1 << (irq - INTERRUPT_ID_EXTERNAL_0 + EI_LEVEL_SHFT));      // Level triggered
++      PERF->ExtIrqCfg &= ~(1 << (irq - INTERRUPT_ID_EXTERNAL_0 + EI_SENSE_SHFT));     // Low level
 +
-+config BCM_ATMAPI_IMPL
-+      int "Implementation index for ATM"
-+      depends on BCM96338 || BCM96345 || BCM96348
++      local_irq_restore(flags);
 +
-+config BCM_ATMTEST_IMPL
-+      int "Implementation index for ATM Diagnostic"
-+      depends on BCM96338 || BCM96345 || BCM96348
++      return( request_irq(irq, handler, irqflags, devname, dev_id) );
++}
 +
-+config BCM_BLAA_IMPL
-+      int "Implementation index for BLAA"
-+      depends on BCM96338 || BCM96345 || BCM96348
++/* VxWorks compatibility function(s). */
 +
-+config BCM_ADSL_IMPL
-+      int "Implementation index for ADSL"
-+      depends on BCM96338 || BCM96345 || BCM96348
++unsigned int BcmHalMapInterrupt(FN_HANDLER pfunc, unsigned int param,
++      unsigned int interruptId)
++{
++      int nRet = -1;
++      char *devname;
 +
-+config BCM_ENDPOINT_IMPL
-+      int "Implementation index for VOICE"
-+      depends on BCM96338 || BCM96345 || BCM96348
++      devname = kmalloc(16, GFP_KERNEL);
++      if (devname)
++              sprintf( devname, "brcm_%d", interruptId );
 +
-+config BCM_PROCFS_IMPL
-+      int "Implementation index for PROCFS"
-+      depends on BCM96338 || BCM96345 || BCM96348
++      /* Set the IRQ description to not automatically enable the interrupt at
++       * the end of an ISR.  The driver that handles the interrupt must
++       * explicitly call BcmHalInterruptEnable or enable_brcm_irq.  This behavior
++       * is consistent with interrupt handling on VxWorks.
++       */
++      irq_desc[interruptId].handler = &brcm_irq_no_end_type;
 +
-+config BCM_VDSL_IMPL
-+      int "Implementation index for VDSL"
-+      depends on BCM96338 || BCM96345 || BCM96348
++      if( interruptId >= INTERNAL_ISR_TABLE_OFFSET )
++      {
++              nRet = request_irq( interruptId, pfunc, SA_SAMPLE_RANDOM | SA_INTERRUPT,
++                      devname, (void *) param );
++      }
++      else if (interruptId >= INTERRUPT_ID_EXTERNAL_0 && interruptId <= INTERRUPT_ID_EXTERNAL_3)
++      {
++              nRet = request_external_irq( interruptId, pfunc, SA_SAMPLE_RANDOM | SA_INTERRUPT,
++                      devname, (void *) param );
++      }
 +
-+config BCM_SECURITY_IMPL
-+      int "Implementation index for SECURITY"
-+      depends on BCM96338 || BCM96345 || BCM96348
++      return( nRet );
++}
 +
-+config BCM_HPNA_IMPL
-+      int "Implementation index for HPNA"
-+      depends on BCM96338 || BCM96345 || BCM96348
 +
-diff -urN linux.old/arch/mips/bcm963xx/Makefile linux.dev/arch/mips/bcm963xx/Makefile
---- linux.old/arch/mips/bcm963xx/Makefile      1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/arch/mips/bcm963xx/Makefile      2006-08-25 02:04:27.000000000 +0200
-@@ -0,0 +1,23 @@
-+#
-+# Makefile for generic Broadcom MIPS boards
-+#
-+# Copyright (C) 2004 Broadcom Corporation
-+#
-+obj-y           := irq.o prom.o setup.o time.o ser_init.o bcm63xx_led.o  board.o  boardparms.o int-handler.o
++EXPORT_SYMBOL(enable_brcm_irq);
++EXPORT_SYMBOL(disable_brcm_irq);
++EXPORT_SYMBOL(request_external_irq);
++EXPORT_SYMBOL(BcmHalMapInterrupt);
 +
-+SRCBASE         := $(TOPDIR)
-+EXTRA_CFLAGS    += -I$(SRCBASE)/include
-+#EXTRA_CFLAGS    += -I$(INC_ADSLDRV_PATH) -DDBG
-+EXTRA_CFLAGS    += -I$(INC_ADSLDRV_PATH) 
+diff -urN linux-2.6.19/arch/mips/bcm963xx/prom.c linux-2.6.19.new/arch/mips/bcm963xx/prom.c
+--- linux-2.6.19/arch/mips/bcm963xx/prom.c     1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.19.new/arch/mips/bcm963xx/prom.c 2006-12-16 18:46:31.000000000 +0100
+@@ -0,0 +1,143 @@
++/*
++<:copyright-gpl
++ Copyright 2004 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.
 +
-+ifeq "$(ADSL)" "ANNEX_B"
-+EXTRA_CFLAGS += -DADSL_ANNEXB
-+endif
-+ifeq "$(ADSL)" "SADSL"
-+EXTRA_CFLAGS += -DADSL_SADSL
-+endif
-+ifeq "$(ADSL)" "ANNEX_C"
-+EXTRA_CFLAGS += -DADSL_ANNEXC
-+endif
++ 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.
 +
-diff -urN linux.old/arch/mips/bcm963xx/prom.c linux.dev/arch/mips/bcm963xx/prom.c
---- linux.old/arch/mips/bcm963xx/prom.c        1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/arch/mips/bcm963xx/prom.c        2006-08-27 21:02:04.000000000 +0200
-@@ -0,0 +1,130 @@
-+/*
-+<:copyright-gpl 
-+ Copyright 2004 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. 
++ 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.
 +:>
 +*/
 +/*
@@ -6965,6 +7011,8 @@ diff -urN linux.old/arch/mips/bcm963xx/prom.c linux.dev/arch/mips/bcm963xx/prom.
 +//char arcs_cmdline[CL_SIZE] __initdata = {0};
 +/* inv_xde */
 +int boot_loader_type;
++int prom_argc;
++char **prom_argv, **prom_envp;
 +
 +extern int  do_syslog(int, char *, int);
 +extern void serial_init(void);
@@ -7022,9 +7070,20 @@ diff -urN linux.old/arch/mips/bcm963xx/prom.c linux.dev/arch/mips/bcm963xx/prom.
 +
 +    serial_init();
 +
-+    /* Need to fixup boot loader detection code 
-+     * whithout changing prom_init prototype  
-+     */
++    prom_argc = fw_arg0;
++    prom_argv = (char **) fw_arg1;
++    prom_envp = (char **) fw_arg2;
++
++    if ((prom_argv > 0x80000000) && (prom_argv < 0x82000000)) {
++      strncpy(arcs_cmdline, prom_argv[1], CL_SIZE);
++    }
++
++    if (strncmp(arcs_cmdline, "boot_loader=RedBoot", 19) != 0) {
++      boot_loader_type =  BOOT_CFE;
++    }
++    else {
++      boot_loader_type = BOOT_REDBOOT;
++    }
 +
 +    do_syslog(8, NULL, 8);
 +
@@ -7034,29 +7093,29 @@ diff -urN linux.old/arch/mips/bcm963xx/prom.c linux.dev/arch/mips/bcm963xx/prom.
 +
 +    arcs_cmdline[0] = '\0';
 +
-+      if (boot_loader_type == BOOT_CFE)
++       if (boot_loader_type == BOOT_CFE)
 +      add_memory_region(0, (getMemorySize() - ADSL_SDRAM_IMAGE_SIZE), BOOT_MEM_RAM);
 +    else
-+      add_memory_region(0, (0x01000000 - ADSL_SDRAM_IMAGE_SIZE), BOOT_MEM_RAM);
++       add_memory_region(0, (0x01000000 - ADSL_SDRAM_IMAGE_SIZE), BOOT_MEM_RAM);
 +
 +    mips_machgroup = MACH_GROUP_BRCM;
 +    mips_machtype = MACH_BCM;
 +
-+      BpSetBoardId("96348GW-10");
++       BpSetBoardId("96348GW-10");
 +}
 +
 +/* --------------------------------------------------------------------------
 +    Name: prom_free_prom_memory
-+Abstract: 
++Abstract:
 + -------------------------------------------------------------------------- */
 +void __init prom_free_prom_memory(void)
 +{
 +
 +}
 +
-diff -urN linux.old/arch/mips/bcm963xx/ser_init.c linux.dev/arch/mips/bcm963xx/ser_init.c
---- linux.old/arch/mips/bcm963xx/ser_init.c    1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/arch/mips/bcm963xx/ser_init.c    2006-08-25 00:39:38.000000000 +0200
+diff -urN linux-2.6.19/arch/mips/bcm963xx/ser_init.c linux-2.6.19.new/arch/mips/bcm963xx/ser_init.c
+--- linux-2.6.19/arch/mips/bcm963xx/ser_init.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.19.new/arch/mips/bcm963xx/ser_init.c     2006-12-16 18:46:31.000000000 +0100
 @@ -0,0 +1,180 @@
 +/*
 +<:copyright-gpl 
@@ -7082,7 +7141,7 @@ diff -urN linux.old/arch/mips/bcm963xx/ser_init.c linux.dev/arch/mips/bcm963xx/s
 + *   
 + */
 +
-+#include <linux/config.h>
++#include <linux/autoconf.h>
 +#include <linux/init.h>
 +#include <linux/interrupt.h>
 +#include <linux/kernel.h>
@@ -7238,9 +7297,9 @@ diff -urN linux.old/arch/mips/bcm963xx/ser_init.c linux.dev/arch/mips/bcm963xx/s
 +      prom_puts(ptr);
 +}
 +#endif
-diff -urN linux.old/arch/mips/bcm963xx/setup.c linux.dev/arch/mips/bcm963xx/setup.c
---- linux.old/arch/mips/bcm963xx/setup.c       1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/arch/mips/bcm963xx/setup.c       2006-08-25 02:26:58.000000000 +0200
+diff -urN linux-2.6.19/arch/mips/bcm963xx/setup.c linux-2.6.19.new/arch/mips/bcm963xx/setup.c
+--- linux-2.6.19/arch/mips/bcm963xx/setup.c    1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.19.new/arch/mips/bcm963xx/setup.c        2006-12-16 18:46:31.000000000 +0100
 @@ -0,0 +1,525 @@
 +/*
 +<:copyright-gpl 
@@ -7264,7 +7323,7 @@ diff -urN linux.old/arch/mips/bcm963xx/setup.c linux.dev/arch/mips/bcm963xx/setu
 + * Generic setup routines for Broadcom 963xx MIPS boards
 + */
 +
-+#include <linux/config.h>
++#include <linux/autoconf.h>
 +#include <linux/init.h>
 +#include <linux/interrupt.h>
 +#include <linux/kernel.h>
@@ -7767,15 +7826,15 @@ diff -urN linux.old/arch/mips/bcm963xx/setup.c linux.dev/arch/mips/bcm963xx/setu
 +EXPORT_SYMBOL(_ZdlPv);
 +EXPORT_SYMBOL(_ZdaPv);
 +
-diff -urN linux.old/arch/mips/bcm963xx/softdsl/AdslCoreDefs.h linux.dev/arch/mips/bcm963xx/softdsl/AdslCoreDefs.h
---- linux.old/arch/mips/bcm963xx/softdsl/AdslCoreDefs.h        1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/arch/mips/bcm963xx/softdsl/AdslCoreDefs.h        2006-08-25 00:39:38.000000000 +0200
+diff -urN linux-2.6.19/arch/mips/bcm963xx/softdsl/AdslCoreDefs.h linux-2.6.19.new/arch/mips/bcm963xx/softdsl/AdslCoreDefs.h
+--- linux-2.6.19/arch/mips/bcm963xx/softdsl/AdslCoreDefs.h     1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.19.new/arch/mips/bcm963xx/softdsl/AdslCoreDefs.h 2006-12-16 18:46:31.000000000 +0100
 @@ -0,0 +1,2 @@
 +#define ADSL_SDRAM_IMAGE_SIZE (384*1024)
 +
-diff -urN linux.old/arch/mips/bcm963xx/time.c linux.dev/arch/mips/bcm963xx/time.c
---- linux.old/arch/mips/bcm963xx/time.c        1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/arch/mips/bcm963xx/time.c        2006-08-25 03:58:22.000000000 +0200
+diff -urN linux-2.6.19/arch/mips/bcm963xx/time.c linux-2.6.19.new/arch/mips/bcm963xx/time.c
+--- linux-2.6.19/arch/mips/bcm963xx/time.c     1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.19.new/arch/mips/bcm963xx/time.c 2006-12-16 18:46:31.000000000 +0100
 @@ -0,0 +1,114 @@
 +/*
 +<:copyright-gpl
@@ -7799,7 +7858,7 @@ diff -urN linux.old/arch/mips/bcm963xx/time.c linux.dev/arch/mips/bcm963xx/time.
 + * Setup time for Broadcom 963xx MIPS boards
 + */
 +
-+#include <linux/config.h>
++#include <linux/autoconf.h>
 +#include <linux/init.h>
 +#include <linux/kernel_stat.h>
 +#include <linux/sched.h>
@@ -7891,37 +7950,10 @@ diff -urN linux.old/arch/mips/bcm963xx/time.c linux.dev/arch/mips/bcm963xx/time.
 +      write_c0_compare(r4k_cur);
 +      set_c0_status(IE_IRQ5);
 +}
-diff -urN linux.old/arch/mips/Kconfig linux.dev/arch/mips/Kconfig
---- linux.old/arch/mips/Kconfig        2006-08-25 00:43:39.000000000 +0200
-+++ linux.dev/arch/mips/Kconfig        2006-08-25 01:57:46.000000000 +0200
-@@ -12,6 +12,15 @@
-       prompt "System type"
-       default SGI_IP22
-+config MIPS_BRCM
-+      bool "Support for the Broadcom boards"
-+      select SYS_SUPPORTS_32BIT_KERNEL
-+      select SYS_SUPPORTS_BIG_ENDIAN
-+      select SYS_HAS_CPU_MIPS32_R1
-+      select IRQ_CPU
-+      help
-+       This is a fmaily of boards based on the Broadcom MIPS32
-+
- config MIPS_MTX1
-       bool "4G Systems MTX-1 board"
-       select DMA_NONCOHERENT
-@@ -780,6 +789,7 @@
- endchoice
-+source "arch/mips/bcm963xx/Kconfig"
- source "arch/mips/ddb5xxx/Kconfig"
- source "arch/mips/gt64120/ev64120/Kconfig"
- source "arch/mips/jazz/Kconfig"
-diff -urN linux.old/arch/mips/kernel/cpu-probe.c linux.dev/arch/mips/kernel/cpu-probe.c
---- linux.old/arch/mips/kernel/cpu-probe.c     2006-08-25 00:43:39.000000000 +0200
-+++ linux.dev/arch/mips/kernel/cpu-probe.c     2006-08-25 00:39:38.000000000 +0200
-@@ -568,6 +568,25 @@
+diff -urN linux-2.6.19/arch/mips/kernel/cpu-probe.c linux-2.6.19.new/arch/mips/kernel/cpu-probe.c
+--- linux-2.6.19/arch/mips/kernel/cpu-probe.c  2006-11-29 22:57:37.000000000 +0100
++++ linux-2.6.19.new/arch/mips/kernel/cpu-probe.c      2006-12-16 18:46:31.000000000 +0100
+@@ -602,6 +602,25 @@
                return;
  }
  
@@ -7947,7 +7979,7 @@ diff -urN linux.old/arch/mips/kernel/cpu-probe.c linux.dev/arch/mips/kernel/cpu-
  static inline void cpu_probe_mips(struct cpuinfo_mips *c)
  {
        decode_configs(c);
-@@ -704,6 +723,9 @@
+@@ -736,6 +755,9 @@
        case PRID_COMP_LEGACY:
                cpu_probe_legacy(c);
                break;
@@ -7957,10 +7989,10 @@ diff -urN linux.old/arch/mips/kernel/cpu-probe.c linux.dev/arch/mips/kernel/cpu-
        case PRID_COMP_MIPS:
                cpu_probe_mips(c);
                break;
-diff -urN linux.old/arch/mips/kernel/proc.c linux.dev/arch/mips/kernel/proc.c
---- linux.old/arch/mips/kernel/proc.c  2006-08-25 00:43:39.000000000 +0200
-+++ linux.dev/arch/mips/kernel/proc.c  2006-08-25 00:39:38.000000000 +0200
-@@ -85,6 +85,9 @@
+diff -urN linux-2.6.19/arch/mips/kernel/proc.c linux-2.6.19.new/arch/mips/kernel/proc.c
+--- linux-2.6.19/arch/mips/kernel/proc.c       2006-11-29 22:57:37.000000000 +0100
++++ linux-2.6.19.new/arch/mips/kernel/proc.c   2006-12-16 18:46:31.000000000 +0100
+@@ -84,6 +84,9 @@
        [CPU_VR4181A]   = "NEC VR4181A",
        [CPU_SR71000]   = "Sandcraft SR71000",
        [CPU_PR4450]    = "Philips PR4450",
@@ -7970,29 +8002,10 @@ 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 15:39:54.000000000 +0200
-@@ -145,6 +145,15 @@
- #
- #
-+# Broadcom board
-+#
-+core-$(CONFIG_MIPS_BRCM)      += arch/mips/bcm963xx/
-+cflags-$(CONFIG_MIPS_BRCM)            += -Iinclude/asm-mips/mach-bcm963xx
-+cflags-$(CONFIG_MIPS_BRCM)            += -Iarch/mips/bcm963xx/include
-+load-$(CONFIG_MIPS_BRCM)      += 0xffffffff80010000
-+
-+
-+#
- # Acer PICA 61, Mips Magnum 4000 and Olivetti M700.
- #
- core-$(CONFIG_MACH_JAZZ)      += arch/mips/jazz/
-diff -urN linux.old/arch/mips/mm/c-r4k.c linux.dev/arch/mips/mm/c-r4k.c
---- linux.old/arch/mips/mm/c-r4k.c     2006-08-25 00:43:39.000000000 +0200
-+++ linux.dev/arch/mips/mm/c-r4k.c     2006-08-25 00:39:38.000000000 +0200
-@@ -914,6 +914,13 @@
+diff -urN linux-2.6.19/arch/mips/mm/c-r4k.c linux-2.6.19.new/arch/mips/mm/c-r4k.c
+--- linux-2.6.19/arch/mips/mm/c-r4k.c  2006-11-29 22:57:37.000000000 +0100
++++ linux-2.6.19.new/arch/mips/mm/c-r4k.c      2006-12-16 18:46:31.000000000 +0100
+@@ -852,6 +852,13 @@
                if (!(config & MIPS_CONF_M))
                        panic("Don't know how to probe P-caches on this cpu.");
  
@@ -8006,10 +8019,10 @@ diff -urN linux.old/arch/mips/mm/c-r4k.c linux.dev/arch/mips/mm/c-r4k.c
                /*
                 * So we seem to be a MIPS32 or MIPS64 CPU
                 * So let's probe the I-cache ...
-diff -urN linux.old/arch/mips/mm/tlbex.c linux.dev/arch/mips/mm/tlbex.c
---- linux.old/arch/mips/mm/tlbex.c     2006-08-25 00:43:39.000000000 +0200
-+++ linux.dev/arch/mips/mm/tlbex.c     2006-08-25 00:39:38.000000000 +0200
-@@ -882,6 +882,9 @@
+diff -urN linux-2.6.19/arch/mips/mm/tlbex.c linux-2.6.19.new/arch/mips/mm/tlbex.c
+--- linux-2.6.19/arch/mips/mm/tlbex.c  2006-11-29 22:57:37.000000000 +0100
++++ linux-2.6.19.new/arch/mips/mm/tlbex.c      2006-12-16 18:46:31.000000000 +0100
+@@ -880,6 +880,9 @@
        case CPU_4KSC:
        case CPU_20KC:
        case CPU_25KF:
@@ -8019,26 +8032,37 @@ diff -urN linux.old/arch/mips/mm/tlbex.c linux.dev/arch/mips/mm/tlbex.c
                tlbw(p);
                break;
  
-diff -urN linux.old/arch/mips/pci/fixup-bcm96348.c linux.dev/arch/mips/pci/fixup-bcm96348.c
---- linux.old/arch/mips/pci/fixup-bcm96348.c   1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/arch/mips/pci/fixup-bcm96348.c   2006-08-25 00:39:38.000000000 +0200
-@@ -0,0 +1,85 @@
+diff -urN linux-2.6.19/arch/mips/pci/Makefile linux-2.6.19.new/arch/mips/pci/Makefile
+--- linux-2.6.19/arch/mips/pci/Makefile        2006-11-29 22:57:37.000000000 +0100
++++ linux-2.6.19.new/arch/mips/pci/Makefile    2006-12-16 18:48:18.000000000 +0100
+@@ -17,6 +17,7 @@
+ obj-$(CONFIG_PCI_VR41XX)      += ops-vr41xx.o pci-vr41xx.o
+ obj-$(CONFIG_NEC_CMBVR4133)   += fixup-vr4133.o
+ obj-$(CONFIG_MARKEINS)                += ops-emma2rh.o pci-emma2rh.o fixup-emma2rh.o
++obj-$(CONFIG_BCM_PCI)         += fixup-bcm96348.o pci-bcm96348.o ops-bcm96348.o
+ #
+ # These are still pretty much in the old state, watch, go blind.
+diff -urN linux-2.6.19/arch/mips/pci/fixup-bcm96348.c linux-2.6.19.new/arch/mips/pci/fixup-bcm96348.c
+--- linux-2.6.19/arch/mips/pci/fixup-bcm96348.c        1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.19.new/arch/mips/pci/fixup-bcm96348.c    2006-12-16 18:46:31.000000000 +0100
+@@ -0,0 +1,93 @@
 +/*
-+<:copyright-gpl 
-+ Copyright 2002 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. 
++<:copyright-gpl
++ Copyright 2002 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.
 +:>
 +*/
 +#include <linux/init.h>
@@ -8078,10 +8102,10 @@ diff -urN linux.old/arch/mips/pci/fixup-bcm96348.c linux.dev/arch/mips/pci/fixup
 +            // Memory Window 1. Mask determines which bits are decoded.
 +            mpi->l2pmrange1 = ~(size-1);
 +            // UBUS to PCI Memory base address. This is akin to the ChipSelect base
-+            // register. 
++            // register.
 +            mpi->l2pmbase1 = memaddr & BCM_PCI_ADDR_MASK;
 +            // UBUS to PCI Remap Address. Replaces the masked address bits in the
-+            // range register with this setting. 
++            // range register with this setting.
 +            // Also, enable direct I/O and direct Memory accesses
 +            mpi->l2pmremap1 = (memaddr | MEM_WINDOW_EN);
 +            break;
@@ -8089,7 +8113,7 @@ diff -urN linux.old/arch/mips/pci/fixup-bcm96348.c linux.dev/arch/mips/pci/fixup
 +        case 1:
 +            // Memory Window 2
 +            mpi->l2pmrange2 = ~(size-1);
-+            // UBUS to PCI Memory base address. 
++            // UBUS to PCI Memory base address.
 +            mpi->l2pmbase2 = memaddr & BCM_PCI_ADDR_MASK;
 +            // UBUS to PCI Remap Address
 +            mpi->l2pmremap2 = (memaddr | MEM_WINDOW_EN);
@@ -8104,24 +8128,21 @@ diff -urN linux.old/arch/mips/pci/fixup-bcm96348.c linux.dev/arch/mips/pci/fixup
 +    }
 +}
 +
-+struct pci_fixup pcibios_fixups[] = {
++int pcibios_plat_dev_init(struct pci_dev *dev)
++{
++        return 0;
++}
++
++DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_BROADCOM, PCI_ANY_ID,
++          bcm96348_fixup);
++
++/*struct pci_fixup pcibios_fixups[] = {
 +    { PCI_FIXUP_FINAL, PCI_ANY_ID, PCI_ANY_ID, bcm96348_fixup },
 +    {0}
-+};
-diff -urN linux.old/arch/mips/pci/Makefile linux.dev/arch/mips/pci/Makefile
---- linux.old/arch/mips/pci/Makefile   2006-08-25 00:43:29.000000000 +0200
-+++ linux.dev/arch/mips/pci/Makefile   2006-08-25 00:39:38.000000000 +0200
-@@ -18,6 +18,7 @@
- obj-$(CONFIG_MIPS_TX3927)     += ops-tx3927.o
- obj-$(CONFIG_PCI_VR41XX)      += ops-vr41xx.o pci-vr41xx.o
- obj-$(CONFIG_NEC_CMBVR4133)   += fixup-vr4133.o
-+obj-$(CONFIG_BCM_PCI)         += fixup-bcm96348.o pci-bcm96348.o ops-bcm96348.o
- #
- # These are still pretty much in the old state, watch, go blind.
-diff -urN linux.old/arch/mips/pci/ops-bcm96348.c linux.dev/arch/mips/pci/ops-bcm96348.c
---- linux.old/arch/mips/pci/ops-bcm96348.c     1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/arch/mips/pci/ops-bcm96348.c     2006-08-25 00:39:38.000000000 +0200
++};*/
+diff -urN linux-2.6.19/arch/mips/pci/ops-bcm96348.c linux-2.6.19.new/arch/mips/pci/ops-bcm96348.c
+--- linux-2.6.19/arch/mips/pci/ops-bcm96348.c  1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.19.new/arch/mips/pci/ops-bcm96348.c      2006-12-16 18:46:31.000000000 +0100
 @@ -0,0 +1,276 @@
 +/*
 +<:copyright-gpl 
@@ -8399,26 +8420,26 @@ diff -urN linux.old/arch/mips/pci/ops-bcm96348.c linux.dev/arch/mips/pci/ops-bcm
 +    .read   = bcm96348_pcibios_read,
 +    .write  = bcm96348_pcibios_write
 +};
-diff -urN linux.old/arch/mips/pci/pci-bcm96348.c linux.dev/arch/mips/pci/pci-bcm96348.c
---- linux.old/arch/mips/pci/pci-bcm96348.c     1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/arch/mips/pci/pci-bcm96348.c     2006-08-25 00:39:38.000000000 +0200
+diff -urN linux-2.6.19/arch/mips/pci/pci-bcm96348.c linux-2.6.19.new/arch/mips/pci/pci-bcm96348.c
+--- linux-2.6.19/arch/mips/pci/pci-bcm96348.c  1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.19.new/arch/mips/pci/pci-bcm96348.c      2006-12-16 18:46:31.000000000 +0100
 @@ -0,0 +1,54 @@
 +/*
-+<:copyright-gpl 
-+ Copyright 2002 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. 
++<:copyright-gpl
++ Copyright 2002 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.
 +:>
 +*/
 +#include <linux/types.h>
@@ -8426,7 +8447,7 @@ diff -urN linux.old/arch/mips/pci/pci-bcm96348.c linux.dev/arch/mips/pci/pci-bcm
 +#include <linux/kernel.h>
 +#include <linux/init.h>
 +
-+#include <asm/pci_channel.h>
++//#include <asm/pci_channel.h>
 +#include <bcmpci.h>
 +
 +static struct resource bcm_pci_io_resource = {
@@ -8446,9 +8467,9 @@ diff -urN linux.old/arch/mips/pci/pci-bcm96348.c linux.dev/arch/mips/pci/pci-bcm
 +extern struct pci_ops bcm96348_pci_ops;
 +
 +struct pci_controller bcm96348_controller = {
-+    .pci_ops  = &bcm96348_pci_ops,
-+    .io_resource      = &bcm_pci_io_resource,
-+    .mem_resource     = &bcm_pci_mem_resource,
++    .pci_ops   = &bcm96348_pci_ops,
++    .io_resource       = &bcm_pci_io_resource,
++    .mem_resource      = &bcm_pci_mem_resource,
 +};
 +
 +static void bcm96348_pci_init(void)
@@ -8457,9 +8478,17 @@ 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/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
+diff -urN linux-2.6.19/drivers/serial/Makefile linux-2.6.19.new/drivers/serial/Makefile
+--- linux-2.6.19/drivers/serial/Makefile       2006-11-29 22:57:37.000000000 +0100
++++ linux-2.6.19.new/drivers/serial/Makefile   2006-12-16 18:49:17.000000000 +0100
+@@ -56,3 +56,4 @@
+ obj-$(CONFIG_SERIAL_SGI_IOC3) += ioc3_serial.o
+ obj-$(CONFIG_SERIAL_ATMEL) += atmel_serial.o
+ obj-$(CONFIG_SERIAL_NETX) += netx-serial.o
++obj-$(CONFIG_BCM_SERIAL) += bcm63xx_cons.o
+diff -urN linux-2.6.19/drivers/serial/bcm63xx_cons.c linux-2.6.19.new/drivers/serial/bcm63xx_cons.c
+--- linux-2.6.19/drivers/serial/bcm63xx_cons.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.19.new/drivers/serial/bcm63xx_cons.c     2006-12-16 18:46:31.000000000 +0100
 @@ -0,0 +1,1049 @@
 +/*
 +<:copyright-gpl 
@@ -8711,7 +8740,7 @@ diff -urN linux.old/drivers/serial/bcm63xx_cons.c linux.dev/drivers/serial/bcm63
 + * ------------------------------------------------------------
 + */
 +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)
-+static irqreturn_t bcm_interrupt (int irq, void * dev, struct pt_regs * regs)
++static irqreturn_t bcm_interrupt (int irq, void * dev)
 +#else
 +static void bcm_interrupt (int irq, void * dev, struct pt_regs * regs)
 +#endif
@@ -9510,20 +9539,12 @@ diff -urN linux.old/drivers/serial/bcm63xx_cons.c linux.dev/drivers/serial/bcm63
 +}
 +
 +console_initcall(bcm63xx_console_init);
-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
-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
-@@ -218,6 +218,14 @@
- #define MACH_GROUP_TITAN       22     /* PMC-Sierra Titan             */
- #define  MACH_TITAN_YOSEMITE  1       /* PMC-Sierra Yosemite          */
+diff -urN linux-2.6.19/include/asm-mips/bootinfo.h linux-2.6.19.new/include/asm-mips/bootinfo.h
+--- linux-2.6.19/include/asm-mips/bootinfo.h   2006-11-29 22:57:37.000000000 +0100
++++ linux-2.6.19.new/include/asm-mips/bootinfo.h       2006-12-16 18:46:31.000000000 +0100
+@@ -212,6 +212,14 @@
+ #define MACH_GROUP_NEC_EMMA2RH 25     /* NEC EMMA2RH (was 23)         */
+ #define  MACH_NEC_MARKEINS    0       /* NEC EMMA2RH Mark-eins        */
  
 +/*
 + * Valid machtype for group BRCM
@@ -9536,9 +9557,9 @@ diff -urN linux.old/include/asm-mips/bootinfo.h linux.dev/include/asm-mips/booti
  #define CL_SIZE                       COMMAND_LINE_SIZE
  
  const char *get_system_type(void);
-diff -urN linux.old/include/asm-mips/cpu.h linux.dev/include/asm-mips/cpu.h
---- linux.old/include/asm-mips/cpu.h   2006-08-25 00:43:22.000000000 +0200
-+++ linux.dev/include/asm-mips/cpu.h   2006-08-25 00:39:38.000000000 +0200
+diff -urN linux-2.6.19/include/asm-mips/cpu.h linux-2.6.19.new/include/asm-mips/cpu.h
+--- linux-2.6.19/include/asm-mips/cpu.h        2006-11-29 22:57:37.000000000 +0100
++++ linux-2.6.19.new/include/asm-mips/cpu.h    2006-12-16 18:46:31.000000000 +0100
 @@ -103,6 +103,13 @@
  
  #define PRID_IMP_SR71000        0x0400
@@ -9565,61 +9586,50 @@ diff -urN linux.old/include/asm-mips/cpu.h linux.dev/include/asm-mips/cpu.h
  
  /*
   * ISA Level encodings
-diff -urN linux.old/include/asm-mips/mach-bcm963xx/cpu-feature-overrides.h linux.dev/include/asm-mips/mach-bcm963xx/cpu-feature-overrides.h
---- linux.old/include/asm-mips/mach-bcm963xx/cpu-feature-overrides.h   1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/include/asm-mips/mach-bcm963xx/cpu-feature-overrides.h   2006-08-25 11:27:40.000000000 +0200
+diff -urN linux-2.6.19/include/asm-mips/mach-bcm963xx/cpu-feature-overrides.h linux-2.6.19.new/include/asm-mips/mach-bcm963xx/cpu-feature-overrides.h
+--- linux-2.6.19/include/asm-mips/mach-bcm963xx/cpu-feature-overrides.h        1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.19.new/include/asm-mips/mach-bcm963xx/cpu-feature-overrides.h    2006-12-16 18:52:30.000000000 +0100
 @@ -0,0 +1,36 @@
 +#ifndef __ASM_MACH_BCM963XX_CPU_FEATURE_OVERRIDES_H
 +#define __ASM_MACH_BCM963XX_CPU_FEATURE_OVERRIDES_H
 +
-+#define cpu_has_tlb                   1
-+#define cpu_has_4kex                  4
-+#define cpu_has_4ktlb                 8
-+#define cpu_has_fpu                   0
-+#define cpu_has_32fpr                 0
++#define cpu_has_tlb                           1
++#define cpu_has_4kex                          4
++#define cpu_has_4ktlb                         8
++#define cpu_has_fpu                           0
++#define cpu_has_32fpr                         0
 +#define cpu_has_counter                       0x40
-+#define cpu_has_watch                 0
-+#define cpu_has_mips16                        0
-+#define cpu_has_divec                 0x200
-+#define cpu_has_vce                   0
-+#define cpu_has_cache_cdex_p          0
-+#define cpu_has_cache_cdex_s          0
-+#define cpu_has_prefetch              0x40000
-+#define cpu_has_mcheck                        0x2000
-+#define cpu_has_ejtag                 0x4000
-+#define cpu_has_llsc                  0x10000
-+#define cpu_has_vtag_icache           0
-+#define cpu_has_dc_aliases            0
-+#define cpu_has_ic_fills_f_dc         0
-+
-+#define cpu_has_nofpuex                       0
-+#define cpu_has_64bits                        0
-+#define cpu_has_64bit_zero_reg                0
-+#define cpu_has_64bit_gp_regs         0
-+#define cpu_has_64bit_addresses               0
-+
-+#define cpu_has_subset_pcaches                0
-+
-+#define cpu_dcache_line_size()                16
-+#define cpu_icache_line_size()                16
-+#define cpu_scache_line_size()                0
++#define cpu_has_watch                         0
++#define cpu_has_mips16                        0
++#define cpu_has_divec                         0x200
++#define cpu_has_vce                           0
++#define cpu_has_cache_cdex_p                  0
++#define cpu_has_cache_cdex_s                  0
++#define cpu_has_prefetch                      0x40000
++#define cpu_has_mcheck                        0x2000
++#define cpu_has_ejtag                         0x4000
++#define cpu_has_llsc                          0x10000
++#define cpu_has_vtag_icache                   0
++#define cpu_has_dc_aliases                    0
++#define cpu_has_ic_fills_f_dc                 0
++
++#define cpu_has_nofpuex                       0
++#define cpu_has_64bits                        0
++#define cpu_has_64bit_zero_reg                0
++#define cpu_has_64bit_gp_regs                 0
++#define cpu_has_64bit_addresses               0
++
++#define cpu_has_subset_pcaches                0
++
++#define cpu_dcache_line_size()                16
++#define cpu_icache_line_size()                16
++#define cpu_scache_line_size()                0
 +
 +#endif /* __ASM_MACH_BCM963XX_CPU_FEATURE_OVERRIDES_H */
-diff -urN linux.old/include/asm-mips/mach-generic/param.h linux.dev/include/asm-mips/mach-generic/param.h
---- linux.old/include/asm-mips/mach-generic/param.h    2006-08-25 00:43:22.000000000 +0200
-+++ linux.dev/include/asm-mips/mach-generic/param.h    2006-08-25 00:39:38.000000000 +0200
-@@ -8,6 +8,6 @@
- #ifndef __ASM_MACH_GENERIC_PARAM_H
- #define __ASM_MACH_GENERIC_PARAM_H
--#define HZ            1000            /* Internal kernel timer frequency */
-+#define HZ            200             /* Internal kernel timer frequency */
- #endif /* __ASM_MACH_GENERIC_PARAM_H */
-diff -urN linux.old/include/asm-mips/module.h linux.dev/include/asm-mips/module.h
---- linux.old/include/asm-mips/module.h        2006-08-25 00:43:22.000000000 +0200
-+++ linux.dev/include/asm-mips/module.h        2006-08-25 00:39:38.000000000 +0200
-@@ -113,6 +113,12 @@
+diff -urN linux-2.6.19/include/asm-mips/module.h linux-2.6.19.new/include/asm-mips/module.h
+--- linux-2.6.19/include/asm-mips/module.h     2006-11-29 22:57:37.000000000 +0100
++++ linux-2.6.19.new/include/asm-mips/module.h 2006-12-16 19:03:22.000000000 +0100
+@@ -112,6 +112,12 @@
  #define MODULE_PROC_FAMILY "RM9000 "
  #elif defined CONFIG_CPU_SB1
  #define MODULE_PROC_FAMILY "SB1 "
@@ -9632,4 +9642,3 @@ diff -urN linux.old/include/asm-mips/module.h linux.dev/include/asm-mips/module.
  #else
  #error MODULE_PROC_FAMILY undefined for your processor configuration
  #endif
-
This page took 0.100367 seconds and 4 git commands to generate.