diff -urN --exclude-from /tmp/excludes ../../linux-2.6.18/arch/arm/boot/compressed/head-lpc3000.S ../linux-2.6.18/arch/arm/boot/compressed/head-lpc3000.S
--- ../../linux-2.6.18/arch/arm/boot/compressed/head-lpc3000.S	1969-12-31 19:00:00.000000000 -0500
+++ ../linux-2.6.18/arch/arm/boot/compressed/head-lpc3000.S	2006-10-09 09:44:46.000000000 -0400
@@ -0,0 +1,22 @@
+/* 
+ * linux/arch/arm/boot/compressed/head-lpc3000.S
+ * 
+ * Copyright (C) 2006 Brad Parker
+ * 
+ * This is merged with head.S by the linker.
+ */
+
+#include <asm/mach-types.h>
+
+#ifndef CONFIG_ARCH_LPC3000
+#error What am I doing here...
+#endif
+
+	.section ".start", "ax"
+
+__LPC3XXX_start:
+	mov	lr, pc			@ build up params since we have no
+	b	create_params		@ boot loader yet
+
+	mov	r8, #0			@ zero ptr (for now)
+	mov	r7, #MACH_TYPE_LPC3XXX	@ set architecture id
diff -urN --exclude-from /tmp/excludes ../../linux-2.6.18/arch/arm/boot/compressed/Makefile ../linux-2.6.18/arch/arm/boot/compressed/Makefile
--- ../../linux-2.6.18/arch/arm/boot/compressed/Makefile	2006-09-19 23:42:06.000000000 -0400
+++ ../linux-2.6.18/arch/arm/boot/compressed/Makefile	2006-10-08 20:28:10.000000000 -0400
@@ -46,6 +46,10 @@
 OBJS		+= head-sharpsl.o
 endif
 
+ifeq ($(CONFIG_ARCH_LPC3000),y)
+OBJS		+= head-lpc3000.o params-lpc3000.o
+endif
+
 ifeq ($(CONFIG_ARCH_AT91RM9200),y)
 OBJS		+= head-at91rm9200.o
 endif
diff -urN --exclude-from /tmp/excludes ../../linux-2.6.18/arch/arm/boot/compressed/params-lpc3000.c ../linux-2.6.18/arch/arm/boot/compressed/params-lpc3000.c
--- ../../linux-2.6.18/arch/arm/boot/compressed/params-lpc3000.c	1969-12-31 19:00:00.000000000 -0500
+++ ../linux-2.6.18/arch/arm/boot/compressed/params-lpc3000.c	2006-10-08 23:22:41.000000000 -0400
@@ -0,0 +1,53 @@
+/*
+ * linux/arch/arm/boot/compressed/params-lpc3000.c
+ *
+ * temp until we have a boot loader
+ */
+
+#include <linux/kernel.h>
+#include <linux/types.h>
+#include <asm/setup.h>
+#include <asm/page.h>
+
+
+static const char cmdline[] = "console=ttyS2,9600 rdinit=/bin/sh";
+
+asmlinkage void
+create_params (void)
+{
+	struct tag *tag = (struct tag *) 0x80000100;
+	int j;
+	unsigned char *c;
+
+	/* Head of the taglist */
+	tag->hdr.tag  = ATAG_CORE;
+	tag->hdr.size = tag_size(tag_core);
+	tag->u.core.flags = 1;
+	tag->u.core.pagesize = PAGE_SIZE;
+	tag->u.core.rootdev = 0;
+
+	/* memory */
+	tag = tag_next(tag);
+	tag->hdr.tag = ATAG_MEM;
+	tag->hdr.size = tag_size(tag_mem32);
+	tag->u.mem.size = 32*1024*1024;
+	tag->u.mem.start = 0x80000000;
+	
+	/* The command line */
+	tag = tag_next(tag);
+	tag->hdr.tag = ATAG_CMDLINE;
+
+	j = 0;
+	c = (unsigned char *)cmdline;
+	while ((tag->u.cmdline.cmdline[j++] = *c++))
+		;
+
+	tag->hdr.size = (j + 7 + sizeof(struct tag_header)) >> 2;
+
+	/* End of the taglist */
+	tag = tag_next(tag);
+	tag->hdr.tag = 0;
+	tag->hdr.size = 0;
+}
+
+
diff -urN --exclude-from /tmp/excludes ../../linux-2.6.18/arch/arm/Kconfig ../linux-2.6.18/arch/arm/Kconfig
--- ../../linux-2.6.18/arch/arm/Kconfig	2006-09-19 23:42:06.000000000 -0400
+++ ../linux-2.6.18/arch/arm/Kconfig	2006-10-06 20:22:46.000000000 -0400
@@ -298,6 +298,13 @@
 	help
 	  Support for TI's OMAP platform (OMAP1 and OMAP2).
 
+config ARCH_LPC3000
+	bool "Philips/NXP LPC3000"
+	help
+	  Say Y here for systems based on one of the Philips/NXP LPC3000
+	  System on a Chip processors.  The LPC3180 CPU uses an ARM926EJ-S
+	  core with various integrated devices.
+
 endchoice
 
 source "arch/arm/mach-clps711x/Kconfig"
@@ -344,6 +351,8 @@
 
 source "arch/arm/mach-netx/Kconfig"
 
+source "arch/arm/mach-lpc3000/Kconfig"
+
 # Definitions to make life easier
 config ARCH_ACORN
 	bool
diff -urN --exclude-from /tmp/excludes ../../linux-2.6.18/arch/arm/mach-lh7a40x/Kconfig ../linux-2.6.18/arch/arm/mach-lh7a40x/Kconfig
--- ../../linux-2.6.18/arch/arm/mach-lh7a40x/Kconfig	2006-09-19 23:42:06.000000000 -0400
+++ ../linux-2.6.18/arch/arm/mach-lh7a40x/Kconfig	2006-10-07 04:40:58.000000000 -0400
@@ -14,7 +14,7 @@
 	bool "LPD7A400 Card Engine"
 	select ARCH_LH7A400
 #	select IDE_POLL
-	select HAS_TOUCHSCREEN_ADS7843_LH7
+#	select HAS_TOUCHSCREEN_ADS7843_LH7
 	help
 	  Say Y here if you are using Logic Product Development's
 	  LPD7A400 CardEngine.  For the time being, the LPD7A400 and
