From 2eb7eb9b04a2dd1edeac24c789c4f56d09a43e20 Mon Sep 17 00:00:00 2001
From: Claudio Mignanti <c.mignanti@gmail.com>
Date: Thu, 22 Jul 2010 11:32:38 +0000
Subject: [at91] Add support for u-boot

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@22351 3c298f89-4303-0410-b956-a3cf2f4a3e73
---
 target/linux/at91/image/Config.in                  |    5 +-
 target/linux/at91/image/Makefile                   |    4 +
 target/linux/at91/image/u-boot/Makefile            |   12 +-
 .../image/u-boot/patches/001-lowlevel-config.patch |   91 -
 .../u-boot/patches/002-dataflash_machine.patch     | 6065 --------------------
 .../at91/image/u-boot/patches/003-mac_init.patch   |   14 -
 .../at91/image/u-boot/patches/004-mac_config.patch |   15 -
 .../image/u-boot/patches/005-remove_float.patch    |   13 -
 .../image/u-boot/patches/006-generate_params.patch |  115 -
 .../image/u-boot/patches/007-ubparams_bugfix.patch |   11 -
 .../image/u-boot/patches/008-ubparams_bugfix.patch |   10 -
 .../image/u-boot/patches/009-mac_init_bugfix.patch |   12 -
 .../u-boot/patches/010-irda-patch-remove.patch     |   13 -
 .../image/u-boot/patches/011-ubparams_update.patch |   19 -
 .../at91/image/u-boot/patches/012-make_3.81.patch  |   16 -
 .../u-boot/patches/013-params-in-config.patch      |   24 -
 .../image/u-boot/patches/014-ubparam-kernel.patch  |   11 -
 .../at91/image/u-boot/patches/015-eabi_fixes.patch |   52 -
 .../at91/image/u-boot/patches/100-netusg20.patch   |  574 ++
 .../at91/image/u-boot/patches/200-clock.patch      |   24 +
 20 files changed, 610 insertions(+), 6490 deletions(-)
 delete mode 100644 target/linux/at91/image/u-boot/patches/001-lowlevel-config.patch
 delete mode 100644 target/linux/at91/image/u-boot/patches/002-dataflash_machine.patch
 delete mode 100644 target/linux/at91/image/u-boot/patches/003-mac_init.patch
 delete mode 100644 target/linux/at91/image/u-boot/patches/004-mac_config.patch
 delete mode 100644 target/linux/at91/image/u-boot/patches/005-remove_float.patch
 delete mode 100644 target/linux/at91/image/u-boot/patches/006-generate_params.patch
 delete mode 100644 target/linux/at91/image/u-boot/patches/007-ubparams_bugfix.patch
 delete mode 100644 target/linux/at91/image/u-boot/patches/008-ubparams_bugfix.patch
 delete mode 100644 target/linux/at91/image/u-boot/patches/009-mac_init_bugfix.patch
 delete mode 100644 target/linux/at91/image/u-boot/patches/010-irda-patch-remove.patch
 delete mode 100644 target/linux/at91/image/u-boot/patches/011-ubparams_update.patch
 delete mode 100644 target/linux/at91/image/u-boot/patches/012-make_3.81.patch
 delete mode 100644 target/linux/at91/image/u-boot/patches/013-params-in-config.patch
 delete mode 100644 target/linux/at91/image/u-boot/patches/014-ubparam-kernel.patch
 delete mode 100644 target/linux/at91/image/u-boot/patches/015-eabi_fixes.patch
 create mode 100644 target/linux/at91/image/u-boot/patches/100-netusg20.patch
 create mode 100644 target/linux/at91/image/u-boot/patches/200-clock.patch

diff --git a/target/linux/at91/image/Config.in b/target/linux/at91/image/Config.in
index b5a06f6bbe..129c62164e 100644
--- a/target/linux/at91/image/Config.in
+++ b/target/linux/at91/image/Config.in
@@ -10,16 +10,14 @@ config AT91_UBOOT
 
 config UBOOT_TARGET
 	string "U-Boot target board"
-	depends TARGET_at91
 	depends AT91_UBOOT
-	default "vlink"
+	default "netusg20"
 	help
 	  For all supported boards there are ready-to-use default
 		configurations available; just type "<board_name>".
 
 config UBOOT_IPADDR
 	string "IP Address for U-Boot"
-	depends TARGET_at91
 	depends AT91_UBOOT
 	default "192.168.0.178"
 	help
@@ -27,7 +25,6 @@ config UBOOT_IPADDR
 
 config UBOOT_SERVERIP
 	string "IP Address of TFTP server"
-	depends TARGET_at91
 	depends AT91_UBOOT
 	default "192.168.0.232"
 	help
diff --git a/target/linux/at91/image/Makefile b/target/linux/at91/image/Makefile
index 433dad8c2c..711b932538 100644
--- a/target/linux/at91/image/Makefile
+++ b/target/linux/at91/image/Makefile
@@ -8,9 +8,13 @@ include $(TOPDIR)/rules.mk
 include $(INCLUDE_DIR)/image.mk
 
 define Build/Clean
+	$(MAKE) -C u-boot clean
 endef
 
 define Build/Compile
+	if [ $(CONFIG_AT91_UBOOT) ]; then \
+		$(MAKE) -C u-boot compile; \
+	fi
 endef
 
 define Image/Prepare
diff --git a/target/linux/at91/image/u-boot/Makefile b/target/linux/at91/image/u-boot/Makefile
index 89a2be0494..1d1b31455a 100644
--- a/target/linux/at91/image/u-boot/Makefile
+++ b/target/linux/at91/image/u-boot/Makefile
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 include $(INCLUDE_DIR)/kernel.mk
 
 PKG_NAME:=u-boot
-PKG_VERSION:=1.1.4
+PKG_VERSION:=2010.06
 PKG_RELEASE:=1
 
 PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
