diff --git a/target/linux/at91-2.6/image/Config.in b/target/linux/at91-2.6/image/Config.in
new file mode 100644
index 0000000000000000000000000000000000000000..4335faac5a2915e837b714ad90fc4077afd94091
--- /dev/null
+++ b/target/linux/at91-2.6/image/Config.in
@@ -0,0 +1,18 @@
+config AT91_ROMBOOT
+	bool "Build romboot loader"
+	depends LINUX_2_6_AT91
+	default y
+
+config AT91_UBOOT
+	bool "Build u-boot loader"
+	depends LINUX_2_6_AT91
+	default y
+
+config UBOOT_TARGET
+	string "U-Boot Board Configuration"
+	default "vlink"
+	help
+	  For all supported boards there are reqdy-to-use default
+		configurations available; just type "<board_name>".
+
+
diff --git a/target/linux/at91-2.6/image/Makefile b/target/linux/at91-2.6/image/Makefile
index 07660f2350616984c9803b611db31934b627a7bf..8b1a9476d796dd08898d6247f69e76383c02e774 100644
--- a/target/linux/at91-2.6/image/Makefile
+++ b/target/linux/at91-2.6/image/Makefile
@@ -5,16 +5,25 @@
 # See /LICENSE for more information.
 #
 
-TARGET_DEVICE_TABLE:=$(TOPDIR)/target/linux/vlink-2.6/image/device_table.txt
-
 include $(TOPDIR)/rules.mk
 include $(INCLUDE_DIR)/image.mk
 
 define Build/Clean
+	$(MAKE) -C romboot clean
+	$(MAKE) -C u-boot clean
+endef
+
+define Build/Compile
+	$(MAKE) -C romboot compile
+#	$(MAKE) -C u-boot configure
+	$(MAKE) -C u-boot compile
 endef
 
 define Image/Prepare
   cp $(LINUX_DIR)/arch/arm/boot/uImage $(KDIR)/uImage
+	cp $(KDIR)/romboot/romboot.bin $(KDIR)/romboot.bin
+	cp $(KDIR)/u-boot-1.1.4/u-boot.bin $(KDIR)/u-boot.bin
+	cat $(KDIR)/romboot/romboot.block $(KDIR)/u-boot-1.1.4/u-boot.block > $(KDIR)/loaders.block
 endef
 
 define Image/BuildKernel
@@ -25,12 +34,4 @@ define Image/Build
 	$(call Image/Build/$(1),$(1))
 endef
 
-define Image/Build/jffs2-64k
-	dd if=$(KDIR)/root.$(1) of=$(BIN_DIR)/openwrt-$(BOARD)-$(KERNEL)-$(1).img bs=65536 conv=sync
-endef
-
-define Image/Build/jffs2-128k
-	dd if=$(KDIR)/root.$(1) of=$(BIN_DIR)/openwrt-$(BOARD)-$(KERNEL)-$(1).img bs=131072 conv=sync
-endef
-
 $(eval $(call BuildImage))