diff -urN --exclude-from /tmp/excludes ../../linux-2.6.18/arch/arm/mach-lpc3000/arch-lpc3000.c ../linux-2.6.18/arch/arm/mach-lpc3000/arch-lpc3000.c
--- ../../linux-2.6.18/arch/arm/mach-lpc3000/arch-lpc3000.c	1969-12-31 19:00:00.000000000 -0500
+++ ../linux-2.6.18/arch/arm/mach-lpc3000/arch-lpc3000.c	2006-10-08 20:06:05.000000000 -0400
@@ -0,0 +1,81 @@
+/* arch/arm/mach-lpc3000/arch-lpc3000.c
+ *
+ *  Copyright (C) 2006 Brad Parker
+ *
+ *  This program is free software; you can redistribute it and/or
+ *  modify it under the terms of the GNU General Public License
+ *  version 2 as published by the Free Software Foundation.
+ *
+ */
+
+#include <linux/tty.h>
+#include <linux/init.h>
+#include <linux/platform_device.h>
+#include <linux/interrupt.h>
+#include <linux/irq.h>
+
+#include <asm/hardware.h>
+#include <asm/setup.h>
+#include <asm/mach-types.h>
+#include <asm/mach/arch.h>
+#include <asm/irq.h>
+#include <asm/mach/irq.h>
+#include <asm/mach/map.h>
+
+static void __init nohau201_init (void)
+{
+//	platform_add_devices(nohau201_devs, ARRAY_SIZE (nohau201_devs));
+}
+
+void __init lpc3000_init_board_irq (void)
+{
+}
+
+static struct map_desc lpc3000_io_desc[] __initdata = {
+	{
+		.virtual	= AHB_PORT5_VIRT,
+		.pfn		= __phys_to_pfn(AHB_PORT5_PHYS),
+		.length		= AHB_PORT5_LEN,
+		.type		= MT_DEVICE
+	},
+	{
+		.virtual	= AHB_PORT6_VIRT,
+		.pfn		= __phys_to_pfn(AHB_PORT6_PHYS),
+		.length		= AHB_PORT6_LEN,
+		.type		= MT_DEVICE
+	},
+	{
+		.virtual	= AHB_PORT7_VIRT,
+		.pfn		= __phys_to_pfn(AHB_PORT7_PHYS),
+		.length		= AHB_PORT7_LEN,
+		.type		= MT_DEVICE
+	}
+};
+
+void __init
+lpc3000_map_io(void)
+{
+printascii("lpc3000_map_io()\n");
+	iotable_init(lpc3000_io_desc, ARRAY_SIZE (lpc3000_io_desc));
+}
+
+#ifdef CONFIG_MACH_NOHAU201
+
+extern void __init lpc3000_init_irq (void);
+extern struct sys_timer lpc3000_timer;
+
+MACHINE_START (LPC3XXX, "Philip/Nohau Evaluation 20 (Quatro) LPC3180")
+	/* Maintainer: Brad Parker */
+//	.phys_io	= 0x40000000,	/* MACHINFO_PHYSIO */
+//	.io_pg_offst	= ((io_p2v (0x40000000))>>18) & 0xfffc,
+	.phys_io	= 0x40090000,	/* MACHINFO_PHYSIO */
+	.io_pg_offst	= ((io_p2v (0x40090000))>>18) & 0xfffc,
+	.boot_params	= 0x80000100,
+	.map_io		= lpc3000_map_io,
+	.init_irq	= lpc3000_init_irq,
+	.timer		= &lpc3000_timer,
+	.init_machine	= nohau201_init,
+MACHINE_END
+
+#endif
+
diff -urN --exclude-from /tmp/excludes ../../linux-2.6.18/arch/arm/mach-lpc3000/clocks.c ../linux-2.6.18/arch/arm/mach-lpc3000/clocks.c
--- ../../linux-2.6.18/arch/arm/mach-lpc3000/clocks.c	1969-12-31 19:00:00.000000000 -0500
+++ ../linux-2.6.18/arch/arm/mach-lpc3000/clocks.c	2006-10-09 09:46:35.000000000 -0400
@@ -0,0 +1,22 @@
+/* arch/arm/mach-lpc3000/clocks.c
+ *
+ *  Copyright (C) 2006 Brad Parker
+ *
+ *  This program is free software; you can redistribute it and/or
+ *  modify it under the terms of the GNU General Public License
+ *  version 2 as published by the Free Software Foundation.
+ *
+ */
+
+#include <linux/config.h>
+#include <linux/cpufreq.h>
+#include <asm/hardware.h>
+#include <asm/arch/clocks.h>
+#include <linux/err.h>
+
+static int __init clk_init (void)
+{
+	return 0;
+}
+
+arch_initcall(clk_init);
diff -urN --exclude-from /tmp/excludes ../../linux-2.6.18/arch/arm/mach-lpc3000/irq-lpc3000.c ../linux-2.6.18/arch/arm/mach-lpc3000/irq-lpc3000.c
--- ../../linux-2.6.18/arch/arm/mach-lpc3000/irq-lpc3000.c	1969-12-31 19:00:00.000000000 -0500
+++ ../linux-2.6.18/arch/arm/mach-lpc3000/irq-lpc3000.c	2006-10-08 16:53:48.000000000 -0400
@@ -0,0 +1,91 @@
+/* arch/arm/mach-lpc3000/irq-lpc3000.c
+ *
+ *  Copyright (C) 2006 Brad Parker
+ *
+ *  This program is free software; you can redistribute it and/or
+ *  modify it under the terms of the GNU General Public License
+ *  version 2 as published by the Free Software Foundation.
+ *
+ */
+
+#include <linux/init.h>
+#include <linux/module.h>
+#include <linux/interrupt.h>
+#include <linux/ptrace.h>
+
+#include <asm/hardware.h>
+#include <asm/irq.h>
+#include <asm/mach/irq.h>
+#include <asm/arch/irqs.h>
+
+/* CPU IRQ handling */
+
+static void lpc3000_mask_irq(u32 irq)
+{
+	if (irq < IRQ_SIC1_BASE)
+		MIC_ER &= ~(1 << irq);
+	else
+		if (irq < IRQ_SIC2_BASE)
+			SIC1_ER &= ~(1 << (irq % 32));
+		else
+			SIC2_ER &= ~(1 << (irq % 32));
+}
+
+static void lpc3000_unmask_irq(u32 irq)
+{
+	if (irq < IRQ_SIC1_BASE)
+		MIC_ER |= 1 << irq;
+	else
+		if (irq < IRQ_SIC2_BASE)
+			SIC1_ER |= 1 << (irq % 32);
+		else
+			SIC2_ER |= 1 << (irq % 32);
+}
+
+static struct irq_chip lpc3000_internal_chip = {
+	.name	= "MPU",
+	.ack	= lpc3000_mask_irq, /* Level triggering -> mask is ack */
+	.mask	= lpc3000_mask_irq,
+	.unmask	= lpc3000_unmask_irq,
+};
+
+/* IRQ initialization */
+
+extern void lpc3000_init_board_irq(void);
+
+void __init lpc3000_init_irq (void)
+{
+	int irq;
+
+	/* disable all interrupts */
+	MIC_ER = 0x0;
+	SIC1_ER = 0x0;
+	SIC2_ER = 0x0;
+
+	/* set default polarity to active high */
+	MIC_APR = 0xffffffff;
+	SIC1_APR = 0xffffffff;
+	SIC2_APR = 0xffffffff;
+
+	/* set default type to level */
+	MIC_ATR = 0x0;
+	SIC1_ATR = 0x0;
+	SIC2_ATR = 0x0;
+
+	/* set default to irq (and not fiq) */
+	MIC_ITR = 0x0;
+	SIC1_ITR = 0x0;
+	SIC2_ITR = 0x0;
+
+	barrier();
+
+	for (irq = 0; irq < NR_IRQS; ++irq) {
+		set_irq_chip(irq, &lpc3000_internal_chip);
+		set_irq_handler(irq, do_level_IRQ);
+		set_irq_flags (irq, IRQF_VALID);
+	}
+
+	lpc3000_init_board_irq();
+
+//	init_FIQ();
+}
diff -urN --exclude-from /tmp/excludes ../../linux-2.6.18/arch/arm/mach-lpc3000/Kconfig ../linux-2.6.18/arch/arm/mach-lpc3000/Kconfig
--- ../../linux-2.6.18/arch/arm/mach-lpc3000/Kconfig	1969-12-31 19:00:00.000000000 -0500
+++ ../linux-2.6.18/arch/arm/mach-lpc3000/Kconfig	2006-10-07 04:40:17.000000000 -0400
@@ -0,0 +1,17 @@
+if ARCH_LPC3000
+
+menu "LPC3000 Implementations"
+
+config MACH_NOHAU201
+	bool "Nohau evaluation 201 (Quatro)"
+#	select ARCH_LPC3000
+	help
+	  Say Y here if you are using the Nohau Evaluation 201 (Quatro)
+	  board.  
+
+#config ARCH_LPC3000
+#	bool
+
+endmenu
+
+endif
diff -urN --exclude-from /tmp/excludes ../../linux-2.6.18/arch/arm/mach-lpc3000/Makefile ../linux-2.6.18/arch/arm/mach-lpc3000/Makefile
--- ../../linux-2.6.18/arch/arm/mach-lpc3000/Makefile	1969-12-31 19:00:00.000000000 -0500
+++ ../linux-2.6.18/arch/arm/mach-lpc3000/Makefile	2006-10-07 05:41:53.000000000 -0400
@@ -0,0 +1,13 @@
+#
+# Makefile for the linux kernel.
+#
+
+# Object file lists.
+
+obj-y				:= time.o clocks.o
+obj-m				:=
+obj-n				:=
+obj-				:=
+
+obj-$(CONFIG_MACH_NOHAU201)	+= arch-lpc3000.o irq-lpc3000.o
+
diff -urN --exclude-from /tmp/excludes ../../linux-2.6.18/arch/arm/mach-lpc3000/Makefile.boot ../linux-2.6.18/arch/arm/mach-lpc3000/Makefile.boot
--- ../../linux-2.6.18/arch/arm/mach-lpc3000/Makefile.boot	1969-12-31 19:00:00.000000000 -0500
+++ ../linux-2.6.18/arch/arm/mach-lpc3000/Makefile.boot	2006-10-08 20:01:11.000000000 -0400
@@ -0,0 +1,9 @@
+# Note: the following conditions must always be true:
+#   ZRELADDR == virt_to_phys(TEXTADDR)
+#   PARAMS_PHYS must be within 4MB of ZRELADDR
+#   INITRD_PHYS must be in RAM
+
+   zreladdr-y	:= 0x80008000
+params_phys-y	:= 0x80000100
+initrd_phys-y	:= 0x81800000
+
diff -urN --exclude-from /tmp/excludes ../../linux-2.6.18/arch/arm/mach-lpc3000/time.c ../linux-2.6.18/arch/arm/mach-lpc3000/time.c
--- ../../linux-2.6.18/arch/arm/mach-lpc3000/time.c	1969-12-31 19:00:00.000000000 -0500
+++ ../linux-2.6.18/arch/arm/mach-lpc3000/time.c	2006-10-09 09:38:35.000000000 -0400
@@ -0,0 +1,70 @@
+/*
+ *  arch/arm/mach-lpc3000/time.c
+ *
+ *  Copyright (C) 2006 Brad Parker
+ *
+ *  This program is free software; you can redistribute it and/or
+ *  modify it under the terms of the GNU General Public License
+ *  version 2 as published by the Free Software Foundation.
+ *
+ */
+#include <linux/module.h>
+#include <linux/kernel.h>
+#include <linux/interrupt.h>
+#include <linux/irq.h>
+#include <linux/time.h>
+
+#include <asm/hardware.h>
+#include <asm/io.h>
+#include <asm/irq.h>
+#include <asm/leds.h>
+
+#include <asm/mach/time.h>
+
+static irqreturn_t
+lpc3000_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
+{
+	write_seqlock(&xtime_lock);
+
+	MSTIM_INT = MSTIM_INT_MATCH0_INT;
+	timer_tick(regs);
+
+	write_sequnlock(&xtime_lock);
+
+	return IRQ_HANDLED;
+}
+
+static struct irqaction lpc3000_timer_irq = {
+	.name		= "LPC3000 Timer Tick",
+	.flags		= IRQF_DISABLED | IRQF_TIMER,
+	.handler	= lpc3000_timer_interrupt,
+};
+
+static void delay_pclk(void)
+{
+	volatile long l;
+	for (l = 0; l < 1000; l++);
+}
+
+static void __init lpc3000_timer_init (void)
+{
+	/* reset millisecond timer */
+	MSTIM_CTRL = 0;
+	MSTIM_MCTRL = 0;
+	MSTIM_INT = MSTIM_INT_MATCH0_INT;
+
+	setup_irq(IRQ_MIC_MSTIMER_INT, &lpc3000_timer_irq);
+
+	MSTIM_MATCH0 = 32768 / 100; /* HZ? */
+	MSTIM_MCTRL = MSTIME_MCTRL_RESET_COUNT0 | MSTIME_MCTRL_MR0_INT;
+
+	MSTIM_CTRL = MSTIM_CTRL_COUNT_ENAB;
+	MSTIM_CTRL = MSTIM_CTRL_RESET_COUNT | MSTIM_CTRL_COUNT_ENAB;
+	barrier();
+	delay_pclk();
+	MSTIM_CTRL = MSTIM_CTRL_COUNT_ENAB;
+}
+
+struct sys_timer lpc3000_timer = {
+	.init		= &lpc3000_timer_init,
+};
diff -urN --exclude-from /tmp/excludes ../../linux-2.6.18/arch/arm/Makefile ../linux-2.6.18/arch/arm/Makefile
--- ../../linux-2.6.18/arch/arm/Makefile	2006-09-19 23:42:06.000000000 -0400
+++ ../linux-2.6.18/arch/arm/Makefile	2006-10-07 05:00:29.000000000 -0400
@@ -119,6 +119,7 @@
  machine-$(CONFIG_ARCH_EP93XX)     := ep93xx
  machine-$(CONFIG_ARCH_PNX4008)    := pnx4008
  machine-$(CONFIG_ARCH_NETX)       := netx
+ machine-$(CONFIG_ARCH_LPC3000)    := lpc3000
 
 ifeq ($(CONFIG_ARCH_EBSA110),y)
 # This is what happens if you forget the IOCS16 line.
diff -urN --exclude-from /tmp/excludes ../../linux-2.6.18/arch/arm/mm/Kconfig ../linux-2.6.18/arch/arm/mm/Kconfig
--- ../../linux-2.6.18/arch/arm/mm/Kconfig	2006-09-19 23:42:06.000000000 -0400
+++ ../linux-2.6.18/arch/arm/mm/Kconfig	2006-10-07 04:52:00.000000000 -0400
@@ -121,8 +121,8 @@
 # ARM926T
 config CPU_ARM926T
 	bool "Support ARM926T processor"
-	depends on ARCH_INTEGRATOR || ARCH_VERSATILE_PB || MACH_VERSATILE_AB || ARCH_OMAP730 || ARCH_OMAP16XX || MACH_REALVIEW_EB || ARCH_PNX4008 || ARCH_NETX || CPU_S3C2412 || ARCH_AT91SAM9260 || ARCH_AT91SAM9261
-	default y if ARCH_VERSATILE_PB || MACH_VERSATILE_AB || ARCH_OMAP730 || ARCH_OMAP16XX || ARCH_PNX4008 || ARCH_NETX || CPU_S3C2412 || ARCH_AT91SAM9260 || ARCH_AT91SAM9261
+	depends on ARCH_INTEGRATOR || ARCH_VERSATILE_PB || MACH_VERSATILE_AB || ARCH_OMAP730 || ARCH_OMAP16XX || MACH_REALVIEW_EB || ARCH_PNX4008 || ARCH_NETX || CPU_S3C2412 || ARCH_AT91SAM9260 || ARCH_AT91SAM9261 || ARCH_LPC3000
+	default y if ARCH_VERSATILE_PB || MACH_VERSATILE_AB || ARCH_OMAP730 || ARCH_OMAP16XX || ARCH_PNX4008 || ARCH_NETX || CPU_S3C2412 || ARCH_AT91SAM9260 || ARCH_AT91SAM9261 || ARCH_LPC3000
 	select CPU_32v5
 	select CPU_ABRT_EV5TJ
 	select CPU_CACHE_VIVT