@@ -34,16 +34,18 @@ define Build/Compile
 	$(CP) ./ubclient/* $(PKG_BUILD_DIR)/ubclient
 	export LAN_IP=$(LAN_IP); \
 	export LAN_SERVERIP=$(LAN_SERVERIP); \
-	$(MAKE) -C $(PKG_BUILD_DIR)/ubclient \
-		$(TARGET_CONFIGURE_OPTS) \
-		CFLAGS="$(TARGET_CFLAGS) -Dtarget_$(BOARD)=1"
+	#$(MAKE) -C $(PKG_BUILD_DIR)/ubclient \
+	#	$(TARGET_CONFIGURE_OPTS) \
+	#	CFLAGS="$(TARGET_CFLAGS) -Dtarget_$(BOARD)=1"
 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
 #	$(INSTALL_DIR) $(STAGING_DIR)/ubclient/sbin
 #	$(INSTALL_BIN) $(PKG_BUILD_DIR)/ubclient/ubpar $(STAGING_DIR)/ubclient/sbin/
-	$(CP) $(PKG_BUILD_DIR)/ubclient/ubpar ../../base-files/sbin
+#	$(CP) $(PKG_BUILD_DIR)/ubclient/ubpar ../../base-files/sbin
+	mkdir -p $(BIN_DIR)/
+	cp $(PKG_BUILD_DIR)/u-boot.bin $(BIN_DIR)/u-boot.$(PKG_VERSION).bin
 endef
 
 $(eval $(call Build/DefaultTargets))
diff --git a/target/linux/at91/image/u-boot/patches/001-lowlevel-config.patch b/target/linux/at91/image/u-boot/patches/001-lowlevel-config.patch
deleted file mode 100644
index 25f92e4963..0000000000
--- a/target/linux/at91/image/u-boot/patches/001-lowlevel-config.patch
+++ /dev/null
@@ -1,91 +0,0 @@
---- 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/image/u-boot/patches/002-dataflash_machine.patch b/target/linux/at91/image/u-boot/patches/002-dataflash_machine.patch
deleted file mode 100644
index cf7648c522..0000000000
--- a/target/linux/at91/image/u-boot/patches/002-dataflash_machine.patch
+++ /dev/null
@@ -1,6065 +0,0 @@
-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/image/u-boot/patches/003-mac_init.patch b/target/linux/at91/image/u-boot/patches/003-mac_init.patch
deleted file mode 100644
index ec5dffa0cb..0000000000
--- a/target/linux/at91/image/u-boot/patches/003-mac_init.patch
+++ /dev/null
@@ -1,14 +0,0 @@
---- 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/image/u-boot/patches/004-mac_config.patch b/target/linux/at91/image/u-boot/patches/004-mac_config.patch
deleted file mode 100644
index 73a8260d68..0000000000
--- a/target/linux/at91/image/u-boot/patches/004-mac_config.patch
+++ /dev/null
@@ -1,15 +0,0 @@
---- 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/image/u-boot/patches/005-remove_float.patch b/target/linux/at91/image/u-boot/patches/005-remove_float.patch
deleted file mode 100644
index 802c963396..0000000000
--- a/target/linux/at91/image/u-boot/patches/005-remove_float.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-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
- # =========================================================================
diff --git a/target/linux/at91/image/u-boot/patches/006-generate_params.patch b/target/linux/at91/image/u-boot/patches/006-generate_params.patch
deleted file mode 100644
index d4427c3ecd..0000000000
--- a/target/linux/at91/image/u-boot/patches/006-generate_params.patch
+++ /dev/null
@@ -1,115 +0,0 @@
---- u-boot-1.1.4.old/tools/Makefile	2007-03-22 18:17:25.000000000 +0100
-+++ u-boot-1.1.4/tools/Makefile	2007-03-22 17:08:46.000000000 +0100
-@@ -21,9 +21,9 @@
- # MA 02111-1307 USA
- #
- 
--BINS	= img2srec$(SFX) mkimage$(SFX) envcrc$(SFX) gen_eth_addr$(SFX) bmp_logo$(SFX)
-+BINS	= img2srec$(SFX) mkimage$(SFX) envcrc$(SFX) gen_eth_addr$(SFX) bmp_logo$(SFX) ubparams$(SFX)
- 
--OBJS	= environment.o img2srec.o mkimage.o crc32.o envcrc.o gen_eth_addr.o bmp_logo.o
-+OBJS	= environment.o img2srec.o mkimage.o crc32.o envcrc.o gen_eth_addr.o bmp_logo.o ubparams.o
- 
- ifeq ($(ARCH),mips)
- BINS   += inca-swap-bytes$(SFX)
-@@ -118,6 +118,9 @@
- 
- all:	.depend $(BINS) $(LOGO_H) subdirs
- 
-+ubparams$(SFX): ubparams.o crc32.o
-+		$(CC) $(CFLAGS) -o $@ $^
-+
- envcrc$(SFX):	envcrc.o crc32.o environment.o
- 		$(CC) $(CFLAGS) -o $@ $^
- 
-@@ -149,6 +152,9 @@
- 		$(CC) $(CFLAGS) $(HOST_LDFLAGS) -o $@ $^
- 		$(STRIP) $@
- 
-+ubparams.o: ubparams.c
-+		$(CC) -g $(CFLAGS) -c $<
-+
- envcrc.o:	envcrc.c
- 		$(CC) -g $(CFLAGS) -c $<
- 
---- u-boot-1.1.4.old/tools/ubparams.c	1970-01-01 01:00:00.000000000 +0100
-+++ u-boot-1.1.4/tools/ubparams.c	2007-03-22 18:09:52.000000000 +0100
-@@ -0,0 +1,78 @@
-+/*
-+ * ubparams.c
-+ * 
-+ * Generate a u-boot parameter block with correct crc
-+ *
-+ * (C) 1007 Guthrie Consulting
-+ * hamish@prodigi.ch
-+ *
-+ */
-+
-+#include <stdio.h>
-+#include <stdlib.h>
-+#include <string.h>
-+
-+#ifndef __ASSEMBLY__
-+#define __ASSEMBLY__
-+#endif
-+#define __ASM_STUB_PROCESSOR_H__
-+#include <config.h>
-+#undef __ASSEMBLY__
-+#include "environment.h"
-+
-+#define XMK_STR(x)  #x
-+#define MK_STR(x)  XMK_STR(x)
-+
-+extern unsigned long crc32 (unsigned long, const unsigned char *, unsigned int);
-+
-+#if !defined(ENV_CRC)
-+#define ENV_CRC ~0
-+#endif
-+
-+unsigned int env_size = 0x8400;
-+env_t environment = {
-+	ENV_CRC,
-+	"bootdelay=3\0"
-+	"baudrate=115200\0"
-+	"stdin=serial\0"
-+	"stdout=serial\0"
-+	"stderr=serial\0"
-+	"partitions=mtdparts=AT45DB642.spi0:132k(bootloader),33k(ubparams),99k(spare),1056k(linux),2112k(rootfs),33k(nvram),-(rootfs_data)\0"
-+	"fbargs=setenv bootargs mtdparts=AT45DB642.spi0:132k(bootloader),33k(ubparams),99k(spare),1056k(linux),2112k(rootfs),33k(nvram),-(rootfs_data) root=/dev/mtdblock4 ro console=/dev/ttyS0,115200,mem=32M\0"
-+	"rdba=setenv bootargs mtdparts=AT45DB642.spi0:132k(bootloader),33k(ubparams),99k(spare),1056k(linux),2112k(rootfs),33k(nvram),-(rootfs_data) root=/dev/ram rw initrd=0x21200000,6000000 ramdisk_size=20000 console=/dev/ttyS0,115200,mem=32M\0"
-+	"rdram=run rdba; tftp 21000000 vImage; tftp 21200000 root.squashfs; bootm 21000000\0"
-+	"flash=run fbargs; bootm 0xc0042000\0"
-+	"bootargs=setenv bootargs mtdparts=AT45DB642.spi0:132k(bootloader),33k(ubparams),99k(spare),1056k(linux),2112k(rootfs),33k(nvram),-(rootfs_data) root=/dev/mtdblock4 ro console=/dev/ttyS0,115200,mem=32M\0"
-+	"bootcmd=bootm 0xc0042000\0"
-+	"ethaddr=00:30:49:00:00:01\0"
-+	"ipaddr=10.0.1.73\0"
-+	"serverip=10.0.1.210\0"
-+	"serial#=MX070205484\0"
-+	"\0"
-+	};
-+
-+int main(void) {
-+	env_t *envptr, *source;
-+	unsigned char *dataptr;
-+	FILE *params;
-+
-+	source = &environment;
-+	envptr = (env_t *)malloc(CFG_ENV_SIZE);
-+	dataptr = (unsigned char *)envptr + ENV_HEADER_SIZE;
-+
-+	printf("Make u-boot params\n");
-+	printf("Params size is %d\n", CFG_ENV_SIZE);
-+
-+	memset(envptr, 0, CFG_ENV_SIZE);
-+	memcpy(envptr, source, sizeof(environment));
-+
-+	envptr->crc = crc32(0, envptr->data, ENV_SIZE);
-+
-+	params = fopen("params", "w");
-+	fwrite(envptr, CFG_ENV_SIZE, 1, params);
-+	fclose(params);
-+
-+	free(envptr);
-+	}
-+	
-+	
diff --git a/target/linux/at91/image/u-boot/patches/007-ubparams_bugfix.patch b/target/linux/at91/image/u-boot/patches/007-ubparams_bugfix.patch
deleted file mode 100644
index 3d069e4d39..0000000000
--- a/target/linux/at91/image/u-boot/patches/007-ubparams_bugfix.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- u-boot-1.1.4.old/tools/ubparams.c	2007-03-22 18:09:52.000000000 +0100
-+++ u-boot-1.1.4/tools/ubparams.c	2007-03-22 18:29:32.000000000 +0100
-@@ -18,7 +18,7 @@
- #define __ASM_STUB_PROCESSOR_H__
- #include <config.h>
- #undef __ASSEMBLY__
--#include "environment.h"
-+#include <environment.h>
- 
- #define XMK_STR(x)  #x
- #define MK_STR(x)  XMK_STR(x)
diff --git a/target/linux/at91/image/u-boot/patches/008-ubparams_bugfix.patch b/target/linux/at91/image/u-boot/patches/008-ubparams_bugfix.patch
deleted file mode 100644
index 9a16e1998f..0000000000
--- a/target/linux/at91/image/u-boot/patches/008-ubparams_bugfix.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- u-boot-1.1.4.old/tools/ubparams.c	2007-03-23 10:51:17.000000000 +0100
-+++ u-boot-1.1.4/tools/ubparams.c	2007-03-23 10:49:37.000000000 +0100
-@@ -73,6 +73,7 @@
- 	fclose(params);
- 
- 	free(envptr);
-+	return 0;
- 	}
- 	
- 	
diff --git a/target/linux/at91/image/u-boot/patches/009-mac_init_bugfix.patch b/target/linux/at91/image/u-boot/patches/009-mac_init_bugfix.patch
deleted file mode 100644
index a36ebe3251..0000000000
--- a/target/linux/at91/image/u-boot/patches/009-mac_init_bugfix.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -urN u-boot-1.1.4.old/lib_arm/board.c u-boot-1.1.4/lib_arm/board.c
---- u-boot-1.1.4.old/lib_arm/board.c	2007-03-23 10:53:52.000000000 +0100
-+++ u-boot-1.1.4/lib_arm/board.c	2007-03-24 13:17:12.000000000 +0100
-@@ -332,7 +332,7 @@
- 	}
- #endif /* CONFIG_DRIVER_SMC91111 || CONFIG_DRIVER_LAN91C96 */
- 
--#ifdef CONFIG_MACH_VLINK
-+#ifdef CONFIG_VLINK
- 	printf("Initialising MAC address\n\r");
- 	eth_init(gd->bd);
- #endif
diff --git a/target/linux/at91/image/u-boot/patches/010-irda-patch-remove.patch b/target/linux/at91/image/u-boot/patches/010-irda-patch-remove.patch
deleted file mode 100644
index 2f23f5b38b..0000000000
--- a/target/linux/at91/image/u-boot/patches/010-irda-patch-remove.patch
+++ /dev/null
@@ -1,13 +0,0 @@
---- u-boot-1.1.4.old/board/vlink/vlink.c	2007-04-03 11:42:39.000000000 +0200
-+++ u-boot-1.1.4/board/vlink/vlink.c	2007-04-03 11:48:33.000000000 +0200
-@@ -40,10 +40,6 @@
- 	/* 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 */
- 
diff --git a/target/linux/at91/image/u-boot/patches/011-ubparams_update.patch b/target/linux/at91/image/u-boot/patches/011-ubparams_update.patch
deleted file mode 100644
index de02cc88c0..0000000000
--- a/target/linux/at91/image/u-boot/patches/011-ubparams_update.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-diff -urN u-boot-1.1.4.old/tools/ubparams.c u-boot-1.1.4/tools/ubparams.c
---- u-boot-1.1.4.old/tools/ubparams.c	2007-05-01 13:20:17.000000000 +0200
-+++ u-boot-1.1.4/tools/ubparams.c	2007-05-04 10:13:34.000000000 +0200
-@@ -37,12 +37,11 @@
- 	"stdin=serial\0"
- 	"stdout=serial\0"
- 	"stderr=serial\0"
--	"partitions=mtdparts=AT45DB642.spi0:132k(bootloader),33k(ubparams),99k(spare),1056k(linux),2112k(rootfs),33k(nvram),-(rootfs_data)\0"
--	"fbargs=setenv bootargs mtdparts=AT45DB642.spi0:132k(bootloader),33k(ubparams),99k(spare),1056k(linux),2112k(rootfs),33k(nvram),-(rootfs_data) root=/dev/mtdblock4 ro console=/dev/ttyS0,115200,mem=32M\0"
--	"rdba=setenv bootargs mtdparts=AT45DB642.spi0:132k(bootloader),33k(ubparams),99k(spare),1056k(linux),2112k(rootfs),33k(nvram),-(rootfs_data) root=/dev/ram rw initrd=0x21200000,6000000 ramdisk_size=20000 console=/dev/ttyS0,115200,mem=32M\0"
-+	"fbargs=setenv bootargs root=/dev/mtdblock3 ro console=/dev/ttyS0,115200,mem=32M\0"
-+	"rdba=setenv bootargs root=/dev/ram rw initrd=0x21200000,6000000 ramdisk_size=20000 console=/dev/ttyS0,115200,mem=32M\0"
- 	"rdram=run rdba; tftp 21000000 vImage; tftp 21200000 root.squashfs; bootm 21000000\0"
- 	"flash=run fbargs; bootm 0xc0042000\0"
--	"bootargs=setenv bootargs mtdparts=AT45DB642.spi0:132k(bootloader),33k(ubparams),99k(spare),1056k(linux),2112k(rootfs),33k(nvram),-(rootfs_data) root=/dev/mtdblock4 ro console=/dev/ttyS0,115200,mem=32M\0"
-+	"bootargs=setenv bootargs root=/dev/mtdblock3 ro console=/dev/ttyS0,115200,mem=32M\0"
- 	"bootcmd=bootm 0xc0042000\0"
- 	"ethaddr=00:30:49:00:00:01\0"
- 	"ipaddr=10.0.1.73\0"
diff --git a/target/linux/at91/image/u-boot/patches/012-make_3.81.patch b/target/linux/at91/image/u-boot/patches/012-make_3.81.patch
deleted file mode 100644
index 767493f901..0000000000
--- a/target/linux/at91/image/u-boot/patches/012-make_3.81.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-diff -urN u-boot-1.1.4.orig/examples/Makefile u-boot-1.1.4/examples/Makefile
---- u-boot-1.1.4.orig/examples/Makefile	2007-05-13 13:45:44.000000000 +0200
-+++ u-boot-1.1.4/examples/Makefile	2007-05-13 13:48:43.000000000 +0200
-@@ -123,10 +123,10 @@
- 	$(LD) -g $(EX_LDFLAGS) -Ttext $(LOAD_ADDR) \
- 		-o $@ -e $(<:.o=) $< $(LIB) \
- 		-L$(gcclibdir) -lgcc
--%.srec:	%
-+%.srec:	%.o
- 	$(OBJCOPY) -O srec $< $@ 2>/dev/null
- 
--%.bin:	%
-+%.bin:	%.o
- 	$(OBJCOPY) -O binary $< $@ 2>/dev/null
- 
- #########################################################################
diff --git a/target/linux/at91/image/u-boot/patches/013-params-in-config.patch b/target/linux/at91/image/u-boot/patches/013-params-in-config.patch
deleted file mode 100644
index 5f42209238..0000000000
--- a/target/linux/at91/image/u-boot/patches/013-params-in-config.patch
+++ /dev/null
@@ -1,24 +0,0 @@
---- u-boot-1.1.4.old/tools/Makefile	2007-06-13 13:35:59.000000000 +0200
-+++ u-boot-1.1.4/tools/Makefile	2007-06-14 15:33:04.000000000 +0200
-@@ -153,7 +153,7 @@
- 		$(STRIP) $@
- 
- ubparams.o: ubparams.c
--		$(CC) -g $(CFLAGS) -c $<
-+		$(CC) -g $(CFLAGS) -DLAN_IP=$(LAN_IP) -DLAN_SERVERIP=$(LAN_SERVERIP) -c $<
- 
- envcrc.o:	envcrc.c
- 		$(CC) -g $(CFLAGS) -c $<
---- u-boot-1.1.4.old/tools/ubparams.c	2007-06-13 13:35:59.000000000 +0200
-+++ u-boot-1.1.4/tools/ubparams.c	2007-06-14 15:31:55.000000000 +0200
-@@ -44,8 +44,8 @@
- 	"bootargs=setenv bootargs root=/dev/mtdblock3 ro console=/dev/ttyS0,115200,mem=32M\0"
- 	"bootcmd=bootm 0xc0042000\0"
- 	"ethaddr=00:30:49:00:00:01\0"
--	"ipaddr=10.0.1.73\0"
--	"serverip=10.0.1.210\0"
-+	"ipaddr=" MK_STR(LAN_IP) "\0"
-+	"serverip=" MK_STR(LAN_SERVERIP) "\0"
- 	"serial#=MX070205484\0"
- 	"\0"
- 	};
diff --git a/target/linux/at91/image/u-boot/patches/014-ubparam-kernel.patch b/target/linux/at91/image/u-boot/patches/014-ubparam-kernel.patch
deleted file mode 100644
index 26f03474e1..0000000000
--- a/target/linux/at91/image/u-boot/patches/014-ubparam-kernel.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- u-boot-1.1.4.old/tools/ubparams.c	2007-06-19 14:24:39.000000000 +0200
-+++ u-boot-1.1.4/tools/ubparams.c	2007-06-19 14:25:05.000000000 +0200
-@@ -39,7 +39,7 @@
- 	"stderr=serial\0"
- 	"fbargs=setenv bootargs root=/dev/mtdblock3 ro console=/dev/ttyS0,115200,mem=32M\0"
- 	"rdba=setenv bootargs root=/dev/ram rw initrd=0x21200000,6000000 ramdisk_size=20000 console=/dev/ttyS0,115200,mem=32M\0"
--	"rdram=run rdba; tftp 21000000 vImage; tftp 21200000 root.squashfs; bootm 21000000\0"
-+	"rdram=run rdba; tftp 21000000 uImage; tftp 21200000 root.squashfs; bootm 21000000\0"
- 	"flash=run fbargs; bootm 0xc0042000\0"
- 	"bootargs=setenv bootargs root=/dev/mtdblock3 ro console=/dev/ttyS0,115200,mem=32M\0"
- 	"bootcmd=bootm 0xc0042000\0"
diff --git a/target/linux/at91/image/u-boot/patches/015-eabi_fixes.patch b/target/linux/at91/image/u-boot/patches/015-eabi_fixes.patch
deleted file mode 100644
index ec94a4b40f..0000000000
--- a/target/linux/at91/image/u-boot/patches/015-eabi_fixes.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-Index: git/lib_arm/div0.c
-===================================================================
---- git.orig/lib_arm/div0.c
-+++ git/lib_arm/div0.c
-@@ -22,9 +22,3 @@
-  */
- 
- /* Replacement (=dummy) for GNU/Linux division-by zero handler */
--void __div0 (void)
--{
--	extern void hang (void);
--
--	hang();
--}
-Index: git/Makefile
-===================================================================
---- git.orig/Makefile
-+++ git/Makefile
-@@ -225,7 +225,7 @@ LIBS := $(addprefix $(obj),$(LIBS))
- .PHONY : $(LIBS)
- 
- # Add GCC lib
--PLATFORM_LIBS += -L $(shell dirname `$(CC) $(CFLAGS) -print-libgcc-file-name`) -lgcc
-+PLATFORM_LIBS += -L $(shell dirname `$(CC) $(CFLAGS) -print-libgcc-file-name`) -lgcc -lgcc_eh
- 
- # The "tools" are needed early, so put this first
- # Don't include stuff already done in $(LIBS)
---- a/board/vlink/vlink.c	2009-10-29 16:40:33.000000000 +0100
-+++ b/board/vlink/vlink.c	2009-10-29 16:43:27.000000000 +0100
-@@ -33,6 +33,9 @@
-  * Miscelaneous platform dependent initialisations
-  */
- 
-+void raise() {}
-+void abort() {}
-+
- int board_init (void)
- {
- 	DECLARE_GLOBAL_DATA_PTR;
---- a/board/vlink/u-boot.lds	2009-10-29 16:40:33.000000000 +0100
-+++ b/board/vlink/u-boot.lds	2009-10-29 16:43:57.000000000 +0100
-@@ -38,6 +38,10 @@
- 
- 	. = ALIGN(4);
- 	.rodata : { *(.rodata) }
-+	.ARM.extab   : { *(.ARM.extab* .gnu.linkonce.armextab.*) }
-+	__exidx_start = .;
-+	.ARM.exidx   : { *(.ARM.exidx* .gnu.linkonce.armexidx.*) }
-+	__exidx_end = .;
- 
- 	. = ALIGN(4);
- 	.data : { *(.data) }
diff --git a/target/linux/at91/image/u-boot/patches/100-netusg20.patch b/target/linux/at91/image/u-boot/patches/100-netusg20.patch
new file mode 100644
index 0000000000..127372e8f3
--- /dev/null
+++ b/target/linux/at91/image/u-boot/patches/100-netusg20.patch
@@ -0,0 +1,574 @@
+Add support for the NetusG20 board by Acmesystems srl.
+This board is based on AT91SAM9G20 SoC.
+
+Signed-off-by: Claudio Mignanti <c.mignanti@gmail.com>
+---
+ MAKEALL                                           |    1 +
+ Makefile                                          |    3 +
+ arch/arm/cpu/arm926ejs/at91/at91sam9260_devices.c |    5 +
+ board/acmesystems/netusg20/Makefile               |   56 +++++++
+ board/acmesystems/netusg20/config.mk              |    1 +
+ board/acmesystems/netusg20/led.c                  |   40 +++++
+ board/acmesystems/netusg20/netusg20.c             |  152 +++++++++++++++++
+ board/acmesystems/netusg20/partition.c            |   39 +++++
+ include/configs/netusg20.h                        |  181 +++++++++++++++++++++
+ 9 files changed, 478 insertions(+), 0 deletions(-)
+ create mode 100644 board/acmesystems/netusg20/Makefile
+ create mode 100644 board/acmesystems/netusg20/config.mk
+ create mode 100644 board/acmesystems/netusg20/led.c
+ create mode 100644 board/acmesystems/netusg20/netusg20.c
+ create mode 100644 board/acmesystems/netusg20/partition.c
+ create mode 100644 include/configs/netusg20.h
+
+diff --git a/MAKEALL b/MAKEALL
+index d6d5f5b..60e36e1 100755
+--- a/MAKEALL
++++ b/MAKEALL
+@@ -684,6 +684,7 @@ LIST_at91="			\
+ 	meesc			\
+ 	mp2usb			\
+ 	m501sk			\
++	netusg20		\
+ 	otc570			\
+ 	pm9261			\
+ 	pm9263			\
+diff --git a/Makefile b/Makefile
+index 87d5214..b73659f 100644
+--- a/Makefile
++++ b/Makefile
+@@ -2867,6 +2867,9 @@ at91sam9g45ekes_config	:	unconfig
+ 	fi;
+ 	@$(MKCONFIG) -a at91sam9m10g45ek arm arm926ejs at91sam9m10g45ek atmel at91
+ 
++netusg20_config:	unconfig
++	@$(MKCONFIG) $(@:_config=) arm arm926ejs netusg20 acmesystems at91
++
+ otc570_config	:	unconfig
+ 	@$(MKCONFIG) $(@:_config=) arm arm926ejs otc570 esd at91
+ 
+diff --git a/arch/arm/cpu/arm926ejs/at91/at91sam9260_devices.c b/arch/arm/cpu/arm926ejs/at91/at91sam9260_devices.c
+index 77d49ab..87ec531 100644
+--- a/arch/arm/cpu/arm926ejs/at91/at91sam9260_devices.c
++++ b/arch/arm/cpu/arm926ejs/at91/at91sam9260_devices.c
+@@ -59,7 +59,12 @@ void at91_serial3_hw_init(void)
+ {
+ 	at91_pmc_t	*pmc	= (at91_pmc_t *) AT91_PMC_BASE;
+ 
++#ifdef CONFIG_NETUSG20
++	/* pull-up active on DRXD*/
++	at91_set_a_periph(AT91_PIO_PORTB, 14, 1);
++#else
+ 	at91_set_a_periph(AT91_PIO_PORTB, 14, 0);		/* DRXD */
++#endif
+ 	at91_set_a_periph(AT91_PIO_PORTB, 15, 1);		/* DTXD */
+ 	writel(1 << AT91_ID_SYS, &pmc->pcer);
+ }
+diff --git a/board/acmesystems/netusg20/Makefile b/board/acmesystems/netusg20/Makefile
+new file mode 100644
+index 0000000..31589fd
+--- /dev/null
++++ b/board/acmesystems/netusg20/Makefile
+@@ -0,0 +1,56 @@
++#
++# (C) Copyright 2003-2008
++# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
++#
++# (C) Copyright 2008
++# Stelian Pop <stelian.pop@leadtechdesign.com>
++# Lead Tech Design <www.leadtechdesign.com>
++#
++# 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	= $(obj)lib$(BOARD).a
++
++COBJS-y	+= netusg20.o
++COBJS-y	+= led.o
++COBJS-y	+= partition.o
++
++SRCS	:= $(SOBJS:.o=.S) $(COBJS-y:.o=.c)
++OBJS	:= $(addprefix $(obj),$(COBJS-y))
++SOBJS	:= $(addprefix $(obj),$(SOBJS))
++
++$(LIB):	$(obj).depend $(OBJS) $(SOBJS)
++	$(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
++
++clean:
++	rm -f $(SOBJS) $(OBJS)
++
++distclean:	clean
++	rm -f $(LIB) core *.bak $(obj).depend
++
++#########################################################################
++
++# defines $(obj).depend target
++include $(SRCTREE)/rules.mk
++
++sinclude $(obj).depend
++
++#########################################################################
+diff --git a/board/acmesystems/netusg20/config.mk b/board/acmesystems/netusg20/config.mk
+new file mode 100644
+index 0000000..ff2cfd1
+--- /dev/null
++++ b/board/acmesystems/netusg20/config.mk
+@@ -0,0 +1 @@
++TEXT_BASE = 0x23f00000
+diff --git a/board/acmesystems/netusg20/led.c b/board/acmesystems/netusg20/led.c
+new file mode 100644
+index 0000000..1016b98
+--- /dev/null
++++ b/board/acmesystems/netusg20/led.c
+@@ -0,0 +1,40 @@
++/*
++ * (C) Copyright 2007-2008
++ * Stelian Pop <stelian.pop@leadtechdesign.com>
++ * Lead Tech Design <www.leadtechdesign.com>
++ *
++ * 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/at91sam9260.h>
++#include <asm/arch/at91_pmc.h>
++#include <asm/arch/gpio.h>
++#include <asm/arch/io.h>
++
++
++void coloured_LED_init(void)
++{
++	/* Enable clock */
++	at91_sys_write(AT91_PMC_PCER, 1 << AT91SAM9260_ID_PIOA);
++
++	at91_set_gpio_output(CONFIG_RED_LED, 1);
++
++	at91_set_gpio_value(CONFIG_RED_LED, 1);
++}
+diff --git a/board/acmesystems/netusg20/netusg20.c b/board/acmesystems/netusg20/netusg20.c
+new file mode 100644
+index 0000000..94b4d4c
+--- /dev/null
++++ b/board/acmesystems/netusg20/netusg20.c
+@@ -0,0 +1,152 @@
++/*
++ * (C) Copyright 2007-2008
++ * Stelian Pop <stelian.pop@leadtechdesign.com>
++ * Lead Tech Design <www.leadtechdesign.com>
++ *
++ * (C) Copyright 2010
++ * Claudio Mignanti <c.mignanti@gmail.com>
++ *
++ * 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/at91sam9260.h>
++#include <asm/arch/at91sam9260_matrix.h>
++#include <asm/arch/at91sam9_smc.h>
++#include <asm/arch/at91_common.h>
++#include <asm/arch/at91_pmc.h>
++#include <asm/arch/at91_rstc.h>
++#include <asm/arch/gpio.h>
++#include <asm/arch/io.h>
++#include <asm/arch/hardware.h>
++#if defined(CONFIG_RESET_PHY_R) && defined(CONFIG_MACB)
++#include <net.h>
++#endif
++#include <netdev.h>
++
++DECLARE_GLOBAL_DATA_PTR;
++
++/* ------------------------------------------------------------------------- */
++/*
++ * Miscelaneous platform dependent initialisations
++ */
++
++#ifdef CONFIG_MACB
++static void at91sam9260ek_macb_hw_init(void)
++{
++	unsigned long rstc;
++
++	/* Enable clock */
++	at91_sys_write(AT91_PMC_PCER, 1 << AT91SAM9260_ID_EMAC);
++
++	/*
++	 * Disable pull-up on:
++	 *	RXDV (PA17) => PHY normal mode (not Test mode)
++	 *	ERX0 (PA14) => PHY ADDR0
++	 *	ERX1 (PA15) => PHY ADDR1
++	 *	ERX2 (PA25) => PHY ADDR2
++	 *	ERX3 (PA26) => PHY ADDR3
++	 *	ECRS (PA28) => PHY ADDR4  => PHYADDR = 0x0
++	 *
++	 * PHY has internal pull-down
++	 */
++	writel(pin_to_mask(AT91_PIN_PA14) |
++	       pin_to_mask(AT91_PIN_PA15) |
++	       pin_to_mask(AT91_PIN_PA17) |
++	       pin_to_mask(AT91_PIN_PA25) |
++	       pin_to_mask(AT91_PIN_PA26) |
++	       pin_to_mask(AT91_PIN_PA28),
++	       pin_to_controller(AT91_PIN_PA0) + PIO_PUDR);
++
++	rstc = at91_sys_read(AT91_RSTC_MR) & AT91_RSTC_ERSTL;
++
++	at91_sys_write(AT91_RSTC_CR, AT91_RSTC_KEY | AT91_RSTC_EXTRST);
++
++	/* Wait for end hardware reset */
++	while (!(at91_sys_read(AT91_RSTC_SR) & AT91_RSTC_NRSTL));
++
++	/* Restore NRST value */
++	at91_sys_write(AT91_RSTC_MR, AT91_RSTC_KEY |
++				     (rstc) |
++				     AT91_RSTC_URSTEN);
++
++	/* Re-enable pull-up */
++	writel(pin_to_mask(AT91_PIN_PA14) |
++	       pin_to_mask(AT91_PIN_PA15) |
++	       pin_to_mask(AT91_PIN_PA17) |
++	       pin_to_mask(AT91_PIN_PA25) |
++	       pin_to_mask(AT91_PIN_PA26) |
++	       pin_to_mask(AT91_PIN_PA28),
++	       pin_to_controller(AT91_PIN_PA0) + PIO_PUER);
++
++	at91_macb_hw_init();
++}
++#endif
++
++int board_init(void)
++{
++	/* Enable Ctrlc */
++	console_init_f();
++
++	gd->bd->bi_arch_number = MACH_TYPE_AT91SAM9G20EK;
++
++	/* adress of boot parameters */
++	gd->bd->bi_boot_params = PHYS_SDRAM + 0x100;
++
++	at91_serial_hw_init();
++#ifdef CONFIG_HAS_DATAFLASH
++	at91_spi0_hw_init((1 << 0) | (1 << 1));
++#endif
++#ifdef CONFIG_MACB
++	at91sam9260ek_macb_hw_init();
++#endif
++
++	return 0;
++}
++
++int dram_init(void)
++{
++	gd->bd->bi_dram[0].start = PHYS_SDRAM;
++	gd->bd->bi_dram[0].size = PHYS_SDRAM_SIZE;
++	return 0;
++}
++
++#ifdef CONFIG_RESET_PHY_R
++void reset_phy(void)
++{
++#ifdef CONFIG_MACB
++	/*
++	 * Initialize ethernet HW addr prior to starting Linux,
++	 * needed for nfsroot
++	 */
++	eth_init(gd->bd);
++#endif
++}
++#endif
++
++int board_eth_init(bd_t *bis)
++{
++	int rc = 0;
++#ifdef CONFIG_MACB
++	rc = macb_eth_initialize(0, (void *)AT91SAM9260_BASE_EMAC, 0x00);
++#endif
++	return rc;
++}
++
++void show_boot_progress (int val){}
+diff --git a/board/acmesystems/netusg20/partition.c b/board/acmesystems/netusg20/partition.c
+new file mode 100644
+index 0000000..7d79e53
+--- /dev/null
++++ b/board/acmesystems/netusg20/partition.c
+@@ -0,0 +1,39 @@
++/*
++ * (C) Copyright 2008
++ * Ulf Samuelsson <ulf@atmel.com>
++ *
++ * 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 <config.h>
++#include <asm/hardware.h>
++#include <dataflash.h>
++
++AT91S_DATAFLASH_INFO dataflash_info[CONFIG_SYS_MAX_DATAFLASH_BANKS];
++
++struct dataflash_addr cs[CONFIG_SYS_MAX_DATAFLASH_BANKS] = {
++	{CONFIG_SYS_DATAFLASH_LOGIC_ADDR_CS1, 1}
++};
++
++/*define the area offsets*/
++dataflash_protect_t area_list[NB_DATAFLASH_AREA] = {
++	{0x00000000, 0x000041FF, FLAG_PROTECT_SET,   0, "Bootstrap"},
++	{0x00004200, 0x000083FF, FLAG_PROTECT_CLEAR, 0, "Environment"},
++	{0x00008400, 0x00041FFF, FLAG_PROTECT_SET,   0, "U-Boot"},
++	{0x00042000, 0x00251FFF, FLAG_PROTECT_CLEAR, 0,	"Kernel"},
++	{0x00252000, 0xFFFFFFFF, FLAG_PROTECT_CLEAR, 0,	"FS"},
++};
+diff --git a/include/configs/netusg20.h b/include/configs/netusg20.h
+new file mode 100644
+index 0000000..99b4f12
+--- /dev/null
++++ b/include/configs/netusg20.h
+@@ -0,0 +1,181 @@
++/*
++ * (C) Copyright 2007-2008
++ * Stelian Pop <stelian.pop@leadtechdesign.com>
++ * Lead Tech Design <www.leadtechdesign.com>
++ *
++ * Configuation settings for the NetusG20 boards.
++ *
++ * 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
++
++#define CONFIG_AT91_LEGACY
++
++/* ARM asynchronous clock */
++#define CONFIG_SYS_AT91_MAIN_CLOCK	18432000	/* 18.432 MHz crystal */
++#define CONFIG_SYS_HZ		1000
++
++#define CONFIG_DISPLAY_CPUINFO
++
++#define CONFIG_ARM926EJS	1	/* This is an ARM926EJS Core	*/
++#define CONFIG_AT91SAM9G20	1	/* It's an Atmel AT91SAM9G20 SoC*/
++#define CONFIG_NETUSG20	1
++
++#define CONFIG_ARCH_CPU_INIT
++#undef CONFIG_USE_IRQ			/* we don't need IRQ/FIQ stuff	*/
++
++#define CONFIG_CMDLINE_TAG	1	/* enable passing of ATAGs	*/
++#define CONFIG_SETUP_MEMORY_TAGS 1
++#define CONFIG_INITRD_TAG	1
++
++#define CONFIG_SKIP_LOWLEVEL_INIT
++#define CONFIG_SKIP_RELOCATE_UBOOT
++
++/*
++ * Hardware drivers
++ */
++#define CONFIG_AT91_GPIO	1
++#define CONFIG_ATMEL_USART	1
++#undef CONFIG_USART0
++#undef CONFIG_USART1
++#undef CONFIG_USART2
++#define CONFIG_USART3		1	/* USART 3 is DBGU */
++
++/* LED */
++#define CONFIG_AT91_LED
++#define	CONFIG_RED_LED		AT91_PIN_PA9	/* this is the power led */
++#define	CONFIG_GREEN_LED	AT91_PIN_PA6	/* this is the user led */
++
++#define CONFIG_BOOTDELAY	3
++
++/*
++ * BOOTP options
++ */
++#define CONFIG_BOOTP_BOOTFILESIZE	1
++#define CONFIG_BOOTP_BOOTPATH		1
++#define CONFIG_BOOTP_GATEWAY		1
++#define CONFIG_BOOTP_HOSTNAME		1
++
++/*
++ * Command line configuration.
++ */
++#include <config_cmd_default.h>
++#undef CONFIG_CMD_BDI
++#undef CONFIG_CMD_FPGA
++#undef CONFIG_CMD_IMI
++#undef CONFIG_CMD_IMLS
++#undef CONFIG_CMD_LOADS
++#undef CONFIG_CMD_SOURCE
++
++#define CONFIG_CMD_PING		1
++#define CONFIG_CMD_DHCP		1
++#define CONFIG_CMD_USB		1
++
++/* SDRAM */
++#define CONFIG_NR_DRAM_BANKS		1
++#define PHYS_SDRAM			0x20000000
++#define PHYS_SDRAM_SIZE			0x04000000	/* 64 megs */
++
++/* DataFlash */
++#define CONFIG_ATMEL_DATAFLASH_SPI
++#define CONFIG_HAS_DATAFLASH		1
++#define CONFIG_SYS_SPI_WRITE_TOUT		(5*CONFIG_SYS_HZ)
++#define CONFIG_SYS_MAX_DATAFLASH_BANKS		1
++#define CONFIG_SYS_DATAFLASH_LOGIC_ADDR_CS1	0xD0000000	/* CS1 */
++#define AT91_SPI_CLK			15000000
++
++#define DATAFLASH_TCSS			(0x22 << 16)
++#define DATAFLASH_TCHS			(0x1 << 24)
++
++/* no NAND flash on this board*/
++#define CONFIG_SYS_NO_FLASH
++
++/* Ethernet */
++#define CONFIG_MACB			1
++#define CONFIG_RMII			1
++#define CONFIG_NET_MULTI		1
++#define CONFIG_NET_RETRY_COUNT		20
++#define CONFIG_RESET_PHY_R		1
++
++/* MMC */
++#define CONFIG_MMC
++#define CONFIG_CMD_MMC
++#define CONFIG_ATMEL_MCI
++#define CONFIG_CMD_AUTOSCRIPT
++#define CONFIG_CMD_IMI
++#define CONFIG_CMD_SOURCE
++
++#define MMCI_BASE						0xFFFA8000
++
++/* USB */
++#define CONFIG_USB_ATMEL
++#define CONFIG_USB_OHCI_NEW		1
++#define CONFIG_DOS_PARTITION		1
++#define CONFIG_SYS_USB_OHCI_CPU_INIT		1
++#define CONFIG_SYS_USB_OHCI_REGS_BASE		0x00500000	/* AT91SAM9260_UHP_BASE */
++#define CONFIG_SYS_USB_OHCI_SLOT_NAME		"at91sam9260"
++#define CONFIG_SYS_USB_OHCI_MAX_ROOT_PORTS	2
++#define CONFIG_USB_STORAGE		1
++
++#define CONFIG_SYS_LOAD_ADDR			0x22000000	/* load address */
++
++#define CONFIG_SYS_MEMTEST_START		PHYS_SDRAM
++#define CONFIG_SYS_MEMTEST_END			0x23e00000
++
++/* Filesystem */
++#define CONFIG_CMD_FAT		1
++#define CONFIG_CMD_EXT2		1
++
++/* bootstrap + u-boot + env + linux in dataflash on CS1 */
++#define CONFIG_ENV_IS_IN_DATAFLASH	1
++#define CONFIG_SYS_MONITOR_BASE	(CONFIG_SYS_DATAFLASH_LOGIC_ADDR_CS1 + 0x8400)
++#define CONFIG_ENV_OFFSET		0x4200
++#define CONFIG_ENV_ADDR		(CONFIG_SYS_DATAFLASH_LOGIC_ADDR_CS1 + CONFIG_ENV_OFFSET)
++#define CONFIG_ENV_SIZE		0x4200
++#define CONFIG_BOOTCOMMAND	"mmc init; sleep 1; " \
++                            "ext2load mmc 0 0x20000000 uImage; " \
++                            "source 0x20000000"
++#define CONFIG_BOOTARGS		"mem=64M console=ttyS0,115200 " \
++                            "root=/dev/mmcblk0p1 rootwait"
++
++#define CONFIG_BAUDRATE		115200
++#define CONFIG_SYS_BAUDRATE_TABLE	{115200 , 19200, 38400, 57600, 9600 }
++
++#define CONFIG_SYS_PROMPT		"U-Boot> "
++#define CONFIG_SYS_CBSIZE		256
++#define CONFIG_SYS_MAXARGS		16
++#define CONFIG_SYS_PBSIZE		(CONFIG_SYS_CBSIZE + sizeof(CONFIG_SYS_PROMPT) + 16)
++#define CONFIG_SYS_LONGHELP		1
++#define CONFIG_CMDLINE_EDITING	1
++
++/*
++ * Size of malloc() pool
++ */
++#define CONFIG_SYS_MALLOC_LEN		ROUND(3 * CONFIG_ENV_SIZE + 128*1024, 0x1000)
++#define CONFIG_SYS_GBL_DATA_SIZE	128	/* 128 bytes for initial data */
++
++#define CONFIG_STACKSIZE	(32*1024)	/* regular stack */
++
++#ifdef CONFIG_USE_IRQ
++#error CONFIG_USE_IRQ not supported
++#endif
++
++#endif
+-- 
+1.7.0.4
+
+
diff --git a/target/linux/at91/image/u-boot/patches/200-clock.patch b/target/linux/at91/image/u-boot/patches/200-clock.patch
new file mode 100644
index 0000000000..fbfb6415e6
--- /dev/null
+++ b/target/linux/at91/image/u-boot/patches/200-clock.patch
@@ -0,0 +1,24 @@
+The function get_mci_clk_rate is used inside atmel_mci driver
+but never defined. Fix this typo.
+
+Signed-off-by: Claudio Mignanti <c.mignanti@gmail.com>
+---
+ drivers/mmc/atmel_mci.c |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/drivers/mmc/atmel_mci.c b/drivers/mmc/atmel_mci.c
+index 3946ffe..628aac9 100644
+--- a/drivers/mmc/atmel_mci.c
++++ b/drivers/mmc/atmel_mci.c
+@@ -67,7 +67,7 @@ static void mci_set_mode(unsigned long hz, unsigned long blklen)
+ 	unsigned long bus_hz;
+ 	unsigned long clkdiv;
+ 
+-	bus_hz = get_mci_clk_rate();
++	bus_hz = get_mck_clk_rate();
+ 	clkdiv = (bus_hz / hz) / 2 - 1;
+ 
+ 	pr_debug("mmc: setting clock %lu Hz, block size %lu\n",
+-- 
+1.7.0.4
+
-- 
cgit v1.2.3