diff --git a/target/linux/at91-2.6/image/romboot/Makefile b/target/linux/at91-2.6/image/romboot/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..aa679aba76b296d28b9ffd952aeef9f7730dee25
--- /dev/null
+++ b/target/linux/at91-2.6/image/romboot/Makefile
@@ -0,0 +1,28 @@
+#
+# Copyright (C) 2006 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+# $Id$
+
+include $(TOPDIR)/rules.mk
+include $(INCLUDE_DIR)/kernel.mk
+
+PKG_NAME:=romboot
+PKG_VERSION:=0.1
+PKG_RELEASE:=1
+
+PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/$(PKG_NAME)
+PKG_SOURCE:=$(PKG_NAME).tar.gz
+PKG_SOURCE_URL:=http://www.teest.com/at91
+PKG_MD5SUM:=
+PKG_CAT:=zcat
+
+include $(INCLUDE_DIR)/package.mk
+
+define Build/InstallDev
+	dd if=$(PKG_BUILD_DIR)/romboot.bin of=$(PKG_BUILD_DIR)/romboot.block bs=32k count=1 conv=sync
+endef
+
+$(eval $(call Build/DefaultTargets))
diff --git a/target/linux/at91-2.6/image/romboot/patches/000-fixenv.patch b/target/linux/at91-2.6/image/romboot/patches/000-fixenv.patch
new file mode 100644
index 0000000000000000000000000000000000000000..7c285728594fae79970d82b0e1d525ae6d7892ea
--- /dev/null
+++ b/target/linux/at91-2.6/image/romboot/patches/000-fixenv.patch
@@ -0,0 +1,57 @@
+diff -uNr romboot/main.cpp romboot.new/main.cpp
+--- romboot/main.cpp	2004-07-16 17:10:04.000000000 +0200
++++ romboot.new/main.cpp	2006-03-03 02:27:37.000000000 +0100
+@@ -23,12 +23,12 @@
+ #define AT91C_UBOOT_DATAFLASH_ADDR 0xC0008000
+ 
+ // crystal= 18.432MHz
+-//#define AT91C_PLLA_VALUE 0x2026BE04 // -> 179.712MHz
+-//#define AT91C_PLLA_MCK 0x0000202
++#define AT91C_PLLA_VALUE 0x2026BE04 // -> 179.712MHz
++#define AT91C_PLLA_MCK 0x0000202
+ 
+ // crystal= 20.000MHz
+-#define AT91C_PLLA_VALUE 0x2023BE04 // -> 180MHz
+-#define AT91C_PLLA_MCK 0x0000202
++//#define AT91C_PLLA_VALUE 0x2023BE04 // -> 180MHz
++//#define AT91C_PLLA_MCK 0x0000202
+ 
+ #define DELAY_MAIN_FREQ	1000
+ #define DISP_LINE_LEN 16
+@@ -151,7 +151,7 @@
+ //*-----------------------------------------------------------------------------
+ void AT91F_DisplayMenu(void)
+ {
+-  printf("\n\rATMEL LOADER %s %s %s\n\r", AT91C_VERSION, __DATE__, __TIME__);
++  printf("\n\rFDL LOADER %s %s %s\n\r", AT91C_VERSION, __DATE__, __TIME__);
+   printf(menu_separ);	
+   AT91F_DataflashPrintInfo();
+   printf(menu_separ);	
+@@ -306,6 +306,19 @@
+   AT91F_SetPLL();
+ }
+ 
++void LedCode(void)
++{
++	int *pRegister;
++	pRegister = (int *)0xFFFFF800; // Enable port C peripheral reg
++        *pRegister = 0x3c00;
++        pRegister = (int *)0xFFFFF810; // Output Enable reg
++        *pRegister = 0x3c00;
++        pRegister = (int *)0xFFFFF830; // Set data
++        *pRegister = 0x1400;
++        pRegister = (int *)0xFFFFF834; // Clear bits
++        *pRegister = 0x2800;
++}
++
+ void AT91F_StartUboot(unsigned int dummy, void *pvoid)
+ {
+   printf("Load U-BOOT from dataflash[%x] to SDRAM[%x]\n\r", AT91C_UBOOT_DATAFLASH_ADDR, AT91C_UBOOT_ADDR);
+@@ -313,6 +326,7 @@
+   printf("Set PLLA to 180Mhz and Master clock to 60Mhz and start U-BOOT\n\r");
+   //* Reset registers
+   AT91F_ResetRegisters();
++  LedCode();
+   Jump(AT91C_UBOOT_ADDR);
+   while(1);
+ }
diff --git a/target/linux/at91-2.6/image/romboot/patches/001-makefile.patch b/target/linux/at91-2.6/image/romboot/patches/001-makefile.patch
new file mode 100644
index 0000000000000000000000000000000000000000..e0995c778d9eca99d445de90b9abd9a43125f78a
--- /dev/null
+++ b/target/linux/at91-2.6/image/romboot/patches/001-makefile.patch
@@ -0,0 +1,50 @@
+--- romboot/Makefile.old	2007-03-18 09:29:20.000000000 +0100
++++ romboot/Makefile	2007-03-18 09:29:13.000000000 +0100
+@@ -0,0 +1,47 @@
++LINKFLAGS= -T elf32-littlearm.lds -Ttext 0
++COMPILEFLAGS= -Os
++TARGET=romboot
++OBJFILES=cstartup_ram.o asm_isr.o jump.o at45.o com.o dataflash.o \
++	init.o main.o stdio.o _udivsi3.o _umodsi3.o div0.o
++LIBRARIES=
++INCLUDES= -Iinclude
++
++all:$(TARGET)
++
++$(TARGET): $(OBJFILES)
++	$(LD) $(OBJFILES) -o $(TARGET).out $(LINKFLAGS) -n
++	$(OBJCOPY) $(TARGET).out -O binary $(TARGET).bin
++
++asm_isr.o: asm_isr.S
++	$(CC) -c -Iinclude -o $@ $<
++
++cstartup_ram.o: cstartup_ram.S
++	$(CC) -c -Iinclude -o $@ $<
++
++jump.o: jump.S
++	$(CC) -c -Iinclude -o $@ $<
++
++_udivsi3.o: _udivsi3.S
++	$(CC) -c $<
++
++_umodsi3.o: _umodsi3.S
++	$(CC) -c $<
++
++#%.o: %.S
++#	$(CC) -c $(INCLUDES) -o $@ $<
++
++%.o: %.cpp
++	$(CC) -c $(COMPILEFLAGS) $(INCLUDES) -o $@ $<
++
++div0.o: div0.c
++	$(CC) -c $(COMPILEFLAGS) $<
++
++clean:
++	rm $(OBJFILES) -f
++	rm *~ -f
++	rm $(TARGET) -f
++
++
++#LD="$CROSS"ld
++
++
diff --git a/target/linux/at91-2.6/image/u-boot/Makefile b/target/linux/at91-2.6/image/u-boot/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..4584f20f8bd995250bf33802042748fad57c97a6
--- /dev/null
+++ b/target/linux/at91-2.6/image/u-boot/Makefile
@@ -0,0 +1,37 @@
+#
+# Copyright (C) 2006 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+# $Id$
+
+include $(TOPDIR)/rules.mk
+include $(INCLUDE_DIR)/kernel.mk
+
+PKG_NAME:=u-boot
+PKG_VERSION:=1.1.4
+PKG_RELEASE:=1
+
+PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
+PKG_SOURCE_URL:=ftp://ftp.denx.de/pub/u-boot
+PKG_MD5SUM:=
+PKG_CAT:=bzcat
+
+include $(INCLUDE_DIR)/package.mk
+
+UBOOT_CONFIG=$(strip $(subst ",, $(CONFIG_UBOOT_TARGET)))
+
+define Build/Compile
+	$(MAKE) -C $(PKG_BUILD_DIR) $(UBOOT_CONFIG)_config
+	export CROSS_COMPILE=$(TARGET_CROSS); \
+	$(MAKE) -C $(PKG_BUILD_DIR)
+endef
+
+define Build/InstallDev
+	dd if=$(PKG_BUILD_DIR)/u-boot.bin of=$(PKG_BUILD_DIR)/u-boot.block bs=232k count=1 conv=sync
+#	mv $(PKG_BUILD_DIR) $(KERNEL_BUILD_DIR)/$(PKG_NAME)
+endef
+
+$(eval $(call Build/DefaultTargets))
diff --git a/target/linux/at91-2.6/image/u-boot/patches/001-lowlevel-config.patch b/target/linux/at91-2.6/image/u-boot/patches/001-lowlevel-config.patch
new file mode 100644
index 0000000000000000000000000000000000000000..25f92e4963e0915f0ddc9a5a300cb3fb723d1ed5
--- /dev/null
+++ b/target/linux/at91-2.6/image/u-boot/patches/001-lowlevel-config.patch
@@ -0,0 +1,91 @@
+--- u-boot-1.1.4/cpu/arm920t/config.mk	2005-12-16 17:39:27.000000000 +0100
++++ u-boot-1.1.4.klaus/cpu/arm920t/config.mk	2006-02-27 19:07:41.000000000 +0100
+@@ -30,5 +30,5 @@
+ # Supply options according to compiler version
+ #
+ # =========================================================================
+-PLATFORM_CPPFLAGS +=$(call cc-option,-mapcs-32,-mabi=apcs-gnu)
++PLATFORM_CPPFLAGS +=$(call cc-option,-mapcs-32)
+ PLATFORM_RELFLAGS +=$(call cc-option,-mshort-load-bytes,$(call cc-option,-malignment-traps,))
+--- u-boot-1.1.4/cpu/arm920t/start.S	2005-12-16 17:39:27.000000000 +0100
++++ u-boot-1.1.4.klaus/cpu/arm920t/start.S	2006-02-22 16:45:24.000000000 +0100
+@@ -237,6 +237,7 @@
+  */
+ 
+ 
++#ifndef CONFIG_SKIP_LOWLEVEL_INIT
+ cpu_init_crit:
+ 	/*
+ 	 * flush v4 I/D caches
+@@ -265,6 +266,7 @@
+ 	mov	lr, ip
+ 	mov	pc, lr
+ 
++#endif
+ 
+ /*
+  *************************************************************************
+--- u-boot-1.1.4/examples/Makefile	2005-12-16 17:39:27.000000000 +0100
++++ u-boot-1.1.4.klaus/examples/Makefile	2006-03-02 02:37:14.000000000 +0100
+@@ -30,7 +30,7 @@
+ endif
+ 
+ ifeq ($(ARCH),arm)
+-LOAD_ADDR = 0xc100000
++LOAD_ADDR = 0x21000000
+ endif
+ 
+ ifeq ($(ARCH),mips)
+--- u-boot-1.1.4/include/config.h	1970-01-01 01:00:00.000000000 +0100
++++ u-boot-1.1.4.klaus/include/config.h	2006-02-27 19:04:46.000000000 +0100
+@@ -0,0 +1,2 @@
++/* Automatically generated - do not edit */
++#include <configs/at91rm9200dk.h>
+--- u-boot-1.1.4/include/config.mk	1970-01-01 01:00:00.000000000 +0100
++++ u-boot-1.1.4.klaus/include/config.mk	2006-02-27 19:04:46.000000000 +0100
+@@ -0,0 +1,4 @@
++ARCH   = arm
++CPU    = arm920t
++BOARD  = at91rm9200dk
++SOC    = at91rm9200
+--- u-boot-1.1.4/include/configs/at91rm9200dk.h	2005-12-16 17:39:27.000000000 +0100
++++ u-boot-1.1.4.klaus/include/configs/at91rm9200dk.h	2006-02-26 22:44:17.000000000 +0100
+@@ -25,6 +25,11 @@
+ #ifndef __CONFIG_H
+ #define __CONFIG_H
+ 
++// Added 2 defines to skip re-init lowlevel and relocate HCG HLH
++//
++#define CONFIG_SKIP_LOWLEVEL_INIT
++#define CONFIG_SKIP_RELOCATE_UBOOT
++
+ /* ARM asynchronous clock */
+ #define AT91C_MAIN_CLOCK	179712000	/* from 18.432 MHz crystal (18432000 / 4 * 39) */
+ #define AT91C_MASTER_CLOCK	59904000	/* peripheral clock (AT91C_MASTER_CLOCK / 3) */
+@@ -165,12 +170,12 @@
+ #define CFG_FLASH_ERASE_TOUT		(2*CFG_HZ) /* Timeout for Flash Erase */
+ #define CFG_FLASH_WRITE_TOUT		(2*CFG_HZ) /* Timeout for Flash Write */
+ 
+-#undef	CFG_ENV_IS_IN_DATAFLASH
++#define	CFG_ENV_IS_IN_DATAFLASH
+ 
+ #ifdef CFG_ENV_IS_IN_DATAFLASH
+-#define CFG_ENV_OFFSET			0x20000
++#define CFG_ENV_OFFSET			0x21000
+ #define CFG_ENV_ADDR			(CFG_DATAFLASH_LOGIC_ADDR_CS0 + CFG_ENV_OFFSET)
+-#define CFG_ENV_SIZE			0x2000  /* 0x8000 */
++#define CFG_ENV_SIZE			0x8400  /* 0x8000 */
+ #else
+ #define CFG_ENV_IS_IN_FLASH		1
+ #ifdef CONFIG_SKIP_LOWLEVEL_INIT
+--- u-boot-1.1.4/Makefile	2005-12-16 17:39:27.000000000 +0100
++++ u-boot-1.1.4.klaus/Makefile	2006-03-02 02:49:23.000000000 +0100
+@@ -57,7 +57,7 @@
+ CROSS_COMPILE = powerpc-linux-
+ endif
+ ifeq ($(ARCH),arm)
+-CROSS_COMPILE = arm-linux-
++CROSS_COMPILE = ../staging_dir/bin/arm-linux-
+ endif
+ ifeq ($(ARCH),i386)
+ ifeq ($(HOSTARCH),i387)
diff --git a/target/linux/at91-2.6/image/u-boot/patches/002-dataflash_machine.patch b/target/linux/at91-2.6/image/u-boot/patches/002-dataflash_machine.patch
new file mode 100644
index 0000000000000000000000000000000000000000..cf7648c5227e936dc2cf0a0f227cc236011fd906
--- /dev/null
+++ b/target/linux/at91-2.6/image/u-boot/patches/002-dataflash_machine.patch
@@ -0,0 +1,6065 @@
+diff -Naur u-boot-1.1.4.org/board/vlink/at45.c u-boot-1.1.4.tmp/board/vlink/at45.c
+--- u-boot-1.1.4.org/board/vlink/at45.c	1970-01-01 01:00:00.000000000 +0100
++++ u-boot-1.1.4.tmp/board/vlink/at45.c	2005-12-16 17:39:27.000000000 +0100
+@@ -0,0 +1,621 @@
++/* Driver for ATMEL DataFlash support
++ * Author : Hamid Ikdoumi (Atmel)
++ *
++ * 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.
++ *
++ * This program is distributed in the hope that 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 <config.h>
++#include <common.h>
++#include <asm/hardware.h>
++
++#ifdef CONFIG_HAS_DATAFLASH
++#include <dataflash.h>
++
++#define AT91C_SPI_CLK	10000000	/* Max Value = 10MHz to be compliant to
++the Continuous Array Read function */
++
++/* AC Characteristics */
++/* DLYBS = tCSS = 250ns min and DLYBCT = tCSH = 250ns */
++#define DATAFLASH_TCSS	(0xC << 16)
++#define DATAFLASH_TCHS	(0x1 << 24)
++
++#define AT91C_TIMEOUT_WRDY			200000
++#define AT91C_SPI_PCS0_SERIAL_DATAFLASH		0xE     /* Chip Select 0 : NPCS0 %1110 */
++#define AT91C_SPI_PCS3_DATAFLASH_CARD		0x7     /* Chip Select 3 : NPCS3 %0111 */
++
++void AT91F_SpiInit(void) {
++
++/*-------------------------------------------------------------------*/
++/*	SPI DataFlash Init								*/
++/*-------------------------------------------------------------------*/
++	/* Configure PIOs */
++	AT91C_BASE_PIOA->PIO_ASR = AT91C_PA3_NPCS0 | AT91C_PA4_NPCS1 | AT91C_PA1_MOSI | AT91C_PA5_NPCS2 |
++				   AT91C_PA6_NPCS3 | AT91C_PA0_MISO | AT91C_PA2_SPCK;
++	AT91C_BASE_PIOA->PIO_PDR = AT91C_PA3_NPCS0 | AT91C_PA4_NPCS1 | AT91C_PA1_MOSI | AT91C_PA5_NPCS2 |
++				   AT91C_PA6_NPCS3 | AT91C_PA0_MISO | AT91C_PA2_SPCK;
++	/* Enable CLock */
++	AT91C_BASE_PMC->PMC_PCER = 1 << AT91C_ID_SPI;
++
++	/* Reset the SPI */
++	AT91C_BASE_SPI->SPI_CR = AT91C_SPI_SWRST;
++
++	/* Configure SPI in Master Mode with No CS selected !!! */
++	AT91C_BASE_SPI->SPI_MR = AT91C_SPI_MSTR | AT91C_SPI_MODFDIS | AT91C_SPI_PCS;
++
++	/* Configure CS0 and CS3 */
++	*(AT91C_SPI_CSR + 0) = AT91C_SPI_CPOL | (AT91C_SPI_DLYBS & DATAFLASH_TCSS) | (AT91C_SPI_DLYBCT &
++	DATAFLASH_TCHS) | ((AT91C_MASTER_CLOCK / (2*AT91C_SPI_CLK)) << 8);
++
++	*(AT91C_SPI_CSR + 3) = AT91C_SPI_CPOL | (AT91C_SPI_DLYBS & DATAFLASH_TCSS) | (AT91C_SPI_DLYBCT &
++	DATAFLASH_TCHS) | ((AT91C_MASTER_CLOCK / (2*AT91C_SPI_CLK)) << 8);
++
++}
++
++void AT91F_SpiEnable(int cs) {
++	switch(cs) {
++	case 0:	/* Configure SPI CS0 for Serial DataFlash AT45DBxx */
++		AT91C_BASE_SPI->SPI_MR &= 0xFFF0FFFF;
++		AT91C_BASE_SPI->SPI_MR |= ((AT91C_SPI_PCS0_SERIAL_DATAFLASH<<16) & AT91C_SPI_PCS);
++		break;
++	case 3:	/* Configure SPI CS3 for Serial DataFlash Card */
++		/* Set up PIO SDC_TYPE to switch on DataFlash Card and not MMC/SDCard */
++		AT91C_BASE_PIOB->PIO_PER = AT91C_PIO_PB7;	/* Set in PIO mode */
++		AT91C_BASE_PIOB->PIO_OER = AT91C_PIO_PB7;	/* Configure in output */
++		/* Clear Output */
++		AT91C_BASE_PIOB->PIO_CODR = AT91C_PIO_PB7;
++		/* Configure PCS */
++		AT91C_BASE_SPI->SPI_MR &= 0xFFF0FFFF;
++		AT91C_BASE_SPI->SPI_MR |= ((AT91C_SPI_PCS3_DATAFLASH_CARD<<16) & AT91C_SPI_PCS);
++		break;
++	}
++
++	/* SPI_Enable */
++	AT91C_BASE_SPI->SPI_CR = AT91C_SPI_SPIEN;
++}
++
++/*----------------------------------------------------------------------------*/
++/* \fn    AT91F_SpiWrite						      */
++/* \brief Set the PDC registers for a transfert				      */
++/*----------------------------------------------------------------------------*/
++unsigned int AT91F_SpiWrite ( AT91PS_DataflashDesc pDesc )
++{
++	unsigned int timeout;
++
++	pDesc->state = BUSY;
++
++	AT91C_BASE_SPI->SPI_PTCR = AT91C_PDC_TXTDIS + AT91C_PDC_RXTDIS;
++
++	/* Initialize the Transmit and Receive Pointer */
++	AT91C_BASE_SPI->SPI_RPR = (unsigned int)pDesc->rx_cmd_pt ;
++	AT91C_BASE_SPI->SPI_TPR = (unsigned int)pDesc->tx_cmd_pt ;
++
++	/* Intialize the Transmit and Receive Counters */
++	AT91C_BASE_SPI->SPI_RCR = pDesc->rx_cmd_size;
++	AT91C_BASE_SPI->SPI_TCR = pDesc->tx_cmd_size;
++
++	if ( pDesc->tx_data_size != 0 ) {
++		/* Initialize the Next Transmit and Next Receive Pointer */
++		AT91C_BASE_SPI->SPI_RNPR = (unsigned int)pDesc->rx_data_pt ;
++		AT91C_BASE_SPI->SPI_TNPR = (unsigned int)pDesc->tx_data_pt ;
++
++		/* Intialize the Next Transmit and Next Receive Counters */
++		AT91C_BASE_SPI->SPI_RNCR = pDesc->rx_data_size ;
++		AT91C_BASE_SPI->SPI_TNCR = pDesc->tx_data_size ;
++	}
++
++	/* arm simple, non interrupt dependent timer */
++	reset_timer_masked();
++	timeout = 0;
++
++	AT91C_BASE_SPI->SPI_PTCR = AT91C_PDC_TXTEN + AT91C_PDC_RXTEN;
++	while(!(AT91C_BASE_SPI->SPI_SR & AT91C_SPI_RXBUFF) && ((timeout = get_timer_masked() ) < CFG_SPI_WRITE_TOUT));
++	AT91C_BASE_SPI->SPI_PTCR = AT91C_PDC_TXTDIS + AT91C_PDC_RXTDIS;
++	pDesc->state = IDLE;
++
++	if (timeout >= CFG_SPI_WRITE_TOUT){
++		printf("Error Timeout\n\r");
++		return DATAFLASH_ERROR;
++	}
++
++	return DATAFLASH_OK;
++}
++
++
++/*----------------------------------------------------------------------*/
++/* \fn    AT91F_DataFlashSendCommand					*/
++/* \brief Generic function to send a command to the dataflash		*/
++/*----------------------------------------------------------------------*/
++AT91S_DataFlashStatus AT91F_DataFlashSendCommand(
++	AT91PS_DataFlash pDataFlash,
++	unsigned char OpCode,
++	unsigned int CmdSize,
++	unsigned int DataflashAddress)
++{
++    unsigned int adr;
++
++	if ( (pDataFlash->pDataFlashDesc->state) != IDLE)
++		return DATAFLASH_BUSY;
++
++	/* process the address to obtain page address and byte address */
++	adr = ((DataflashAddress / (pDataFlash->pDevice->pages_size)) << pDataFlash->pDevice->page_offset) + (DataflashAddress % (pDataFlash->pDevice->pages_size));
++
++	/* fill the  command  buffer */
++	pDataFlash->pDataFlashDesc->command[0] = OpCode;
++	if (pDataFlash->pDevice->pages_number >= 16384) {
++		pDataFlash->pDataFlashDesc->command[1] = (unsigned char)((adr & 0x0F000000) >> 24);
++		pDataFlash->pDataFlashDesc->command[2] = (unsigned char)((adr & 0x00FF0000) >> 16);
++		pDataFlash->pDataFlashDesc->command[3] = (unsigned char)((adr & 0x0000FF00) >> 8);
++		pDataFlash->pDataFlashDesc->command[4] = (unsigned char)(adr & 0x000000FF);
++	} else {
++		pDataFlash->pDataFlashDesc->command[1] = (unsigned char)((adr & 0x00FF0000) >> 16);
++		pDataFlash->pDataFlashDesc->command[2] = (unsigned char)((adr & 0x0000FF00) >> 8);
++		pDataFlash->pDataFlashDesc->command[3] = (unsigned char)(adr & 0x000000FF) ;
++		pDataFlash->pDataFlashDesc->command[4] = 0;
++	}
++	pDataFlash->pDataFlashDesc->command[5] = 0;
++	pDataFlash->pDataFlashDesc->command[6] = 0;
++	pDataFlash->pDataFlashDesc->command[7] = 0;
++
++	/* Initialize the SpiData structure for the spi write fuction */
++	pDataFlash->pDataFlashDesc->tx_cmd_pt   =  pDataFlash->pDataFlashDesc->command ;
++	pDataFlash->pDataFlashDesc->tx_cmd_size =  CmdSize ;
++	pDataFlash->pDataFlashDesc->rx_cmd_pt   =  pDataFlash->pDataFlashDesc->command ;
++	pDataFlash->pDataFlashDesc->rx_cmd_size =  CmdSize ;
++
++	/* send the command and read the data */
++	return AT91F_SpiWrite (pDataFlash->pDataFlashDesc);
++}
++
++
++/*----------------------------------------------------------------------*/
++/* \fn    AT91F_DataFlashGetStatus					*/
++/* \brief Read the status register of the dataflash			*/
++/*----------------------------------------------------------------------*/
++AT91S_DataFlashStatus AT91F_DataFlashGetStatus(AT91PS_DataflashDesc pDesc)
++{
++	AT91S_DataFlashStatus status;
++
++	/* if a transfert is in progress ==> return 0 */
++	if( (pDesc->state) != IDLE)
++		return DATAFLASH_BUSY;
++
++	/* first send the read status command (D7H) */
++	pDesc->command[0] = DB_STATUS;
++	pDesc->command[1] = 0;
++
++	pDesc->DataFlash_state  = GET_STATUS;
++	pDesc->tx_data_size 	= 0 ;	/* Transmit the command and receive response */
++	pDesc->tx_cmd_pt 		= pDesc->command ;
++	pDesc->rx_cmd_pt 		= pDesc->command ;
++	pDesc->rx_cmd_size 		= 2 ;
++	pDesc->tx_cmd_size 		= 2 ;
++	status = AT91F_SpiWrite (pDesc);
++
++	pDesc->DataFlash_state = *( (unsigned char *) (pDesc->rx_cmd_pt) +1);
++
++	return status;
++}
++
++
++/*----------------------------------------------------------------------*/
++/* \fn    AT91F_DataFlashWaitReady					*/
++/* \brief wait for dataflash ready (bit7 of the status register == 1)	*/
++/*----------------------------------------------------------------------*/
++AT91S_DataFlashStatus AT91F_DataFlashWaitReady(AT91PS_DataflashDesc pDataFlashDesc, unsigned int timeout)
++{
++	pDataFlashDesc->DataFlash_state = IDLE;
++
++	do {
++		AT91F_DataFlashGetStatus(pDataFlashDesc);
++		timeout--;
++	} while( ((pDataFlashDesc->DataFlash_state & 0x80) != 0x80) && (timeout > 0) );
++
++	if((pDataFlashDesc->DataFlash_state & 0x80) != 0x80)
++		return DATAFLASH_ERROR;
++
++	return DATAFLASH_OK;
++}
++
++
++/*------------------------------------------------------------------------------*/
++/* Function Name       : AT91F_DataFlashContinuousRead 				*/
++/* Object              : Continuous stream Read 				*/
++/* Input Parameters    : DataFlash Service					*/
++/*						: <src> = dataflash address	*/
++/*                     : <*dataBuffer> = data buffer pointer			*/
++/*                     : <sizeToRead> = data buffer size			*/
++/* Return value		: State of the dataflash				*/
++/*------------------------------------------------------------------------------*/
++AT91S_DataFlashStatus AT91F_DataFlashContinuousRead (
++	AT91PS_DataFlash pDataFlash,
++	int src,
++	unsigned char *dataBuffer,
++	int sizeToRead )
++{
++	AT91S_DataFlashStatus status;
++	/* Test the size to read in the device */
++	if ( (src + sizeToRead) > (pDataFlash->pDevice->pages_size * (pDataFlash->pDevice->pages_number)))
++		return DATAFLASH_MEMORY_OVERFLOW;
++
++	pDataFlash->pDataFlashDesc->rx_data_pt = dataBuffer;
++	pDataFlash->pDataFlashDesc->rx_data_size = sizeToRead;
++	pDataFlash->pDataFlashDesc->tx_data_pt = dataBuffer;
++	pDataFlash->pDataFlashDesc->tx_data_size = sizeToRead;
++
++	status = AT91F_DataFlashSendCommand (pDataFlash, DB_CONTINUOUS_ARRAY_READ, 8, src);
++	/* Send the command to the dataflash */
++	return(status);
++}
++
++
++/*------------------------------------------------------------------------------*/
++/* Function Name       : AT91F_DataFlashPagePgmBuf				*/
++/* Object              : Main memory page program through buffer 1 or buffer 2	*/
++/* Input Parameters    : DataFlash Service					*/
++/*						: <*src> = Source buffer	*/
++/*                     : <dest> = dataflash destination address			*/
++/*                     : <SizeToWrite> = data buffer size			*/
++/* Return value		: State of the dataflash				*/
++/*------------------------------------------------------------------------------*/
++AT91S_DataFlashStatus AT91F_DataFlashPagePgmBuf(
++	AT91PS_DataFlash pDataFlash,
++	unsigned char *src,
++	unsigned int dest,
++	unsigned int SizeToWrite)
++{
++	int cmdsize;
++	pDataFlash->pDataFlashDesc->tx_data_pt = src ;
++	pDataFlash->pDataFlashDesc->tx_data_size = SizeToWrite ;
++	pDataFlash->pDataFlashDesc->rx_data_pt = src;
++	pDataFlash->pDataFlashDesc->rx_data_size = SizeToWrite;
++
++	cmdsize = 4;
++	/* Send the command to the dataflash */
++	if (pDataFlash->pDevice->pages_number >= 16384)
++		cmdsize = 5;
++	return(AT91F_DataFlashSendCommand (pDataFlash, DB_PAGE_PGM_BUF1, cmdsize, dest));
++}
++
++
++/*------------------------------------------------------------------------------*/
++/* Function Name       : AT91F_MainMemoryToBufferTransfert			*/
++/* Object              : Read a page in the SRAM Buffer 1 or 2			*/
++/* Input Parameters    : DataFlash Service					*/
++/*                     : Page concerned						*/
++/*                     : 							*/
++/* Return value		: State of the dataflash				*/
++/*------------------------------------------------------------------------------*/
++AT91S_DataFlashStatus AT91F_MainMemoryToBufferTransfert(
++	AT91PS_DataFlash pDataFlash,
++	unsigned char BufferCommand,
++	unsigned int page)
++{
++	int cmdsize;
++	/* Test if the buffer command is legal */
++	if ((BufferCommand != DB_PAGE_2_BUF1_TRF) && (BufferCommand != DB_PAGE_2_BUF2_TRF))
++		return DATAFLASH_BAD_COMMAND;
++
++	/* no data to transmit or receive */
++	pDataFlash->pDataFlashDesc->tx_data_size = 0;
++	cmdsize = 4;
++	if (pDataFlash->pDevice->pages_number >= 16384)
++		cmdsize = 5;
++	return(AT91F_DataFlashSendCommand (pDataFlash, BufferCommand, cmdsize, page*pDataFlash->pDevice->pages_size));
++}
++
++
++/*----------------------------------------------------------------------------- */
++/* Function Name       : AT91F_DataFlashWriteBuffer				*/
++/* Object              : Write data to the internal sram buffer 1 or 2		*/
++/* Input Parameters    : DataFlash Service					*/
++/*			: <BufferCommand> = command to write buffer1 or buffer2	*/
++/*                     : <*dataBuffer> = data buffer to write			*/
++/*                     : <bufferAddress> = address in the internal buffer	*/
++/*                     : <SizeToWrite> = data buffer size			*/
++/* Return value		: State of the dataflash				*/
++/*------------------------------------------------------------------------------*/
++AT91S_DataFlashStatus AT91F_DataFlashWriteBuffer (
++	AT91PS_DataFlash pDataFlash,
++	unsigned char BufferCommand,
++	unsigned char *dataBuffer,
++	unsigned int bufferAddress,
++	int SizeToWrite )
++{
++	int cmdsize;
++	/* Test if the buffer command is legal */
++	if ((BufferCommand != DB_BUF1_WRITE) && (BufferCommand != DB_BUF2_WRITE))
++		return DATAFLASH_BAD_COMMAND;
++
++	/* buffer address must be lower than page size */
++	if (bufferAddress > pDataFlash->pDevice->pages_size)
++		return DATAFLASH_BAD_ADDRESS;
++
++	if ( (pDataFlash->pDataFlashDesc->state)  != IDLE)
++		return DATAFLASH_BUSY;
++
++	/* Send first Write Command */
++	pDataFlash->pDataFlashDesc->command[0] = BufferCommand;
++	pDataFlash->pDataFlashDesc->command[1] = 0;
++	if (pDataFlash->pDevice->pages_number >= 16384) {
++	    	pDataFlash->pDataFlashDesc->command[2] = 0;
++	    	pDataFlash->pDataFlashDesc->command[3] = (unsigned char)(((unsigned int)(bufferAddress &  pDataFlash->pDevice->byte_mask)) >> 8) ;
++	    	pDataFlash->pDataFlashDesc->command[4] = (unsigned char)((unsigned int)bufferAddress  & 0x00FF) ;
++		cmdsize = 5;
++	} else {
++	    	pDataFlash->pDataFlashDesc->command[2] = (unsigned char)(((unsigned int)(bufferAddress &  pDataFlash->pDevice->byte_mask)) >> 8) ;
++	    	pDataFlash->pDataFlashDesc->command[3] = (unsigned char)((unsigned int)bufferAddress  & 0x00FF) ;
++	    	pDataFlash->pDataFlashDesc->command[4] = 0;
++		cmdsize = 4;
++	}
++
++	pDataFlash->pDataFlashDesc->tx_cmd_pt 	 = pDataFlash->pDataFlashDesc->command ;
++	pDataFlash->pDataFlashDesc->tx_cmd_size = cmdsize ;
++	pDataFlash->pDataFlashDesc->rx_cmd_pt 	 = pDataFlash->pDataFlashDesc->command ;
++	pDataFlash->pDataFlashDesc->rx_cmd_size = cmdsize ;
++
++	pDataFlash->pDataFlashDesc->rx_data_pt 	= dataBuffer ;
++	pDataFlash->pDataFlashDesc->tx_data_pt 	= dataBuffer ;
++	pDataFlash->pDataFlashDesc->rx_data_size 	= SizeToWrite ;
++	pDataFlash->pDataFlashDesc->tx_data_size 	= SizeToWrite ;
++
++	return AT91F_SpiWrite(pDataFlash->pDataFlashDesc);
++}
++
++/*------------------------------------------------------------------------------*/
++/* Function Name       : AT91F_PageErase                                        */
++/* Object              : Erase a page 						*/
++/* Input Parameters    : DataFlash Service					*/
++/*                     : Page concerned						*/
++/*                     : 							*/
++/* Return value		: State of the dataflash				*/
++/*------------------------------------------------------------------------------*/
++AT91S_DataFlashStatus AT91F_PageErase(
++	AT91PS_DataFlash pDataFlash,
++	unsigned int page)
++{
++	int cmdsize;
++	/* Test if the buffer command is legal */
++	/* no data to transmit or receive */
++    	pDataFlash->pDataFlashDesc->tx_data_size = 0;
++
++	cmdsize = 4;
++	if (pDataFlash->pDevice->pages_number >= 16384)
++		cmdsize = 5;
++	return(AT91F_DataFlashSendCommand (pDataFlash, DB_PAGE_ERASE, cmdsize, page*pDataFlash->pDevice->pages_size));
++}
++
++
++/*------------------------------------------------------------------------------*/
++/* Function Name       : AT91F_BlockErase                                       */
++/* Object              : Erase a Block 						*/
++/* Input Parameters    : DataFlash Service					*/
++/*                     : Page concerned						*/
++/*                     : 							*/
++/* Return value		: State of the dataflash				*/
++/*------------------------------------------------------------------------------*/
++AT91S_DataFlashStatus AT91F_BlockErase(
++	AT91PS_DataFlash pDataFlash,
++	unsigned int block)
++{
++	int cmdsize;
++	/* Test if the buffer command is legal */
++	/* no data to transmit or receive */
++    	pDataFlash->pDataFlashDesc->tx_data_size = 0;
++	cmdsize = 4;
++	if (pDataFlash->pDevice->pages_number >= 16384)
++		cmdsize = 5;
++	return(AT91F_DataFlashSendCommand (pDataFlash, DB_BLOCK_ERASE,cmdsize, block*8*pDataFlash->pDevice->pages_size));
++}
++
++/*------------------------------------------------------------------------------*/
++/* Function Name       : AT91F_WriteBufferToMain				*/
++/* Object              : Write buffer to the main memory			*/
++/* Input Parameters    : DataFlash Service					*/
++/*		: <BufferCommand> = command to send to buffer1 or buffer2	*/
++/*                     : <dest> = main memory address				*/
++/* Return value		: State of the dataflash				*/
++/*------------------------------------------------------------------------------*/
++AT91S_DataFlashStatus AT91F_WriteBufferToMain (
++	AT91PS_DataFlash pDataFlash,
++	unsigned char BufferCommand,
++	unsigned int dest )
++{
++	int cmdsize;
++	/* Test if the buffer command is correct */
++	if ((BufferCommand != DB_BUF1_PAGE_PGM) &&
++	    (BufferCommand != DB_BUF1_PAGE_ERASE_PGM) &&
++	    (BufferCommand != DB_BUF2_PAGE_PGM) &&
++	    (BufferCommand != DB_BUF2_PAGE_ERASE_PGM) )
++		return DATAFLASH_BAD_COMMAND;
++
++	/* no data to transmit or receive */
++	pDataFlash->pDataFlashDesc->tx_data_size = 0;
++
++	cmdsize = 4;
++	if (pDataFlash->pDevice->pages_number >= 16384)
++		cmdsize = 5;
++	/* Send the command to the dataflash */
++	return(AT91F_DataFlashSendCommand (pDataFlash, BufferCommand, cmdsize, dest));
++}
++
++
++/*------------------------------------------------------------------------------*/
++/* Function Name       : AT91F_PartialPageWrite					*/
++/* Object              : Erase partielly a page					*/
++/* Input Parameters    : <page> = page number					*/
++/*			: <AdrInpage> = adr to begin the fading			*/
++/*                     : <length> = Number of bytes to erase			*/
++/*------------------------------------------------------------------------------*/
++AT91S_DataFlashStatus AT91F_PartialPageWrite (
++	AT91PS_DataFlash pDataFlash,
++	unsigned char *src,
++	unsigned int dest,
++	unsigned int size)
++{
++	unsigned int page;
++	unsigned int AdrInPage;
++
++	page = dest / (pDataFlash->pDevice->pages_size);
++	AdrInPage = dest % (pDataFlash->pDevice->pages_size);
++
++	/* Read the contents of the page in the Sram Buffer */
++	AT91F_MainMemoryToBufferTransfert(pDataFlash, DB_PAGE_2_BUF1_TRF, page);
++	AT91F_DataFlashWaitReady(pDataFlash->pDataFlashDesc, AT91C_TIMEOUT_WRDY);
++	/*Update the SRAM buffer */
++	AT91F_DataFlashWriteBuffer(pDataFlash, DB_BUF1_WRITE, src, AdrInPage, size);
++
++	AT91F_DataFlashWaitReady(pDataFlash->pDataFlashDesc, AT91C_TIMEOUT_WRDY);
++
++	/* Erase page if a 128 Mbits device */
++	if (pDataFlash->pDevice->pages_number >= 16384) {
++		AT91F_PageErase(pDataFlash, page);
++		/* Rewrite the modified Sram Buffer in the main memory */
++		AT91F_DataFlashWaitReady(pDataFlash->pDataFlashDesc, AT91C_TIMEOUT_WRDY);
++	}
++
++	/* Rewrite the modified Sram Buffer in the main memory */
++	return(AT91F_WriteBufferToMain(pDataFlash, DB_BUF1_PAGE_ERASE_PGM, (page*pDataFlash->pDevice->pages_size)));
++}
++
++
++/*------------------------------------------------------------------------------*/
++/* Function Name       : AT91F_DataFlashWrite					*/
++/* Object              :							*/
++/* Input Parameters    : <*src> = Source buffer					*/
++/*                     : <dest> = dataflash adress				*/
++/*                     : <size> = data buffer size				*/
++/*------------------------------------------------------------------------------*/
++AT91S_DataFlashStatus AT91F_DataFlashWrite(
++	AT91PS_DataFlash pDataFlash,
++	unsigned char *src,
++	int dest,
++	int size )
++{
++	unsigned int length;
++	unsigned int page;
++	unsigned int status;
++
++	AT91F_SpiEnable(pDataFlash->pDevice->cs);
++
++	if ( (dest + size) > (pDataFlash->pDevice->pages_size * (pDataFlash->pDevice->pages_number)))
++		return DATAFLASH_MEMORY_OVERFLOW;
++
++	/* If destination does not fit a page start address */
++	if ((dest % ((unsigned int)(pDataFlash->pDevice->pages_size)))  != 0 ) {
++		length = pDataFlash->pDevice->pages_size - (dest % ((unsigned int)(pDataFlash->pDevice->pages_size)));
++
++		if (size < length)
++			length = size;
++
++		if(!AT91F_PartialPageWrite(pDataFlash,src, dest, length))
++			return DATAFLASH_ERROR;
++
++		AT91F_DataFlashWaitReady(pDataFlash->pDataFlashDesc, AT91C_TIMEOUT_WRDY);
++
++		/* Update size, source and destination pointers */
++		size -= length;
++		dest += length;
++		src += length;
++	}
++
++	while (( size - pDataFlash->pDevice->pages_size ) >= 0 ) {
++		/* program dataflash page */
++		page = (unsigned int)dest / (pDataFlash->pDevice->pages_size);
++
++		status = AT91F_DataFlashWriteBuffer(pDataFlash, DB_BUF1_WRITE, src, 0, pDataFlash->pDevice->pages_size);
++		AT91F_DataFlashWaitReady(pDataFlash->pDataFlashDesc, AT91C_TIMEOUT_WRDY);
++
++		status = AT91F_PageErase(pDataFlash, page);
++		AT91F_DataFlashWaitReady(pDataFlash->pDataFlashDesc, AT91C_TIMEOUT_WRDY);
++		if (!status)
++			return DATAFLASH_ERROR;
++
++		status = AT91F_WriteBufferToMain (pDataFlash, DB_BUF1_PAGE_PGM, dest);
++		if(!status)
++			return DATAFLASH_ERROR;
++
++		AT91F_DataFlashWaitReady(pDataFlash->pDataFlashDesc, AT91C_TIMEOUT_WRDY);
++
++		/* Update size, source and destination pointers */
++		size -= pDataFlash->pDevice->pages_size ;
++		dest += pDataFlash->pDevice->pages_size ;
++		src  += pDataFlash->pDevice->pages_size ;
++	}
++
++	/* If still some bytes to read */
++	if ( size > 0 ) {
++		/* program dataflash page */
++		if(!AT91F_PartialPageWrite(pDataFlash, src, dest, size) )
++			return DATAFLASH_ERROR;
++
++		AT91F_DataFlashWaitReady(pDataFlash->pDataFlashDesc, AT91C_TIMEOUT_WRDY);
++	}
++	return DATAFLASH_OK;
++}
++
++
++/*------------------------------------------------------------------------------*/
++/* Function Name       : AT91F_DataFlashRead 					*/
++/* Object              : Read a block in dataflash				*/
++/* Input Parameters    : 							*/
++/* Return value		: 							*/
++/*------------------------------------------------------------------------------*/
++int AT91F_DataFlashRead(
++	AT91PS_DataFlash pDataFlash,
++	unsigned long addr,
++	unsigned long size,
++	char *buffer)
++{
++	unsigned long SizeToRead;
++
++	AT91F_SpiEnable(pDataFlash->pDevice->cs);
++
++	if(AT91F_DataFlashWaitReady(pDataFlash->pDataFlashDesc, AT91C_TIMEOUT_WRDY) != DATAFLASH_OK)
++		return -1;
++
++	while (size) {
++		SizeToRead = (size < 0x8000)? size:0x8000;
++
++		if (AT91F_DataFlashWaitReady(pDataFlash->pDataFlashDesc, AT91C_TIMEOUT_WRDY) != DATAFLASH_OK)
++			return -1;
++
++		if (AT91F_DataFlashContinuousRead (pDataFlash, addr, buffer, SizeToRead) != DATAFLASH_OK)
++			return -1;
++
++		size -= SizeToRead;
++		addr += SizeToRead;
++		buffer += SizeToRead;
++	}
++
++	return DATAFLASH_OK;
++}
++
++
++/*------------------------------------------------------------------------------*/
++/* Function Name       : AT91F_DataflashProbe 					*/
++/* Object              : 							*/
++/* Input Parameters    : 							*/
++/* Return value	       : Dataflash status register				*/
++/*------------------------------------------------------------------------------*/
++int AT91F_DataflashProbe(int cs, AT91PS_DataflashDesc pDesc)
++{
++	AT91F_SpiEnable(cs);
++	AT91F_DataFlashGetStatus(pDesc);
++	return((pDesc->command[1] == 0xFF)? 0: pDesc->command[1] & 0x3C);
++}
++
++#endif
+diff -Naur u-boot-1.1.4.org/board/vlink/config.mk u-boot-1.1.4.tmp/board/vlink/config.mk
+--- u-boot-1.1.4.org/board/vlink/config.mk	1970-01-01 01:00:00.000000000 +0100
++++ u-boot-1.1.4.tmp/board/vlink/config.mk	2005-12-16 17:39:27.000000000 +0100
+@@ -0,0 +1 @@
++TEXT_BASE = 0x21f00000
+diff -Naur u-boot-1.1.4.org/board/vlink/flash.c u-boot-1.1.4.tmp/board/vlink/flash.c
+--- u-boot-1.1.4.org/board/vlink/flash.c	1970-01-01 01:00:00.000000000 +0100
++++ u-boot-1.1.4.tmp/board/vlink/flash.c	2006-06-05 02:44:43.000000000 +0200
+@@ -0,0 +1,504 @@
++/*
++ * (C) Copyright 2002
++ * Lineo, Inc. <www.lineo.com>
++ * Bernhard Kuhn <bkuhn@lineo.com>
++ *
++ * (C) Copyright 2002
++ * Sysgo Real-Time Solutions, GmbH <www.elinos.com>
++ * Alex Zuepke <azu@sysgo.de>
++ *
++ * See file CREDITS for list of people who contributed to this
++ * project.
++ *
++ * 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.
++ *
++ * This program is distributed in the hope that 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 <common.h>
++
++ulong myflush(void);
++
++
++/* Flash Organization Structure */
++typedef struct OrgDef
++{
++	unsigned int sector_number;
++	unsigned int sector_size;
++} OrgDef;
++
++
++/* Flash Organizations */
++OrgDef OrgAT49BV16x4[] =
++{
++	{  8,  8*1024 },	/*   8 *  8 kBytes sectors */
++	{  2, 32*1024 },	/*   2 * 32 kBytes sectors */
++	{ 30, 64*1024 },	/*  30 * 64 kBytes sectors */
++};
++
++OrgDef OrgAT49BV16x4A[] =
++{
++	{  8,  8*1024 },	/*   8 *  8 kBytes sectors */
++	{ 31, 64*1024 },	/*  31 * 64 kBytes sectors */
++};
++
++OrgDef OrgAT49BV6416[] =
++{
++	{   8,  8*1024 },	/*   8 *  8 kBytes sectors */
++	{ 127, 64*1024 },	/* 127 * 64 kBytes sectors */
++};
++
++flash_info_t    flash_info[CFG_MAX_FLASH_BANKS];
++
++/* AT49BV1614A Codes */
++#define FLASH_CODE1		0xAA
++#define FLASH_CODE2		0x55
++#define ID_IN_CODE		0x90
++#define ID_OUT_CODE		0xF0
++
++
++#define CMD_READ_ARRAY		0x00F0
++#define CMD_UNLOCK1		0x00AA
++#define CMD_UNLOCK2		0x0055
++#define CMD_ERASE_SETUP		0x0080
++#define CMD_ERASE_CONFIRM	0x0030
++#define CMD_PROGRAM		0x00A0
++#define CMD_UNLOCK_BYPASS	0x0020
++#define CMD_SECTOR_UNLOCK	0x0070
++
++#define MEM_FLASH_ADDR1		(*(volatile u16 *)(CFG_FLASH_BASE + (0x00005555<<1)))
++#define MEM_FLASH_ADDR2		(*(volatile u16 *)(CFG_FLASH_BASE + (0x00002AAA<<1)))
++
++#define BIT_ERASE_DONE		0x0080
++#define BIT_RDY_MASK		0x0080
++#define BIT_PROGRAM_ERROR	0x0020
++#define BIT_TIMEOUT		0x80000000 /* our flag */
++
++#define READY 1
++#define ERR   2
++#define TMO   4
++
++/*-----------------------------------------------------------------------
++ */
++void flash_identification (flash_info_t * info)
++{
++	volatile u16 manuf_code, device_code, add_device_code;
++
++	MEM_FLASH_ADDR1 = FLASH_CODE1;
++	MEM_FLASH_ADDR2 = FLASH_CODE2;
++	MEM_FLASH_ADDR1 = ID_IN_CODE;
++
++	manuf_code = *(volatile u16 *) CFG_FLASH_BASE;
++	device_code = *(volatile u16 *) (CFG_FLASH_BASE + 2);
++	add_device_code = *(volatile u16 *) (CFG_FLASH_BASE + (3 << 1));
++
++	MEM_FLASH_ADDR1 = FLASH_CODE1;
++	MEM_FLASH_ADDR2 = FLASH_CODE2;
++	MEM_FLASH_ADDR1 = ID_OUT_CODE;
++
++	/* Vendor type */
++	info->flash_id = ATM_MANUFACT & FLASH_VENDMASK;
++	printf ("Atmel: ");
++
++	if ((device_code & FLASH_TYPEMASK) == (ATM_ID_BV1614 & FLASH_TYPEMASK)) {
++
++		if ((add_device_code & FLASH_TYPEMASK) ==
++			(ATM_ID_BV1614A & FLASH_TYPEMASK)) {
++			info->flash_id |= ATM_ID_BV1614A & FLASH_TYPEMASK;
++			printf ("AT49BV1614A (16Mbit)\n");
++		} else {				/* AT49BV1614 Flash */
++			info->flash_id |= ATM_ID_BV1614 & FLASH_TYPEMASK;
++			printf ("AT49BV1614 (16Mbit)\n");
++		}
++
++	} else if ((device_code & FLASH_TYPEMASK) == (ATM_ID_BV6416 & FLASH_TYPEMASK)) {
++		info->flash_id |= ATM_ID_BV6416 & FLASH_TYPEMASK;
++		printf ("AT49BV6416 (64Mbit)\n");
++	}
++}
++
++ushort flash_number_sector(OrgDef *pOrgDef, unsigned int nb_blocks)
++{
++	int i, nb_sectors = 0;
++
++	for (i=0; i<nb_blocks; i++){
++		nb_sectors += pOrgDef[i].sector_number;
++	}
++
++	return nb_sectors;
++}
++
++void flash_unlock_sector(flash_info_t * info, unsigned int sector)
++{
++	volatile u16 *addr = (volatile u16 *) (info->start[sector]);
++
++	MEM_FLASH_ADDR1 = CMD_UNLOCK1;
++	*addr = CMD_SECTOR_UNLOCK;
++}
++
++
++ulong flash_init (void)
++{
++	int i, j, k;
++	unsigned int flash_nb_blocks, sector;
++	unsigned int start_address;
++	OrgDef *pOrgDef;
++
++	ulong size = 0;
++
++	for (i = 0; i < CFG_MAX_FLASH_BANKS; i++) {
++		ulong flashbase = 0;
++
++		flash_identification (&flash_info[i]);
++
++		if ((flash_info[i].flash_id & FLASH_TYPEMASK) ==
++			(ATM_ID_BV1614 & FLASH_TYPEMASK)) {
++
++			pOrgDef = OrgAT49BV16x4;
++			flash_nb_blocks = sizeof (OrgAT49BV16x4) / sizeof (OrgDef);
++		} else if ((flash_info[i].flash_id & FLASH_TYPEMASK) ==
++			(ATM_ID_BV1614A & FLASH_TYPEMASK)){	/* AT49BV1614A Flash */
++
++			pOrgDef = OrgAT49BV16x4A;
++			flash_nb_blocks = sizeof (OrgAT49BV16x4A) / sizeof (OrgDef);
++		} else if ((flash_info[i].flash_id & FLASH_TYPEMASK) ==
++			(ATM_ID_BV6416 & FLASH_TYPEMASK)){	/* AT49BV6416 Flash */
++
++			pOrgDef = OrgAT49BV6416;
++			flash_nb_blocks = sizeof (OrgAT49BV6416) / sizeof (OrgDef);
++		} else {
++			flash_nb_blocks = 0;
++			pOrgDef = OrgAT49BV16x4;
++		}
++
++		flash_info[i].sector_count = flash_number_sector(pOrgDef, flash_nb_blocks);
++		memset (flash_info[i].protect, 0, flash_info[i].sector_count);
++
++		if (i == 0)
++			flashbase = PHYS_FLASH_1;
++		else
++			panic ("configured too many flash banks!\n");
++
++		sector = 0;
++		start_address = flashbase;
++		flash_info[i].size = 0;
++
++		for (j = 0; j < flash_nb_blocks; j++) {
++			for (k = 0; k < pOrgDef[j].sector_number; k++) {
++				flash_info[i].start[sector++] = start_address;
++				start_address += pOrgDef[j].sector_size;
++				flash_info[i].size += pOrgDef[j].sector_size;
++			}
++		}
++
++		size += flash_info[i].size;
++
++		if ((flash_info[i].flash_id & FLASH_TYPEMASK) ==
++			(ATM_ID_BV6416 & FLASH_TYPEMASK)){	/* AT49BV6416 Flash */
++
++			/* Unlock all sectors at reset */
++			for (j=0; j<flash_info[i].sector_count; j++){
++				flash_unlock_sector(&flash_info[i], j);
++			}
++		}
++	}
++
++	/* Protect binary boot image */
++	flash_protect (FLAG_PROTECT_SET,
++		       CFG_FLASH_BASE,
++		       CFG_FLASH_BASE + CFG_BOOT_SIZE - 1, &flash_info[0]);
++
++	/* Protect environment variables */
++	flash_protect (FLAG_PROTECT_SET,
++		       CFG_ENV_ADDR,
++		       CFG_ENV_ADDR + CFG_ENV_SIZE - 1, &flash_info[0]);
++
++	/* Protect U-Boot gzipped image */
++	flash_protect (FLAG_PROTECT_SET,
++		       CFG_U_BOOT_BASE,
++		       CFG_U_BOOT_BASE + CFG_U_BOOT_SIZE - 1, &flash_info[0]);
++
++	return size;
++}
++
++/*-----------------------------------------------------------------------
++ */
++void flash_print_info (flash_info_t * info)
++{
++	int i;
++
++	switch (info->flash_id & FLASH_VENDMASK) {
++	case (ATM_MANUFACT & FLASH_VENDMASK):
++		printf ("Atmel: ");
++		break;
++	default:
++		printf ("Unknown Vendor ");
++		break;
++	}
++
++	switch (info->flash_id & FLASH_TYPEMASK) {
++	case (ATM_ID_BV1614 & FLASH_TYPEMASK):
++		printf ("AT49BV1614 (16Mbit)\n");
++		break;
++	case (ATM_ID_BV1614A & FLASH_TYPEMASK):
++		printf ("AT49BV1614A (16Mbit)\n");
++		break;
++	case (ATM_ID_BV6416 & FLASH_TYPEMASK):
++		printf ("AT49BV6416 (64Mbit)\n");
++		break;
++	default:
++		printf ("Unknown Chip Type\n");
++		return;
++	}
++
++	printf ("  Size: %ld MB in %d Sectors\n",
++		info->size >> 20, info->sector_count);
++
++	printf ("  Sector Start Addresses:");
++	for (i = 0; i < info->sector_count; i++) {
++		if ((i % 5) == 0) {
++			printf ("\n   ");
++		}
++		printf (" %08lX%s", info->start[i],
++			info->protect[i] ? " (RO)" : "     ");
++	}
++	printf ("\n");
++}
++
++/*-----------------------------------------------------------------------
++ */
++
++int flash_erase (flash_info_t * info, int s_first, int s_last)
++{
++	ulong result;
++	int iflag, cflag, prot, sect;
++	int rc = ERR_OK;
++	int chip1;
++
++	/* first look for protection bits */
++
++	if (info->flash_id == FLASH_UNKNOWN)
++		return ERR_UNKNOWN_FLASH_TYPE;
++
++	if ((s_first < 0) || (s_first > s_last)) {
++		return ERR_INVAL;
++	}
++
++	if ((info->flash_id & FLASH_VENDMASK) !=
++		(ATM_MANUFACT & FLASH_VENDMASK)) {
++		return ERR_UNKNOWN_FLASH_VENDOR;
++	}
++
++	prot = 0;
++	for (sect = s_first; sect <= s_last; ++sect) {
++		if (info->protect[sect]) {
++			prot++;
++		}
++	}
++	if (prot)
++		return ERR_PROTECTED;
++
++	/*
++	 * Disable interrupts which might cause a timeout
++	 * here. Remember that our exception vectors are
++	 * at address 0 in the flash, and we don't want a
++	 * (ticker) exception to happen while the flash
++	 * chip is in programming mode.
++	 */
++	cflag = icache_status ();
++	icache_disable ();
++	iflag = disable_interrupts ();
++
++	/* Start erase on unprotected sectors */
++	for (sect = s_first; sect <= s_last && !ctrlc (); sect++) {
++		printf ("Erasing sector %2d ... ", sect);
++
++		/* arm simple, non interrupt dependent timer */
++		reset_timer_masked ();
++
++		if (info->protect[sect] == 0) {	/* not protected */
++			volatile u16 *addr = (volatile u16 *) (info->start[sect]);
++
++			MEM_FLASH_ADDR1 = CMD_UNLOCK1;
++			MEM_FLASH_ADDR2 = CMD_UNLOCK2;
++			MEM_FLASH_ADDR1 = CMD_ERASE_SETUP;
++
++			MEM_FLASH_ADDR1 = CMD_UNLOCK1;
++			MEM_FLASH_ADDR2 = CMD_UNLOCK2;
++			*addr = CMD_ERASE_CONFIRM;
++
++			/* wait until flash is ready */
++			chip1 = 0;
++
++			do {
++				result = *addr;
++
++				/* check timeout */
++				if (get_timer_masked () > CFG_FLASH_ERASE_TOUT) {
++					MEM_FLASH_ADDR1 = CMD_READ_ARRAY;
++					chip1 = TMO;
++					break;
++				}
++
++				if (!chip1 && (result & 0xFFFF) & BIT_ERASE_DONE)
++					chip1 = READY;
++
++			} while (!chip1);
++
++			MEM_FLASH_ADDR1 = CMD_READ_ARRAY;
++
++			if (chip1 == ERR) {
++				rc = ERR_PROG_ERROR;
++				goto outahere;
++			}
++			if (chip1 == TMO) {
++				rc = ERR_TIMOUT;
++				goto outahere;
++			}
++
++			printf ("ok.\n");
++		} else {			/* it was protected */
++			printf ("protected!\n");
++		}
++	}
++
++	if (ctrlc ())
++		printf ("User Interrupt!\n");
++
++outahere:
++	/* allow flash to settle - wait 10 ms */
++	udelay_masked (10000);
++
++	if (iflag)
++		enable_interrupts ();
++
++	if (cflag)
++		icache_enable ();
++
++	return rc;
++}
++
++/*-----------------------------------------------------------------------
++ * Copy memory to flash
++ */
++
++volatile static int write_word (flash_info_t * info, ulong dest,
++								ulong data)
++{
++	volatile u16 *addr = (volatile u16 *) dest;
++	ulong result;
++	int rc = ERR_OK;
++	int cflag, iflag;
++	int chip1;
++
++	/*
++	 * Check if Flash is (sufficiently) erased
++	 */
++	result = *addr;
++	if ((result & data) != data)
++		return ERR_NOT_ERASED;
++
++
++	/*
++	 * Disable interrupts which might cause a timeout
++	 * here. Remember that our exception vectors are
++	 * at address 0 in the flash, and we don't want a
++	 * (ticker) exception to happen while the flash
++	 * chip is in programming mode.
++	 */
++	cflag = icache_status ();
++	icache_disable ();
++	iflag = disable_interrupts ();
++
++	MEM_FLASH_ADDR1 = CMD_UNLOCK1;
++	MEM_FLASH_ADDR2 = CMD_UNLOCK2;
++	MEM_FLASH_ADDR1 = CMD_PROGRAM;
++	*addr = data;
++
++	/* arm simple, non interrupt dependent timer */
++	reset_timer_masked ();
++
++	/* wait until flash is ready */
++	chip1 = 0;
++	do {
++		result = *addr;
++
++		/* check timeout */
++		if (get_timer_masked () > CFG_FLASH_ERASE_TOUT) {
++			chip1 = ERR | TMO;
++			break;
++		}
++		if (!chip1 && ((result & 0x80) == (data & 0x80)))
++			chip1 = READY;
++
++	} while (!chip1);
++
++	*addr = CMD_READ_ARRAY;
++
++	if (chip1 == ERR || *addr != data)
++		rc = ERR_PROG_ERROR;
++
++	if (iflag)
++		enable_interrupts ();
++
++	if (cflag)
++		icache_enable ();
++
++	return rc;
++}
++
++/*-----------------------------------------------------------------------
++ * Copy memory to flash.
++ */
++
++int write_buff (flash_info_t * info, uchar * src, ulong addr, ulong cnt)
++{
++	ulong wp, data;
++	int rc;
++
++	if (addr & 1) {
++		printf ("unaligned destination not supported\n");
++		return ERR_ALIGN;
++	};
++
++	if ((int) src & 1) {
++		printf ("unaligned source not supported\n");
++		return ERR_ALIGN;
++	};
++
++	wp = addr;
++
++	while (cnt >= 2) {
++		data = *((volatile u16 *) src);
++		if ((rc = write_word (info, wp, data)) != 0) {
++			return (rc);
++		}
++		src += 2;
++		wp += 2;
++		cnt -= 2;
++	}
++
++	if (cnt == 1) {
++		data = (*((volatile u8 *) src)) | (*((volatile u8 *) (wp + 1)) <<
++										   8);
++		if ((rc = write_word (info, wp, data)) != 0) {
++			return (rc);
++		}
++		src += 1;
++		wp += 1;
++		cnt -= 1;
++	};
++
++	return ERR_OK;
++}
+diff -Naur u-boot-1.1.4.org/board/vlink/Makefile u-boot-1.1.4.tmp/board/vlink/Makefile
+--- u-boot-1.1.4.org/board/vlink/Makefile	1970-01-01 01:00:00.000000000 +0100
++++ u-boot-1.1.4.tmp/board/vlink/Makefile	2006-06-05 02:48:33.000000000 +0200
+@@ -0,0 +1,46 @@
++#
++# (C) Copyright 2003
++# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
++#
++# See file CREDITS for list of people who contributed to this
++# project.
++#
++# 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.
++#
++# This program is distributed in the hope that 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 $(TOPDIR)/config.mk
++
++LIB	= lib$(BOARD).a
++
++OBJS	:= vlink.o at45.o flash.o
++
++$(LIB):	$(OBJS) $(SOBJS)
++	$(AR) crv $@ $(OBJS) $(SOBJS)
++
++clean:
++	rm -f $(SOBJS) $(OBJS)
++
++distclean:	clean
++	rm -f $(LIB) core *.bak .depend
++
++#########################################################################
++
++.depend:	Makefile $(SOBJS:.o=.S) $(OBJS:.o=.c)
++		$(CC) -M $(CPPFLAGS) $(SOBJS:.o=.S) $(OBJS:.o=.c) > $@
++
++-include .depend
++
++#########################################################################
+diff -Naur u-boot-1.1.4.org/board/vlink/u-boot.lds u-boot-1.1.4.tmp/board/vlink/u-boot.lds
+--- u-boot-1.1.4.org/board/vlink/u-boot.lds	1970-01-01 01:00:00.000000000 +0100
++++ u-boot-1.1.4.tmp/board/vlink/u-boot.lds	2005-12-16 17:39:27.000000000 +0100
+@@ -0,0 +1,57 @@
++/*
++ * (C) Copyright 2002
++ * Gary Jennejohn, DENX Software Engineering, <gj@denx.de>
++ *
++ * See file CREDITS for list of people who contributed to this
++ * project.
++ *
++ * 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.
++ *
++ * This program is distributed in the hope that 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
++ */
++
++OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
++/*OUTPUT_FORMAT("elf32-arm", "elf32-arm", "elf32-arm")*/
++OUTPUT_ARCH(arm)
++ENTRY(_start)
++SECTIONS
++{
++	. = 0x00000000;
++
++	. = ALIGN(4);
++	.text      :
++	{
++	  cpu/arm920t/start.o	(.text)
++	  *(.text)
++	}
++
++	. = ALIGN(4);
++	.rodata : { *(.rodata) }
++
++	. = ALIGN(4);
++	.data : { *(.data) }
++
++	. = ALIGN(4);
++	.got : { *(.got) }
++
++	. = .;
++	__u_boot_cmd_start = .;
++	.u_boot_cmd : { *(.u_boot_cmd) }
++	__u_boot_cmd_end = .;
++
++	. = ALIGN(4);
++	__bss_start = .;
++	.bss : { *(.bss) }
++	_end = .;
++}
+diff -Naur u-boot-1.1.4.org/board/vlink/vlink.c u-boot-1.1.4.tmp/board/vlink/vlink.c
+--- u-boot-1.1.4.org/board/vlink/vlink.c	1970-01-01 01:00:00.000000000 +0100
++++ u-boot-1.1.4.tmp/board/vlink/vlink.c	2006-06-05 03:10:22.000000000 +0200
+@@ -0,0 +1,89 @@
++/*
++ * (C) Copyright 2002
++ * Sysgo Real-Time Solutions, GmbH <www.elinos.com>
++ * Marius Groeger <mgroeger@sysgo.de>
++ *
++ * See file CREDITS for list of people who contributed to this
++ * project.
++ *
++ * 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.
++ *
++ * This program is distributed in the hope that 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 <common.h>
++#include <asm/arch/AT91RM9200.h>
++#include <at91rm9200_net.h>
++#include <dm9161.h>
++#include <asm/mach-types.h>
++
++/* ------------------------------------------------------------------------- */
++/*
++ * Miscelaneous platform dependent initialisations
++ */
++
++int board_init (void)
++{
++	DECLARE_GLOBAL_DATA_PTR;
++
++	/* Enable Ctrlc */
++	console_init_f ();
++
++	/* Correct IRDA resistor problem */
++	/* Set PA23_TXD in Output */
++	(AT91PS_PIO) AT91C_BASE_PIOA->PIO_OER = AT91C_PA23_TXD2;
++
++	/* memory and cpu-speed are setup before relocation */
++	/* so we do _nothing_ here */
++
++	/* arch number of Versalink-Board */
++	gd->bd->bi_arch_number = MACH_TYPE_VLINK;
++	/* adress of boot parameters */
++	gd->bd->bi_boot_params = PHYS_SDRAM + 0x100;
++
++	return 0;
++}
++
++int dram_init (void)
++{
++	DECLARE_GLOBAL_DATA_PTR;
++
++	gd->bd->bi_dram[0].start = PHYS_SDRAM;
++	gd->bd->bi_dram[0].size = PHYS_SDRAM_SIZE;
++	return 0;
++}
++
++#ifdef CONFIG_DRIVER_ETHER
++#if (CONFIG_COMMANDS & CFG_CMD_NET)
++
++/*
++ * Name:
++ *	at91rm9200_GetPhyInterface
++ * Description:
++ *	Initialise the interface functions to the PHY
++ * Arguments:
++ *	None
++ * Return value:
++ *	None
++ */
++void at91rm9200_GetPhyInterface(AT91PS_PhyOps p_phyops)
++{
++	p_phyops->Init = dm9161_InitPhy;
++	p_phyops->IsPhyConnected = dm9161_IsPhyConnected;
++	p_phyops->GetLinkSpeed = dm9161_GetLinkSpeed;
++	p_phyops->AutoNegotiate = dm9161_AutoNegotiate;
++}
++
++#endif	/* CONFIG_COMMANDS & CFG_CMD_NET */
++#endif	/* CONFIG_DRIVER_ETHER */
+diff -Naur u-boot-1.1.4.org/include/asm-arm/mach-types.h u-boot-1.1.4.tmp/include/asm-arm/mach-types.h
+--- u-boot-1.1.4.org/include/asm-arm/mach-types.h	2005-12-16 17:39:27.000000000 +0100
++++ u-boot-1.1.4.tmp/include/asm-arm/mach-types.h	2006-06-05 01:29:25.000000000 +0200
+@@ -424,7 +424,7 @@
+ #define MACH_TYPE_MPORT3S              411
+ #define MACH_TYPE_RA_ALPHA             412
+ #define MACH_TYPE_XCEP                 413
+-#define MACH_TYPE_ARCOM_MERCURY        414
++#define MACH_TYPE_ARCOM_VULCAN         414
+ #define MACH_TYPE_STARGATE             415
+ #define MACH_TYPE_ARMADILLOJ           416
+ #define MACH_TYPE_ELROY_JACK           417
+@@ -457,7 +457,7 @@
+ #define MACH_TYPE_XM250                444
+ #define MACH_TYPE_T6TC1XB              445
+ #define MACH_TYPE_ESS710               446
+-#define MACH_TYPE_MX3ADS               447
++#define MACH_TYPE_MX31ADS              447
+ #define MACH_TYPE_HIMALAYA             448
+ #define MACH_TYPE_BOLFENK              449
+ #define MACH_TYPE_AT91RM9200KR         450
+@@ -563,8 +563,8 @@
+ #define MACH_TYPE_ENS_CMU              550
+ #define MACH_TYPE_MM6_SDB              551
+ #define MACH_TYPE_SATURN               552
+-#define MACH_TYPE_ARGONPLUSEVB         553
+-#define MACH_TYPE_SCMA11EVB            554
++#define MACH_TYPE_I30030EVB            553
++#define MACH_TYPE_MXC27530EVB          554
+ #define MACH_TYPE_SMDK2800             555
+ #define MACH_TYPE_MTWILSON             556
+ #define MACH_TYPE_ZITI                 557
+@@ -644,7 +644,7 @@
+ #define MACH_TYPE_MX2JAZZ              631
+ #define MACH_TYPE_MULTIIO              632
+ #define MACH_TYPE_HRDISPLAY            633
+-#define MACH_TYPE_SCMA11BB             634
++#define MACH_TYPE_MXC27530ADS          634
+ #define MACH_TYPE_TRIZEPS3             635
+ #define MACH_TYPE_ZEFEERDZA            636
+ #define MACH_TYPE_ZEFEERDZB            637
+@@ -718,7 +718,7 @@
+ #define MACH_TYPE_GEM                  707
+ #define MACH_TYPE_I858                 708
+ #define MACH_TYPE_HX2750               709
+-#define MACH_TYPE_ZEUSEVB              710
++#define MACH_TYPE_MXC91131EVB          710
+ #define MACH_TYPE_P700                 711
+ #define MACH_TYPE_CPE                  712
+ #define MACH_TYPE_SPITZ                713
+@@ -736,6 +736,331 @@
+ #define MACH_TYPE_LN2410SBC            725
+ #define MACH_TYPE_CB3RUFC              726
+ #define MACH_TYPE_MP2USB               727
++#define MACH_TYPE_NTNP425C             728
++#define MACH_TYPE_COLIBRI              729
++#define MACH_TYPE_PCM7220              730
++#define MACH_TYPE_GATEWAY7001          731
++#define MACH_TYPE_PCM027               732
++#define MACH_TYPE_CMPXA                733
++#define MACH_TYPE_ANUBIS               734
++#define MACH_TYPE_ITE8152              735
++#define MACH_TYPE_LPC3XXX              736
++#define MACH_TYPE_PUPPETEER            737
++#define MACH_TYPE_MACH_VADATECH        738
++#define MACH_TYPE_E570                 739
++#define MACH_TYPE_X50                  740
++#define MACH_TYPE_RECON                741
++#define MACH_TYPE_XBOARDGP8            742
++#define MACH_TYPE_FPIC2                743
++#define MACH_TYPE_AKITA                744
++#define MACH_TYPE_A81                  745
++#define MACH_TYPE_SVM_SC25X            746
++#define MACH_TYPE_VADATECH020          747
++#define MACH_TYPE_TLI                  748
++#define MACH_TYPE_EDB9315LC            749
++#define MACH_TYPE_PASSEC               750
++#define MACH_TYPE_DS_TIGER             751
++#define MACH_TYPE_E310                 752
++#define MACH_TYPE_E330                 753
++#define MACH_TYPE_RT3000               754
++#define MACH_TYPE_NOKIA770             755
++#define MACH_TYPE_PNX0106              756
++#define MACH_TYPE_HX21XX               757
++#define MACH_TYPE_FARADAY              758
++#define MACH_TYPE_SBC9312              759
++#define MACH_TYPE_BATMAN               760
++#define MACH_TYPE_JPD201               761
++#define MACH_TYPE_MIPSA                762
++#define MACH_TYPE_KACOM                763
++#define MACH_TYPE_SWARCOCPU            764
++#define MACH_TYPE_SWARCODSL            765
++#define MACH_TYPE_BLUEANGEL            766
++#define MACH_TYPE_HAIRYGRAMA           767
++#define MACH_TYPE_BANFF                768
++#define MACH_TYPE_CARMEVA              769
++#define MACH_TYPE_SAM255               770
++#define MACH_TYPE_PPM10                771
++#define MACH_TYPE_EDB9315A             772
++#define MACH_TYPE_SUNSET               773
++#define MACH_TYPE_STARGATE2            774
++#define MACH_TYPE_INTELMOTE2           775
++#define MACH_TYPE_TRIZEPS4             776
++#define MACH_TYPE_MAINSTONE2           777
++#define MACH_TYPE_EZ_IXP42X            778
++#define MACH_TYPE_TAPWAVE_ZODIAC       779
++#define MACH_TYPE_UNIVERSALMETER       780
++#define MACH_TYPE_HICOARM9             781
++#define MACH_TYPE_PNX4008              782
++#define MACH_TYPE_KWS6000              783
++#define MACH_TYPE_PORTUX920T           784
++#define MACH_TYPE_EZ_X5                785
++#define MACH_TYPE_OMAP_RUDOLPH         786
++#define MACH_TYPE_CPUAT91              787
++#define MACH_TYPE_REA9200              788
++#define MACH_TYPE_ACTS_PUNE_SA1110     789
++#define MACH_TYPE_IXP425               790
++#define MACH_TYPE_I30030ADS            791
++#define MACH_TYPE_PERCH                792
++#define MACH_TYPE_EIS05R1              793
++#define MACH_TYPE_PEPPERPAD            794
++#define MACH_TYPE_SB3010               795
++#define MACH_TYPE_RM9200               796
++#define MACH_TYPE_DMA03                797
++#define MACH_TYPE_ROAD_S101            798
++#define MACH_TYPE_IQ_NEXTGEN_A         799
++#define MACH_TYPE_IQ_NEXTGEN_B         800
++#define MACH_TYPE_IQ_NEXTGEN_C         801
++#define MACH_TYPE_IQ_NEXTGEN_D         802
++#define MACH_TYPE_IQ_NEXTGEN_E         803
++#define MACH_TYPE_MALLOW_AT91          804
++#define MACH_TYPE_CYBERTRACKER_I       805
++#define MACH_TYPE_GESBC931X            806
++#define MACH_TYPE_CENTIPAD             807
++#define MACH_TYPE_ARMSOC               808
++#define MACH_TYPE_SE4200               809
++#define MACH_TYPE_EMS197A              810
++#define MACH_TYPE_MICRO9               811
++#define MACH_TYPE_MICRO9L              812
++#define MACH_TYPE_UC5471DSP            813
++#define MACH_TYPE_SJ5471ENG            814
++#define MACH_TYPE_CMPXA26X             815
++#define MACH_TYPE_NC                   816
++#define MACH_TYPE_OMAP_PALMTE          817
++#define MACH_TYPE_AJAX52X              818
++#define MACH_TYPE_SIRIUSTAR            819
++#define MACH_TYPE_IODATA_HDLG          820
++#define MACH_TYPE_AT91RM9200UTL        821
++#define MACH_TYPE_BIOSAFE              822
++#define MACH_TYPE_MP1000               823
++#define MACH_TYPE_PARSY                824
++#define MACH_TYPE_CCXP                 825
++#define MACH_TYPE_OMAP_GSAMPLE         826
++#define MACH_TYPE_REALVIEW_EB          827
++#define MACH_TYPE_SAMOA                828
++#define MACH_TYPE_T3XSCALE             829
++#define MACH_TYPE_I878                 830
++#define MACH_TYPE_BORZOI               831
++#define MACH_TYPE_GECKO                832
++#define MACH_TYPE_DS101                833
++#define MACH_TYPE_OMAP_PALMTT2         834
++#define MACH_TYPE_XSCALE_PALMLD        835
++#define MACH_TYPE_CC9C                 836
++#define MACH_TYPE_SBC1670              837
++#define MACH_TYPE_IXDP28X5             838
++#define MACH_TYPE_OMAP_PALMTT          839
++#define MACH_TYPE_ML696K               840
++#define MACH_TYPE_ARCOM_ZEUS           841
++#define MACH_TYPE_OSIRIS               842
++#define MACH_TYPE_MAESTRO              843
++#define MACH_TYPE_TUNGE2               844
++#define MACH_TYPE_IXBBM                845
++#define MACH_TYPE_MX27                 846
++#define MACH_TYPE_AX8004               847
++#define MACH_TYPE_AT91SAM9261EK        848
++#define MACH_TYPE_LOFT                 849
++#define MACH_TYPE_MAGPIE               850
++#define MACH_TYPE_MX21                 851
++#define MACH_TYPE_MB87M3400            852
++#define MACH_TYPE_MGUARD_DELTA         853
++#define MACH_TYPE_DAVINCI_DVDP         854
++#define MACH_TYPE_HTCUNIVERSAL         855
++#define MACH_TYPE_TPAD                 856
++#define MACH_TYPE_ROVERP3              857
++#define MACH_TYPE_JORNADA928           858
++#define MACH_TYPE_MV88FXX81            859
++#define MACH_TYPE_STMP36XX             860
++#define MACH_TYPE_SXNI79524            861
++#define MACH_TYPE_AMS_DELTA            862
++#define MACH_TYPE_URANIUM              863
++#define MACH_TYPE_UCON                 864
++#define MACH_TYPE_NAS100D              865
++#define MACH_TYPE_L083_1000            866
++#define MACH_TYPE_EZX                  867
++#define MACH_TYPE_PNX5220              868
++#define MACH_TYPE_BUTTE                869
++#define MACH_TYPE_SRM2                 870
++#define MACH_TYPE_DSBR                 871
++#define MACH_TYPE_CRYSTALBALL          872
++#define MACH_TYPE_TINYPXA27X           873
++#define MACH_TYPE_HERBIE               874
++#define MACH_TYPE_MAGICIAN             875
++#define MACH_TYPE_CM4002               876
++#define MACH_TYPE_B4                   877
++#define MACH_TYPE_MAUI                 878
++#define MACH_TYPE_CYBERTRACKER_G       879
++#define MACH_TYPE_NXDKN                880
++#define MACH_TYPE_MIO8390              881
++#define MACH_TYPE_OMI_BOARD            882
++#define MACH_TYPE_MX21CIV              883
++#define MACH_TYPE_MAHI_CDAC            884
++#define MACH_TYPE_XSCALE_PALMTX        885
++#define MACH_TYPE_S3C2413              887
++#define MACH_TYPE_SAMSYS_EP0           888
++#define MACH_TYPE_WG302V1              889
++#define MACH_TYPE_WG302V2              890
++#define MACH_TYPE_EB42X                891
++#define MACH_TYPE_IQ331ES              892
++#define MACH_TYPE_COSYDSP              893
++#define MACH_TYPE_UPLAT7D              894
++#define MACH_TYPE_PTDAVINCI            895
++#define MACH_TYPE_MBUS                 896
++#define MACH_TYPE_NADIA2VB             897
++#define MACH_TYPE_R1000                898
++#define MACH_TYPE_HW90250              899
++#define MACH_TYPE_OMAP_2430SDP         900
++#define MACH_TYPE_DAVINCI_EVM          901
++#define MACH_TYPE_OMAP_TORNADO         902
++#define MACH_TYPE_OLOCREEK             903
++#define MACH_TYPE_PALMZ72              904
++#define MACH_TYPE_NXDB500              905
++#define MACH_TYPE_APF9328              906
++#define MACH_TYPE_OMAP_WIPOQ           907
++#define MACH_TYPE_OMAP_TWIP            908
++#define MACH_TYPE_XSCALE_PALMTREO650   909
++#define MACH_TYPE_ACUMEN               910
++#define MACH_TYPE_XP100                911
++#define MACH_TYPE_FS2410               912
++#define MACH_TYPE_PXA270_CERF          913
++#define MACH_TYPE_SQ2FTLPALM           914
++#define MACH_TYPE_BSEMSERVER           915
++#define MACH_TYPE_NETCLIENT            916
++#define MACH_TYPE_XSCALE_PALMTT5       917
++#define MACH_TYPE_OMAP_PALMTC          918
++#define MACH_TYPE_OMAP_APOLLON         919
++#define MACH_TYPE_MXC30030EVB          920
++#define MACH_TYPE_REA_2D               921
++#define MACH_TYPE_TI3E524              922
++#define MACH_TYPE_ATEB9200             923
++#define MACH_TYPE_AUCKLAND             924
++#define MACH_TYPE_AK3320M              925
++#define MACH_TYPE_DURAMAX              926
++#define MACH_TYPE_N35                  927
++#define MACH_TYPE_PRONGHORN            928
++#define MACH_TYPE_FUNDY                929
++#define MACH_TYPE_LOGICPD_PXA270       930
++#define MACH_TYPE_CPU777               931
++#define MACH_TYPE_SIMICON9201          932
++#define MACH_TYPE_LEAP2_HPM            933
++#define MACH_TYPE_CM922TXA10           934
++#define MACH_TYPE_PXA                  935
++#define MACH_TYPE_SANDGATE2            936
++#define MACH_TYPE_SANDGATE2G           937
++#define MACH_TYPE_SANDGATE2P           938
++#define MACH_TYPE_FRED_JACK            939
++#define MACH_TYPE_TTG_COLOR1           940
++#define MACH_TYPE_NXEB500HMI           941
++#define MACH_TYPE_NETDCU8              942
++#define MACH_TYPE_ML675050_CPU_BOA     943
++#define MACH_TYPE_NG_FVX538            944
++#define MACH_TYPE_NG_FVS338            945
++#define MACH_TYPE_PNX4103              946
++#define MACH_TYPE_HESDB                947
++#define MACH_TYPE_XSILO                948
++#define MACH_TYPE_ESPRESSO             949
++#define MACH_TYPE_EMLC                 950
++#define MACH_TYPE_SISTERON             951
++#define MACH_TYPE_RX1950               952
++#define MACH_TYPE_TSC_VENUS            953
++#define MACH_TYPE_DS101J               954
++#define MACH_TYPE_MXC30030ADS          955
++#define MACH_TYPE_FUJITSU_WIMAXSOC     956
++#define MACH_TYPE_DUALPCMODEM          957
++#define MACH_TYPE_GESBC9312            958
++#define MACH_TYPE_HTCAPACHE            959
++#define MACH_TYPE_IXDP435              960
++#define MACH_TYPE_CATPROVT100          961
++#define MACH_TYPE_PICOTUX1XX           962
++#define MACH_TYPE_PICOTUX2XX           963
++#define MACH_TYPE_DSMG600              964
++#define MACH_TYPE_EMPC2                965
++#define MACH_TYPE_VENTURA              966
++#define MACH_TYPE_PHIDGET_SBC          967
++#define MACH_TYPE_IJ3K                 968
++#define MACH_TYPE_PISGAH               969
++#define MACH_TYPE_OMAP_FSAMPLE         970
++#define MACH_TYPE_SG720                971
++#define MACH_TYPE_REDFOX               972
++#define MACH_TYPE_MYSH_EP9315_1        973
++#define MACH_TYPE_TPF106               974
++#define MACH_TYPE_AT91RM9200KG         975
++#define MACH_TYPE_SLEDB                976
++#define MACH_TYPE_ONTRACK              977
++#define MACH_TYPE_PM1200               978
++#define MACH_TYPE_ESS24XXX             979
++#define MACH_TYPE_COREMP7              980
++#define MACH_TYPE_NEXCODER_6446        981
++#define MACH_TYPE_STVC8380             982
++#define MACH_TYPE_TEKLYNX              983
++#define MACH_TYPE_CARBONADO            984
++#define MACH_TYPE_SYSMOS_MP730         985
++#define MACH_TYPE_SNAPPER_CL15         986
++#define MACH_TYPE_PGIGIM               987
++#define MACH_TYPE_PTX9160P2            988
++#define MACH_TYPE_DCORE1               989
++#define MACH_TYPE_VICTORPXA            990
++#define MACH_TYPE_MX2DTB               991
++#define MACH_TYPE_PXA_IREX_ER0100      992
++#define MACH_TYPE_OMAP_PALMZ71         993
++#define MACH_TYPE_BARTEC_DEG           994
++#define MACH_TYPE_HW50251              995
++#define MACH_TYPE_IBOX                 996
++#define MACH_TYPE_ATLASLH7A404         997
++#define MACH_TYPE_PT2026               998
++#define MACH_TYPE_HTCALPINE            999
++#define MACH_TYPE_BARTEC_VTU           1000
++#define MACH_TYPE_VCOREII              1001
++#define MACH_TYPE_PDNB3                1002
++#define MACH_TYPE_HTCBEETLES           1003
++#define MACH_TYPE_S3C6400              1004
++#define MACH_TYPE_S3C2443              1005
++#define MACH_TYPE_OMAP_LDK             1006
++#define MACH_TYPE_SMDK2460             1007
++#define MACH_TYPE_SMDK2440             1008
++#define MACH_TYPE_SMDK2412             1009
++#define MACH_TYPE_WEBBOX               1010
++#define MACH_TYPE_CWWNDP               1011
++#define MACH_TYPE_DRAGON               1012
++#define MACH_TYPE_OPENDO_CPU_BOARD     1013
++#define MACH_TYPE_CCM2200              1014
++#define MACH_TYPE_ETWARM               1015
++#define MACH_TYPE_M93030               1016
++#define MACH_TYPE_CC7U                 1017
++#define MACH_TYPE_MTT_RANGER           1018
++#define MACH_TYPE_NEXUS                1019
++#define MACH_TYPE_DESMAN               1020
++#define MACH_TYPE_BKDE303              1021
++#define MACH_TYPE_SMDK2413             1022
++#define MACH_TYPE_AML_M7200            1023
++#define MACH_TYPE_AML_M5900            1024
++#define MACH_TYPE_SG640                1025
++#define MACH_TYPE_EDG79524             1026
++#define MACH_TYPE_AI2410               1027
++#define MACH_TYPE_IXP465               1028
++#define MACH_TYPE_BALLOON3             1029
++#define MACH_TYPE_HEINS                1030
++#define MACH_TYPE_MPLUSEVA             1031
++#define MACH_TYPE_RT042                1032
++#define MACH_TYPE_CWIEM                1033
++#define MACH_TYPE_CM_X270              1034
++#define MACH_TYPE_CM_X255              1035
++#define MACH_TYPE_ESH_AT91             1036
++#define MACH_TYPE_SANDGATE3            1037
++#define MACH_TYPE_PRIMO                1038
++#define MACH_TYPE_GEMSTONE             1039
++#define MACH_TYPE_PRONGHORNMETRO       1040
++#define MACH_TYPE_SIDEWINDER           1041
++#define MACH_TYPE_PICOMOD1             1042
++#define MACH_TYPE_SG590                1043
++#define MACH_TYPE_AKAI9307             1044
++#define MACH_TYPE_FONTAINE             1045
++#define MACH_TYPE_WOMBAT               1046
++#define MACH_TYPE_ACQ300               1047
++#define MACH_TYPE_MOD_270              1048
++#define MACH_TYPE_VC0820               1049
++#define MACH_TYPE_ANI_AIM              1050
++#define MACH_TYPE_JELLYFISH            1051
++#define MACH_TYPE_AMANITA              1052
++#define MACH_TYPE_VLINK                1053
+ 
+ #ifdef CONFIG_ARCH_EBSA110
+ # ifdef machine_arch_type
+@@ -3540,9 +3865,9 @@
+ # else
+ #  define machine_arch_type	MACH_TYPE_RAMSES
+ # endif
+-# define machine_is_ramses()	(machine_arch_type == MACH_TYPE_RAMSES)
++# define machine_is_mnci()	(machine_arch_type == MACH_TYPE_RAMSES)
+ #else
+-# define machine_is_ramses()	(0)
++# define machine_is_mnci()	(0)
+ #endif
+ 
+ #ifdef CONFIG_ARCH_S28X
+@@ -4500,9 +4825,9 @@
+ # else
+ #  define machine_arch_type	MACH_TYPE_M825XX
+ # endif
+-# define machine_is_m825xx()	(machine_arch_type == MACH_TYPE_M825XX)
++# define machine_is_comcerto()	(machine_arch_type == MACH_TYPE_M825XX)
+ #else
+-# define machine_is_m825xx()	(0)
++# define machine_is_comcerto()	(0)
+ #endif
+ 
+ #ifdef CONFIG_SA1100_M7100
+@@ -5657,16 +5982,16 @@
+ # define machine_is_xcep()	(0)
+ #endif
+ 
+-#ifdef CONFIG_MACH_ARCOM_MERCURY
++#ifdef CONFIG_MACH_ARCOM_VULCAN
+ # ifdef machine_arch_type
+ #  undef machine_arch_type
+ #  define machine_arch_type	__machine_arch_type
+ # else
+-#  define machine_arch_type	MACH_TYPE_ARCOM_MERCURY
++#  define machine_arch_type	MACH_TYPE_ARCOM_VULCAN
+ # endif
+-# define machine_is_arcom_mercury()	(machine_arch_type == MACH_TYPE_ARCOM_MERCURY)
++# define machine_is_arcom_vulcan()	(machine_arch_type == MACH_TYPE_ARCOM_VULCAN)
+ #else
+-# define machine_is_arcom_mercury()	(0)
++# define machine_is_arcom_vulcan()	(0)
+ #endif
+ 
+ #ifdef CONFIG_MACH_STARGATE
+@@ -6053,16 +6378,16 @@
+ # define machine_is_ess710()	(0)
+ #endif
+ 
+-#ifdef CONFIG_MACH_MX3ADS
++#ifdef CONFIG_MACH_MX31ADS
+ # ifdef machine_arch_type
+ #  undef machine_arch_type
+ #  define machine_arch_type	__machine_arch_type
+ # else
+-#  define machine_arch_type	MACH_TYPE_MX3ADS
++#  define machine_arch_type	MACH_TYPE_MX31ADS
+ # endif
+-# define machine_is_mx3ads()	(machine_arch_type == MACH_TYPE_MX3ADS)
++# define machine_is_mx31ads()	(machine_arch_type == MACH_TYPE_MX31ADS)
+ #else
+-# define machine_is_mx3ads()	(0)
++# define machine_is_mx31ads()	(0)
+ #endif
+ 
+ #ifdef CONFIG_MACH_HIMALAYA
+@@ -7325,28 +7650,28 @@
+ # define machine_is_saturn()	(0)
+ #endif
+ 
+-#ifdef CONFIG_MACH_ARGONPLUSEVB
++#ifdef CONFIG_MACH_I30030EVB
+ # ifdef machine_arch_type
+ #  undef machine_arch_type
+ #  define machine_arch_type	__machine_arch_type
+ # else
+-#  define machine_arch_type	MACH_TYPE_ARGONPLUSEVB
++#  define machine_arch_type	MACH_TYPE_I30030EVB
+ # endif
+-# define machine_is_argonplusevb()	(machine_arch_type == MACH_TYPE_ARGONPLUSEVB)
++# define machine_is_i30030evb()	(machine_arch_type == MACH_TYPE_I30030EVB)
+ #else
+-# define machine_is_argonplusevb()	(0)
++# define machine_is_i30030evb()	(0)
+ #endif
+ 
+-#ifdef CONFIG_MACH_SCMA11EVB
++#ifdef CONFIG_MACH_MXC27530EVB
+ # ifdef machine_arch_type
+ #  undef machine_arch_type
+ #  define machine_arch_type	__machine_arch_type
+ # else
+-#  define machine_arch_type	MACH_TYPE_SCMA11EVB
++#  define machine_arch_type	MACH_TYPE_MXC27530EVB
+ # endif
+-# define machine_is_scma11evb()	(machine_arch_type == MACH_TYPE_SCMA11EVB)
++# define machine_is_mxc27530evb()	(machine_arch_type == MACH_TYPE_MXC27530EVB)
+ #else
+-# define machine_is_scma11evb()	(0)
++# define machine_is_mxc27530evb()	(0)
+ #endif
+ 
+ #ifdef CONFIG_MACH_SMDK2800
+@@ -8297,16 +8622,16 @@
+ # define machine_is_hrdisplay()	(0)
+ #endif
+ 
+-#ifdef CONFIG_MACH_SCMA11BB
++#ifdef CONFIG_MACH_MXC27530ADS
+ # ifdef machine_arch_type
+ #  undef machine_arch_type
+ #  define machine_arch_type	__machine_arch_type
+ # else
+-#  define machine_arch_type	MACH_TYPE_SCMA11BB
++#  define machine_arch_type	MACH_TYPE_MXC27530ADS
+ # endif
+-# define machine_is_scma11bb()	(machine_arch_type == MACH_TYPE_SCMA11BB)
++# define machine_is_mxc27530ads()	(machine_arch_type == MACH_TYPE_MXC27530ADS)
+ #else
+-# define machine_is_scma11bb()	(0)
++# define machine_is_mxc27530ads()	(0)
+ #endif
+ 
+ #ifdef CONFIG_MACH_TRIZEPS3
+@@ -9185,16 +9510,16 @@
+ # define machine_is_hx2750()	(0)
+ #endif
+ 
+-#ifdef CONFIG_MACH_ZEUSEVB
++#ifdef CONFIG_MACH_MXC91131EVB
+ # ifdef machine_arch_type
+ #  undef machine_arch_type
+ #  define machine_arch_type	__machine_arch_type
+ # else
+-#  define machine_arch_type	MACH_TYPE_ZEUSEVB
++#  define machine_arch_type	MACH_TYPE_MXC91131EVB
+ # endif
+-# define machine_is_zeusevb()	(machine_arch_type == MACH_TYPE_ZEUSEVB)
++# define machine_is_mxc91131evb()	(machine_arch_type == MACH_TYPE_MXC91131EVB)
+ #else
+-# define machine_is_zeusevb()	(0)
++# define machine_is_mxc91131evb()	(0)
+ #endif
+ 
+ #ifdef CONFIG_MACH_P700
+@@ -9401,6 +9726,3906 @@
+ # define machine_is_mp2usb()	(0)
+ #endif
+ 
++#ifdef CONFIG_MACH_NTNP425C
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_NTNP425C
++# endif
++# define machine_is_ntnp425c()	(machine_arch_type == MACH_TYPE_NTNP425C)
++#else
++# define machine_is_ntnp425c()	(0)
++#endif
++
++#ifdef CONFIG_MACH_COLIBRI
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_COLIBRI
++# endif
++# define machine_is_colibri()	(machine_arch_type == MACH_TYPE_COLIBRI)
++#else
++# define machine_is_colibri()	(0)
++#endif
++
++#ifdef CONFIG_MACH_PCM7220
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_PCM7220
++# endif
++# define machine_is_pcm7220()	(machine_arch_type == MACH_TYPE_PCM7220)
++#else
++# define machine_is_pcm7220()	(0)
++#endif
++
++#ifdef CONFIG_MACH_GATEWAY7001
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_GATEWAY7001
++# endif
++# define machine_is_gateway7001()	(machine_arch_type == MACH_TYPE_GATEWAY7001)
++#else
++# define machine_is_gateway7001()	(0)
++#endif
++
++#ifdef CONFIG_MACH_PCM027
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_PCM027
++# endif
++# define machine_is_pcm027()	(machine_arch_type == MACH_TYPE_PCM027)
++#else
++# define machine_is_pcm027()	(0)
++#endif
++
++#ifdef CONFIG_MACH_CMPXA
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_CMPXA
++# endif
++# define machine_is_cmpxa()	(machine_arch_type == MACH_TYPE_CMPXA)
++#else
++# define machine_is_cmpxa()	(0)
++#endif
++
++#ifdef CONFIG_MACH_ANUBIS
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_ANUBIS
++# endif
++# define machine_is_anubis()	(machine_arch_type == MACH_TYPE_ANUBIS)
++#else
++# define machine_is_anubis()	(0)
++#endif
++
++#ifdef CONFIG_MACH_ITE8152
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_ITE8152
++# endif
++# define machine_is_ite8152()	(machine_arch_type == MACH_TYPE_ITE8152)
++#else
++# define machine_is_ite8152()	(0)
++#endif
++
++#ifdef CONFIG_MACH_LPC3XXX
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_LPC3XXX
++# endif
++# define machine_is_lpc3xxx()	(machine_arch_type == MACH_TYPE_LPC3XXX)
++#else
++# define machine_is_lpc3xxx()	(0)
++#endif
++
++#ifdef CONFIG_MACH_PUPPETEER
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_PUPPETEER
++# endif
++# define machine_is_puppeteer()	(machine_arch_type == MACH_TYPE_PUPPETEER)
++#else
++# define machine_is_puppeteer()	(0)
++#endif
++
++#ifdef CONFIG_MACH_MACH_VADATECH
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_MACH_VADATECH
++# endif
++# define machine_is_vt001()	(machine_arch_type == MACH_TYPE_MACH_VADATECH)
++#else
++# define machine_is_vt001()	(0)
++#endif
++
++#ifdef CONFIG_MACH_E570
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_E570
++# endif
++# define machine_is_e570()	(machine_arch_type == MACH_TYPE_E570)
++#else
++# define machine_is_e570()	(0)
++#endif
++
++#ifdef CONFIG_MACH_X50
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_X50
++# endif
++# define machine_is_x50()	(machine_arch_type == MACH_TYPE_X50)
++#else
++# define machine_is_x50()	(0)
++#endif
++
++#ifdef CONFIG_MACH_RECON
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_RECON
++# endif
++# define machine_is_recon()	(machine_arch_type == MACH_TYPE_RECON)
++#else
++# define machine_is_recon()	(0)
++#endif
++
++#ifdef CONFIG_MACH_XBOARDGP8
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_XBOARDGP8
++# endif
++# define machine_is_xboardgp8()	(machine_arch_type == MACH_TYPE_XBOARDGP8)
++#else
++# define machine_is_xboardgp8()	(0)
++#endif
++
++#ifdef CONFIG_MACH_FPIC2
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_FPIC2
++# endif
++# define machine_is_fpic2()	(machine_arch_type == MACH_TYPE_FPIC2)
++#else
++# define machine_is_fpic2()	(0)
++#endif
++
++#ifdef CONFIG_MACH_AKITA
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_AKITA
++# endif
++# define machine_is_akita()	(machine_arch_type == MACH_TYPE_AKITA)
++#else
++# define machine_is_akita()	(0)
++#endif
++
++#ifdef CONFIG_MACH_A81
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_A81
++# endif
++# define machine_is_a81()	(machine_arch_type == MACH_TYPE_A81)
++#else
++# define machine_is_a81()	(0)
++#endif
++
++#ifdef CONFIG_MACH_SVM_SC25X
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_SVM_SC25X
++# endif
++# define machine_is_svm_sc25x()	(machine_arch_type == MACH_TYPE_SVM_SC25X)
++#else
++# define machine_is_svm_sc25x()	(0)
++#endif
++
++#ifdef CONFIG_MACH_VADATECH020
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_VADATECH020
++# endif
++# define machine_is_vt020()	(machine_arch_type == MACH_TYPE_VADATECH020)
++#else
++# define machine_is_vt020()	(0)
++#endif
++
++#ifdef CONFIG_MACH_TLI
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_TLI
++# endif
++# define machine_is_tli()	(machine_arch_type == MACH_TYPE_TLI)
++#else
++# define machine_is_tli()	(0)
++#endif
++
++#ifdef CONFIG_MACH_EDB9315LC
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_EDB9315LC
++# endif
++# define machine_is_edb9315lc()	(machine_arch_type == MACH_TYPE_EDB9315LC)
++#else
++# define machine_is_edb9315lc()	(0)
++#endif
++
++#ifdef CONFIG_MACH_PASSEC
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_PASSEC
++# endif
++# define machine_is_passec()	(machine_arch_type == MACH_TYPE_PASSEC)
++#else
++# define machine_is_passec()	(0)
++#endif
++
++#ifdef CONFIG_MACH_DS_TIGER
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_DS_TIGER
++# endif
++# define machine_is_ds_tiger()	(machine_arch_type == MACH_TYPE_DS_TIGER)
++#else
++# define machine_is_ds_tiger()	(0)
++#endif
++
++#ifdef CONFIG_MACH_E310
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_E310
++# endif
++# define machine_is_e310()	(machine_arch_type == MACH_TYPE_E310)
++#else
++# define machine_is_e310()	(0)
++#endif
++
++#ifdef CONFIG_MACH_E330
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_E330
++# endif
++# define machine_is_e330()	(machine_arch_type == MACH_TYPE_E330)
++#else
++# define machine_is_e330()	(0)
++#endif
++
++#ifdef CONFIG_MACH_RT3000
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_RT3000
++# endif
++# define machine_is_rt3000()	(machine_arch_type == MACH_TYPE_RT3000)
++#else
++# define machine_is_rt3000()	(0)
++#endif
++
++#ifdef CONFIG_MACH_NOKIA770
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_NOKIA770
++# endif
++# define machine_is_nokia770()	(machine_arch_type == MACH_TYPE_NOKIA770)
++#else
++# define machine_is_nokia770()	(0)
++#endif
++
++#ifdef CONFIG_MACH_PNX0106
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_PNX0106
++# endif
++# define machine_is_pnx0106()	(machine_arch_type == MACH_TYPE_PNX0106)
++#else
++# define machine_is_pnx0106()	(0)
++#endif
++
++#ifdef CONFIG_MACH_HX21XX
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_HX21XX
++# endif
++# define machine_is_hx21xx()	(machine_arch_type == MACH_TYPE_HX21XX)
++#else
++# define machine_is_hx21xx()	(0)
++#endif
++
++#ifdef CONFIG_MACH_FARADAY
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_FARADAY
++# endif
++# define machine_is_faraday()	(machine_arch_type == MACH_TYPE_FARADAY)
++#else
++# define machine_is_faraday()	(0)
++#endif
++
++#ifdef CONFIG_MACH_SBC9312
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_SBC9312
++# endif
++# define machine_is_sbc9312()	(machine_arch_type == MACH_TYPE_SBC9312)
++#else
++# define machine_is_sbc9312()	(0)
++#endif
++
++#ifdef CONFIG_MACH_BATMAN
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_BATMAN
++# endif
++# define machine_is_batman()	(machine_arch_type == MACH_TYPE_BATMAN)
++#else
++# define machine_is_batman()	(0)
++#endif
++
++#ifdef CONFIG_MACH_JPD201
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_JPD201
++# endif
++# define machine_is_jpd201()	(machine_arch_type == MACH_TYPE_JPD201)
++#else
++# define machine_is_jpd201()	(0)
++#endif
++
++#ifdef CONFIG_MACH_MIPSA
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_MIPSA
++# endif
++# define machine_is_mipsa()	(machine_arch_type == MACH_TYPE_MIPSA)
++#else
++# define machine_is_mipsa()	(0)
++#endif
++
++#ifdef CONFIG_MACH_KACOM
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_KACOM
++# endif
++# define machine_is_kacom()	(machine_arch_type == MACH_TYPE_KACOM)
++#else
++# define machine_is_kacom()	(0)
++#endif
++
++#ifdef CONFIG_MACH_SWARCOCPU
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_SWARCOCPU
++# endif
++# define machine_is_swarcocpu()	(machine_arch_type == MACH_TYPE_SWARCOCPU)
++#else
++# define machine_is_swarcocpu()	(0)
++#endif
++
++#ifdef CONFIG_MACH_SWARCODSL
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_SWARCODSL
++# endif
++# define machine_is_swarcodsl()	(machine_arch_type == MACH_TYPE_SWARCODSL)
++#else
++# define machine_is_swarcodsl()	(0)
++#endif
++
++#ifdef CONFIG_MACH_BLUEANGEL
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_BLUEANGEL
++# endif
++# define machine_is_blueangel()	(machine_arch_type == MACH_TYPE_BLUEANGEL)
++#else
++# define machine_is_blueangel()	(0)
++#endif
++
++#ifdef CONFIG_MACH_HAIRYGRAMA
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_HAIRYGRAMA
++# endif
++# define machine_is_hairygrama()	(machine_arch_type == MACH_TYPE_HAIRYGRAMA)
++#else
++# define machine_is_hairygrama()	(0)
++#endif
++
++#ifdef CONFIG_MACH_BANFF
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_BANFF
++# endif
++# define machine_is_banff()	(machine_arch_type == MACH_TYPE_BANFF)
++#else
++# define machine_is_banff()	(0)
++#endif
++
++#ifdef CONFIG_MACH_CARMEVA
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_CARMEVA
++# endif
++# define machine_is_carmeva()	(machine_arch_type == MACH_TYPE_CARMEVA)
++#else
++# define machine_is_carmeva()	(0)
++#endif
++
++#ifdef CONFIG_MACH_SAM255
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_SAM255
++# endif
++# define machine_is_sam255()	(machine_arch_type == MACH_TYPE_SAM255)
++#else
++# define machine_is_sam255()	(0)
++#endif
++
++#ifdef CONFIG_MACH_PPM10
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_PPM10
++# endif
++# define machine_is_ppm10()	(machine_arch_type == MACH_TYPE_PPM10)
++#else
++# define machine_is_ppm10()	(0)
++#endif
++
++#ifdef CONFIG_MACH_EDB9315A
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_EDB9315A
++# endif
++# define machine_is_edb9315a()	(machine_arch_type == MACH_TYPE_EDB9315A)
++#else
++# define machine_is_edb9315a()	(0)
++#endif
++
++#ifdef CONFIG_MACH_SUNSET
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_SUNSET
++# endif
++# define machine_is_sunset()	(machine_arch_type == MACH_TYPE_SUNSET)
++#else
++# define machine_is_sunset()	(0)
++#endif
++
++#ifdef CONFIG_MACH_STARGATE2
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_STARGATE2
++# endif
++# define machine_is_stargate2()	(machine_arch_type == MACH_TYPE_STARGATE2)
++#else
++# define machine_is_stargate2()	(0)
++#endif
++
++#ifdef CONFIG_MACH_INTELMOTE2
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_INTELMOTE2
++# endif
++# define machine_is_intelmote2()	(machine_arch_type == MACH_TYPE_INTELMOTE2)
++#else
++# define machine_is_intelmote2()	(0)
++#endif
++
++#ifdef CONFIG_MACH_TRIZEPS4
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_TRIZEPS4
++# endif
++# define machine_is_trizeps4()	(machine_arch_type == MACH_TYPE_TRIZEPS4)
++#else
++# define machine_is_trizeps4()	(0)
++#endif
++
++#ifdef CONFIG_MACH_MAINSTONE2
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_MAINSTONE2
++# endif
++# define machine_is_mainstone2()	(machine_arch_type == MACH_TYPE_MAINSTONE2)
++#else
++# define machine_is_mainstone2()	(0)
++#endif
++
++#ifdef CONFIG_MACH_EZ_IXP42X
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_EZ_IXP42X
++# endif
++# define machine_is_ez_ixp42x()	(machine_arch_type == MACH_TYPE_EZ_IXP42X)
++#else
++# define machine_is_ez_ixp42x()	(0)
++#endif
++
++#ifdef CONFIG_MACH_TAPWAVE_ZODIAC
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_TAPWAVE_ZODIAC
++# endif
++# define machine_is_tapwave_zodiac()	(machine_arch_type == MACH_TYPE_TAPWAVE_ZODIAC)
++#else
++# define machine_is_tapwave_zodiac()	(0)
++#endif
++
++#ifdef CONFIG_MACH_UNIVERSALMETER
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_UNIVERSALMETER
++# endif
++# define machine_is_universalmeter()	(machine_arch_type == MACH_TYPE_UNIVERSALMETER)
++#else
++# define machine_is_universalmeter()	(0)
++#endif
++
++#ifdef CONFIG_MACH_HICOARM9
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_HICOARM9
++# endif
++# define machine_is_hicoarm9()	(machine_arch_type == MACH_TYPE_HICOARM9)
++#else
++# define machine_is_hicoarm9()	(0)
++#endif
++
++#ifdef CONFIG_MACH_PNX4008
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_PNX4008
++# endif
++# define machine_is_pnx4008()	(machine_arch_type == MACH_TYPE_PNX4008)
++#else
++# define machine_is_pnx4008()	(0)
++#endif
++
++#ifdef CONFIG_MACH_KWS6000
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_KWS6000
++# endif
++# define machine_is_kws6000()	(machine_arch_type == MACH_TYPE_KWS6000)
++#else
++# define machine_is_kws6000()	(0)
++#endif
++
++#ifdef CONFIG_MACH_PORTUX920T
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_PORTUX920T
++# endif
++# define machine_is_portux920t()	(machine_arch_type == MACH_TYPE_PORTUX920T)
++#else
++# define machine_is_portux920t()	(0)
++#endif
++
++#ifdef CONFIG_MACH_EZ_X5
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_EZ_X5
++# endif
++# define machine_is_ez_x5()	(machine_arch_type == MACH_TYPE_EZ_X5)
++#else
++# define machine_is_ez_x5()	(0)
++#endif
++
++#ifdef CONFIG_MACH_OMAP_RUDOLPH
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_OMAP_RUDOLPH
++# endif
++# define machine_is_omap_rudolph()	(machine_arch_type == MACH_TYPE_OMAP_RUDOLPH)
++#else
++# define machine_is_omap_rudolph()	(0)
++#endif
++
++#ifdef CONFIG_MACH_CPUAT91
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_CPUAT91
++# endif
++# define machine_is_cpuat91()	(machine_arch_type == MACH_TYPE_CPUAT91)
++#else
++# define machine_is_cpuat91()	(0)
++#endif
++
++#ifdef CONFIG_MACH_REA9200
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_REA9200
++# endif
++# define machine_is_rea9200()	(machine_arch_type == MACH_TYPE_REA9200)
++#else
++# define machine_is_rea9200()	(0)
++#endif
++
++#ifdef CONFIG_MACH_ACTS_PUNE_SA1110
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_ACTS_PUNE_SA1110
++# endif
++# define machine_is_acts_pune_sa1110()	(machine_arch_type == MACH_TYPE_ACTS_PUNE_SA1110)
++#else
++# define machine_is_acts_pune_sa1110()	(0)
++#endif
++
++#ifdef CONFIG_MACH_IXP425
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_IXP425
++# endif
++# define machine_is_ixp425()	(machine_arch_type == MACH_TYPE_IXP425)
++#else
++# define machine_is_ixp425()	(0)
++#endif
++
++#ifdef CONFIG_MACH_I30030ADS
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_I30030ADS
++# endif
++# define machine_is_i30030ads()	(machine_arch_type == MACH_TYPE_I30030ADS)
++#else
++# define machine_is_i30030ads()	(0)
++#endif
++
++#ifdef CONFIG_MACH_PERCH
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_PERCH
++# endif
++# define machine_is_perch()	(machine_arch_type == MACH_TYPE_PERCH)
++#else
++# define machine_is_perch()	(0)
++#endif
++
++#ifdef CONFIG_MACH_EIS05R1
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_EIS05R1
++# endif
++# define machine_is_eis05r1()	(machine_arch_type == MACH_TYPE_EIS05R1)
++#else
++# define machine_is_eis05r1()	(0)
++#endif
++
++#ifdef CONFIG_MACH_PEPPERPAD
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_PEPPERPAD
++# endif
++# define machine_is_pepperpad()	(machine_arch_type == MACH_TYPE_PEPPERPAD)
++#else
++# define machine_is_pepperpad()	(0)
++#endif
++
++#ifdef CONFIG_MACH_SB3010
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_SB3010
++# endif
++# define machine_is_sb3010()	(machine_arch_type == MACH_TYPE_SB3010)
++#else
++# define machine_is_sb3010()	(0)
++#endif
++
++#ifdef CONFIG_MACH_RM9200
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_RM9200
++# endif
++# define machine_is_rm9200()	(machine_arch_type == MACH_TYPE_RM9200)
++#else
++# define machine_is_rm9200()	(0)
++#endif
++
++#ifdef CONFIG_MACH_DMA03
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_DMA03
++# endif
++# define machine_is_dma03()	(machine_arch_type == MACH_TYPE_DMA03)
++#else
++# define machine_is_dma03()	(0)
++#endif
++
++#ifdef CONFIG_MACH_ROAD_S101
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_ROAD_S101
++# endif
++# define machine_is_road_s101()	(machine_arch_type == MACH_TYPE_ROAD_S101)
++#else
++# define machine_is_road_s101()	(0)
++#endif
++
++#ifdef CONFIG_MACH_IQ_NEXTGEN_A
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_IQ_NEXTGEN_A
++# endif
++# define machine_is_iq_nextgen_a()	(machine_arch_type == MACH_TYPE_IQ_NEXTGEN_A)
++#else
++# define machine_is_iq_nextgen_a()	(0)
++#endif
++
++#ifdef CONFIG_MACH_IQ_NEXTGEN_B
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_IQ_NEXTGEN_B
++# endif
++# define machine_is_iq_nextgen_b()	(machine_arch_type == MACH_TYPE_IQ_NEXTGEN_B)
++#else
++# define machine_is_iq_nextgen_b()	(0)
++#endif
++
++#ifdef CONFIG_MACH_IQ_NEXTGEN_C
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_IQ_NEXTGEN_C
++# endif
++# define machine_is_iq_nextgen_c()	(machine_arch_type == MACH_TYPE_IQ_NEXTGEN_C)
++#else
++# define machine_is_iq_nextgen_c()	(0)
++#endif
++
++#ifdef CONFIG_MACH_IQ_NEXTGEN_D
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_IQ_NEXTGEN_D
++# endif
++# define machine_is_iq_nextgen_d()	(machine_arch_type == MACH_TYPE_IQ_NEXTGEN_D)
++#else
++# define machine_is_iq_nextgen_d()	(0)
++#endif
++
++#ifdef CONFIG_MACH_IQ_NEXTGEN_E
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_IQ_NEXTGEN_E
++# endif
++# define machine_is_iq_nextgen_e()	(machine_arch_type == MACH_TYPE_IQ_NEXTGEN_E)
++#else
++# define machine_is_iq_nextgen_e()	(0)
++#endif
++
++#ifdef CONFIG_MACH_MALLOW_AT91
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_MALLOW_AT91
++# endif
++# define machine_is_mallow_at91()	(machine_arch_type == MACH_TYPE_MALLOW_AT91)
++#else
++# define machine_is_mallow_at91()	(0)
++#endif
++
++#ifdef CONFIG_MACH_CYBERTRACKER_I
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_CYBERTRACKER_I
++# endif
++# define machine_is_cybertracker_i()	(machine_arch_type == MACH_TYPE_CYBERTRACKER_I)
++#else
++# define machine_is_cybertracker_i()	(0)
++#endif
++
++#ifdef CONFIG_MACH_GESBC931X
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_GESBC931X
++# endif
++# define machine_is_gesbc931x()	(machine_arch_type == MACH_TYPE_GESBC931X)
++#else
++# define machine_is_gesbc931x()	(0)
++#endif
++
++#ifdef CONFIG_MACH_CENTIPAD
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_CENTIPAD
++# endif
++# define machine_is_centipad()	(machine_arch_type == MACH_TYPE_CENTIPAD)
++#else
++# define machine_is_centipad()	(0)
++#endif
++
++#ifdef CONFIG_MACH_ARMSOC
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_ARMSOC
++# endif
++# define machine_is_armsoc()	(machine_arch_type == MACH_TYPE_ARMSOC)
++#else
++# define machine_is_armsoc()	(0)
++#endif
++
++#ifdef CONFIG_MACH_SE4200
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_SE4200
++# endif
++# define machine_is_se4200()	(machine_arch_type == MACH_TYPE_SE4200)
++#else
++# define machine_is_se4200()	(0)
++#endif
++
++#ifdef CONFIG_MACH_EMS197A
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_EMS197A
++# endif
++# define machine_is_ems197a()	(machine_arch_type == MACH_TYPE_EMS197A)
++#else
++# define machine_is_ems197a()	(0)
++#endif
++
++#ifdef CONFIG_MACH_MICRO9
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_MICRO9
++# endif
++# define machine_is_micro9()	(machine_arch_type == MACH_TYPE_MICRO9)
++#else
++# define machine_is_micro9()	(0)
++#endif
++
++#ifdef CONFIG_MACH_MICRO9L
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_MICRO9L
++# endif
++# define machine_is_micro9l()	(machine_arch_type == MACH_TYPE_MICRO9L)
++#else
++# define machine_is_micro9l()	(0)
++#endif
++
++#ifdef CONFIG_MACH_UC5471DSP
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_UC5471DSP
++# endif
++# define machine_is_uc5471dsp()	(machine_arch_type == MACH_TYPE_UC5471DSP)
++#else
++# define machine_is_uc5471dsp()	(0)
++#endif
++
++#ifdef CONFIG_MACH_SJ5471ENG
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_SJ5471ENG
++# endif
++# define machine_is_sj5471eng()	(machine_arch_type == MACH_TYPE_SJ5471ENG)
++#else
++# define machine_is_sj5471eng()	(0)
++#endif
++
++#ifdef CONFIG_MACH_CMPXA26X
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_CMPXA26X
++# endif
++# define machine_is_none()	(machine_arch_type == MACH_TYPE_CMPXA26X)
++#else
++# define machine_is_none()	(0)
++#endif
++
++#ifdef CONFIG_MACH_NC
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_NC
++# endif
++# define machine_is_nc1()	(machine_arch_type == MACH_TYPE_NC)
++#else
++# define machine_is_nc1()	(0)
++#endif
++
++#ifdef CONFIG_MACH_OMAP_PALMTE
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_OMAP_PALMTE
++# endif
++# define machine_is_omap_palmte()	(machine_arch_type == MACH_TYPE_OMAP_PALMTE)
++#else
++# define machine_is_omap_palmte()	(0)
++#endif
++
++#ifdef CONFIG_MACH_AJAX52X
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_AJAX52X
++# endif
++# define machine_is_ajax52x()	(machine_arch_type == MACH_TYPE_AJAX52X)
++#else
++# define machine_is_ajax52x()	(0)
++#endif
++
++#ifdef CONFIG_MACH_SIRIUSTAR
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_SIRIUSTAR
++# endif
++# define machine_is_siriustar()	(machine_arch_type == MACH_TYPE_SIRIUSTAR)
++#else
++# define machine_is_siriustar()	(0)
++#endif
++
++#ifdef CONFIG_MACH_IODATA_HDLG
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_IODATA_HDLG
++# endif
++# define machine_is_iodata_hdlg()	(machine_arch_type == MACH_TYPE_IODATA_HDLG)
++#else
++# define machine_is_iodata_hdlg()	(0)
++#endif
++
++#ifdef CONFIG_MACH_AT91RM9200UTL
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_AT91RM9200UTL
++# endif
++# define machine_is_at91rm9200utl()	(machine_arch_type == MACH_TYPE_AT91RM9200UTL)
++#else
++# define machine_is_at91rm9200utl()	(0)
++#endif
++
++#ifdef CONFIG_MACH_BIOSAFE
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_BIOSAFE
++# endif
++# define machine_is_biosafe()	(machine_arch_type == MACH_TYPE_BIOSAFE)
++#else
++# define machine_is_biosafe()	(0)
++#endif
++
++#ifdef CONFIG_MACH_MP1000
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_MP1000
++# endif
++# define machine_is_mp1000()	(machine_arch_type == MACH_TYPE_MP1000)
++#else
++# define machine_is_mp1000()	(0)
++#endif
++
++#ifdef CONFIG_MACH_PARSY
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_PARSY
++# endif
++# define machine_is_parsy()	(machine_arch_type == MACH_TYPE_PARSY)
++#else
++# define machine_is_parsy()	(0)
++#endif
++
++#ifdef CONFIG_MACH_CCXP
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_CCXP
++# endif
++# define machine_is_ccxp270()	(machine_arch_type == MACH_TYPE_CCXP)
++#else
++# define machine_is_ccxp270()	(0)
++#endif
++
++#ifdef CONFIG_MACH_OMAP_GSAMPLE
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_OMAP_GSAMPLE
++# endif
++# define machine_is_omap_gsample()	(machine_arch_type == MACH_TYPE_OMAP_GSAMPLE)
++#else
++# define machine_is_omap_gsample()	(0)
++#endif
++
++#ifdef CONFIG_MACH_REALVIEW_EB
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_REALVIEW_EB
++# endif
++# define machine_is_realview_eb()	(machine_arch_type == MACH_TYPE_REALVIEW_EB)
++#else
++# define machine_is_realview_eb()	(0)
++#endif
++
++#ifdef CONFIG_MACH_SAMOA
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_SAMOA
++# endif
++# define machine_is_samoa()	(machine_arch_type == MACH_TYPE_SAMOA)
++#else
++# define machine_is_samoa()	(0)
++#endif
++
++#ifdef CONFIG_MACH_T3XSCALE
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_T3XSCALE
++# endif
++# define machine_is_t3xscale()	(machine_arch_type == MACH_TYPE_T3XSCALE)
++#else
++# define machine_is_t3xscale()	(0)
++#endif
++
++#ifdef CONFIG_MACH_I878
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_I878
++# endif
++# define machine_is_i878()	(machine_arch_type == MACH_TYPE_I878)
++#else
++# define machine_is_i878()	(0)
++#endif
++
++#ifdef CONFIG_MACH_BORZOI
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_BORZOI
++# endif
++# define machine_is_borzoi()	(machine_arch_type == MACH_TYPE_BORZOI)
++#else
++# define machine_is_borzoi()	(0)
++#endif
++
++#ifdef CONFIG_MACH_GECKO
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_GECKO
++# endif
++# define machine_is_gecko()	(machine_arch_type == MACH_TYPE_GECKO)
++#else
++# define machine_is_gecko()	(0)
++#endif
++
++#ifdef CONFIG_MACH_DS101
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_DS101
++# endif
++# define machine_is_ds101()	(machine_arch_type == MACH_TYPE_DS101)
++#else
++# define machine_is_ds101()	(0)
++#endif
++
++#ifdef CONFIG_MACH_OMAP_PALMTT2
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_OMAP_PALMTT2
++# endif
++# define machine_is_omap_palmtt2()	(machine_arch_type == MACH_TYPE_OMAP_PALMTT2)
++#else
++# define machine_is_omap_palmtt2()	(0)
++#endif
++
++#ifdef CONFIG_MACH_XSCALE_PALMLD
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_XSCALE_PALMLD
++# endif
++# define machine_is_xscale_palmld()	(machine_arch_type == MACH_TYPE_XSCALE_PALMLD)
++#else
++# define machine_is_xscale_palmld()	(0)
++#endif
++
++#ifdef CONFIG_MACH_CC9C
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_CC9C
++# endif
++# define machine_is_cc9c()	(machine_arch_type == MACH_TYPE_CC9C)
++#else
++# define machine_is_cc9c()	(0)
++#endif
++
++#ifdef CONFIG_MACH_SBC1670
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_SBC1670
++# endif
++# define machine_is_sbc1670()	(machine_arch_type == MACH_TYPE_SBC1670)
++#else
++# define machine_is_sbc1670()	(0)
++#endif
++
++#ifdef CONFIG_MACH_IXDP28X5
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_IXDP28X5
++# endif
++# define machine_is_ixdp28x5()	(machine_arch_type == MACH_TYPE_IXDP28X5)
++#else
++# define machine_is_ixdp28x5()	(0)
++#endif
++
++#ifdef CONFIG_MACH_OMAP_PALMTT
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_OMAP_PALMTT
++# endif
++# define machine_is_omap_palmtt()	(machine_arch_type == MACH_TYPE_OMAP_PALMTT)
++#else
++# define machine_is_omap_palmtt()	(0)
++#endif
++
++#ifdef CONFIG_MACH_ML696K
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_ML696K
++# endif
++# define machine_is_ml696k()	(machine_arch_type == MACH_TYPE_ML696K)
++#else
++# define machine_is_ml696k()	(0)
++#endif
++
++#ifdef CONFIG_MACH_ARCOM_ZEUS
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_ARCOM_ZEUS
++# endif
++# define machine_is_arcom_zeus()	(machine_arch_type == MACH_TYPE_ARCOM_ZEUS)
++#else
++# define machine_is_arcom_zeus()	(0)
++#endif
++
++#ifdef CONFIG_MACH_OSIRIS
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_OSIRIS
++# endif
++# define machine_is_osiris()	(machine_arch_type == MACH_TYPE_OSIRIS)
++#else
++# define machine_is_osiris()	(0)
++#endif
++
++#ifdef CONFIG_MACH_MAESTRO
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_MAESTRO
++# endif
++# define machine_is_maestro()	(machine_arch_type == MACH_TYPE_MAESTRO)
++#else
++# define machine_is_maestro()	(0)
++#endif
++
++#ifdef CONFIG_MACH_TUNGE2
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_TUNGE2
++# endif
++# define machine_is_tunge2()	(machine_arch_type == MACH_TYPE_TUNGE2)
++#else
++# define machine_is_tunge2()	(0)
++#endif
++
++#ifdef CONFIG_MACH_IXBBM
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_IXBBM
++# endif
++# define machine_is_ixbbm()	(machine_arch_type == MACH_TYPE_IXBBM)
++#else
++# define machine_is_ixbbm()	(0)
++#endif
++
++#ifdef CONFIG_MACH_MX27
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_MX27
++# endif
++# define machine_is_mx27ads()	(machine_arch_type == MACH_TYPE_MX27)
++#else
++# define machine_is_mx27ads()	(0)
++#endif
++
++#ifdef CONFIG_MACH_AX8004
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_AX8004
++# endif
++# define machine_is_ax8004()	(machine_arch_type == MACH_TYPE_AX8004)
++#else
++# define machine_is_ax8004()	(0)
++#endif
++
++#ifdef CONFIG_MACH_AT91SAM9261EK
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_AT91SAM9261EK
++# endif
++# define machine_is_at91sam9261ek()	(machine_arch_type == MACH_TYPE_AT91SAM9261EK)
++#else
++# define machine_is_at91sam9261ek()	(0)
++#endif
++
++#ifdef CONFIG_MACH_LOFT
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_LOFT
++# endif
++# define machine_is_loft()	(machine_arch_type == MACH_TYPE_LOFT)
++#else
++# define machine_is_loft()	(0)
++#endif
++
++#ifdef CONFIG_MACH_MAGPIE
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_MAGPIE
++# endif
++# define machine_is_magpie()	(machine_arch_type == MACH_TYPE_MAGPIE)
++#else
++# define machine_is_magpie()	(0)
++#endif
++
++#ifdef CONFIG_MACH_MX21
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_MX21
++# endif
++# define machine_is_mx21ads()	(machine_arch_type == MACH_TYPE_MX21)
++#else
++# define machine_is_mx21ads()	(0)
++#endif
++
++#ifdef CONFIG_MACH_MB87M3400
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_MB87M3400
++# endif
++# define machine_is_mb87m3400()	(machine_arch_type == MACH_TYPE_MB87M3400)
++#else
++# define machine_is_mb87m3400()	(0)
++#endif
++
++#ifdef CONFIG_MACH_MGUARD_DELTA
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_MGUARD_DELTA
++# endif
++# define machine_is_mguard_delta()	(machine_arch_type == MACH_TYPE_MGUARD_DELTA)
++#else
++# define machine_is_mguard_delta()	(0)
++#endif
++
++#ifdef CONFIG_MACH_DAVINCI_DVDP
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_DAVINCI_DVDP
++# endif
++# define machine_is_davinci_dvdp()	(machine_arch_type == MACH_TYPE_DAVINCI_DVDP)
++#else
++# define machine_is_davinci_dvdp()	(0)
++#endif
++
++#ifdef CONFIG_MACH_HTCUNIVERSAL
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_HTCUNIVERSAL
++# endif
++# define machine_is_htcuniversal()	(machine_arch_type == MACH_TYPE_HTCUNIVERSAL)
++#else
++# define machine_is_htcuniversal()	(0)
++#endif
++
++#ifdef CONFIG_MACH_TPAD
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_TPAD
++# endif
++# define machine_is_tpad()	(machine_arch_type == MACH_TYPE_TPAD)
++#else
++# define machine_is_tpad()	(0)
++#endif
++
++#ifdef CONFIG_MACH_ROVERP3
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_ROVERP3
++# endif
++# define machine_is_roverp3()	(machine_arch_type == MACH_TYPE_ROVERP3)
++#else
++# define machine_is_roverp3()	(0)
++#endif
++
++#ifdef CONFIG_MACH_JORNADA928
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_JORNADA928
++# endif
++# define machine_is_jornada928()	(machine_arch_type == MACH_TYPE_JORNADA928)
++#else
++# define machine_is_jornada928()	(0)
++#endif
++
++#ifdef CONFIG_MACH_MV88FXX81
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_MV88FXX81
++# endif
++# define machine_is_mv88fxx81()	(machine_arch_type == MACH_TYPE_MV88FXX81)
++#else
++# define machine_is_mv88fxx81()	(0)
++#endif
++
++#ifdef CONFIG_MACH_STMP36XX
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_STMP36XX
++# endif
++# define machine_is_stmp36xx()	(machine_arch_type == MACH_TYPE_STMP36XX)
++#else
++# define machine_is_stmp36xx()	(0)
++#endif
++
++#ifdef CONFIG_MACH_SXNI79524
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_SXNI79524
++# endif
++# define machine_is_sxni79524()	(machine_arch_type == MACH_TYPE_SXNI79524)
++#else
++# define machine_is_sxni79524()	(0)
++#endif
++
++#ifdef CONFIG_MACH_AMS_DELTA
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_AMS_DELTA
++# endif
++# define machine_is_ams_delta()	(machine_arch_type == MACH_TYPE_AMS_DELTA)
++#else
++# define machine_is_ams_delta()	(0)
++#endif
++
++#ifdef CONFIG_MACH_URANIUM
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_URANIUM
++# endif
++# define machine_is_uranium()	(machine_arch_type == MACH_TYPE_URANIUM)
++#else
++# define machine_is_uranium()	(0)
++#endif
++
++#ifdef CONFIG_MACH_UCON
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_UCON
++# endif
++# define machine_is_ucon()	(machine_arch_type == MACH_TYPE_UCON)
++#else
++# define machine_is_ucon()	(0)
++#endif
++
++#ifdef CONFIG_MACH_NAS100D
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_NAS100D
++# endif
++# define machine_is_nas100d()	(machine_arch_type == MACH_TYPE_NAS100D)
++#else
++# define machine_is_nas100d()	(0)
++#endif
++
++#ifdef CONFIG_MACH_L083_1000
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_L083_1000
++# endif
++# define machine_is_l083()	(machine_arch_type == MACH_TYPE_L083_1000)
++#else
++# define machine_is_l083()	(0)
++#endif
++
++#ifdef CONFIG_MACH_EZX
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_EZX
++# endif
++# define machine_is_ezx()	(machine_arch_type == MACH_TYPE_EZX)
++#else
++# define machine_is_ezx()	(0)
++#endif
++
++#ifdef CONFIG_MACH_PNX5220
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_PNX5220
++# endif
++# define machine_is_pnx5220()	(machine_arch_type == MACH_TYPE_PNX5220)
++#else
++# define machine_is_pnx5220()	(0)
++#endif
++
++#ifdef CONFIG_MACH_BUTTE
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_BUTTE
++# endif
++# define machine_is_butte()	(machine_arch_type == MACH_TYPE_BUTTE)
++#else
++# define machine_is_butte()	(0)
++#endif
++
++#ifdef CONFIG_MACH_SRM2
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_SRM2
++# endif
++# define machine_is_srm2()	(machine_arch_type == MACH_TYPE_SRM2)
++#else
++# define machine_is_srm2()	(0)
++#endif
++
++#ifdef CONFIG_MACH_DSBR
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_DSBR
++# endif
++# define machine_is_dsbr()	(machine_arch_type == MACH_TYPE_DSBR)
++#else
++# define machine_is_dsbr()	(0)
++#endif
++
++#ifdef CONFIG_MACH_CRYSTALBALL
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_CRYSTALBALL
++# endif
++# define machine_is_crystalball()	(machine_arch_type == MACH_TYPE_CRYSTALBALL)
++#else
++# define machine_is_crystalball()	(0)
++#endif
++
++#ifdef CONFIG_MACH_TINYPXA27X
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_TINYPXA27X
++# endif
++# define machine_is_tinypxa27x()	(machine_arch_type == MACH_TYPE_TINYPXA27X)
++#else
++# define machine_is_tinypxa27x()	(0)
++#endif
++
++#ifdef CONFIG_MACH_HERBIE
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_HERBIE
++# endif
++# define machine_is_herbie()	(machine_arch_type == MACH_TYPE_HERBIE)
++#else
++# define machine_is_herbie()	(0)
++#endif
++
++#ifdef CONFIG_MACH_MAGICIAN
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_MAGICIAN
++# endif
++# define machine_is_magician()	(machine_arch_type == MACH_TYPE_MAGICIAN)
++#else
++# define machine_is_magician()	(0)
++#endif
++
++#ifdef CONFIG_MACH_CM4002
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_CM4002
++# endif
++# define machine_is_cm4002()	(machine_arch_type == MACH_TYPE_CM4002)
++#else
++# define machine_is_cm4002()	(0)
++#endif
++
++#ifdef CONFIG_MACH_B4
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_B4
++# endif
++# define machine_is_b4()	(machine_arch_type == MACH_TYPE_B4)
++#else
++# define machine_is_b4()	(0)
++#endif
++
++#ifdef CONFIG_MACH_MAUI
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_MAUI
++# endif
++# define machine_is_maui()	(machine_arch_type == MACH_TYPE_MAUI)
++#else
++# define machine_is_maui()	(0)
++#endif
++
++#ifdef CONFIG_MACH_CYBERTRACKER_G
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_CYBERTRACKER_G
++# endif
++# define machine_is_cybertracker_g()	(machine_arch_type == MACH_TYPE_CYBERTRACKER_G)
++#else
++# define machine_is_cybertracker_g()	(0)
++#endif
++
++#ifdef CONFIG_MACH_NXDKN
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_NXDKN
++# endif
++# define machine_is_nxdkn()	(machine_arch_type == MACH_TYPE_NXDKN)
++#else
++# define machine_is_nxdkn()	(0)
++#endif
++
++#ifdef CONFIG_MACH_MIO8390
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_MIO8390
++# endif
++# define machine_is_mio8390()	(machine_arch_type == MACH_TYPE_MIO8390)
++#else
++# define machine_is_mio8390()	(0)
++#endif
++
++#ifdef CONFIG_MACH_OMI_BOARD
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_OMI_BOARD
++# endif
++# define machine_is_omi_board()	(machine_arch_type == MACH_TYPE_OMI_BOARD)
++#else
++# define machine_is_omi_board()	(0)
++#endif
++
++#ifdef CONFIG_MACH_MX21CIV
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_MX21CIV
++# endif
++# define machine_is_mx21civ()	(machine_arch_type == MACH_TYPE_MX21CIV)
++#else
++# define machine_is_mx21civ()	(0)
++#endif
++
++#ifdef CONFIG_MACH_MAHI_CDAC
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_MAHI_CDAC
++# endif
++# define machine_is_mahi_cdac()	(machine_arch_type == MACH_TYPE_MAHI_CDAC)
++#else
++# define machine_is_mahi_cdac()	(0)
++#endif
++
++#ifdef CONFIG_MACH_XSCALE_PALMTX
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_XSCALE_PALMTX
++# endif
++# define machine_is_xscale_palmtx()	(machine_arch_type == MACH_TYPE_XSCALE_PALMTX)
++#else
++# define machine_is_xscale_palmtx()	(0)
++#endif
++
++#ifdef CONFIG_MACH_S3C2413
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_S3C2413
++# endif
++# define machine_is_s3c2413()	(machine_arch_type == MACH_TYPE_S3C2413)
++#else
++# define machine_is_s3c2413()	(0)
++#endif
++
++#ifdef CONFIG_MACH_SAMSYS_EP0
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_SAMSYS_EP0
++# endif
++# define machine_is_samsys_ep0()	(machine_arch_type == MACH_TYPE_SAMSYS_EP0)
++#else
++# define machine_is_samsys_ep0()	(0)
++#endif
++
++#ifdef CONFIG_MACH_WG302V1
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_WG302V1
++# endif
++# define machine_is_wg302v1()	(machine_arch_type == MACH_TYPE_WG302V1)
++#else
++# define machine_is_wg302v1()	(0)
++#endif
++
++#ifdef CONFIG_MACH_WG302V2
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_WG302V2
++# endif
++# define machine_is_wg302v2()	(machine_arch_type == MACH_TYPE_WG302V2)
++#else
++# define machine_is_wg302v2()	(0)
++#endif
++
++#ifdef CONFIG_MACH_EB42X
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_EB42X
++# endif
++# define machine_is_eb42x()	(machine_arch_type == MACH_TYPE_EB42X)
++#else
++# define machine_is_eb42x()	(0)
++#endif
++
++#ifdef CONFIG_MACH_IQ331ES
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_IQ331ES
++# endif
++# define machine_is_iq331es()	(machine_arch_type == MACH_TYPE_IQ331ES)
++#else
++# define machine_is_iq331es()	(0)
++#endif
++
++#ifdef CONFIG_MACH_COSYDSP
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_COSYDSP
++# endif
++# define machine_is_cosydsp()	(machine_arch_type == MACH_TYPE_COSYDSP)
++#else
++# define machine_is_cosydsp()	(0)
++#endif
++
++#ifdef CONFIG_MACH_UPLAT7D
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_UPLAT7D
++# endif
++# define machine_is_uplat7d_proto()	(machine_arch_type == MACH_TYPE_UPLAT7D)
++#else
++# define machine_is_uplat7d_proto()	(0)
++#endif
++
++#ifdef CONFIG_MACH_PTDAVINCI
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_PTDAVINCI
++# endif
++# define machine_is_ptdavinci()	(machine_arch_type == MACH_TYPE_PTDAVINCI)
++#else
++# define machine_is_ptdavinci()	(0)
++#endif
++
++#ifdef CONFIG_MACH_MBUS
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_MBUS
++# endif
++# define machine_is_mbus()	(machine_arch_type == MACH_TYPE_MBUS)
++#else
++# define machine_is_mbus()	(0)
++#endif
++
++#ifdef CONFIG_MACH_NADIA2VB
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_NADIA2VB
++# endif
++# define machine_is_nadia2vb()	(machine_arch_type == MACH_TYPE_NADIA2VB)
++#else
++# define machine_is_nadia2vb()	(0)
++#endif
++
++#ifdef CONFIG_MACH_R1000
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_R1000
++# endif
++# define machine_is_r1000()	(machine_arch_type == MACH_TYPE_R1000)
++#else
++# define machine_is_r1000()	(0)
++#endif
++
++#ifdef CONFIG_MACH_HW90250
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_HW90250
++# endif
++# define machine_is_hw90250()	(machine_arch_type == MACH_TYPE_HW90250)
++#else
++# define machine_is_hw90250()	(0)
++#endif
++
++#ifdef CONFIG_MACH_OMAP_2430SDP
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_OMAP_2430SDP
++# endif
++# define machine_is_omap_2430sdp()	(machine_arch_type == MACH_TYPE_OMAP_2430SDP)
++#else
++# define machine_is_omap_2430sdp()	(0)
++#endif
++
++#ifdef CONFIG_MACH_DAVINCI_EVM
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_DAVINCI_EVM
++# endif
++# define machine_is_davinci_evm()	(machine_arch_type == MACH_TYPE_DAVINCI_EVM)
++#else
++# define machine_is_davinci_evm()	(0)
++#endif
++
++#ifdef CONFIG_MACH_OMAP_TORNADO
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_OMAP_TORNADO
++# endif
++# define machine_is_omap_tornado()	(machine_arch_type == MACH_TYPE_OMAP_TORNADO)
++#else
++# define machine_is_omap_tornado()	(0)
++#endif
++
++#ifdef CONFIG_MACH_OLOCREEK
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_OLOCREEK
++# endif
++# define machine_is_olocreek()	(machine_arch_type == MACH_TYPE_OLOCREEK)
++#else
++# define machine_is_olocreek()	(0)
++#endif
++
++#ifdef CONFIG_MACH_PALMZ72
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_PALMZ72
++# endif
++# define machine_is_palmz72()	(machine_arch_type == MACH_TYPE_PALMZ72)
++#else
++# define machine_is_palmz72()	(0)
++#endif
++
++#ifdef CONFIG_MACH_NXDB500
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_NXDB500
++# endif
++# define machine_is_nxdb500()	(machine_arch_type == MACH_TYPE_NXDB500)
++#else
++# define machine_is_nxdb500()	(0)
++#endif
++
++#ifdef CONFIG_MACH_APF9328
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_APF9328
++# endif
++# define machine_is_apf9328()	(machine_arch_type == MACH_TYPE_APF9328)
++#else
++# define machine_is_apf9328()	(0)
++#endif
++
++#ifdef CONFIG_MACH_OMAP_WIPOQ
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_OMAP_WIPOQ
++# endif
++# define machine_is_omap_wipoq()	(machine_arch_type == MACH_TYPE_OMAP_WIPOQ)
++#else
++# define machine_is_omap_wipoq()	(0)
++#endif
++
++#ifdef CONFIG_MACH_OMAP_TWIP
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_OMAP_TWIP
++# endif
++# define machine_is_omap_twip()	(machine_arch_type == MACH_TYPE_OMAP_TWIP)
++#else
++# define machine_is_omap_twip()	(0)
++#endif
++
++#ifdef CONFIG_MACH_XSCALE_PALMTREO650
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_XSCALE_PALMTREO650
++# endif
++# define machine_is_xscale_treo650()	(machine_arch_type == MACH_TYPE_XSCALE_PALMTREO650)
++#else
++# define machine_is_xscale_treo650()	(0)
++#endif
++
++#ifdef CONFIG_MACH_ACUMEN
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_ACUMEN
++# endif
++# define machine_is_acumen()	(machine_arch_type == MACH_TYPE_ACUMEN)
++#else
++# define machine_is_acumen()	(0)
++#endif
++
++#ifdef CONFIG_MACH_XP100
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_XP100
++# endif
++# define machine_is_xp100()	(machine_arch_type == MACH_TYPE_XP100)
++#else
++# define machine_is_xp100()	(0)
++#endif
++
++#ifdef CONFIG_MACH_FS2410
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_FS2410
++# endif
++# define machine_is_fs2410()	(machine_arch_type == MACH_TYPE_FS2410)
++#else
++# define machine_is_fs2410()	(0)
++#endif
++
++#ifdef CONFIG_MACH_PXA270_CERF
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_PXA270_CERF
++# endif
++# define machine_is_pxa270_cerf()	(machine_arch_type == MACH_TYPE_PXA270_CERF)
++#else
++# define machine_is_pxa270_cerf()	(0)
++#endif
++
++#ifdef CONFIG_MACH_SQ2FTLPALM
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_SQ2FTLPALM
++# endif
++# define machine_is_sq2ftlpalm()	(machine_arch_type == MACH_TYPE_SQ2FTLPALM)
++#else
++# define machine_is_sq2ftlpalm()	(0)
++#endif
++
++#ifdef CONFIG_MACH_BSEMSERVER
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_BSEMSERVER
++# endif
++# define machine_is_bsemserver()	(machine_arch_type == MACH_TYPE_BSEMSERVER)
++#else
++# define machine_is_bsemserver()	(0)
++#endif
++
++#ifdef CONFIG_MACH_NETCLIENT
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_NETCLIENT
++# endif
++# define machine_is_netclient()	(machine_arch_type == MACH_TYPE_NETCLIENT)
++#else
++# define machine_is_netclient()	(0)
++#endif
++
++#ifdef CONFIG_MACH_XSCALE_PALMTT5
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_XSCALE_PALMTT5
++# endif
++# define machine_is_xscale_palmtt5()	(machine_arch_type == MACH_TYPE_XSCALE_PALMTT5)
++#else
++# define machine_is_xscale_palmtt5()	(0)
++#endif
++
++#ifdef CONFIG_MACH_OMAP_PALMTC
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_OMAP_PALMTC
++# endif
++# define machine_is_xscale_palmtc()	(machine_arch_type == MACH_TYPE_OMAP_PALMTC)
++#else
++# define machine_is_xscale_palmtc()	(0)
++#endif
++
++#ifdef CONFIG_MACH_OMAP_APOLLON
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_OMAP_APOLLON
++# endif
++# define machine_is_omap_apollon()	(machine_arch_type == MACH_TYPE_OMAP_APOLLON)
++#else
++# define machine_is_omap_apollon()	(0)
++#endif
++
++#ifdef CONFIG_MACH_MXC30030EVB
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_MXC30030EVB
++# endif
++# define machine_is_mxc30030evb()	(machine_arch_type == MACH_TYPE_MXC30030EVB)
++#else
++# define machine_is_mxc30030evb()	(0)
++#endif
++
++#ifdef CONFIG_MACH_REA_2D
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_REA_2D
++# endif
++# define machine_is_rea_2d()	(machine_arch_type == MACH_TYPE_REA_2D)
++#else
++# define machine_is_rea_2d()	(0)
++#endif
++
++#ifdef CONFIG_MACH_TI3E524
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_TI3E524
++# endif
++# define machine_is_eti3e524()	(machine_arch_type == MACH_TYPE_TI3E524)
++#else
++# define machine_is_eti3e524()	(0)
++#endif
++
++#ifdef CONFIG_MACH_ATEB9200
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_ATEB9200
++# endif
++# define machine_is_ateb9200()	(machine_arch_type == MACH_TYPE_ATEB9200)
++#else
++# define machine_is_ateb9200()	(0)
++#endif
++
++#ifdef CONFIG_MACH_AUCKLAND
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_AUCKLAND
++# endif
++# define machine_is_auckland()	(machine_arch_type == MACH_TYPE_AUCKLAND)
++#else
++# define machine_is_auckland()	(0)
++#endif
++
++#ifdef CONFIG_MACH_AK3320M
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_AK3320M
++# endif
++# define machine_is_ak3220m()	(machine_arch_type == MACH_TYPE_AK3320M)
++#else
++# define machine_is_ak3220m()	(0)
++#endif
++
++#ifdef CONFIG_MACH_DURAMAX
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_DURAMAX
++# endif
++# define machine_is_duramax()	(machine_arch_type == MACH_TYPE_DURAMAX)
++#else
++# define machine_is_duramax()	(0)
++#endif
++
++#ifdef CONFIG_MACH_N35
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_N35
++# endif
++# define machine_is_n35()	(machine_arch_type == MACH_TYPE_N35)
++#else
++# define machine_is_n35()	(0)
++#endif
++
++#ifdef CONFIG_MACH_PRONGHORN
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_PRONGHORN
++# endif
++# define machine_is_pronghorn()	(machine_arch_type == MACH_TYPE_PRONGHORN)
++#else
++# define machine_is_pronghorn()	(0)
++#endif
++
++#ifdef CONFIG_MACH_FUNDY
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_FUNDY
++# endif
++# define machine_is_fundy()	(machine_arch_type == MACH_TYPE_FUNDY)
++#else
++# define machine_is_fundy()	(0)
++#endif
++
++#ifdef CONFIG_MACH_LOGICPD_PXA270
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_LOGICPD_PXA270
++# endif
++# define machine_is_logicpd_pxa270()	(machine_arch_type == MACH_TYPE_LOGICPD_PXA270)
++#else
++# define machine_is_logicpd_pxa270()	(0)
++#endif
++
++#ifdef CONFIG_MACH_CPU777
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_CPU777
++# endif
++# define machine_is_cpu777()	(machine_arch_type == MACH_TYPE_CPU777)
++#else
++# define machine_is_cpu777()	(0)
++#endif
++
++#ifdef CONFIG_MACH_SIMICON9201
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_SIMICON9201
++# endif
++# define machine_is_simicon9201()	(machine_arch_type == MACH_TYPE_SIMICON9201)
++#else
++# define machine_is_simicon9201()	(0)
++#endif
++
++#ifdef CONFIG_MACH_LEAP2_HPM
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_LEAP2_HPM
++# endif
++# define machine_is_leap2_hpm()	(machine_arch_type == MACH_TYPE_LEAP2_HPM)
++#else
++# define machine_is_leap2_hpm()	(0)
++#endif
++
++#ifdef CONFIG_MACH_CM922TXA10
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_CM922TXA10
++# endif
++# define machine_is_cm922txa10()	(machine_arch_type == MACH_TYPE_CM922TXA10)
++#else
++# define machine_is_cm922txa10()	(0)
++#endif
++
++#ifdef CONFIG_MACH_PXA
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_PXA
++# endif
++# define machine_is_sandgate()	(machine_arch_type == MACH_TYPE_PXA)
++#else
++# define machine_is_sandgate()	(0)
++#endif
++
++#ifdef CONFIG_MACH_SANDGATE2
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_SANDGATE2
++# endif
++# define machine_is_sandgate2()	(machine_arch_type == MACH_TYPE_SANDGATE2)
++#else
++# define machine_is_sandgate2()	(0)
++#endif
++
++#ifdef CONFIG_MACH_SANDGATE2G
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_SANDGATE2G
++# endif
++# define machine_is_sandgate2g()	(machine_arch_type == MACH_TYPE_SANDGATE2G)
++#else
++# define machine_is_sandgate2g()	(0)
++#endif
++
++#ifdef CONFIG_MACH_SANDGATE2P
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_SANDGATE2P
++# endif
++# define machine_is_sandgate2p()	(machine_arch_type == MACH_TYPE_SANDGATE2P)
++#else
++# define machine_is_sandgate2p()	(0)
++#endif
++
++#ifdef CONFIG_MACH_FRED_JACK
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_FRED_JACK
++# endif
++# define machine_is_fred_jack()	(machine_arch_type == MACH_TYPE_FRED_JACK)
++#else
++# define machine_is_fred_jack()	(0)
++#endif
++
++#ifdef CONFIG_MACH_TTG_COLOR1
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_TTG_COLOR1
++# endif
++# define machine_is_ttg_color1()	(machine_arch_type == MACH_TYPE_TTG_COLOR1)
++#else
++# define machine_is_ttg_color1()	(0)
++#endif
++
++#ifdef CONFIG_MACH_NXEB500HMI
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_NXEB500HMI
++# endif
++# define machine_is_nxeb500hmi()	(machine_arch_type == MACH_TYPE_NXEB500HMI)
++#else
++# define machine_is_nxeb500hmi()	(0)
++#endif
++
++#ifdef CONFIG_MACH_NETDCU8
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_NETDCU8
++# endif
++# define machine_is_netdcu8()	(machine_arch_type == MACH_TYPE_NETDCU8)
++#else
++# define machine_is_netdcu8()	(0)
++#endif
++
++#ifdef CONFIG_MACH_ML675050_CPU_BOA
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_ML675050_CPU_BOA
++# endif
++# define machine_is_ml675050_cpu_boa()	(machine_arch_type == MACH_TYPE_ML675050_CPU_BOA)
++#else
++# define machine_is_ml675050_cpu_boa()	(0)
++#endif
++
++#ifdef CONFIG_MACH_NG_FVX538
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_NG_FVX538
++# endif
++# define machine_is_ng_fvx538()	(machine_arch_type == MACH_TYPE_NG_FVX538)
++#else
++# define machine_is_ng_fvx538()	(0)
++#endif
++
++#ifdef CONFIG_MACH_NG_FVS338
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_NG_FVS338
++# endif
++# define machine_is_ng_fvs338()	(machine_arch_type == MACH_TYPE_NG_FVS338)
++#else
++# define machine_is_ng_fvs338()	(0)
++#endif
++
++#ifdef CONFIG_MACH_PNX4103
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_PNX4103
++# endif
++# define machine_is_pnx4103()	(machine_arch_type == MACH_TYPE_PNX4103)
++#else
++# define machine_is_pnx4103()	(0)
++#endif
++
++#ifdef CONFIG_MACH_HESDB
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_HESDB
++# endif
++# define machine_is_hesdb()	(machine_arch_type == MACH_TYPE_HESDB)
++#else
++# define machine_is_hesdb()	(0)
++#endif
++
++#ifdef CONFIG_MACH_XSILO
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_XSILO
++# endif
++# define machine_is_xsilo()	(machine_arch_type == MACH_TYPE_XSILO)
++#else
++# define machine_is_xsilo()	(0)
++#endif
++
++#ifdef CONFIG_MACH_ESPRESSO
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_ESPRESSO
++# endif
++# define machine_is_espresso()	(machine_arch_type == MACH_TYPE_ESPRESSO)
++#else
++# define machine_is_espresso()	(0)
++#endif
++
++#ifdef CONFIG_MACH_EMLC
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_EMLC
++# endif
++# define machine_is_emlc()	(machine_arch_type == MACH_TYPE_EMLC)
++#else
++# define machine_is_emlc()	(0)
++#endif
++
++#ifdef CONFIG_MACH_SISTERON
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_SISTERON
++# endif
++# define machine_is_sisteron()	(machine_arch_type == MACH_TYPE_SISTERON)
++#else
++# define machine_is_sisteron()	(0)
++#endif
++
++#ifdef CONFIG_MACH_RX1950
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_RX1950
++# endif
++# define machine_is_rx1950()	(machine_arch_type == MACH_TYPE_RX1950)
++#else
++# define machine_is_rx1950()	(0)
++#endif
++
++#ifdef CONFIG_MACH_TSC_VENUS
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_TSC_VENUS
++# endif
++# define machine_is_tsc_venus()	(machine_arch_type == MACH_TYPE_TSC_VENUS)
++#else
++# define machine_is_tsc_venus()	(0)
++#endif
++
++#ifdef CONFIG_MACH_DS101J
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_DS101J
++# endif
++# define machine_is_ds101j()	(machine_arch_type == MACH_TYPE_DS101J)
++#else
++# define machine_is_ds101j()	(0)
++#endif
++
++#ifdef CONFIG_MACH_MXC30030ADS
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_MXC30030ADS
++# endif
++# define machine_is_mxc30030ads()	(machine_arch_type == MACH_TYPE_MXC30030ADS)
++#else
++# define machine_is_mxc30030ads()	(0)
++#endif
++
++#ifdef CONFIG_MACH_FUJITSU_WIMAXSOC
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_FUJITSU_WIMAXSOC
++# endif
++# define machine_is_fujitsu_wimaxsoc()	(machine_arch_type == MACH_TYPE_FUJITSU_WIMAXSOC)
++#else
++# define machine_is_fujitsu_wimaxsoc()	(0)
++#endif
++
++#ifdef CONFIG_MACH_DUALPCMODEM
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_DUALPCMODEM
++# endif
++# define machine_is_dualpcmodem()	(machine_arch_type == MACH_TYPE_DUALPCMODEM)
++#else
++# define machine_is_dualpcmodem()	(0)
++#endif
++
++#ifdef CONFIG_MACH_GESBC9312
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_GESBC9312
++# endif
++# define machine_is_gesbc9312()	(machine_arch_type == MACH_TYPE_GESBC9312)
++#else
++# define machine_is_gesbc9312()	(0)
++#endif
++
++#ifdef CONFIG_MACH_HTCAPACHE
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_HTCAPACHE
++# endif
++# define machine_is_htcapache()	(machine_arch_type == MACH_TYPE_HTCAPACHE)
++#else
++# define machine_is_htcapache()	(0)
++#endif
++
++#ifdef CONFIG_MACH_IXDP435
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_IXDP435
++# endif
++# define machine_is_ixdp435()	(machine_arch_type == MACH_TYPE_IXDP435)
++#else
++# define machine_is_ixdp435()	(0)
++#endif
++
++#ifdef CONFIG_MACH_CATPROVT100
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_CATPROVT100
++# endif
++# define machine_is_catprovt100()	(machine_arch_type == MACH_TYPE_CATPROVT100)
++#else
++# define machine_is_catprovt100()	(0)
++#endif
++
++#ifdef CONFIG_MACH_PICOTUX1XX
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_PICOTUX1XX
++# endif
++# define machine_is_picotux1xx()	(machine_arch_type == MACH_TYPE_PICOTUX1XX)
++#else
++# define machine_is_picotux1xx()	(0)
++#endif
++
++#ifdef CONFIG_MACH_PICOTUX2XX
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_PICOTUX2XX
++# endif
++# define machine_is_picotux2xx()	(machine_arch_type == MACH_TYPE_PICOTUX2XX)
++#else
++# define machine_is_picotux2xx()	(0)
++#endif
++
++#ifdef CONFIG_MACH_DSMG600
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_DSMG600
++# endif
++# define machine_is_dsmg600()	(machine_arch_type == MACH_TYPE_DSMG600)
++#else
++# define machine_is_dsmg600()	(0)
++#endif
++
++#ifdef CONFIG_MACH_EMPC2
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_EMPC2
++# endif
++# define machine_is_empc2()	(machine_arch_type == MACH_TYPE_EMPC2)
++#else
++# define machine_is_empc2()	(0)
++#endif
++
++#ifdef CONFIG_MACH_VENTURA
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_VENTURA
++# endif
++# define machine_is_ventura()	(machine_arch_type == MACH_TYPE_VENTURA)
++#else
++# define machine_is_ventura()	(0)
++#endif
++
++#ifdef CONFIG_MACH_PHIDGET_SBC
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_PHIDGET_SBC
++# endif
++# define machine_is_phidget_sbc()	(machine_arch_type == MACH_TYPE_PHIDGET_SBC)
++#else
++# define machine_is_phidget_sbc()	(0)
++#endif
++
++#ifdef CONFIG_MACH_IJ3K
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_IJ3K
++# endif
++# define machine_is_ij3k()	(machine_arch_type == MACH_TYPE_IJ3K)
++#else
++# define machine_is_ij3k()	(0)
++#endif
++
++#ifdef CONFIG_MACH_PISGAH
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_PISGAH
++# endif
++# define machine_is_pisgah()	(machine_arch_type == MACH_TYPE_PISGAH)
++#else
++# define machine_is_pisgah()	(0)
++#endif
++
++#ifdef CONFIG_MACH_OMAP_FSAMPLE
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_OMAP_FSAMPLE
++# endif
++# define machine_is_omap_fsample()	(machine_arch_type == MACH_TYPE_OMAP_FSAMPLE)
++#else
++# define machine_is_omap_fsample()	(0)
++#endif
++
++#ifdef CONFIG_MACH_SG720
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_SG720
++# endif
++# define machine_is_sg720()	(machine_arch_type == MACH_TYPE_SG720)
++#else
++# define machine_is_sg720()	(0)
++#endif
++
++#ifdef CONFIG_MACH_REDFOX
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_REDFOX
++# endif
++# define machine_is_redfox()	(machine_arch_type == MACH_TYPE_REDFOX)
++#else
++# define machine_is_redfox()	(0)
++#endif
++
++#ifdef CONFIG_MACH_MYSH_EP9315_1
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_MYSH_EP9315_1
++# endif
++# define machine_is_mysh_ep9315_1()	(machine_arch_type == MACH_TYPE_MYSH_EP9315_1)
++#else
++# define machine_is_mysh_ep9315_1()	(0)
++#endif
++
++#ifdef CONFIG_MACH_TPF106
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_TPF106
++# endif
++# define machine_is_tpf106()	(machine_arch_type == MACH_TYPE_TPF106)
++#else
++# define machine_is_tpf106()	(0)
++#endif
++
++#ifdef CONFIG_MACH_AT91RM9200KG
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_AT91RM9200KG
++# endif
++# define machine_is_at91rm9200kg()	(machine_arch_type == MACH_TYPE_AT91RM9200KG)
++#else
++# define machine_is_at91rm9200kg()	(0)
++#endif
++
++#ifdef CONFIG_MACH_SLEDB
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_SLEDB
++# endif
++# define machine_is_racemt2()	(machine_arch_type == MACH_TYPE_SLEDB)
++#else
++# define machine_is_racemt2()	(0)
++#endif
++
++#ifdef CONFIG_MACH_ONTRACK
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_ONTRACK
++# endif
++# define machine_is_ontrack()	(machine_arch_type == MACH_TYPE_ONTRACK)
++#else
++# define machine_is_ontrack()	(0)
++#endif
++
++#ifdef CONFIG_MACH_PM1200
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_PM1200
++# endif
++# define machine_is_pm1200()	(machine_arch_type == MACH_TYPE_PM1200)
++#else
++# define machine_is_pm1200()	(0)
++#endif
++
++#ifdef CONFIG_MACH_ESS24XXX
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_ESS24XXX
++# endif
++# define machine_is_ess24562()	(machine_arch_type == MACH_TYPE_ESS24XXX)
++#else
++# define machine_is_ess24562()	(0)
++#endif
++
++#ifdef CONFIG_MACH_COREMP7
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_COREMP7
++# endif
++# define machine_is_coremp7()	(machine_arch_type == MACH_TYPE_COREMP7)
++#else
++# define machine_is_coremp7()	(0)
++#endif
++
++#ifdef CONFIG_MACH_NEXCODER_6446
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_NEXCODER_6446
++# endif
++# define machine_is_nexcoder_6446()	(machine_arch_type == MACH_TYPE_NEXCODER_6446)
++#else
++# define machine_is_nexcoder_6446()	(0)
++#endif
++
++#ifdef CONFIG_MACH_STVC8380
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_STVC8380
++# endif
++# define machine_is_stvc8380()	(machine_arch_type == MACH_TYPE_STVC8380)
++#else
++# define machine_is_stvc8380()	(0)
++#endif
++
++#ifdef CONFIG_MACH_TEKLYNX
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_TEKLYNX
++# endif
++# define machine_is_teklynx()	(machine_arch_type == MACH_TYPE_TEKLYNX)
++#else
++# define machine_is_teklynx()	(0)
++#endif
++
++#ifdef CONFIG_MACH_CARBONADO
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_CARBONADO
++# endif
++# define machine_is_carbonado()	(machine_arch_type == MACH_TYPE_CARBONADO)
++#else
++# define machine_is_carbonado()	(0)
++#endif
++
++#ifdef CONFIG_MACH_SYSMOS_MP730
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_SYSMOS_MP730
++# endif
++# define machine_is_sysmos_mp730()	(machine_arch_type == MACH_TYPE_SYSMOS_MP730)
++#else
++# define machine_is_sysmos_mp730()	(0)
++#endif
++
++#ifdef CONFIG_MACH_SNAPPER_CL15
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_SNAPPER_CL15
++# endif
++# define machine_is_snapper_cl15()	(machine_arch_type == MACH_TYPE_SNAPPER_CL15)
++#else
++# define machine_is_snapper_cl15()	(0)
++#endif
++
++#ifdef CONFIG_MACH_PGIGIM
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_PGIGIM
++# endif
++# define machine_is_pgigim()	(machine_arch_type == MACH_TYPE_PGIGIM)
++#else
++# define machine_is_pgigim()	(0)
++#endif
++
++#ifdef CONFIG_MACH_PTX9160P2
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_PTX9160P2
++# endif
++# define machine_is_ptx9160p2()	(machine_arch_type == MACH_TYPE_PTX9160P2)
++#else
++# define machine_is_ptx9160p2()	(0)
++#endif
++
++#ifdef CONFIG_MACH_DCORE1
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_DCORE1
++# endif
++# define machine_is_dcore1()	(machine_arch_type == MACH_TYPE_DCORE1)
++#else
++# define machine_is_dcore1()	(0)
++#endif
++
++#ifdef CONFIG_MACH_VICTORPXA
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_VICTORPXA
++# endif
++# define machine_is_victorpxa()	(machine_arch_type == MACH_TYPE_VICTORPXA)
++#else
++# define machine_is_victorpxa()	(0)
++#endif
++
++#ifdef CONFIG_MACH_MX2DTB
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_MX2DTB
++# endif
++# define machine_is_mx2dtb()	(machine_arch_type == MACH_TYPE_MX2DTB)
++#else
++# define machine_is_mx2dtb()	(0)
++#endif
++
++#ifdef CONFIG_MACH_PXA_IREX_ER0100
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_PXA_IREX_ER0100
++# endif
++# define machine_is_pxa_irex_er0100()	(machine_arch_type == MACH_TYPE_PXA_IREX_ER0100)
++#else
++# define machine_is_pxa_irex_er0100()	(0)
++#endif
++
++#ifdef CONFIG_MACH_OMAP_PALMZ71
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_OMAP_PALMZ71
++# endif
++# define machine_is_omap_palmz71()	(machine_arch_type == MACH_TYPE_OMAP_PALMZ71)
++#else
++# define machine_is_omap_palmz71()	(0)
++#endif
++
++#ifdef CONFIG_MACH_BARTEC_DEG
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_BARTEC_DEG
++# endif
++# define machine_is_bartec_deg()	(machine_arch_type == MACH_TYPE_BARTEC_DEG)
++#else
++# define machine_is_bartec_deg()	(0)
++#endif
++
++#ifdef CONFIG_MACH_HW50251
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_HW50251
++# endif
++# define machine_is_hw50251()	(machine_arch_type == MACH_TYPE_HW50251)
++#else
++# define machine_is_hw50251()	(0)
++#endif
++
++#ifdef CONFIG_MACH_IBOX
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_IBOX
++# endif
++# define machine_is_ibox()	(machine_arch_type == MACH_TYPE_IBOX)
++#else
++# define machine_is_ibox()	(0)
++#endif
++
++#ifdef CONFIG_MACH_ATLASLH7A404
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_ATLASLH7A404
++# endif
++# define machine_is_atlaslh7a404()	(machine_arch_type == MACH_TYPE_ATLASLH7A404)
++#else
++# define machine_is_atlaslh7a404()	(0)
++#endif
++
++#ifdef CONFIG_MACH_PT2026
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_PT2026
++# endif
++# define machine_is_pt2026()	(machine_arch_type == MACH_TYPE_PT2026)
++#else
++# define machine_is_pt2026()	(0)
++#endif
++
++#ifdef CONFIG_MACH_HTCALPINE
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_HTCALPINE
++# endif
++# define machine_is_htcalpine()	(machine_arch_type == MACH_TYPE_HTCALPINE)
++#else
++# define machine_is_htcalpine()	(0)
++#endif
++
++#ifdef CONFIG_MACH_BARTEC_VTU
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_BARTEC_VTU
++# endif
++# define machine_is_bartec_vtu()	(machine_arch_type == MACH_TYPE_BARTEC_VTU)
++#else
++# define machine_is_bartec_vtu()	(0)
++#endif
++
++#ifdef CONFIG_MACH_VCOREII
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_VCOREII
++# endif
++# define machine_is_vcoreii()	(machine_arch_type == MACH_TYPE_VCOREII)
++#else
++# define machine_is_vcoreii()	(0)
++#endif
++
++#ifdef CONFIG_MACH_PDNB3
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_PDNB3
++# endif
++# define machine_is_pdnb3()	(machine_arch_type == MACH_TYPE_PDNB3)
++#else
++# define machine_is_pdnb3()	(0)
++#endif
++
++#ifdef CONFIG_MACH_HTCBEETLES
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_HTCBEETLES
++# endif
++# define machine_is_htcbeetles()	(machine_arch_type == MACH_TYPE_HTCBEETLES)
++#else
++# define machine_is_htcbeetles()	(0)
++#endif
++
++#ifdef CONFIG_MACH_S3C6400
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_S3C6400
++# endif
++# define machine_is_s3c6400()	(machine_arch_type == MACH_TYPE_S3C6400)
++#else
++# define machine_is_s3c6400()	(0)
++#endif
++
++#ifdef CONFIG_MACH_S3C2443
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_S3C2443
++# endif
++# define machine_is_s3c2443()	(machine_arch_type == MACH_TYPE_S3C2443)
++#else
++# define machine_is_s3c2443()	(0)
++#endif
++
++#ifdef CONFIG_MACH_OMAP_LDK
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_OMAP_LDK
++# endif
++# define machine_is_omap_ldk()	(machine_arch_type == MACH_TYPE_OMAP_LDK)
++#else
++# define machine_is_omap_ldk()	(0)
++#endif
++
++#ifdef CONFIG_MACH_SMDK2460
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_SMDK2460
++# endif
++# define machine_is_smdk2460()	(machine_arch_type == MACH_TYPE_SMDK2460)
++#else
++# define machine_is_smdk2460()	(0)
++#endif
++
++#ifdef CONFIG_MACH_SMDK2440
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_SMDK2440
++# endif
++# define machine_is_smdk2440()	(machine_arch_type == MACH_TYPE_SMDK2440)
++#else
++# define machine_is_smdk2440()	(0)
++#endif
++
++#ifdef CONFIG_MACH_SMDK2412
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_SMDK2412
++# endif
++# define machine_is_smdk2412()	(machine_arch_type == MACH_TYPE_SMDK2412)
++#else
++# define machine_is_smdk2412()	(0)
++#endif
++
++#ifdef CONFIG_MACH_WEBBOX
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_WEBBOX
++# endif
++# define machine_is_webbox()	(machine_arch_type == MACH_TYPE_WEBBOX)
++#else
++# define machine_is_webbox()	(0)
++#endif
++
++#ifdef CONFIG_MACH_CWWNDP
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_CWWNDP
++# endif
++# define machine_is_cwwndp()	(machine_arch_type == MACH_TYPE_CWWNDP)
++#else
++# define machine_is_cwwndp()	(0)
++#endif
++
++#ifdef CONFIG_MACH_DRAGON
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_DRAGON
++# endif
++# define machine_is_dragon()	(machine_arch_type == MACH_TYPE_DRAGON)
++#else
++# define machine_is_dragon()	(0)
++#endif
++
++#ifdef CONFIG_MACH_OPENDO_CPU_BOARD
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_OPENDO_CPU_BOARD
++# endif
++# define machine_is_opendo_cpu_board()	(machine_arch_type == MACH_TYPE_OPENDO_CPU_BOARD)
++#else
++# define machine_is_opendo_cpu_board()	(0)
++#endif
++
++#ifdef CONFIG_MACH_CCM2200
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_CCM2200
++# endif
++# define machine_is_ccm2200()	(machine_arch_type == MACH_TYPE_CCM2200)
++#else
++# define machine_is_ccm2200()	(0)
++#endif
++
++#ifdef CONFIG_MACH_ETWARM
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_ETWARM
++# endif
++# define machine_is_etwarm()	(machine_arch_type == MACH_TYPE_ETWARM)
++#else
++# define machine_is_etwarm()	(0)
++#endif
++
++#ifdef CONFIG_MACH_M93030
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_M93030
++# endif
++# define machine_is_m93030()	(machine_arch_type == MACH_TYPE_M93030)
++#else
++# define machine_is_m93030()	(0)
++#endif
++
++#ifdef CONFIG_MACH_CC7U
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_CC7U
++# endif
++# define machine_is_cc7u()	(machine_arch_type == MACH_TYPE_CC7U)
++#else
++# define machine_is_cc7u()	(0)
++#endif
++
++#ifdef CONFIG_MACH_MTT_RANGER
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_MTT_RANGER
++# endif
++# define machine_is_mtt_ranger()	(machine_arch_type == MACH_TYPE_MTT_RANGER)
++#else
++# define machine_is_mtt_ranger()	(0)
++#endif
++
++#ifdef CONFIG_MACH_NEXUS
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_NEXUS
++# endif
++# define machine_is_nexus()	(machine_arch_type == MACH_TYPE_NEXUS)
++#else
++# define machine_is_nexus()	(0)
++#endif
++
++#ifdef CONFIG_MACH_DESMAN
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_DESMAN
++# endif
++# define machine_is_desman()	(machine_arch_type == MACH_TYPE_DESMAN)
++#else
++# define machine_is_desman()	(0)
++#endif
++
++#ifdef CONFIG_MACH_BKDE303
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_BKDE303
++# endif
++# define machine_is_bkde303()	(machine_arch_type == MACH_TYPE_BKDE303)
++#else
++# define machine_is_bkde303()	(0)
++#endif
++
++#ifdef CONFIG_MACH_SMDK2413
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_SMDK2413
++# endif
++# define machine_is_smdk2413()	(machine_arch_type == MACH_TYPE_SMDK2413)
++#else
++# define machine_is_smdk2413()	(0)
++#endif
++
++#ifdef CONFIG_MACH_AML_M7200
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_AML_M7200
++# endif
++# define machine_is_aml_m7200()	(machine_arch_type == MACH_TYPE_AML_M7200)
++#else
++# define machine_is_aml_m7200()	(0)
++#endif
++
++#ifdef CONFIG_MACH_AML_M5900
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_AML_M5900
++# endif
++# define machine_is_aml_m5900()	(machine_arch_type == MACH_TYPE_AML_M5900)
++#else
++# define machine_is_aml_m5900()	(0)
++#endif
++
++#ifdef CONFIG_MACH_SG640
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_SG640
++# endif
++# define machine_is_sg640()	(machine_arch_type == MACH_TYPE_SG640)
++#else
++# define machine_is_sg640()	(0)
++#endif
++
++#ifdef CONFIG_MACH_EDG79524
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_EDG79524
++# endif
++# define machine_is_edg79524()	(machine_arch_type == MACH_TYPE_EDG79524)
++#else
++# define machine_is_edg79524()	(0)
++#endif
++
++#ifdef CONFIG_MACH_AI2410
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_AI2410
++# endif
++# define machine_is_ai2410()	(machine_arch_type == MACH_TYPE_AI2410)
++#else
++# define machine_is_ai2410()	(0)
++#endif
++
++#ifdef CONFIG_MACH_IXP465
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_IXP465
++# endif
++# define machine_is_ixp465()	(machine_arch_type == MACH_TYPE_IXP465)
++#else
++# define machine_is_ixp465()	(0)
++#endif
++
++#ifdef CONFIG_MACH_BALLOON3
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_BALLOON3
++# endif
++# define machine_is_balloon3()	(machine_arch_type == MACH_TYPE_BALLOON3)
++#else
++# define machine_is_balloon3()	(0)
++#endif
++
++#ifdef CONFIG_MACH_HEINS
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_HEINS
++# endif
++# define machine_is_heins()	(machine_arch_type == MACH_TYPE_HEINS)
++#else
++# define machine_is_heins()	(0)
++#endif
++
++#ifdef CONFIG_MACH_MPLUSEVA
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_MPLUSEVA
++# endif
++# define machine_is_mpluseva()	(machine_arch_type == MACH_TYPE_MPLUSEVA)
++#else
++# define machine_is_mpluseva()	(0)
++#endif
++
++#ifdef CONFIG_MACH_RT042
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_RT042
++# endif
++# define machine_is_rt042()	(machine_arch_type == MACH_TYPE_RT042)
++#else
++# define machine_is_rt042()	(0)
++#endif
++
++#ifdef CONFIG_MACH_CWIEM
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_CWIEM
++# endif
++# define machine_is_cwiem()	(machine_arch_type == MACH_TYPE_CWIEM)
++#else
++# define machine_is_cwiem()	(0)
++#endif
++
++#ifdef CONFIG_MACH_CM_X270
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_CM_X270
++# endif
++# define machine_is_cm_x270()	(machine_arch_type == MACH_TYPE_CM_X270)
++#else
++# define machine_is_cm_x270()	(0)
++#endif
++
++#ifdef CONFIG_MACH_CM_X255
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_CM_X255
++# endif
++# define machine_is_cm_x255()	(machine_arch_type == MACH_TYPE_CM_X255)
++#else
++# define machine_is_cm_x255()	(0)
++#endif
++
++#ifdef CONFIG_MACH_ESH_AT91
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_ESH_AT91
++# endif
++# define machine_is_esh_at91()	(machine_arch_type == MACH_TYPE_ESH_AT91)
++#else
++# define machine_is_esh_at91()	(0)
++#endif
++
++#ifdef CONFIG_MACH_SANDGATE3
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_SANDGATE3
++# endif
++# define machine_is_sandgate3()	(machine_arch_type == MACH_TYPE_SANDGATE3)
++#else
++# define machine_is_sandgate3()	(0)
++#endif
++
++#ifdef CONFIG_MACH_PRIMO
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_PRIMO
++# endif
++# define machine_is_primo()	(machine_arch_type == MACH_TYPE_PRIMO)
++#else
++# define machine_is_primo()	(0)
++#endif
++
++#ifdef CONFIG_MACH_GEMSTONE
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_GEMSTONE
++# endif
++# define machine_is_gemstone()	(machine_arch_type == MACH_TYPE_GEMSTONE)
++#else
++# define machine_is_gemstone()	(0)
++#endif
++
++#ifdef CONFIG_MACH_PRONGHORNMETRO
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_PRONGHORNMETRO
++# endif
++# define machine_is_pronghorn_metro()	(machine_arch_type == MACH_TYPE_PRONGHORNMETRO)
++#else
++# define machine_is_pronghorn_metro()	(0)
++#endif
++
++#ifdef CONFIG_MACH_SIDEWINDER
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_SIDEWINDER
++# endif
++# define machine_is_sidewinder()	(machine_arch_type == MACH_TYPE_SIDEWINDER)
++#else
++# define machine_is_sidewinder()	(0)
++#endif
++
++#ifdef CONFIG_MACH_PICOMOD1
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_PICOMOD1
++# endif
++# define machine_is_picomod1()	(machine_arch_type == MACH_TYPE_PICOMOD1)
++#else
++# define machine_is_picomod1()	(0)
++#endif
++
++#ifdef CONFIG_MACH_SG590
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_SG590
++# endif
++# define machine_is_sg590()	(machine_arch_type == MACH_TYPE_SG590)
++#else
++# define machine_is_sg590()	(0)
++#endif
++
++#ifdef CONFIG_MACH_AKAI9307
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_AKAI9307
++# endif
++# define machine_is_akai9307()	(machine_arch_type == MACH_TYPE_AKAI9307)
++#else
++# define machine_is_akai9307()	(0)
++#endif
++
++#ifdef CONFIG_MACH_FONTAINE
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_FONTAINE
++# endif
++# define machine_is_fontaine()	(machine_arch_type == MACH_TYPE_FONTAINE)
++#else
++# define machine_is_fontaine()	(0)
++#endif
++
++#ifdef CONFIG_MACH_WOMBAT
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_WOMBAT
++# endif
++# define machine_is_wombat()	(machine_arch_type == MACH_TYPE_WOMBAT)
++#else
++# define machine_is_wombat()	(0)
++#endif
++
++#ifdef CONFIG_MACH_ACQ300
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_ACQ300
++# endif
++# define machine_is_acq300()	(machine_arch_type == MACH_TYPE_ACQ300)
++#else
++# define machine_is_acq300()	(0)
++#endif
++
++#ifdef CONFIG_MACH_MOD_270
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_MOD_270
++# endif
++# define machine_is_mod_270()	(machine_arch_type == MACH_TYPE_MOD_270)
++#else
++# define machine_is_mod_270()	(0)
++#endif
++
++#ifdef CONFIG_MACH_VC0820
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_VC0820
++# endif
++# define machine_is_vmc_vc0820()	(machine_arch_type == MACH_TYPE_VC0820)
++#else
++# define machine_is_vmc_vc0820()	(0)
++#endif
++
++#ifdef CONFIG_MACH_ANI_AIM
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_ANI_AIM
++# endif
++# define machine_is_ani_aim()	(machine_arch_type == MACH_TYPE_ANI_AIM)
++#else
++# define machine_is_ani_aim()	(0)
++#endif
++
++#ifdef CONFIG_MACH_JELLYFISH
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_JELLYFISH
++# endif
++# define machine_is_jellyfish()	(machine_arch_type == MACH_TYPE_JELLYFISH)
++#else
++# define machine_is_jellyfish()	(0)
++#endif
++
++#ifdef CONFIG_MACH_AMANITA
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_AMANITA
++# endif
++# define machine_is_amanita()	(machine_arch_type == MACH_TYPE_AMANITA)
++#else
++# define machine_is_amanita()	(0)
++#endif
++
++#ifdef CONFIG_MACH_VLINK
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type	__machine_arch_type
++# else
++#  define machine_arch_type	MACH_TYPE_VLINK
++# endif
++# define machine_is_vlink()	(machine_arch_type == MACH_TYPE_VLINK)
++#else
++# define machine_is_vlink()	(0)
++#endif
++
+ /*
+  * These have not yet been registered
+  */
+diff -Naur u-boot-1.1.4.org/include/config.h u-boot-1.1.4.tmp/include/config.h
+--- u-boot-1.1.4.org/include/config.h	2006-06-05 05:04:25.000000000 +0200
++++ u-boot-1.1.4.tmp/include/config.h	2006-06-05 05:03:47.000000000 +0200
+@@ -1,2 +1,2 @@
+ /* Automatically generated - do not edit */
+-#include <configs/at91rm9200dk.h>
++#include <configs/vlink.h>
+diff -Naur u-boot-1.1.4.org/include/config.mk u-boot-1.1.4.tmp/include/config.mk
+--- u-boot-1.1.4.org/include/config.mk	2006-06-05 05:04:25.000000000 +0200
++++ u-boot-1.1.4.tmp/include/config.mk	2006-06-05 05:03:47.000000000 +0200
+@@ -1,4 +1,4 @@
+ ARCH   = arm
+ CPU    = arm920t
+-BOARD  = at91rm9200dk
++BOARD  = vlink
+ SOC    = at91rm9200
+diff -Naur u-boot-1.1.4.org/include/configs/vlink.h u-boot-1.1.4.tmp/include/configs/vlink.h
+--- u-boot-1.1.4.org/include/configs/vlink.h	1970-01-01 01:00:00.000000000 +0100
++++ u-boot-1.1.4.tmp/include/configs/vlink.h	2006-06-05 03:37:15.000000000 +0200
+@@ -0,0 +1,244 @@
++/*
++ * Hamish Guthrie <hamish@prodigi.ch>
++ *
++ * Configuation settings for the Figment Designs Versalink board.
++ *
++ * See file CREDITS for list of people who contributed to this
++ * project.
++ *
++ * 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.
++ *
++ * This program is distributed in the hope that 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 __CONFIG_H
++#define __CONFIG_H
++
++// Added 2 defines to skip re-init lowlevel and relocate HCG HLH
++//
++#define CONFIG_SKIP_LOWLEVEL_INIT
++#define CONFIG_SKIP_RELOCATE_UBOOT
++
++/* ARM asynchronous clock */
++#define AT91C_MAIN_CLOCK	179712000	/* from 18.432 MHz crystal (18432000 / 4 * 39) */
++#define AT91C_MASTER_CLOCK	59904000	/* peripheral clock (AT91C_MASTER_CLOCK / 3) */
++/* #define AT91C_MASTER_CLOCK	44928000 */	/* peripheral clock (AT91C_MASTER_CLOCK / 4) */
++
++#define AT91_SLOW_CLOCK		32768	/* slow clock */
++
++#define CONFIG_ARM920T		1	/* This is an ARM920T Core	*/
++#define CONFIG_AT91RM9200	1	/* It's an Atmel AT91RM9200 SoC	*/
++#define CONFIG_VLINK		1	/* on a Versalink Board		*/
++#define CONFIG_IDENT_STRING 	" FDL Versalink"
++#undef  CONFIG_USE_IRQ			/* we don't need IRQ/FIQ stuff	*/
++#define USE_920T_MMU		1
++
++#define CONFIG_CMDLINE_TAG	1	/* enable passing of ATAGs	*/
++#define CONFIG_SETUP_MEMORY_TAGS 1
++#define CONFIG_INITRD_TAG	1
++
++#ifndef CONFIG_SKIP_LOWLEVEL_INIT
++#define CFG_USE_MAIN_OSCILLATOR		1
++/* flash */
++#define MC_PUIA_VAL	0x00000000
++#define MC_PUP_VAL	0x00000000
++#define MC_PUER_VAL	0x00000000
++#define MC_ASR_VAL	0x00000000
++#define MC_AASR_VAL	0x00000000
++#define EBI_CFGR_VAL	0x00000000
++#define SMC2_CSR_VAL	0x00003284 /* 16bit, 2 TDF, 4 WS */
++
++/* clocks */
++#define PLLAR_VAL	0x20263E04 /* 179.712000 MHz for PCK */
++#define PLLBR_VAL	0x10483E0E /* 48.054857 MHz (divider by 2 for USB) */
++#define MCKR_VAL	0x00000202 /* PCK/3 = MCK Master Clock = 59.904000MHz from PLLA */
++
++/* sdram */
++#define PIOC_ASR_VAL	0xFFFF0000 /* Configure PIOC as peripheral (D16/D31) */
++#define PIOC_BSR_VAL	0x00000000
++#define PIOC_PDR_VAL	0xFFFF0000
++#define EBI_CSA_VAL	0x00000002 /* CS1=SDRAM */
++#define SDRC_CR_VAL	0x2188c155 /* set up the SDRAM */
++#define SDRAM		0x20000000 /* address of the SDRAM */
++#define SDRAM1		0x20000080 /* address of the SDRAM */
++#define SDRAM_VAL	0x00000000 /* value written to SDRAM */
++#define SDRC_MR_VAL	0x00000002 /* Precharge All */
++#define SDRC_MR_VAL1	0x00000004 /* refresh */
++#define SDRC_MR_VAL2	0x00000003 /* Load Mode Register */
++#define SDRC_MR_VAL3	0x00000000 /* Normal Mode */
++#define SDRC_TR_VAL	0x000002E0 /* Write refresh rate */
++#endif	/* CONFIG_SKIP_LOWLEVEL_INIT */
++/*
++ * Size of malloc() pool
++ */
++#define CFG_MALLOC_LEN	(CFG_ENV_SIZE + 128*1024)
++#define CFG_GBL_DATA_SIZE	128	/* size in bytes reserved for initial data */
++
++#define CONFIG_BAUDRATE 115200
++
++/*
++ * Hardware drivers
++ */
++
++/* define one of these to choose the DBGU, USART0  or USART1 as console */
++#define CONFIG_DBGU
++#undef CONFIG_USART0
++#undef CONFIG_USART1
++
++#undef	CONFIG_HWFLOW			/* don't include RTS/CTS flow control support	*/
++
++#undef	CONFIG_MODEM_SUPPORT		/* disable modem initialization stuff */
++
++#define CONFIG_BOOTDELAY      3
++/* #define CONFIG_ENV_OVERWRITE	1 */
++
++#define CONFIG_COMMANDS		\
++		       ((CONFIG_CMD_DFL | CFG_CMD_MII |\
++			CFG_CMD_DHCP ) & \
++		      ~(CFG_CMD_BDI | \
++			CFG_CMD_IMI | \
++			CFG_CMD_AUTOSCRIPT | \
++			CFG_CMD_FPGA | \
++			CFG_CMD_MISC | \
++			CFG_CMD_LOADS ))
++
++/* this must be included AFTER the definition of CONFIG_COMMANDS (if any) */
++#include <cmd_confdefs.h>
++
++#ifndef CONFIG_VLINK
++#define CFG_MAX_NAND_DEVICE	1	/* Max number of NAND devices		*/
++#define SECTORSIZE 512
++
++#define ADDR_COLUMN 1
++#define ADDR_PAGE 2
++#define ADDR_COLUMN_PAGE 3
++
++#define NAND_ChipID_UNKNOWN	0x00
++#define NAND_MAX_FLOORS 1
++#define NAND_MAX_CHIPS 1
++
++#define AT91_SMART_MEDIA_ALE (1 << 22)	/* our ALE is AD22 */
++#define AT91_SMART_MEDIA_CLE (1 << 21)	/* our CLE is AD21 */
++
++#define NAND_DISABLE_CE(nand) do { *AT91C_PIOC_SODR = AT91C_PIO_PC0;} while(0)
++#define NAND_ENABLE_CE(nand) do { *AT91C_PIOC_CODR = AT91C_PIO_PC0;} while(0)
++
++#define NAND_WAIT_READY(nand) while (!(*AT91C_PIOC_PDSR & AT91C_PIO_PC2))
++
++#define WRITE_NAND_COMMAND(d, adr) do{ *(volatile __u8 *)((unsigned long)adr | AT91_SMART_MEDIA_CLE) = (__u8)(d); } while(0)
++#define WRITE_NAND_ADDRESS(d, adr) do{ *(volatile __u8 *)((unsigned long)adr | AT91_SMART_MEDIA_ALE) = (__u8)(d); } while(0)
++#define WRITE_NAND(d, adr) do{ *(volatile __u8 *)((unsigned long)adr) = (__u8)d; } while(0)
++#define READ_NAND(adr) ((volatile unsigned char)(*(volatile __u8 *)(unsigned long)adr))
++/* the following are NOP's in our implementation */
++#define NAND_CTL_CLRALE(nandptr)
++#define NAND_CTL_SETALE(nandptr)
++#define NAND_CTL_CLRCLE(nandptr)
++#define NAND_CTL_SETCLE(nandptr)
++#endif
++
++#define CONFIG_NR_DRAM_BANKS 1
++#define PHYS_SDRAM 0x20000000
++#define PHYS_SDRAM_SIZE 0x2000000  /* 32 megs */
++
++#define CFG_MEMTEST_START		PHYS_SDRAM
++#define CFG_MEMTEST_END			CFG_MEMTEST_START + PHYS_SDRAM_SIZE - 262144
++
++#define CONFIG_DRIVER_ETHER
++#define CONFIG_NET_RETRY_COUNT		20
++#define CONFIG_AT91C_USE_RMII
++
++#define CONFIG_HAS_DATAFLASH		1
++#define CFG_SPI_WRITE_TOUT		(5*CFG_HZ)
++#define CFG_MAX_DATAFLASH_BANKS 	2
++#define CFG_MAX_DATAFLASH_PAGES 	16384
++#define CFG_DATAFLASH_LOGIC_ADDR_CS0	0xC0000000	/* Logical adress for CS0 */
++#define CFG_DATAFLASH_LOGIC_ADDR_CS3	0xD0000000	/* Logical adress for CS3 */
++
++#ifdef CONFIG_VLINK
++#define PHYS_FLASH_1			0x10000000
++#define PHYS_FLASH_SIZE			0x200000  /* 2 megs main flash */
++#define CFG_FLASH_BASE			PHYS_FLASH_1
++#define CFG_MAX_FLASH_BANKS		1
++#define CFG_MAX_FLASH_SECT		256
++#define CFG_FLASH_ERASE_TOUT		(2*CFG_HZ) /* Timeout for Flash Erase */
++#define CFG_FLASH_WRITE_TOUT		(2*CFG_HZ) /* Timeout for Flash Write */
++#endif
++
++#define	CFG_ENV_IS_IN_DATAFLASH
++
++#ifdef CFG_ENV_IS_IN_DATAFLASH
++#define CFG_ENV_OFFSET			0x21000
++#define CFG_ENV_ADDR			(CFG_DATAFLASH_LOGIC_ADDR_CS0 + CFG_ENV_OFFSET)
++#define CFG_ENV_SIZE			0x8400  /* 0x8000 */
++#else
++#define CFG_ENV_IS_IN_FLASH		1
++#ifdef CONFIG_SKIP_LOWLEVEL_INIT
++#define CFG_ENV_ADDR			(PHYS_FLASH_1 + 0x60000)  /* after u-boot.bin */
++#define CFG_ENV_SIZE			0x10000 /* sectors are 64K here */
++#else
++#define CFG_ENV_ADDR			(PHYS_FLASH_1 + 0xe000)  /* between boot.bin and u-boot.bin.gz */
++#define CFG_ENV_SIZE			0x2000  /* 0x8000 */
++#endif	/* CONFIG_SKIP_LOWLEVEL_INIT */
++#endif	/* CFG_ENV_IS_IN_DATAFLASH */
++
++
++#define CFG_LOAD_ADDR		0x21000000  /* default load address */
++
++#ifdef CONFIG_SKIP_LOWLEVEL_INIT
++#define CFG_BOOT_SIZE		0x00 /* 0 KBytes */
++#define CFG_U_BOOT_BASE		PHYS_FLASH_1
++#define CFG_U_BOOT_SIZE		0x60000 /* 384 KBytes */
++#else
++#define CFG_BOOT_SIZE		0x6000 /* 24 KBytes */
++#define CFG_U_BOOT_BASE		(PHYS_FLASH_1 + 0x10000)
++#define CFG_U_BOOT_SIZE		0x10000 /* 64 KBytes */
++#endif	/* CONFIG_SKIP_LOWLEVEL_INIT */
++
++#define CFG_BAUDRATE_TABLE	{115200 , 19200, 38400, 57600, 9600 }
++
++#define CFG_PROMPT		"U-Boot> "	/* Monitor Command Prompt */
++#define CFG_CBSIZE		256		/* Console I/O Buffer Size */
++#define CFG_MAXARGS		16		/* max number of command args */
++#define CFG_PBSIZE		(CFG_CBSIZE+sizeof(CFG_PROMPT)+16) /* Print Buffer Size */
++
++#ifndef __ASSEMBLY__
++/*-----------------------------------------------------------------------
++ * Board specific extension for bd_info
++ *
++ * This structure is embedded in the global bd_info (bd_t) structure
++ * and can be used by the board specific code (eg board/...)
++ */
++
++struct bd_info_ext {
++	/* helper variable for board environment handling
++	 *
++	 * env_crc_valid == 0    =>   uninitialised
++	 * env_crc_valid  > 0    =>   environment crc in flash is valid
++	 * env_crc_valid  < 0    =>   environment crc in flash is invalid
++	 */
++	int env_crc_valid;
++};
++#endif
++
++#define CFG_HZ 1000
++#define CFG_HZ_CLOCK AT91C_MASTER_CLOCK/2	/* AT91C_TC0_CMR is implicitly set to */
++					/* AT91C_TC_TIMER_DIV1_CLOCK */
++
++#define CONFIG_STACKSIZE	(32*1024)	/* regular stack */
++
++#ifdef CONFIG_USE_IRQ
++#error CONFIG_USE_IRQ not supported
++#endif
++
++#endif
+diff -Naur u-boot-1.1.4.org/MAKEALL u-boot-1.1.4.tmp/MAKEALL
+--- u-boot-1.1.4.org/MAKEALL	2005-12-16 17:39:27.000000000 +0100
++++ u-boot-1.1.4.tmp/MAKEALL	2006-06-05 02:44:24.000000000 +0200
+@@ -180,7 +180,7 @@
+ 	mx1ads		mx1fs2		omap1510inn	omap1610h2	\
+ 	omap1610inn	omap730p2	scb9328		smdk2400	\
+ 	smdk2410	trab		VCMA9		versatile	\
+-	versatileab	versatilepb	voiceblue
++	versatileab	versatilepb	voiceblue	vlink
+ "
+ 
+ #########################################################################
+diff -Naur u-boot-1.1.4.org/Makefile u-boot-1.1.4.tmp/Makefile
+--- u-boot-1.1.4.org/Makefile	2006-06-02 15:58:57.000000000 +0200
++++ u-boot-1.1.4.tmp/Makefile	2006-06-05 04:40:45.000000000 +0200
+@@ -1419,6 +1419,9 @@
+ mp2usb_config	:	unconfig
+ 	@./mkconfig $(@:_config=) arm arm920t mp2usb NULL at91rm9200
+ 
++vlink_config	:	unconfig
++	@./mkconfig $(@:_config=) arm arm920t vlink NULL at91rm9200
++
+ 
+ ########################################################################
+ ## ARM Integrator boards - see doc/README-integrator for more info.
diff --git a/target/linux/at91-2.6/image/u-boot/patches/003-mac_init.patch b/target/linux/at91-2.6/image/u-boot/patches/003-mac_init.patch
new file mode 100644
index 0000000000000000000000000000000000000000..ec5dffa0cb59fffd6111276ce8489abd4810f7e6
--- /dev/null
+++ b/target/linux/at91-2.6/image/u-boot/patches/003-mac_init.patch
@@ -0,0 +1,14 @@
+--- u-boot-1.1.4.org/lib_arm/board.c	2006-06-05 12:36:22.000000000 +0200
++++ u-boot-1.1.4.tmp/lib_arm/board.c	2006-06-05 12:36:44.000000000 +0200
+@@ -332,6 +332,11 @@
+ 	}
+ #endif /* CONFIG_DRIVER_SMC91111 || CONFIG_DRIVER_LAN91C96 */
+ 
++#ifdef CONFIG_MACH_VLINK
++	printf("Initialising MAC address\n\r");
++	eth_init(gd->bd);
++#endif
++
+ 	/* Initialize from environment */
+ 	if ((s = getenv ("loadaddr")) != NULL) {
+ 		load_addr = simple_strtoul (s, NULL, 16);
diff --git a/target/linux/at91-2.6/image/u-boot/patches/004-mac_config.patch b/target/linux/at91-2.6/image/u-boot/patches/004-mac_config.patch
new file mode 100644
index 0000000000000000000000000000000000000000..73a8260d68a89f430d2c62ad6ae6f4e47a5c3e99
--- /dev/null
+++ b/target/linux/at91-2.6/image/u-boot/patches/004-mac_config.patch
@@ -0,0 +1,15 @@
+--- u-boot-1.1.4.ttt/include/configs/vlink.h	2006-06-05 15:57:37.000000000 +0200
++++ u-boot-1.1.4/include/configs/vlink.h	2006-06-07 13:11:01.000000000 +0200
+@@ -105,9 +105,9 @@
+ 
+ #define CONFIG_COMMANDS		\
+ 		       ((CONFIG_CMD_DFL | CFG_CMD_MII |\
+-			CFG_CMD_DHCP ) & \
+-		      ~(CFG_CMD_BDI | \
+-			CFG_CMD_IMI | \
++			CFG_CMD_DHCP | \
++			CFG_CMD_BDI ) & \
++		      ~(CFG_CMD_IMI | \
+ 			CFG_CMD_AUTOSCRIPT | \
+ 			CFG_CMD_FPGA | \
+ 			CFG_CMD_MISC | \
diff --git a/target/linux/at91-2.6/image/u-boot/patches/005-remove_float.patch b/target/linux/at91-2.6/image/u-boot/patches/005-remove_float.patch
new file mode 100644
index 0000000000000000000000000000000000000000..802c96339649a7a499b6ea5c8d6b894436bb48f4
--- /dev/null
+++ b/target/linux/at91-2.6/image/u-boot/patches/005-remove_float.patch
@@ -0,0 +1,13 @@
+diff -urN u-boot-1.1.4.old/cpu/arm920t/config.mk u-boot-1.1.4/cpu/arm920t/config.mk
+--- u-boot-1.1.4.old/cpu/arm920t/config.mk	2007-03-19 12:44:39.000000000 +0100
++++ u-boot-1.1.4/cpu/arm920t/config.mk	2007-03-20 09:23:54.000000000 +0100
+@@ -21,8 +21,7 @@
+ # MA 02111-1307 USA
+ #
+ 
+-PLATFORM_RELFLAGS += -fno-strict-aliasing  -fno-common -ffixed-r8 \
+-	-msoft-float
++PLATFORM_RELFLAGS += -fno-strict-aliasing  -fno-common -ffixed-r8 
+ 
+ PLATFORM_CPPFLAGS += -march=armv4
+ # =========================================================================