diff -urN --exclude-from /tmp/excludes ../../linux-2.6.18/build.sh ../linux-2.6.18/build.sh
--- ../../linux-2.6.18/build.sh	1969-12-31 19:00:00.000000000 -0500
+++ ../linux-2.6.18/build.sh	2006-10-07 23:39:23.000000000 -0400
@@ -0,0 +1,3 @@
+#!/bin/sh
+make
+cp arch/arm/boot/compressed/vmlinux ../loader
diff -urN --exclude-from /tmp/excludes ../../linux-2.6.18/dot.config ../linux-2.6.18/dot.config
--- ../../linux-2.6.18/dot.config	1969-12-31 19:00:00.000000000 -0500
+++ ../linux-2.6.18/dot.config	2006-10-09 09:11:11.000000000 -0400
@@ -0,0 +1,902 @@
+#
+# Automatically generated make config: don't edit
+# Linux kernel version: 2.6.18
+# Sun Oct  8 22:24:48 2006
+#
+CONFIG_ARM=y
+CONFIG_MMU=y
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_HARDIRQS_SW_RESEND=y
+CONFIG_GENERIC_IRQ_PROBE=y
+CONFIG_RWSEM_GENERIC_SPINLOCK=y
+CONFIG_GENERIC_HWEIGHT=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_VECTORS_BASE=0xffff0000
+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
+
+#
+# Code maturity level options
+#
+CONFIG_EXPERIMENTAL=y
+CONFIG_BROKEN_ON_SMP=y
+CONFIG_INIT_ENV_ARG_LIMIT=32
+
+#
+# General setup
+#
+CONFIG_LOCALVERSION=""
+# CONFIG_LOCALVERSION_AUTO is not set
+# CONFIG_SWAP is not set
+CONFIG_SYSVIPC=y
+# CONFIG_POSIX_MQUEUE is not set
+# CONFIG_BSD_PROCESS_ACCT is not set
+# CONFIG_TASKSTATS is not set
+# CONFIG_AUDIT is not set
+CONFIG_IKCONFIG=y
+# CONFIG_IKCONFIG_PROC is not set
+# CONFIG_RELAY is not set
+CONFIG_INITRAMFS_SOURCE="/home/brad/lpc3000/ramdisk/ramdisk3.cpio"
+CONFIG_INITRAMFS_ROOT_UID=0
+CONFIG_INITRAMFS_ROOT_GID=0
+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
+CONFIG_EMBEDDED=y
+CONFIG_UID16=y
+CONFIG_SYSCTL=y
+CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_ALL is not set
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
+# CONFIG_HOTPLUG is not set
+CONFIG_PRINTK=y
+CONFIG_BUG=y
+# CONFIG_ELF_CORE is not set
+CONFIG_BASE_FULL=y
+CONFIG_FUTEX=y
+# CONFIG_EPOLL is not set
+CONFIG_SHMEM=y
+# CONFIG_SLAB is not set
+CONFIG_VM_EVENT_COUNTERS=y
+CONFIG_RT_MUTEXES=y
+# CONFIG_TINY_SHMEM is not set
+CONFIG_BASE_SMALL=0
+CONFIG_SLOB=y
+
+#
+# Loadable module support
+#
+CONFIG_MODULES=y
+CONFIG_MODULE_UNLOAD=y
+# CONFIG_MODULE_FORCE_UNLOAD is not set
+# CONFIG_MODVERSIONS is not set
+# CONFIG_MODULE_SRCVERSION_ALL is not set
+# CONFIG_KMOD is not set
+
+#
+# Block layer
+#
+# CONFIG_BLK_DEV_IO_TRACE is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+# CONFIG_IOSCHED_AS is not set
+# CONFIG_IOSCHED_DEADLINE is not set
+# CONFIG_IOSCHED_CFQ is not set
+# CONFIG_DEFAULT_AS is not set
+# CONFIG_DEFAULT_DEADLINE is not set
+# CONFIG_DEFAULT_CFQ is not set
+CONFIG_DEFAULT_NOOP=y
+CONFIG_DEFAULT_IOSCHED="noop"
+
+#
+# System Type
+#
+# CONFIG_ARCH_AAEC2000 is not set
+# CONFIG_ARCH_INTEGRATOR is not set
+# CONFIG_ARCH_REALVIEW is not set
+# CONFIG_ARCH_VERSATILE is not set
+# CONFIG_ARCH_AT91 is not set
+# CONFIG_ARCH_CLPS7500 is not set
+# CONFIG_ARCH_CLPS711X is not set
+# CONFIG_ARCH_CO285 is not set
+# CONFIG_ARCH_EBSA110 is not set
+# CONFIG_ARCH_EP93XX is not set
+# CONFIG_ARCH_FOOTBRIDGE is not set
+# CONFIG_ARCH_NETX is not set
+# CONFIG_ARCH_H720X is not set
+# CONFIG_ARCH_IMX is not set
+# CONFIG_ARCH_IOP3XX is not set
+# CONFIG_ARCH_IXP4XX is not set
+# CONFIG_ARCH_IXP2000 is not set
+# CONFIG_ARCH_IXP23XX is not set
+# CONFIG_ARCH_L7200 is not set
+# CONFIG_ARCH_PNX4008 is not set
+# CONFIG_ARCH_PXA is not set
+# CONFIG_ARCH_RPC is not set
+# CONFIG_ARCH_SA1100 is not set
+# CONFIG_ARCH_S3C2410 is not set
+# CONFIG_ARCH_SHARK is not set
+# CONFIG_ARCH_LH7A40X is not set
+# CONFIG_ARCH_OMAP is not set
+CONFIG_ARCH_LPC3000=y
+
+#
+# LPC3000 Implementations
+#
+CONFIG_MACH_NOHAU201=y
+
+#
+# Processor Type
+#
+CONFIG_CPU_32=y
+CONFIG_CPU_ARM926T=y
+CONFIG_CPU_32v5=y
+CONFIG_CPU_ABRT_EV5TJ=y
+CONFIG_CPU_CACHE_VIVT=y
+CONFIG_CPU_COPY_V4WB=y
+CONFIG_CPU_TLB_V4WBI=y
+
+#
+# Processor Features
+#
+CONFIG_ARM_THUMB=y
+# CONFIG_CPU_ICACHE_DISABLE is not set
+# CONFIG_CPU_DCACHE_DISABLE is not set
+# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
+# CONFIG_CPU_CACHE_ROUND_ROBIN is not set
+
+#
+# Bus support
+#
+
+#
+# PCCARD (PCMCIA/CardBus) support
+#
+
+#
+# Kernel Features
+#
+# CONFIG_PREEMPT is not set
+# CONFIG_NO_IDLE_HZ is not set
+CONFIG_HZ=100
+# CONFIG_AEABI is not set
+# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
+CONFIG_SELECT_MEMORY_MODEL=y
+CONFIG_FLATMEM_MANUAL=y
+# CONFIG_DISCONTIGMEM_MANUAL is not set
+# CONFIG_SPARSEMEM_MANUAL is not set
+CONFIG_FLATMEM=y
+CONFIG_FLAT_NODE_MEM_MAP=y
+# CONFIG_SPARSEMEM_STATIC is not set
+CONFIG_SPLIT_PTLOCK_CPUS=4096
+# CONFIG_RESOURCES_64BIT is not set
+CONFIG_ALIGNMENT_TRAP=y
+
+#
+# Boot options
+#
+CONFIG_ZBOOT_ROM_TEXT=0x0
+CONFIG_ZBOOT_ROM_BSS=0x0
+CONFIG_CMDLINE="console=ttyS2,9600"
+# CONFIG_XIP_KERNEL is not set
+
+#
+# Floating point emulation
+#
+
+#
+# At least one emulation must be selected
+#
+CONFIG_FPE_NWFPE=y
+# CONFIG_FPE_NWFPE_XP is not set
+# CONFIG_FPE_FASTFPE is not set
+CONFIG_VFP=y
+
+#
+# Userspace binary formats
+#
+CONFIG_BINFMT_ELF=y
+# CONFIG_BINFMT_AOUT is not set
+# CONFIG_BINFMT_MISC is not set
+# CONFIG_ARTHUR is not set
+
+#
+# Power management options
+#
+# CONFIG_PM is not set
+# CONFIG_APM is not set
+
+#
+# Networking
+#
+CONFIG_NET=y
+
+#
+# Networking options
+#
+# CONFIG_NETDEBUG is not set
+CONFIG_PACKET=y
+# CONFIG_PACKET_MMAP is not set
+CONFIG_UNIX=y
+# CONFIG_NET_KEY is not set
+CONFIG_INET=y
+# CONFIG_IP_MULTICAST is not set
+# CONFIG_IP_ADVANCED_ROUTER is not set
+CONFIG_IP_FIB_HASH=y
+# CONFIG_IP_PNP is not set
+# CONFIG_NET_IPIP is not set
+# CONFIG_NET_IPGRE is not set
+# CONFIG_ARPD is not set
+# CONFIG_SYN_COOKIES is not set
+# CONFIG_INET_AH is not set
+# CONFIG_INET_ESP is not set
+# CONFIG_INET_IPCOMP is not set
+# CONFIG_INET_XFRM_TUNNEL is not set
+# CONFIG_INET_TUNNEL is not set
+# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
+# CONFIG_INET_XFRM_MODE_TUNNEL is not set
+# CONFIG_INET_DIAG is not set
+# CONFIG_TCP_CONG_ADVANCED is not set
+CONFIG_TCP_CONG_BIC=y
+# CONFIG_IPV6 is not set
+# CONFIG_INET6_XFRM_TUNNEL is not set
+# CONFIG_INET6_TUNNEL is not set
+# CONFIG_NETWORK_SECMARK is not set
+# CONFIG_NETFILTER is not set
+
+#
+# DCCP Configuration (EXPERIMENTAL)
+#
+# CONFIG_IP_DCCP is not set
+
+#
+# SCTP Configuration (EXPERIMENTAL)
+#
+# CONFIG_IP_SCTP is not set
+
+#
+# TIPC Configuration (EXPERIMENTAL)
+#
+# CONFIG_TIPC is not set
+# CONFIG_ATM is not set
+# CONFIG_BRIDGE is not set
+# CONFIG_VLAN_8021Q is not set
+# CONFIG_DECNET is not set
+# CONFIG_LLC2 is not set
+# CONFIG_IPX is not set
+# CONFIG_ATALK is not set
+# CONFIG_X25 is not set
+# CONFIG_LAPB is not set
+# CONFIG_ECONET is not set
+# CONFIG_WAN_ROUTER is not set
+
+#
+# QoS and/or fair queueing
+#
+# CONFIG_NET_SCHED is not set
+
+#
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+# CONFIG_HAMRADIO is not set
+# CONFIG_IRDA is not set
+# CONFIG_BT is not set
+# CONFIG_IEEE80211 is not set
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_STANDALONE=y
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+# CONFIG_DEBUG_DRIVER is not set
+# CONFIG_SYS_HYPERVISOR is not set
+
+#
+# Connector - unified userspace <-> kernelspace linker
+#
+# CONFIG_CONNECTOR is not set
+
+#
+# Memory Technology Devices (MTD)
+#
+CONFIG_MTD=y
+# CONFIG_MTD_DEBUG is not set
+# CONFIG_MTD_CONCAT is not set
+CONFIG_MTD_PARTITIONS=y
+# CONFIG_MTD_REDBOOT_PARTS is not set
+CONFIG_MTD_CMDLINE_PARTS=y
+# CONFIG_MTD_AFS_PARTS is not set
+
+#
+# User Modules And Translation Layers
+#
+CONFIG_MTD_CHAR=y
+CONFIG_MTD_BLOCK=y
+# CONFIG_FTL is not set
+CONFIG_NFTL=y
+# CONFIG_NFTL_RW is not set
+# CONFIG_INFTL is not set
+# CONFIG_RFD_FTL is not set
+
+#
+# RAM/ROM/Flash chip drivers
+#
+CONFIG_MTD_CFI=y
+# CONFIG_MTD_JEDECPROBE is not set
+CONFIG_MTD_GEN_PROBE=y
+# CONFIG_MTD_CFI_ADV_OPTIONS is not set
+CONFIG_MTD_MAP_BANK_WIDTH_1=y
+CONFIG_MTD_MAP_BANK_WIDTH_2=y
+CONFIG_MTD_MAP_BANK_WIDTH_4=y
+# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
+CONFIG_MTD_CFI_I1=y
+CONFIG_MTD_CFI_I2=y
+# CONFIG_MTD_CFI_I4 is not set
+# CONFIG_MTD_CFI_I8 is not set
+CONFIG_MTD_CFI_INTELEXT=y
+# CONFIG_MTD_CFI_AMDSTD is not set
+# CONFIG_MTD_CFI_STAA is not set
+CONFIG_MTD_CFI_UTIL=y
+# CONFIG_MTD_RAM is not set
+# CONFIG_MTD_ROM is not set
+# CONFIG_MTD_ABSENT is not set
+# CONFIG_MTD_OBSOLETE_CHIPS is not set
+
+#
+# Mapping drivers for chip access
+#
+# CONFIG_MTD_COMPLEX_MAPPINGS is not set
+CONFIG_MTD_PHYSMAP=y
+CONFIG_MTD_PHYSMAP_START=0x00000000
+CONFIG_MTD_PHYSMAP_LEN=0x04000000
+CONFIG_MTD_PHYSMAP_BANKWIDTH=4
+# CONFIG_MTD_ARM_INTEGRATOR is not set
+# CONFIG_MTD_PLATRAM is not set
+
+#
+# Self-contained MTD device drivers
+#
+# CONFIG_MTD_SLRAM is not set
+# CONFIG_MTD_PHRAM is not set
+# CONFIG_MTD_MTDRAM is not set
+# CONFIG_MTD_BLOCK2MTD is not set
+
+#
+# Disk-On-Chip Device Drivers
+#
+# CONFIG_MTD_DOC2000 is not set
+# CONFIG_MTD_DOC2001 is not set
+# CONFIG_MTD_DOC2001PLUS is not set
+
+#
+# NAND Flash Device Drivers
+#
+# CONFIG_MTD_NAND is not set
+
+#
+# OneNAND Flash Device Drivers
+#
+# CONFIG_MTD_ONENAND is not set
+
+#
+# Parallel port support
+#
+# CONFIG_PARPORT is not set
+
+#
+# Plug and Play support
+#
+
+#
+# Block devices
+#
+# CONFIG_BLK_DEV_COW_COMMON is not set
+CONFIG_BLK_DEV_LOOP=y
+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
+# CONFIG_BLK_DEV_NBD is not set
+CONFIG_BLK_DEV_RAM=y
+CONFIG_BLK_DEV_RAM_COUNT=16
+CONFIG_BLK_DEV_RAM_SIZE=4096
+CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
+CONFIG_BLK_DEV_INITRD=y
+# CONFIG_CDROM_PKTCDVD is not set
+# CONFIG_ATA_OVER_ETH is not set
+
+#
+# SCSI device support
+#
+# CONFIG_RAID_ATTRS is not set
+CONFIG_SCSI=y
+# CONFIG_SCSI_PROC_FS is not set
+
+#
+# SCSI support type (disk, tape, CD-ROM)
+#
+# CONFIG_BLK_DEV_SD is not set
+# CONFIG_CHR_DEV_ST is not set
+# CONFIG_CHR_DEV_OSST is not set
+# CONFIG_BLK_DEV_SR is not set
+# CONFIG_CHR_DEV_SG is not set
+# CONFIG_CHR_DEV_SCH is not set
+
+#
+# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
+#
+# CONFIG_SCSI_MULTI_LUN is not set
+# CONFIG_SCSI_CONSTANTS is not set
+# CONFIG_SCSI_LOGGING is not set
+
+#
+# SCSI Transport Attributes
+#
+# CONFIG_SCSI_SPI_ATTRS is not set
+# CONFIG_SCSI_FC_ATTRS is not set
+# CONFIG_SCSI_ISCSI_ATTRS is not set
+# CONFIG_SCSI_SAS_ATTRS is not set
+
+#
+# SCSI low-level drivers
+#
+# CONFIG_ISCSI_TCP is not set
+# CONFIG_SCSI_SATA is not set
+# CONFIG_SCSI_DEBUG is not set
+
+#
+# Multi-device support (RAID and LVM)
+#
+# CONFIG_MD is not set
+
+#
+# Fusion MPT device support
+#
+# CONFIG_FUSION is not set
+
+#
+# IEEE 1394 (FireWire) support
+#
+
+#
+# I2O device support
+#
+
+#
+# Network device support
+#
+CONFIG_NETDEVICES=y
+# CONFIG_DUMMY is not set
+# CONFIG_BONDING is not set
+# CONFIG_EQUALIZER is not set
+# CONFIG_TUN is not set
+
+#
+# PHY device support
+#
+# CONFIG_PHYLIB is not set
+
+#
+# Ethernet (10 or 100Mbit)
+#
+CONFIG_NET_ETHERNET=y
+# CONFIG_MII is not set
+# CONFIG_SMC91X is not set
+# CONFIG_DM9000 is not set
+
+#
+# Ethernet (1000 Mbit)
+#
+
+#
+# Ethernet (10000 Mbit)
+#
+
+#
+# Token Ring devices
+#
+
+#
+# Wireless LAN (non-hamradio)
+#
+# CONFIG_NET_RADIO is not set
+
+#
+# Wan interfaces
+#
+# CONFIG_WAN is not set
+# CONFIG_PPP is not set
+# CONFIG_SLIP is not set
+# CONFIG_SHAPER is not set
+# CONFIG_NETCONSOLE is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
+
+#
+# ISDN subsystem
+#
+# CONFIG_ISDN is not set
+
+#
+# Input device support
+#
+# CONFIG_INPUT is not set
+
+#
+# Hardware I/O ports
+#
+# CONFIG_SERIO is not set
+# CONFIG_GAMEPORT is not set
+
+#
+# Character devices
+#
+# CONFIG_VT is not set
+# CONFIG_SERIAL_NONSTANDARD is not set
+
+#
+# Serial drivers
+#
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_SERIAL_8250_NR_UARTS=4
+CONFIG_SERIAL_8250_RUNTIME_UARTS=4
+# CONFIG_SERIAL_8250_EXTENDED is not set
+CONFIG_SERIAL_8250_LPC3000=y
+
+#
+# Non-8250 serial port support
+#
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_CORE_CONSOLE=y
+CONFIG_UNIX98_PTYS=y
+CONFIG_LEGACY_PTYS=y
+CONFIG_LEGACY_PTY_COUNT=32
+
+#
+# IPMI
+#
+# CONFIG_IPMI_HANDLER is not set
+
+#
+# Watchdog Cards
+#
+# CONFIG_WATCHDOG is not set
+CONFIG_HW_RANDOM=y
+# CONFIG_NVRAM is not set
+# CONFIG_DTLK is not set
+# CONFIG_R3964 is not set
+
+#
+# Ftape, the floppy tape device driver
+#
+# CONFIG_RAW_DRIVER is not set
+
+#
+# TPM devices
+#
+# CONFIG_TCG_TPM is not set
+# CONFIG_TELCLOCK is not set
+
+#
+# I2C support
+#
+# CONFIG_I2C is not set
+
+#
+# SPI support
+#
+# CONFIG_SPI is not set
+# CONFIG_SPI_MASTER is not set
+
+#
+# Dallas's 1-wire bus
+#
+
+#
+# Hardware Monitoring support
+#
+# CONFIG_HWMON is not set
+# CONFIG_HWMON_VID is not set
+
+#
+# Misc devices
+#
+
+#
+# LED devices
+#
+# CONFIG_NEW_LEDS is not set
+
+#
+# LED drivers
+#
+
+#
+# LED Triggers
+#
+
+#
+# Multimedia devices
+#
+# CONFIG_VIDEO_DEV is not set
+CONFIG_VIDEO_V4L2=y
+
+#
+# Digital Video Broadcasting Devices
+#
+# CONFIG_DVB is not set
+
+#
+# Graphics support
+#
+# CONFIG_FIRMWARE_EDID is not set
+# CONFIG_FB is not set
+# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
+
+#
+# Sound
+#
+# CONFIG_SOUND is not set
+
+#
+# USB support
+#
+CONFIG_USB_ARCH_HAS_HCD=y
+# CONFIG_USB_ARCH_HAS_OHCI is not set
+# CONFIG_USB_ARCH_HAS_EHCI is not set
+# CONFIG_USB is not set
+
+#
+# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
+#
+
+#
+# USB Gadget Support
+#
+# CONFIG_USB_GADGET is not set
+
+#
+# MMC/SD Card support
+#
+# CONFIG_MMC is not set
+
+#
+# Real Time Clock
+#
+CONFIG_RTC_LIB=y
+# CONFIG_RTC_CLASS is not set
+
+#
+# File systems
+#
+CONFIG_EXT2_FS=y
+# CONFIG_EXT2_FS_XATTR is not set
+# CONFIG_EXT2_FS_XIP is not set
+CONFIG_EXT3_FS=y
+CONFIG_EXT3_FS_XATTR=y
+# CONFIG_EXT3_FS_POSIX_ACL is not set
+# CONFIG_EXT3_FS_SECURITY is not set
+CONFIG_JBD=y
+# CONFIG_JBD_DEBUG is not set
+CONFIG_FS_MBCACHE=y
+# CONFIG_REISERFS_FS is not set
+# CONFIG_JFS_FS is not set
+# CONFIG_FS_POSIX_ACL is not set
+# CONFIG_XFS_FS is not set
+# CONFIG_OCFS2_FS is not set
+# CONFIG_MINIX_FS is not set
+# CONFIG_ROMFS_FS is not set
+# CONFIG_INOTIFY is not set
+# CONFIG_QUOTA is not set
+CONFIG_DNOTIFY=y
+# CONFIG_AUTOFS_FS is not set
+# CONFIG_AUTOFS4_FS is not set
+# CONFIG_FUSE_FS is not set
+
+#
+# CD-ROM/DVD Filesystems
+#
+# CONFIG_ISO9660_FS is not set
+# CONFIG_UDF_FS is not set
+
+#
+# DOS/FAT/NT Filesystems
+#
+CONFIG_FAT_FS=y
+# CONFIG_MSDOS_FS is not set
+CONFIG_VFAT_FS=y
+CONFIG_FAT_DEFAULT_CODEPAGE=437
+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
+# CONFIG_NTFS_FS is not set
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+CONFIG_SYSFS=y
+CONFIG_TMPFS=y
+# CONFIG_HUGETLB_PAGE is not set
+CONFIG_RAMFS=y
+# CONFIG_CONFIGFS_FS is not set
+
+#
+# Miscellaneous filesystems
+#
+# CONFIG_ADFS_FS is not set
+# CONFIG_AFFS_FS is not set
+# CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
+# CONFIG_BEFS_FS is not set
+# CONFIG_BFS_FS is not set
+# CONFIG_EFS_FS is not set
+# CONFIG_JFFS_FS is not set
+CONFIG_JFFS2_FS=y
+CONFIG_JFFS2_FS_DEBUG=0
+CONFIG_JFFS2_FS_WRITEBUFFER=y
+# CONFIG_JFFS2_SUMMARY is not set
+# CONFIG_JFFS2_FS_XATTR is not set
+# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
+CONFIG_JFFS2_ZLIB=y
+CONFIG_JFFS2_RTIME=y
+# CONFIG_JFFS2_RUBIN is not set
+# CONFIG_CRAMFS is not set
+# CONFIG_VXFS_FS is not set
+# CONFIG_HPFS_FS is not set
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_SYSV_FS is not set
+# CONFIG_UFS_FS is not set
+
+#
+# Network File Systems
+#
+CONFIG_NFS_FS=y
+CONFIG_NFS_V3=y
+# CONFIG_NFS_V3_ACL is not set
+# CONFIG_NFS_V4 is not set
+# CONFIG_NFS_DIRECTIO is not set
+# CONFIG_NFSD is not set
+CONFIG_LOCKD=y
+CONFIG_LOCKD_V4=y
+CONFIG_NFS_COMMON=y
+CONFIG_SUNRPC=y
+# CONFIG_RPCSEC_GSS_KRB5 is not set
+# CONFIG_RPCSEC_GSS_SPKM3 is not set
+# CONFIG_SMB_FS is not set
+# CONFIG_CIFS is not set
+# CONFIG_NCP_FS is not set
+# CONFIG_CODA_FS is not set
+# CONFIG_AFS_FS is not set
+# CONFIG_9P_FS is not set
+
+#
+# Partition Types
+#
+CONFIG_PARTITION_ADVANCED=y
+# CONFIG_ACORN_PARTITION is not set
+# CONFIG_OSF_PARTITION is not set
+# CONFIG_AMIGA_PARTITION is not set
+# CONFIG_ATARI_PARTITION is not set
+# CONFIG_MAC_PARTITION is not set
+CONFIG_MSDOS_PARTITION=y
+# CONFIG_BSD_DISKLABEL is not set
+# CONFIG_MINIX_SUBPARTITION is not set
+# CONFIG_SOLARIS_X86_PARTITION is not set
+# CONFIG_UNIXWARE_DISKLABEL is not set
+# CONFIG_LDM_PARTITION is not set
+# CONFIG_SGI_PARTITION is not set
+# CONFIG_ULTRIX_PARTITION is not set
+# CONFIG_SUN_PARTITION is not set
+# CONFIG_KARMA_PARTITION is not set
+# CONFIG_EFI_PARTITION is not set
+
+#
+# Native Language Support
+#
+CONFIG_NLS=y
+CONFIG_NLS_DEFAULT="iso8859-1"
+# CONFIG_NLS_CODEPAGE_437 is not set
+# CONFIG_NLS_CODEPAGE_737 is not set
+# CONFIG_NLS_CODEPAGE_775 is not set
+# CONFIG_NLS_CODEPAGE_850 is not set
+# CONFIG_NLS_CODEPAGE_852 is not set
+# CONFIG_NLS_CODEPAGE_855 is not set
+# CONFIG_NLS_CODEPAGE_857 is not set
+# CONFIG_NLS_CODEPAGE_860 is not set
+# CONFIG_NLS_CODEPAGE_861 is not set
+# CONFIG_NLS_CODEPAGE_862 is not set
+# CONFIG_NLS_CODEPAGE_863 is not set
+# CONFIG_NLS_CODEPAGE_864 is not set
+# CONFIG_NLS_CODEPAGE_865 is not set
+# CONFIG_NLS_CODEPAGE_866 is not set
+# CONFIG_NLS_CODEPAGE_869 is not set
+# CONFIG_NLS_CODEPAGE_936 is not set
+# CONFIG_NLS_CODEPAGE_950 is not set
+# CONFIG_NLS_CODEPAGE_932 is not set
+# CONFIG_NLS_CODEPAGE_949 is not set
+# CONFIG_NLS_CODEPAGE_874 is not set
+# CONFIG_NLS_ISO8859_8 is not set
+# CONFIG_NLS_CODEPAGE_1250 is not set
+# CONFIG_NLS_CODEPAGE_1251 is not set
+# CONFIG_NLS_ASCII is not set
+# CONFIG_NLS_ISO8859_1 is not set
+# CONFIG_NLS_ISO8859_2 is not set
+# CONFIG_NLS_ISO8859_3 is not set
+# CONFIG_NLS_ISO8859_4 is not set
+# CONFIG_NLS_ISO8859_5 is not set
+# CONFIG_NLS_ISO8859_6 is not set
+# CONFIG_NLS_ISO8859_7 is not set
+# CONFIG_NLS_ISO8859_9 is not set
+# CONFIG_NLS_ISO8859_13 is not set
+# CONFIG_NLS_ISO8859_14 is not set
+# CONFIG_NLS_ISO8859_15 is not set
+# CONFIG_NLS_KOI8_R is not set
+# CONFIG_NLS_KOI8_U is not set
+# CONFIG_NLS_UTF8 is not set
+
+#
+# Profiling support
+#
+# CONFIG_PROFILING is not set
+
+#
+# Kernel hacking
+#
+# CONFIG_PRINTK_TIME is not set
+CONFIG_MAGIC_SYSRQ=y
+# CONFIG_UNUSED_SYMBOLS is not set
+CONFIG_DEBUG_KERNEL=y
+CONFIG_LOG_BUF_SHIFT=14
+CONFIG_DETECT_SOFTLOCKUP=y
+# CONFIG_SCHEDSTATS is not set
+# CONFIG_DEBUG_RT_MUTEXES is not set
+# CONFIG_RT_MUTEX_TESTER is not set
+# CONFIG_DEBUG_SPINLOCK is not set
+# CONFIG_DEBUG_MUTEXES is not set
+# CONFIG_DEBUG_RWSEMS is not set
+# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
+# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
+# CONFIG_DEBUG_KOBJECT is not set
+CONFIG_DEBUG_BUGVERBOSE=y
+CONFIG_DEBUG_INFO=y
+# CONFIG_DEBUG_FS is not set
+# CONFIG_DEBUG_VM is not set
+CONFIG_FRAME_POINTER=y
+# CONFIG_UNWIND_INFO is not set
+CONFIG_FORCED_INLINING=y
+# CONFIG_RCU_TORTURE_TEST is not set
+CONFIG_DEBUG_USER=y
+# CONFIG_DEBUG_WAITQ is not set
+CONFIG_DEBUG_ERRORS=y
+CONFIG_DEBUG_LL=y
+# CONFIG_DEBUG_ICEDCC is not set
+
+#
+# Security options
+#
+# CONFIG_KEYS is not set
+# CONFIG_SECURITY is not set
+
+#
+# Cryptographic options
+#
+# CONFIG_CRYPTO is not set
+
+#
+# Hardware crypto devices
+#
+
+#
+# Library routines
+#
+# CONFIG_CRC_CCITT is not set
+# CONFIG_CRC16 is not set
+CONFIG_CRC32=y
+# CONFIG_LIBCRC32C is not set
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZLIB_DEFLATE=y
+CONFIG_PLIST=y
diff -urN --exclude-from /tmp/excludes ../../linux-2.6.18/drivers/serial/8250.c ../linux-2.6.18/drivers/serial/8250.c
--- ../../linux-2.6.18/drivers/serial/8250.c	2006-09-19 23:42:06.000000000 -0400
+++ ../linux-2.6.18/drivers/serial/8250.c	2006-10-08 20:45:42.000000000 -0400
@@ -382,8 +382,10 @@
 /* Uart divisor latch write */
 static inline void _serial_dl_write(struct uart_8250_port *up, int value)
 {
+#ifndef CONFIG_SERIAL_8250_LPC3000
 	serial_outp(up, UART_DLL, value & 0xff);
 	serial_outp(up, UART_DLM, value >> 8 & 0xff);
+#endif
 }
 
 #ifdef CONFIG_SERIAL_8250_AU1X00
