+choice
+ prompt "Broadcom Commengine ADSL board"
+ depends on BCM963XX
-+ default BCM96345
++ default BCM96348
+ help
+ Select different Broadcom ADSL board
+
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 @@
+@@ -0,0 +1,160 @@
+/*
+<:copyright-gpl
+ Copyright 2002 Broadcom Corp. All Rights Reserved.
+typedef signed char int8;
+typedef signed short int16;
+typedef signed long int32;
-+#if !defined(__cplusplus)
-+typedef int bool;
-+#endif
+#endif
+
+typedef unsigned char byte;
+ irq_desc[i].status = IRQ_DISABLED;
+ irq_desc[i].action = 0;
+ irq_desc[i].depth = 1;
-+ irq_desc[i].handler = &brcm_irq_type;
++ irq_desc[i].chip = &brcm_irq_type;
+ }
+}
+
+ * 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;
++ irq_desc[interruptId].chip = &brcm_irq_no_end_type;
+
+ if( interruptId >= INTERNAL_ISR_TABLE_OFFSET )
+ {
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 @@
+@@ -0,0 +1,523 @@
+/*
+<:copyright-gpl
+ Copyright 2002 Broadcom Corp. All Rights Reserved.
+#include <asm/gdb-stub.h>
+
+extern void brcm_time_init(void);
-+extern void brcm_timer_setup(struct irqaction *irq);
+extern unsigned long getMemorySize(void);
+
+#if defined(CONFIG_BCM96348) && defined(CONFIG_PCI)
+ pm_power_off = brcm_machine_halt;
+
+ board_time_init = brcm_time_init;
-+ board_timer_setup = brcm_timer_setup;
+
+ panic_timeout = 5;
+
+ return 0;
+}
+
-+void plat_setup(void)
++void __init plat_mem_setup(void)
+{
+ brcm63xx_setup();
+}
+ irq_enter();
+ kstat_this_cpu.irqs[irq]++;
+
-+ timer_interrupt(irq, NULL, regs);
++ timer_interrupt(irq, regs);
+ irq_exit();
+ return IRQ_HANDLED;
+}
+}
+
+
-+void __init brcm_timer_setup(struct irqaction *irq)
++void __init plat_timer_setup(struct irqaction *irq)
+{
+ r4k_cur = (read_c0_count() + r4k_offset);
+ write_c0_compare(r4k_cur);