diff -urN --exclude-from /tmp/excludes ../../linux-2.6.18/drivers/serial/8250_lpc3000.c ../linux-2.6.18/drivers/serial/8250_lpc3000.c
--- ../../linux-2.6.18/drivers/serial/8250_lpc3000.c	1969-12-31 19:00:00.000000000 -0500
+++ ../linux-2.6.18/drivers/serial/8250_lpc3000.c	2006-10-08 19:50:19.000000000 -0400
@@ -0,0 +1,73 @@
+/*
+ * Serial Device Initialisation for LPC3000
+ *
+ * (C) Copyright 2006 Brad Parker
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ */
+
+#include <linux/errno.h>
+#include <linux/init.h>
+#include <linux/interrupt.h>
+#include <linux/ioport.h>
+#include <linux/module.h>
+#include <linux/serial_core.h>
+#include <linux/signal.h>
+#include <linux/slab.h>
+#include <linux/types.h>
+
+#include <linux/serial_8250.h>
+
+#include <asm/arch/irqs.h>
+#include <asm/arch/hardware.h>
+#include <asm/arch/registers.h>
+
+#include "8250.h"
+
+#define PORT(_base, _irq)			\
+	{						\
+		.iobase		= _base,		\
+		.membase	= (void __iomem *)_base,\
+		.mapbase	= io_v2p(_base),	\
+		.irq		= _irq,			\
+		.uartclk	= 13000000,		\
+		.regshift	= 2,			\
+		.iotype		= UPIO_MEM,	\
+		.flags		= UPF_SKIP_TEST 	\
+	}
+
+static struct plat_serial8250_port lpc3000_data[] = {
+	PORT(UART3_ADDR, IRQ_MIC_IIR3_UART3),
+	PORT(UART4_ADDR, IRQ_MIC_IIR4_UART4),
+	PORT(UART5_ADDR, IRQ_MIC_IIR5_UART5),
+	PORT(UART6_ADDR, IRQ_MIC_IIR6_UART6),
+	{ },
+};
+
+static struct platform_device lpc3000_device = {
+	.name			= "serial8250",
+	.id			= PLAT8250_DEV_LPC3000,
+	.dev			= {
+		.platform_data	= lpc3000_data,
+	},
+};
+
+static int __init lpc3000_init(void)
+{
+	return platform_device_register(&lpc3000_device);
+}
+
+static void __exit lpc3000_exit(void)
+{
+	platform_device_unregister(&lpc3000_device);
+}
+
+module_init(lpc3000_init);
+module_exit(lpc3000_exit);
+
+MODULE_AUTHOR("Brad Parker <brad@heeltoe.com>");
+MODULE_DESCRIPTION("8250 serial probe module for LPC30000 cpu");
+MODULE_LICENSE("GPL");
diff -urN --exclude-from /tmp/excludes ../../linux-2.6.18/drivers/serial/Kconfig ../linux-2.6.18/drivers/serial/Kconfig
--- ../../linux-2.6.18/drivers/serial/Kconfig	2006-09-19 23:42:06.000000000 -0400
+++ ../linux-2.6.18/drivers/serial/Kconfig	2006-10-07 15:59:07.000000000 -0400
@@ -244,6 +244,14 @@
 	  to this option.  The driver can handle 1 or 2 serial ports.
 	  If unsure, say N.
 
+config SERIAL_8250_LPC3000
+	bool "LPC3000 serial port support"
+	depends on SERIAL_8250 != n && ARCH_LPC3000
+	help
+	  If you have an LPC3xxx cpu and want to use the serial port, say Y
+	  to this option.  The driver can handle 4 low speed serial ports.
+	  If unsure, say N.
+
 comment "Non-8250 serial port support"
 
 config SERIAL_AMBA_PL010
diff -urN --exclude-from /tmp/excludes ../../linux-2.6.18/drivers/serial/Makefile ../linux-2.6.18/drivers/serial/Makefile
--- ../../linux-2.6.18/drivers/serial/Makefile	2006-09-19 23:42:06.000000000 -0400
+++ ../linux-2.6.18/drivers/serial/Makefile	2006-10-07 15:56:20.000000000 -0400
@@ -20,6 +20,7 @@
 obj-$(CONFIG_SERIAL_8250_HUB6) += 8250_hub6.o
 obj-$(CONFIG_SERIAL_8250_MCA) += 8250_mca.o
 obj-$(CONFIG_SERIAL_8250_AU1X00) += 8250_au1x00.o
+obj-$(CONFIG_SERIAL_8250_LPC3000) += 8250_lpc3000.o
 obj-$(CONFIG_SERIAL_AMBA_PL010) += amba-pl010.o
 obj-$(CONFIG_SERIAL_AMBA_PL011) += amba-pl011.o
 obj-$(CONFIG_SERIAL_CLPS711X) += clps711x.o
diff -urN --exclude-from /tmp/excludes ../../linux-2.6.18/include/asm-arm/arch-lpc3000/clocks.h ../linux-2.6.18/include/asm-arm/arch-lpc3000/clocks.h
--- ../../linux-2.6.18/include/asm-arm/arch-lpc3000/clocks.h	1969-12-31 19:00:00.000000000 -0500
+++ ../linux-2.6.18/include/asm-arm/arch-lpc3000/clocks.h	2006-10-06 20:50:41.000000000 -0400
@@ -0,0 +1,20 @@
+/* include/asm-arm/arch-lpc3000/clocks.h
+ *
+ *  Copyright (C) 2006 Brad Parker
+ *
+ *  This program is free software; you can redistribute it and/or
+ *  modify it under the terms of the GNU General Public License
+ *  version 2 as published by the Free Software Foundation.
+ *
+ */
+
+#include <linux/config.h>
+
+#ifndef __ASM_ARCH_CLOCKS_H
+#define __ASM_ARCH_CLOCKS_H
+
+unsigned int fclkfreq_get (void);
+unsigned int hclkfreq_get (void);
+unsigned int pclkfreq_get (void);
+
+#endif  /* _ASM_ARCH_CLOCKS_H */
diff -urN --exclude-from /tmp/excludes ../../linux-2.6.18/include/asm-arm/arch-lpc3000/constants.h ../linux-2.6.18/include/asm-arm/arch-lpc3000/constants.h
--- ../../linux-2.6.18/include/asm-arm/arch-lpc3000/constants.h	1969-12-31 19:00:00.000000000 -0500
+++ ../linux-2.6.18/include/asm-arm/arch-lpc3000/constants.h	2006-10-09 09:47:40.000000000 -0400
@@ -0,0 +1,20 @@
+/* include/asm-arm/arch-lpc3000/constants.h
+ *
+ *  Copyright (C) 2006 Brad Parker
+ *
+ *  This program is free software; you can redistribute it and/or
+ *  modify it under the terms of the GNU General Public License
+ *  version 2 as published by the Free Software Foundation.
+ *
+ */
+
+#ifndef __ASM_ARCH_CONSTANTS_H
+#define __ASM_ARCH_CONSTANTS_H
+
+/* timing constants */
+#define	XTAL_IN			13000000	/* 13.00 MHz crystal */
+#define PLL_CLOCK		(XTAL_IN * 16)	/* 208 MHz PLL clock */
+#define PERCLK			(13000000)	/* peripheral clock */
+#define HCLK			(104000000)	/* hclock */
+
+#endif /* __ASM_ARCH_CONSTANTS_H */
diff -urN --exclude-from /tmp/excludes ../../linux-2.6.18/include/asm-arm/arch-lpc3000/debug-macro.S ../linux-2.6.18/include/asm-arm/arch-lpc3000/debug-macro.S
--- ../../linux-2.6.18/include/asm-arm/arch-lpc3000/debug-macro.S	1969-12-31 19:00:00.000000000 -0500
+++ ../linux-2.6.18/include/asm-arm/arch-lpc3000/debug-macro.S	2006-10-07 17:00:36.000000000 -0400
@@ -0,0 +1,44 @@
+/*
+ * include/asm-arm/arch-lpc3000/debug-macro.S
+ *
+ *  Copyright (C) 2006 Brad Parker
+ *
+ * Debugging macro include header
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+*/
+
+#define UART_THR	0x00
+#define UART_LSR	0x14
+
+#define UART_LSR_THRE	0x20
+#define UART_LSR_TE	0x40
+
+#include <asm/hardware.h>
+
+	.macro	addruart,rx
+	mrc	p15, 0, \rx, c1, c0
+	tst	\rx, #1				@ MMU enabled?
+	ldreq	\rx, =UART5_PHYS		@ System peripherals (phys address)
+	ldrne	\rx, =UART5_ADDR		@ System peripherals (virt address)
+	.endm
+
+	.macro	senduart,rd,rx
+	strb	\rd, [\rx, #UART_THR]		@ Write to Transmitter Holding Register
+	.endm
+
+	.macro	waituart,rd,rx
+1001:	ldr	\rd, [\rx, #UART_LSR]		@ Read Status Register
+	tst	\rd, #UART_LSR_THRE		@ DBGU_TXRDY = 1 when ready to transmit
+	beq	1001b
+	.endm
+
+	.macro	busyuart,rd,rx
+1001:	ldr	\rd, [\rx, #UART_LSR]		@ Read Status Register
+	tst	\rd, #UART_LSR_TE		@ DBGU_TXEMPTY = 1 when transmission complete
+	beq	1001b
+	.endm
+
diff -urN --exclude-from /tmp/excludes ../../linux-2.6.18/include/asm-arm/arch-lpc3000/dma.h ../linux-2.6.18/include/asm-arm/arch-lpc3000/dma.h
--- ../../linux-2.6.18/include/asm-arm/arch-lpc3000/dma.h	1969-12-31 19:00:00.000000000 -0500
+++ ../linux-2.6.18/include/asm-arm/arch-lpc3000/dma.h	2006-10-07 00:50:58.000000000 -0400
@@ -0,0 +1,16 @@
+/* include/asm-arm/arch-lpc300/dma.h
+ *
+ *  Copyright (C) 2005 Brad Parker
+ *
+ *  This program is free software; you can redistribute it and/or
+ *  modify it under the terms of the GNU General Public License
+ *  version 2 as published by the Free Software Foundation.
+ *
+ */
+
+#ifndef __ASM_ARCH_DMA_H
+#define __ASM_ARCH_DMA_H
+
+#define DMA_LENGTH_MAX		((64*1024) - 4) /* bytes */
+
+#endif
diff -urN --exclude-from /tmp/excludes ../../linux-2.6.18/include/asm-arm/arch-lpc3000/entry-macro.S ../linux-2.6.18/include/asm-arm/arch-lpc3000/entry-macro.S
--- ../../linux-2.6.18/include/asm-arm/arch-lpc3000/entry-macro.S	1969-12-31 19:00:00.000000000 -0500
+++ ../linux-2.6.18/include/asm-arm/arch-lpc3000/entry-macro.S	2006-10-08 17:50:58.000000000 -0400
@@ -0,0 +1,50 @@
+/*
+ * include/asm-arm/arch-lpc3000/entry-macro.S
+ *
+ *  Copyright (C) 2006 Brad Parker
+ *
+ * Low-level IRQ helper macros for LPC3000 platforms
+ *
+ * This file is licensed under the terms of the GNU General Public
+ * License version 2. This program is licensed "as is" without any
+ * warranty of any kind, whether express or implied.
+ */
+
+#include <asm/hardware.h>
+
+	.macro	disable_fiq
+	.endm
+
+	.macro	get_irqnr_and_base, irqnr, irqstat, base, tmp
+	mov	\irqnr, #0
+	ldr	\base, =(0xf4008008)		@ MIC_SR = phys 0x40008008
+	ldr	\irqstat, [\base, #0]		@ MIC_SR (virt 0xf4008008)
+	teq	\irqstat, #0
+	bne	1002f
+	
+	ldr	\base, =(0xf400c008)		@ SIC1_SR = 0x4000c008
+	ldr	\irqstat, [\base, #0]		@ SIC1_SR
+	teq	\irqstat, #0
+	beq	1001f
+	mov	\irqnr, #32
+	b	1002f
+	
+1001:
+	ldr	\base, =(0xf4010008)		@ SIC2_SR = 0x40010008
+	ldr	\irqstat, [\base, #0]		@ SIC2_SR
+	teq	\irqstat, #0
+	beq	1004f
+	mov	\irqnr, #64
+
+1002:	movs	\irqstat, \irqstat, lsr #1	@ Shift into carry
+	bcs	1003f				@ Bit set; irq found
+	add	\irqnr, \irqnr, #1
+	bne	1002b				@ Until no bits
+	
+	/* exit here, Z flag unset if IRQ */
+1003:
+	movs	\irqstat, #1			@ Force !Z
+
+1004:
+	.endm
+
diff -urN --exclude-from /tmp/excludes ../../linux-2.6.18/include/asm-arm/arch-lpc3000/hardware.h ../linux-2.6.18/include/asm-arm/arch-lpc3000/hardware.h
--- ../../linux-2.6.18/include/asm-arm/arch-lpc3000/hardware.h	1969-12-31 19:00:00.000000000 -0500
+++ ../linux-2.6.18/include/asm-arm/arch-lpc3000/hardware.h	2006-10-09 09:43:03.000000000 -0400
@@ -0,0 +1,69 @@
+/* include/asm-arm/arch-lpc3000/hardware.h
+ *
+ *  Copyright (C) Brad Parker
+ *
+ *  [ Substantially cribbed from include/asm-arm/arch-pxa/hardware.h ]
+ *
+ *  This program is free software; you can redistribute it and/or
+ *  modify it under the terms of the GNU General Public License
+ *  version 2 as published by the Free Software Foundation.
+ *
+ */
+
+#ifndef __ASM_ARCH_HARDWARE_H
+#define __ASM_ARCH_HARDWARE_H
+
+#include <asm/sizes.h>
+
+/*
+ * phys          virt
+ * 0x200xxxxx -> 0xf20xxxxx
+ * 0x31000000 -> 0xf31xxxxx
+ * 0x40000000 -> 0xf40xxxxx
+ */
+
+#define io_p2v(x) (0xf0000000 | (((x) & 0xff000000) >> 4) | ((x) & 0x000fffff))
+#define io_v2p(x) (             (((x) & 0x0ff00000) << 4) | ((x) & 0x000fffff))
+
+#ifdef __ASSEMBLY__
+
+# define __REG(x)	io_p2v(x)
+# define __PREG(x)	io_v2p(x)
+
+#else
+
+# if 0
+#  define __REG(x)	(*((volatile u32 *)io_p2v(x)))
+# else
+/*
+ * This __REG() version gives the same results as the one above,  except
+ * that we are fooling gcc somehow so it generates far better and smaller
+ * assembly code for access to contigous registers.  It's a shame that gcc
+ * doesn't guess this by itself.
+ */
+#include <asm/types.h>
+typedef struct { volatile u32 offset[4096]; } __regbase;
+# define __REGP(x)	((__regbase *)((x)&~4095))->offset[((x)&4095)>>2]
+# define __REG(x)	__REGP(io_p2v(x))
+typedef struct { volatile u16 offset[4096]; } __regbase16;
+# define __REGP16(x)	((__regbase16 *)((x)&~4095))->offset[((x)&4095)>>1]
+# define __REG16(x)	__REGP16(io_p2v(x))
+typedef struct { volatile u8 offset[4096]; } __regbase8;
+# define __REGP8(x)	((__regbase8 *)((x)&~4095))->offset[(x)&4095]
+# define __REG8(x)	__REGP8(io_p2v(x))
+#endif
+
+/* Let's kick gcc's ass again... */
+# define __REG2(x,y)	\
+	( __builtin_constant_p(y) ? (__REG((x) + (y))) \
+				  : (*(volatile u32 *)((u32)&__REG(x) + (y))) )
+
+# define __PREG(x)	(io_v2p((u32)&(x)))
+
+#endif
+
+#define MASK_AND_SET(v,m,s)	(v) = ((v)&~(m))|(s)
+
+#include "registers.h"
+
+#endif  /* _ASM_ARCH_HARDWARE_H */
diff -urN --exclude-from /tmp/excludes ../../linux-2.6.18/include/asm-arm/arch-lpc3000/io.h ../linux-2.6.18/include/asm-arm/arch-lpc3000/io.h
--- ../../linux-2.6.18/include/asm-arm/arch-lpc3000/io.h	1969-12-31 19:00:00.000000000 -0500
+++ ../linux-2.6.18/include/asm-arm/arch-lpc3000/io.h	2006-10-06 20:49:24.000000000 -0400
@@ -0,0 +1,22 @@
+/* include/asm-arm/arch-lpc3000/io.h
+ *
+ *  Copyright (C) Brad Parker
+ *
+ *  This program is free software; you can redistribute it and/or
+ *  modify it under the terms of the GNU General Public License
+ *  version 2 as published by the Free Software Foundation.
+ *
+ */
+
+#ifndef __ASM_ARCH_IO_H
+#define __ASM_ARCH_IO_H
+
+#include <asm/hardware.h>
+
+#define IO_SPACE_LIMIT 0xffffffff
+
+/* No ISA or PCI bus on this machine. */
+#define __io(a)			((void __iomem *)(a))
+#define __mem_pci(a)		(a)
+
+#endif /* __ASM_ARCH_IO_H */
diff -urN --exclude-from /tmp/excludes ../../linux-2.6.18/include/asm-arm/arch-lpc3000/irqs.h ../linux-2.6.18/include/asm-arm/arch-lpc3000/irqs.h
--- ../../linux-2.6.18/include/asm-arm/arch-lpc3000/irqs.h	1969-12-31 19:00:00.000000000 -0500
+++ ../linux-2.6.18/include/asm-arm/arch-lpc3000/irqs.h	2006-10-07 16:11:42.000000000 -0400
@@ -0,0 +1,166 @@
+/* include/asm-arm/arch-lpc3000/irqs.h
+ *
+ *  Copyright (C) 2006 Brad Parker
+ *
+ *  This program is free software; you can redistribute it and/or
+ *  modify it under the terms of the GNU General Public License
+ *  version 2 as published by the Free Software Foundation.
+ *
+ */
+
+#ifndef __ASM_ARCH_IRQS_H
+#define __ASM_ARCH_IRQS_H
+
+#define IRQ_MIC_BASE	0
+#define IRQ_SIC1_BASE	(IRQ_MIC_BASE+32)
+#define IRQ_SIC2_BASE	(IRQ_SIC1_BASE+32)
+
+#define IRQ_MIC(n)	(IRQ_MIC_BASE+(n))
+#define IRQ_SIC1(n)	(IRQ_SIC1_BASE+(n))
+#define IRQ_SIC2(n)	(IRQ_SIC2_BASE+(n))
+
+/* Main Interrupt Controller (MIC_ER - 0x4000 8000) */
+#define MIC_INT_Sub2FIQn	31
+#define MIC_INT_Sub1FIQn	30
+#define MIC_INT_DMAINT		28
+#define MIC_INT_MSTIMER_INT	27
+#define MIC_INT_IIR1_UART1	26
+#define MIC_INT_IIR2_UART2	25
+#define MIC_INT_IIR7_UART7	24
+#define MIC_INT_SD0_INT		15
+#define MIC_INT_SD1_INT		13
+#define MIC_INT_FLASH_INT	11
+#define MIC_INT_IIR6_UART6	10
+#define MIC_INT_IIR5_UART5	 9
+#define MIC_INT_IIR4_UART4	 8
+#define MIC_INT_IIR3_UART3	 7
+#define MIC_INT_WATCH_INT	 6
+#define MIC_INT_HSTIMER_INT	 5
+#define MIC_INT_Sub2IRQn	 1
+#define MIC_INT_Sub1IRQn	 0
+
+#define IRQ_MIC_Sub2FIQn	 IRQ_MIC(31)
+#define IRQ_MIC_Sub1FIQn	 IRQ_MIC(30)
+#define IRQ_MIC_DMAINT		 IRQ_MIC(28)
+#define IRQ_MIC_MSTIMER_INT	 IRQ_MIC(27)
+#define IRQ_MIC_IIR1_UART1	 IRQ_MIC(26)
+#define IRQ_MIC_IIR2_UART2	 IRQ_MIC(25)
+#define IRQ_MIC_IIR7_UART7	 IRQ_MIC(24)
+#define IRQ_MIC_SD0_INT		 IRQ_MIC(15)
+#define IRQ_MIC_SD1_INT		 IRQ_MIC(13)
+#define IRQ_MIC_FLASH_INT	 IRQ_MIC(11)
+#define IRQ_MIC_IIR6_UART6	 IRQ_MIC(10)
+#define IRQ_MIC_IIR5_UART5	 IRQ_MIC(9) 
+#define IRQ_MIC_IIR4_UART4	 IRQ_MIC(8) 
+#define IRQ_MIC_IIR3_UART3	 IRQ_MIC(7) 
+#define IRQ_MIC_WATCH_INT	 IRQ_MIC(6) 
+#define IRQ_MIC_HSTIMER_INT	 IRQ_MIC(5) 
+#define IRQ_MIC_Sub2IRQn	 IRQ_MIC(1) 
+#define IRQ_MIC_Sub1IRQn	 IRQ_MIC(0) 
+
+/* Sub Interrupt Controller 1 (SIC1_ER - 0x4000 C000) */
+#define SIC1_INT_USB_i2c_int		31 
+#define SIC1_INT_USB_dev_hp_int		30 
+#define SIC1_INT_USB_dev_lp_int		29 
+#define SIC1_INT_USB_dev_dma_int	28 
+#define SIC1_INT_USB_host_int		27 
+#define SIC1_INT_USB_otg_atx_int_n	26 
+#define SIC1_INT_USB_otg_timer_int	25 
+#define SIC1_INT_SW_INT Software	24 
+#define SIC1_INT_SPI1_INT		23 
+#define SIC1_INT_KEY_IRQ		22 
+#define SIC1_INT_RTC_INT		20 
+#define SIC1_INT_I2C_1_INT		19 
+#define SIC1_INT_I2C_2_INT		18 
+#define SIC1_INT_PLL397_INT		17 
+#define SIC1_INT_PLLHCLK_INT		14 
+#define SIC1_INT_PLLUSB_INT		13 
+#define SIC1_INT_SPI2_INT		12 
+#define SIC1_INT_ADC_INT		 7 
+#define SIC1_INT_GPI_11			 4 
+#define SIC1_INT_JTAG_COMM_RX		 2 
+#define SIC1_INT_JTAG_COMM_TX		 1 
+
+#define IRQ_SIC1_USB_i2c_int		IRQ_SIC1(31)
+#define IRQ_SIC1_USB_dev_hp_int		IRQ_SIC1(30)
+#define IRQ_SIC1_USB_dev_lp_int		IRQ_SIC1(29)
+#define IRQ_SIC1_USB_dev_dma_int	IRQ_SIC1(28)
+#define IRQ_SIC1_USB_host_int		IRQ_SIC1(27)
+#define IRQ_SIC1_USB_otg_atx_int_n	IRQ_SIC1(26)
+#define IRQ_SIC1_USB_otg_timer_int	IRQ_SIC1(25)
+#define IRQ_SIC1_SW_INT			IRQ_SIC1(24)
+#define IRQ_SIC1_SPI1_INT		IRQ_SIC1(23)
+#define IRQ_SIC1_KEY_IRQ		IRQ_SIC1(22)
+#define IRQ_SIC1_RTC_INT		IRQ_SIC1(20)
+#define IRQ_SIC1_I2C_1_INT		IRQ_SIC1(19)
+#define IRQ_SIC1_I2C_2_INT		IRQ_SIC1(18)
+#define IRQ_SIC1_PLL397_INT		IRQ_SIC1(17)
+#define IRQ_SIC1_PLLHCLK_INT		IRQ_SIC1(14)
+#define IRQ_SIC1_PLLUSB_INT		IRQ_SIC1(13)
+#define IRQ_SIC1_SPI2_INT		IRQ_SIC1(12)
+#define IRQ_SIC1_ADC_INT		IRQ_SIC1(7)
+#define IRQ_SIC1_GPI_11			IRQ_SIC1(4)
+#define IRQ_SIC1_JTAG_COMM_RX		IRQ_SIC1(2)
+#define IRQ_SIC1_JTAG_COMM_TX		IRQ_SIC1(1)
+
+/* Sub Interrupt Controller 2 (SIC2_ER - 0x4001 0000) */
+#define SIC2_INT_SYSCLK		31 
+#define SIC2_INT_GPI_06		28 
+#define SIC2_INT_GPI_05		27 
+#define SIC2_INT_GPI_04		26 
+#define SIC2_INT_GPI_03		25 
+#define SIC2_INT_GPI_02		24 
+#define SIC2_INT_GPI_01		23 
+#define SIC2_INT_GPI_00		22 
+#define SIC2_INT_SPI1_DATIN	20 
+#define SIC2_INT_U5_RX		19 
+#define SIC2_INT_SDIO_INT_N	18 
+#define SIC2_INT_GPI_07		15 
+#define SIC2_INT_U7_HCTS	12 
+#define SIC2_INT_GPI_10		11 
+#define SIC2_INT_GPI_09		10 
+#define SIC2_INT_GPI_08		 9 
+#define SIC2_INT_U2_HCTS	 7 
+#define SIC2_INT_SPI2_DATIN	 6 
+#define SIC2_INT_GPIO_05	 5 
+#define SIC2_INT_GPIO_04	 4 
+#define SIC2_INT_GPIO_03	 3 
+#define SIC2_INT_GPIO_02	 2 
+#define SIC2_INT_GPIO_01	 1 
+#define SIC2_INT_GPIO_00	 0 
+
+#define IRQ_SIC2_SYSCLK		IRQ_SIC2(31)
+#define IRQ_SIC2_GPI_06		IRQ_SIC2(28)
+#define IRQ_SIC2_GPI_05		IRQ_SIC2(27)
+#define IRQ_SIC2_GPI_04		IRQ_SIC2(26)
+#define IRQ_SIC2_GPI_03		IRQ_SIC2(25)
+#define IRQ_SIC2_GPI_02		IRQ_SIC2(24)
+#define IRQ_SIC2_GPI_01		IRQ_SIC2(23)
+#define IRQ_SIC2_GPI_00		IRQ_SIC2(22)
+#define IRQ_SIC2_SPI1_DATIN	IRQ_SIC2(20)
+#define IRQ_SIC2_U5_RX		IRQ_SIC2(19)
+#define IRQ_SIC2_SDIO_INT_N	IRQ_SIC2(18)
+#define IRQ_SIC2_GPI_07		IRQ_SIC2(15)
+#define IRQ_SIC2_U7_HCTS	IRQ_SIC2(12)
+#define IRQ_SIC2_GPI_10		IRQ_SIC2(11)
+#define IRQ_SIC2_GPI_09		IRQ_SIC2(10)
+#define IRQ_SIC2_GPI_08		IRQ_SIC2(9)
+#define IRQ_SIC2_U2_HCTS	IRQ_SIC2(7)
+#define IRQ_SIC2_SPI2_DATIN	IRQ_SIC2(6)
+#define IRQ_SIC2_GPIO_05	IRQ_SIC2(5)
+#define IRQ_SIC2_GPIO_04	IRQ_SIC2(4)
+#define IRQ_SIC2_GPIO_03	IRQ_SIC2(3)
+#define IRQ_SIC2_GPIO_02	IRQ_SIC2(2)
+#define IRQ_SIC2_GPIO_01	IRQ_SIC2(1)
+#define IRQ_SIC2_GPIO_00	IRQ_SIC2(0)
+
+# define NR_IRQ_CPU	96	/* IRQs directly recognized by CPU */
+
+/* IRQ aliases */
+
+/* system specific IRQs */
+#define NR_IRQ_BOARD	0
+
+#define NR_IRQS		(NR_IRQ_CPU + NR_IRQ_BOARD)
+
+#endif
diff -urN --exclude-from /tmp/excludes ../../linux-2.6.18/include/asm-arm/arch-lpc3000/memory.h ../linux-2.6.18/include/asm-arm/arch-lpc3000/memory.h
--- ../../linux-2.6.18/include/asm-arm/arch-lpc3000/memory.h	1969-12-31 19:00:00.000000000 -0500
+++ ../linux-2.6.18/include/asm-arm/arch-lpc3000/memory.h	2006-10-07 00:25:24.000000000 -0400
@@ -0,0 +1,28 @@
+/* include/asm-arm/arch-lpc3000/memory.h
+ *
+ *  Copyright (C) Brad Parker
+ *
+ *  This program is free software; you can redistribute it and/or
+ *  modify it under the terms of the GNU General Public License
+ *  version 2 as published by the Free Software Foundation.
+ */
+
+#ifndef __ASM_ARCH_MEMORY_H
+#define __ASM_ARCH_MEMORY_H
+
+/*
+ * Physical DRAM offset.
+ */
+#define PHYS_OFFSET	UL(0x80000000)
+
+/*
+ * Virtual view <-> DMA view memory address translations
+ * virt_to_bus: Used to translate the virtual address to an
+ *		address suitable to be passed to set_dma_addr
+ * bus_to_virt: Used to convert an address for DMA operations
+ *		to an address that the kernel can use.
+ */
+#define __virt_to_bus(x)	 __virt_to_phys(x)
+#define __bus_to_virt(x)	 __phys_to_virt(x)
+
+#endif
diff -urN --exclude-from /tmp/excludes ../../linux-2.6.18/include/asm-arm/arch-lpc3000/registers.h ../linux-2.6.18/include/asm-arm/arch-lpc3000/registers.h
--- ../../linux-2.6.18/include/asm-arm/arch-lpc3000/registers.h	1969-12-31 19:00:00.000000000 -0500
+++ ../linux-2.6.18/include/asm-arm/arch-lpc3000/registers.h	2006-10-08 16:52:56.000000000 -0400
@@ -0,0 +1,166 @@
+/* include/asm-arm/arch-lpc3000/registers.h
+ *
+ *  Copyright (C) 2006 Brad Parker
+ *
+ *  This program is free software; you can redistribute it and/or
+ *  modify it under the terms of the GNU General Public License
+ *  version 2 as published by the Free Software Foundation.
+ *
+ */
+
+#include <asm/arch/constants.h>
+
+#ifndef __ASM_ARCH_REGISTERS_H
+#define __ASM_ARCH_REGISTERS_H
+
+#define AHB_PORT5_PHYS	0x20000000
+#define AHB_PORT5_VIRT	0xf2000000
+#define AHB_PORT5_LEN	0x00100000
+
+#define AHB_PORT6_PHYS	0x31000000
+#define AHB_PORT6_VIRT	0xf3100000
+#define AHB_PORT6_LEN	0x00100000
+
+#define AHB_PORT7_PHYS	0x40000000
+#define AHB_PORT7_VIRT	0xf4000000
+#define AHB_PORT7_LEN	0x00100000
+
+/* physical register base addresses */
+#define SLC_PHYS		0x20020000
+#define SPI1_PHY		0x20088000
+#define SPI2_PHY		0x20090000
+#define SD_PHY			0x20098000
+#define MLC_PHYS		0x200b8000
+
+#define DMA_PHYS		0x31000000
+#define MPM_PHYS		0x31080000
+
+#define CLK_PHYS		0x40004000
+#define MIC_PHYS		0x40008000
+#define SIC1_PHYS		0x4000c000
+#define SIC2_PHYS		0x40010000
+#define HSU1_PHYS		0x40014000
+#define HSU2_PHYS		0x40018000
+#define HSU3_PHYS		0x4001C000
+#define RTC_PHYS		0x40024000
+#define PIO_PHYS		0x40028000
+#define MSTIM_PHYS		0x40034000
+#define HSTIM_PHYS		0x40038000
+#define WDTIM_PHYS		0x4003c000
+#define AD_PHYS			0x40048000
+#define KS_PHYS			0x40050000
+#define UART_CTRL_PHYS		0x40054000
+#define UART3_PHYS		0x40080000
+#define UART4_PHYS		0x40088000
+#define UART5_PHYS		0x40090000
+#define UART6_PHYS		0x40098000
+#define I2C1_PHY		0x400a0000
+#define I2C2_PHY		0x400a8000
+
+
+/* clock control */
+#define HCLKDIV_CTRL	__REG(CLK_PHYS + 0x40)
+#define PWR_CTRL	__REG(CLK_PHYS + 0x44)
+#define PLL397_CTRL	__REG(CLK_PHYS + 0x48)
+#define OSC_CTRL	__REG(CLK_PHYS + 0x4C)
+#define SYSCLK_CTRL	__REG(CLK_PHYS + 0x50)
+#define HCLKPLL_CTRL	__REG(CLK_PHYS + 0x58)
+#define USB_CTRL	__REG(CLK_PHYS + 0x64)
+#define SDRAMCLK_CTRL	__REG(CLK_PHYS + 0x68)
+#define MS_CTRL		__REG(CLK_PHYS + 0x80)
+#define I2CCLK_CTRL	__REG(CLK_PHYS + 0xAC)
+#define KEYCLK_CTRL	__REG(CLK_PHYS + 0xB0)
+#define ADCLK_CTRL	__REG(CLK_PHYS + 0xB4)
+#define PWMCLK_CTRL	__REG(CLK_PHYS + 0xB8)
+#define TIMCLK_CTRL	__REG(CLK_PHYS + 0xBC)
+#define SPICLK_CTRL	__REG(CLK_PHYS + 0xC4)
+#define U3CLK		__REG(CLK_PHYS + 0xD0)
+#define U4CLK		__REG(CLK_PHYS + 0xD4)
+#define U5CLK		__REG(CLK_PHYS + 0xD8)
+#define U6CLK		__REG(CLK_PHYS + 0xDC)
+#define IRDACLK		__REG(CLK_PHYS + 0xE0)
+#define UARTCLK_CTRL	__REG(CLK_PHYS + 0xE4)
+#define AUTOCLK_CTRL	__REG(CLK_PHYS + 0xEC)
+#define DUMMY_REG	__REG(CLK_PHYS + 0xF0)
+
+/* SDRAM control */
+#define MEMC_CCONTROL	__REG(MPM_PHYS + 0x00)
+#define MEMC_CSTATUS	__REG(MPM_PHYS + 0x04)
+#define MEMC_CCONFIG	__REG(MPM_PHYS + 0x08)
+
+/* interrupt controller registers */
+#define MIC_ER		__REG(MIC_PHYS + 0x00)
+#define MIC_RSR		__REG(MIC_PHYS + 0x04)
+#define MIC_SR		__REG(MIC_PHYS + 0x08)
+#define MIC_APR		__REG(MIC_PHYS + 0x0c)
+#define MIC_ATR		__REG(MIC_PHYS + 0x10)
+#define MIC_ITR		__REG(MIC_PHYS + 0x14)
+
+#define SIC1_ER		__REG(SIC1_PHYS + 0x00)
+#define SIC1_APR	__REG(SIC1_PHYS + 0x0c)
+#define SIC1_ATR	__REG(SIC1_PHYS + 0x10)
+#define SIC1_ITR	__REG(SIC1_PHYS + 0x14)
+
+#define SIC2_ER		__REG(SIC2_PHYS + 0x00)
+#define SIC2_APR	__REG(SIC2_PHYS + 0x0c)
+#define SIC2_ATR	__REG(SIC2_PHYS + 0x10)
+#define SIC2_ITR	__REG(SIC2_PHYS + 0x14)
+
+/* PIO registers */
+#define PIO_INP_STATE	__REG(PIO_PHYS + 0x00)
+#define PIO_OUTP_SET	__REG(PIO_PHYS + 0x04)
+#define PIO_OUTP_CLR	__REG(PIO_PHYS + 0x08)
+#define PIO_OUTP_STATE	__REG(PIO_PHYS + 0x0c)
+#define PIO_DIR_SET	__REG(PIO_PHYS + 0x10)
+#define PIO_DIR_CLR	__REG(PIO_PHYS + 0x14)
+#define PIO_DIR_STATE	__REG(PIO_PHYS + 0x18)
+#define PIO_SDINP_STATE	__REG(PIO_PHYS + 0x1c)
+#define PIO_SDOUTP_SET	__REG(PIO_PHYS + 0x20)
+#define PIO_SDOUTP_CLR	__REG(PIO_PHYS + 0x24)
+#define PIO_MUX_SET	__REG(PIO_PHYS + 0x28)
+#define PIO_MUX_CLR	__REG(PIO_PHYS + 0x2c)
+#define PIO_MUX_STATE	__REG(PIO_PHYS + 0x30)
+
+/* high speed uart */
+#define HSU1_RX		__REG(HSU1_PHYS + 0x00)
+#define HSU1_TX		__REG(HSU1_PHYS + 0x00)
+#define HSU1_LEVEL	__REG(HSU1_PHYS + 0x04)
+#define HSU1_IIR	__REG(HSU1_PHYS + 0x08)
+#define HSU1_CTRL	__REG(HSU1_PHYS + 0x0c)
+#define HSU1_RATE	__REG(HSU1_PHYS + 0x10)
+
+/* high speed timer */
+#define HSTIM_INT	__REG(HSTIM_PHYS + 0x00)
+#define HSTIM_CTRL	__REG(HSTIM_PHYS + 0x04)
+
+/* millisecond timer */
+#define MSTIM_INT	__REG(MSTIM_PHYS + 0x00)
+#define MSTIM_CTRL	__REG(MSTIM_PHYS + 0x04)
+#define MSTIM_COUNTER	__REG(MSTIM_PHYS + 0x08)
+#define MSTIM_MCTRL	__REG(MSTIM_PHYS + 0x14)
+#define MSTIM_MATCH0	__REG(MSTIM_PHYS + 0x18)
+#define MSTIM_MATCH1	__REG(MSTIM_PHYS + 0x1c)
+
+#define MSTIM_CTRL_PAUSE_EN		0x04
+#define MSTIM_CTRL_RESET_COUNT		0x02
+#define MSTIM_CTRL_COUNT_ENAB		0x01
+
+#define MSTIME_MCTRL_STOP_COUNT1	0x20
+#define MSTIME_MCTRL_RESET_COUNT1	0x10
+#define MSTIME_MCTRL_MR1_INT		0x08
+#define MSTIME_MCTRL_STOP_COUNT0	0x04
+#define MSTIME_MCTRL_RESET_COUNT0	0x02
+#define MSTIME_MCTRL_MR0_INT		0x01
+
+#define MSTIM_INT_MATCH1_INT		0x02
+#define MSTIM_INT_MATCH0_INT		0x01
+
+#define UART_CTRL	__REG(UART_CTRL_PHYS + 0x00)
+#define UART_CLKMODE	__REG(UART_CTRL_PHYS + 0x04)
+#define UART_LOOP	__REG(UART_CTRL_PHYS + 0x08)
+
+#define UART3_ADDR	(io_p2v(UART3_PHYS))
+#define UART4_ADDR	(io_p2v(UART4_PHYS))
+#define UART5_ADDR	(io_p2v(UART5_PHYS))
+#define UART6_ADDR	(io_p2v(UART6_PHYS))
+#endif	/* _ASM_ARCH_REGISTERS_H */
diff -urN --exclude-from /tmp/excludes ../../linux-2.6.18/include/asm-arm/arch-lpc3000/system.h ../linux-2.6.18/include/asm-arm/arch-lpc3000/system.h
--- ../../linux-2.6.18/include/asm-arm/arch-lpc3000/system.h	1969-12-31 19:00:00.000000000 -0500
+++ ../linux-2.6.18/include/asm-arm/arch-lpc3000/system.h	2006-10-06 20:47:04.000000000 -0400
@@ -0,0 +1,19 @@
+/* include/asm-arm/arch-lpc3000/system.h
+ *
+ *  Copyright (C) Brad Parker
+ *
+ *  This program is free software; you can redistribute it and/or
+ *  modify it under the terms of the GNU General Public License
+ *  version 2 as published by the Free Software Foundation.
+ *
+ */
+
+static inline void arch_idle(void)
+{
+	cpu_do_idle ();
+}
+
+static inline void arch_reset(char mode)
+{
+	cpu_reset (0);
+}
diff -urN --exclude-from /tmp/excludes ../../linux-2.6.18/include/asm-arm/arch-lpc3000/timex.h ../linux-2.6.18/include/asm-arm/arch-lpc3000/timex.h
--- ../../linux-2.6.18/include/asm-arm/arch-lpc3000/timex.h	1969-12-31 19:00:00.000000000 -0500
+++ ../linux-2.6.18/include/asm-arm/arch-lpc3000/timex.h	2006-10-06 22:46:11.000000000 -0400
@@ -0,0 +1,14 @@
+/* include/asm-arm/arch-lpc3000/timex.h
+ *
+ *  Copyright (C) Brad Parker
+ *
+ *  This program is free software; you can redistribute it and/or
+ *  modify it under the terms of the GNU General Public License
+ *  version 2 as published by the Free Software Foundation.
+ *
+ */
+
+#include <asm/arch/constants.h>
+
+/* we're using the millisecond timer, based on the 32khz clock */
+#define CLOCK_TICK_RATE	32768
diff -urN --exclude-from /tmp/excludes ../../linux-2.6.18/include/asm-arm/arch-lpc3000/uncompress.h ../linux-2.6.18/include/asm-arm/arch-lpc3000/uncompress.h
--- ../../linux-2.6.18/include/asm-arm/arch-lpc3000/uncompress.h	1969-12-31 19:00:00.000000000 -0500
+++ ../linux-2.6.18/include/asm-arm/arch-lpc3000/uncompress.h	2006-10-06 21:32:24.000000000 -0400
@@ -0,0 +1,36 @@
+/* include/asm-arm/arch-lpc3000/uncompress.h
+ *
+ *  Copyright (C) Brad Parker
+ *
+ *  This program is free software; you can redistribute it and/or
+ *  modify it under the terms of the GNU General Public License
+ *  version 2 as published by the Free Software Foundation.
+ *
+ */
+
+#include <asm/arch/registers.h>
+
+#define UART_R_DATA	(0x00)
+#define UART_R_STATUS	(0x14)
+#define thre		(0x20)	/* transmit holding reg empty */
+
+/* it is assumed the boot code will setup uart 5 */
+
+/* access UART with physical addresses before MMU is setup */
+#define UART_STATUS (*(volatile unsigned long*) (UART5_PHYS + UART_R_STATUS))
+#define UART_DATA   (*(volatile unsigned long*) (UART5_PHYS + UART_R_DATA))
+
+static inline void putc(int ch)
+{
+	while (!(UART_STATUS & thre))
+		barrier();
+	UART_DATA = ch;
+}
+
+static inline void flush(void)
+{
+}
+
+/* unused */
+#define arch_decomp_setup()
+#define arch_decomp_wdog()
diff -urN --exclude-from /tmp/excludes ../../linux-2.6.18/include/asm-arm/arch-lpc3000/vmalloc.h ../linux-2.6.18/include/asm-arm/arch-lpc3000/vmalloc.h
--- ../../linux-2.6.18/include/asm-arm/arch-lpc3000/vmalloc.h	1969-12-31 19:00:00.000000000 -0500
+++ ../linux-2.6.18/include/asm-arm/arch-lpc3000/vmalloc.h	2006-10-06 20:45:38.000000000 -0400
@@ -0,0 +1,10 @@
+/* include/asm-arm/arch-lpc3000/vmalloc.h
+ *
+ *  Copyright (C) Brad Parker
+ *
+ *  This program is free software; you can redistribute it and/or
+ *  modify it under the terms of the GNU General Public License
+ *  version 2 as published by the Free Software Foundation.
+ *
+ */
+#define VMALLOC_END       (0xe8000000)
diff -urN --exclude-from /tmp/excludes ../../linux-2.6.18/include/linux/serial_8250.h ../linux-2.6.18/include/linux/serial_8250.h
--- ../../linux-2.6.18/include/linux/serial_8250.h	2006-09-19 23:42:06.000000000 -0400
+++ ../linux-2.6.18/include/linux/serial_8250.h	2006-10-07 04:37:21.000000000 -0400
@@ -44,6 +44,7 @@
 	PLAT8250_DEV_HUB6,
 	PLAT8250_DEV_MCA,
 	PLAT8250_DEV_AU1X00,
+	PLAT8250_DEV_LPC3000,
 };
 
 /*
diff -urN --exclude-from /tmp/excludes ../../linux-2.6.18/kernel/printk.c ../linux-2.6.18/kernel/printk.c
--- ../../linux-2.6.18/kernel/printk.c	2006-09-19 23:42:06.000000000 -0400
+++ ../linux-2.6.18/kernel/printk.c	2006-10-08 01:11:25.000000000 -0400
@@ -525,7 +525,9 @@
 
 	/* Emit the output into the temporary buffer */
 	printed_len = vscnprintf(printk_buf, sizeof(printk_buf), fmt, args);
-
+//debug
+printascii(printk_buf);
+//
 	/*
 	 * Copy the output into log_buf.  If the caller didn't provide
 	 * appropriate log level tags, we insert them here
diff -urN --exclude-from /tmp/excludes ../../linux-2.6.18/Makefile ../linux-2.6.18/Makefile
--- ../../linux-2.6.18/Makefile	2006-09-19 23:42:06.000000000 -0400
+++ ../linux-2.6.18/Makefile	2006-10-06 12:24:18.000000000 -0400
@@ -173,8 +173,10 @@
 # Default value for CROSS_COMPILE is not to prefix executables
 # Note: Some architectures assign CROSS_COMPILE in their arch/*/Makefile
 
-ARCH		?= $(SUBARCH)
-CROSS_COMPILE	?=
+#ARCH		?= $(SUBARCH)
+#CROSS_COMPILE	?=
+ARCH = arm
+CROSS_COMPILE = /opt/tools/arm/gnuarm-3.4.3/bin/arm-elf-
 
 # Architecture as present in compile.h
 UTS_MACHINE := $(ARCH)
