[U-Boot] [PATCH] Added support for TMQ CAPD Board from Genesys Design <www.genesysdesign.com.au>

Jared Holzman j.holzman at genesysdesign.com.au
Fri Nov 14 06:02:21 CET 2008


---
 Makefile                      |    3 +
 board/tmq/tmq_capd/Makefile   |   61 +++
 board/tmq/tmq_capd/config.mk  |    1 +
 board/tmq/tmq_capd/led.c      |   56 +++
 board/tmq/tmq_capd/nand.c     |   83 +++++
 board/tmq/tmq_capd/tmq_capd.c |  259 +++++++++++++
 include/asm-arm/mach-types.h  |  808 ++++++++++++++++++++++++++++++++++++++++-
 include/configs/tmq_capd.h    |  165 +++++++++
 tools/Makefile                |    3 +
 tools/logos/tmqlogo.bmp       |  Bin 0 -> 20254 bytes
 10 files changed, 1438 insertions(+), 1 deletions(-)
 create mode 100644 board/tmq/tmq_capd/Makefile
 create mode 100644 board/tmq/tmq_capd/config.mk
 create mode 100644 board/tmq/tmq_capd/led.c
 create mode 100644 board/tmq/tmq_capd/nand.c
 create mode 100644 board/tmq/tmq_capd/tmq_capd.c
 create mode 100644 include/configs/tmq_capd.h
 create mode 100644 tools/logos/tmqlogo.bmp

diff --git a/Makefile b/Makefile
index e4a184f..dae3903 100644
--- a/Makefile
+++ b/Makefile
@@ -2587,6 +2587,9 @@ at91sam9263ek_config	:	unconfig
 at91sam9rlek_config	:	unconfig
 	@$(MKCONFIG) $(@:_config=) arm arm926ejs at91sam9rlek atmel at91
 
+tmq_capd_config		:	unconfig
+	@$(MKCONFIG) $(@:_config=) arm arm926ejs tmq_capd tmq at91
+
 ########################################################################
 ## ARM Integrator boards - see doc/README-integrator for more info.
 integratorap_config	\
diff --git a/board/tmq/tmq_capd/Makefile b/board/tmq/tmq_capd/Makefile
new file mode 100644
index 0000000..3eee33a
--- /dev/null
+++ b/board/tmq/tmq_capd/Makefile
@@ -0,0 +1,61 @@
+#
+# (C) Copyright 2008-2009
+# Jared Holzman <j.holzman at genesysdesign.com.au>
+# Genesys Design <www.genesysdesign.com.au>
+# Copied from code by Stelian Pop (Original Copyright Below)
+#
+# (C) Copyright 2003-2008
+# Wolfgang Denk, DENX Software Engineering, wd at denx.de.
+#
+# (C) Copyright 2008
+# Stelian Pop <stelian.pop at 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 += tmq_capd.o
+COBJS-y += led.o
+COBJS-$(CONFIG_CMD_NAND) += nand.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/tmq/tmq_capd/config.mk b/board/tmq/tmq_capd/config.mk
new file mode 100644
index 0000000..9ce161e
--- /dev/null
+++ b/board/tmq/tmq_capd/config.mk
@@ -0,0 +1 @@
+TEXT_BASE = 0x21f00000
diff --git a/board/tmq/tmq_capd/led.c b/board/tmq/tmq_capd/led.c
new file mode 100644
index 0000000..38acdd5
--- /dev/null
+++ b/board/tmq/tmq_capd/led.c
@@ -0,0 +1,56 @@
+/*
+ * (C) Copyright 2008-2009
+ * Jared Holzman <j.holzman at genesysdesign.com.au>
+ * Genesys Design <www.genesysdesign.com.au>
+ * Copied from code by Stelian Pop (Original Copyright Below)
+ *
+ * (C) Copyright 2007-2008
+ * Stelian Pop <stelian.pop at 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/at91sam9263.h>
+#include <asm/arch/at91_pmc.h>
+#include <asm/arch/gpio.h>
+#include <asm/arch/io.h>
+
+#define	RED_LED		AT91_PIN_PE16	/* this is the power led */
+
+void red_LED_on(void)
+{
+	at91_set_gpio_value(RED_LED, 1);
+}
+
+void red_LED_off(void)
+{
+	at91_set_gpio_value(RED_LED, 0);
+}
+
+void coloured_LED_init(void)
+{
+	/* Enable clock */
+	at91_sys_write(AT91_PMC_PCER, 1 << AT91SAM9263_ID_PIOCDE);
+
+	at91_set_gpio_output(RED_LED, 1);
+
+	at91_set_gpio_value(RED_LED, 0);
+}
diff --git a/board/tmq/tmq_capd/nand.c b/board/tmq/tmq_capd/nand.c
new file mode 100644
index 0000000..2ac4cc7
--- /dev/null
+++ b/board/tmq/tmq_capd/nand.c
@@ -0,0 +1,83 @@
+/*
+ * (C) Copyright 2008-2009
+ * Jared Holzman <j.holzman at genesysdesign.com.au>
+ * Genesys Design <www.genesysdesign.com.au>
+ * Copied from code by Stelian Pop (Original Copyright Below)
+ *
+ * (C) Copyright 2007-2008
+ * Stelian Pop <stelian.pop at leadtechdesign.com>
+ * Lead Tech Design <www.leadtechdesign.com>
+ *
+ * (C) Copyright 2006 ATMEL Rousset, Lacressonniere Nicolas
+ *
+ * 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/at91sam9263.h>
+#include <asm/arch/gpio.h>
+#include <asm/arch/at91_pio.h>
+
+#include <nand.h>
+
+/*
+ *	hardware specific access to control-lines
+ */
+#define	MASK_ALE	(1 << 21)	/* our ALE is AD21 */
+#define	MASK_CLE	(1 << 22)	/* our CLE is AD22 */
+
+static void capd_nand_hwcontrol(struct mtd_info *mtd,
+					 int cmd, unsigned int ctrl)
+{
+	struct nand_chip *this = mtd->priv;
+
+	if (ctrl & NAND_CTRL_CHANGE) {
+		ulong IO_ADDR_W = (ulong) this->IO_ADDR_W;
+		IO_ADDR_W &= ~(MASK_ALE | MASK_CLE);
+
+		if (ctrl & NAND_CLE)
+			IO_ADDR_W |= MASK_CLE;
+		if (ctrl & NAND_ALE)
+			IO_ADDR_W |= MASK_ALE;
+
+		at91_set_gpio_value(AT91_PIN_PD15, !(ctrl & NAND_NCE));
+		this->IO_ADDR_W = (void *) IO_ADDR_W;
+	}
+
+	if (cmd != NAND_CMD_NONE)
+		writeb(cmd, this->IO_ADDR_W);
+}
+
+static int capd_nand_ready(struct mtd_info *mtd)
+{
+	return at91_get_gpio_value(AT91_PIN_PA22);
+}
+
+int board_nand_init(struct nand_chip *nand)
+{
+	nand->ecc.mode = NAND_ECC_SOFT;
+#ifdef CONFIG_SYS_NAND_DBW_16
+	nand->options = NAND_BUSWIDTH_16;
+#endif
+	nand->cmd_ctrl = capd_nand_hwcontrol;
+	nand->dev_ready = capd_nand_ready;
+	nand->chip_delay = 20;
+
+	return 0;
+}
diff --git a/board/tmq/tmq_capd/tmq_capd.c b/board/tmq/tmq_capd/tmq_capd.c
new file mode 100644
index 0000000..d59cf86
--- /dev/null
+++ b/board/tmq/tmq_capd/tmq_capd.c
@@ -0,0 +1,259 @@
+/*
+ * (C) Copyright 2008-2009
+ * Jared Holzman <j.holzman at genesysdesign.com.au>
+ * Genesys Design <www.genesysdesign.com.au>
+ * Copied from code by Stelian Pop (Original Copyright Below)
+ *
+ * (C) Copyright 2007-2008
+ * Stelian Pop <stelian.pop at 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/sizes.h>
+#include <asm/arch/at91sam9263.h>
+#include <asm/arch/at91sam9263_matrix.h>
+#include <asm/arch/at91sam9_smc.h>
+#include <asm/arch/at91_pmc.h>
+#include <asm/arch/at91_rstc.h>
+#include <asm/arch/gpio.h>
+#include <asm/arch/io.h>
+#include <lcd.h>
+#include <atmel_lcdc.h>
+
+DECLARE_GLOBAL_DATA_PTR;
+
+/* ------------------------------------------------------------------------- */
+/*
+ * Miscelaneous platform dependent initialisations
+ */
+
+static void capd_serial_hw_init(void)
+{
+#ifdef CONFIG_USART0
+	at91_set_A_periph(AT91_PIN_PA26, 1);		/* TXD0 */
+	at91_set_A_periph(AT91_PIN_PA27, 0);		/* RXD0 */
+	at91_sys_write(AT91_PMC_PCER, 1 << AT91_ID_US0);
+#endif
+
+#ifdef CONFIG_USART1
+	at91_set_A_periph(AT91_PIN_PD0, 1);		/* TXD1 */
+	at91_set_A_periph(AT91_PIN_PD1, 0);		/* RXD1 */
+	at91_sys_write(AT91_PMC_PCER, 1 << AT91_ID_US1);
+#endif
+
+#ifdef CONFIG_USART2
+	at91_set_A_periph(AT91_PIN_PD2, 1);		/* TXD2 */
+	at91_set_A_periph(AT91_PIN_PD3, 0);		/* RXD2 */
+	at91_sys_write(AT91_PMC_PCER, 1 << AT91_ID_US2);
+#endif
+
+#ifdef CONFIG_USART3	/* DBGU */
+	at91_set_A_periph(AT91_PIN_PC30, 0);		/* DRXD */
+	at91_set_A_periph(AT91_PIN_PC31, 1);		/* DTXD */
+	at91_sys_write(AT91_PMC_PCER, 1 << AT91_ID_SYS);
+#endif
+}
+
+#ifdef CONFIG_CMD_NAND
+static void capd_nand_hw_init(void)
+{
+	unsigned long csa;
+
+	/* Enable CS3 */
+	csa = at91_sys_read(AT91_MATRIX_EBI0CSA);
+	at91_sys_write(AT91_MATRIX_EBI0CSA,
+		       csa | AT91_MATRIX_EBI0_CS3A_SMC_SMARTMEDIA);
+
+	/* Configure SMC CS3 for NAND/SmartMedia */
+	at91_sys_write(AT91_SMC_SETUP(3),
+		       AT91_SMC_NWESETUP_(1) | AT91_SMC_NCS_WRSETUP_(0) |
+		       AT91_SMC_NRDSETUP_(1) | AT91_SMC_NCS_RDSETUP_(0));
+	at91_sys_write(AT91_SMC_PULSE(3),
+		       AT91_SMC_NWEPULSE_(3) | AT91_SMC_NCS_WRPULSE_(3) |
+		       AT91_SMC_NRDPULSE_(3) | AT91_SMC_NCS_RDPULSE_(3));
+	at91_sys_write(AT91_SMC_CYCLE(3),
+		       AT91_SMC_NWECYCLE_(5) | AT91_SMC_NRDCYCLE_(5));
+	at91_sys_write(AT91_SMC_MODE(3),
+		       AT91_SMC_READMODE | AT91_SMC_WRITEMODE |
+		       AT91_SMC_EXNWMODE_DISABLE |
+#ifdef CONFIG_SYS_NAND_DBW_16
+		       AT91_SMC_DBW_16 |
+#else /* CONFIG_NAND_DBW_8 */
+		       AT91_SMC_DBW_8 |
+#endif
+		       AT91_SMC_TDF_(2));
+
+	at91_sys_write(AT91_PMC_PCER, 1 << AT91SAM9263_ID_PIOA |
+				      1 << AT91SAM9263_ID_PIOCDE);
+
+	/* Configure RDY/BSY */
+	at91_set_gpio_input(AT91_PIN_PA22, 1);
+
+	/* Enable NandFlash */
+	at91_set_gpio_output(AT91_PIN_PD15, 1);
+}
+#endif
+
+#ifdef CONFIG_USB_OHCI_NEW
+static void capd_uhp_hw_init(void)
+{
+	/* Enable VBus on UHP ports */
+	at91_set_gpio_output(AT91_PIN_PA21, 0);
+	at91_set_gpio_output(AT91_PIN_PA24, 0);
+
+#ifdef SP2526_1_FITTED //SP2526-1 is Active High
+	at91_set_gpio_value(AT91_PIN_PA21, 1);
+	at91_set_gpio_value(AT91_PIN_PA24, 1);
+#else
+	at91_set_gpio_value(AT91_PIN_PA21, 0);
+	at91_set_gpio_value(AT91_PIN_PA24, 0);
+#endif
+	
+	
+}
+#endif
+
+#ifdef CONFIG_LCD
+//Settings for the ET057003DM6 LCD
+vidinfo_t panel_info = {
+	vl_col:		320,
+	vl_row:		240,
+	vl_clk:		5406000,
+	vl_sync:	ATMEL_LCDC_INVCLK_INVERTED,
+	vl_bpix:	3,
+	vl_tft:		1,
+	vl_hsync_len:	30,
+	vl_left_margin:	38,
+	vl_right_margin:20,
+	vl_vsync_len:	5,
+	vl_upper_margin:15,
+	vl_lower_margin:5,
+	mmio:		AT91SAM9263_LCDC_BASE,
+};
+
+void lcd_enable(void)
+{
+	at91_set_gpio_value(AT91_PIN_PA30, 1);  /* power up */
+}
+
+void lcd_disable(void)
+{
+	at91_set_gpio_value(AT91_PIN_PA30, 0);  /* power down */
+}
+
+static void capd_lcd_hw_init(void)
+{
+	at91_set_A_periph(AT91_PIN_PC0, 0);	/* LCDVSYNC */
+	at91_set_A_periph(AT91_PIN_PC1, 0);	/* LCDHSYNC */
+	at91_set_A_periph(AT91_PIN_PC2, 0);	/* LCDDOTCK */
+	at91_set_A_periph(AT91_PIN_PC3, 0);	/* LCDDEN */
+	at91_set_A_periph(AT91_PIN_PC4, 0);	/* LCDD0 */
+	at91_set_A_periph(AT91_PIN_PC5, 0);	/* LCDD1 */
+	at91_set_A_periph(AT91_PIN_PC6, 0);	/* LCDD2 */
+	at91_set_A_periph(AT91_PIN_PC7, 0);	/* LCDD3 */
+	at91_set_A_periph(AT91_PIN_PC8, 0);	/* LCDD4 */
+	at91_set_A_periph(AT91_PIN_PC9, 0);	/* LCDD5 */
+	at91_set_A_periph(AT91_PIN_PC10, 0);	/* LCDD6 */
+	at91_set_A_periph(AT91_PIN_PC11, 0);	/* LCDD7 */
+	at91_set_A_periph(AT91_PIN_PC12, 0);	/* LCDD8 */
+	at91_set_A_periph(AT91_PIN_PC13, 0);	/* LCDD9 */
+	at91_set_A_periph(AT91_PIN_PC14, 0);	/* LCDD10 */
+	at91_set_A_periph(AT91_PIN_PC15, 0);	/* LCDD11 */
+	at91_set_A_periph(AT91_PIN_PC16, 0);	/* LCDD12 */
+	at91_set_A_periph(AT91_PIN_PC17, 0);	/* LCDD13 */
+	at91_set_A_periph(AT91_PIN_PC18, 0);	/* LCDD14 */
+	at91_set_A_periph(AT91_PIN_PC19, 0);	/* LCDD15 */
+	at91_set_A_periph(AT91_PIN_PC20, 0);	/* LCDD16 */
+	at91_set_A_periph(AT91_PIN_PC21, 0);	/* LCDD17 */
+	at91_set_A_periph(AT91_PIN_PC22, 0);	/* LCDD18 */
+	at91_set_A_periph(AT91_PIN_PC23, 0);	/* LCDD19 */
+	at91_set_A_periph(AT91_PIN_PC24, 0);	/* LCDD20 */
+	at91_set_A_periph(AT91_PIN_PC25, 0);	/* LCDD21 */
+	at91_set_A_periph(AT91_PIN_PC26, 0);	/* LCDD22 */
+	at91_set_A_periph(AT91_PIN_PC27, 0);	/* LCDD23 */
+
+	at91_set_B_periph(AT91_PIN_PB9, 0);	/* LCDCC */
+
+	at91_sys_write(AT91_PMC_PCER, 1 << AT91SAM9263_ID_LCDC);
+
+	gd->fb_base = AT91SAM9263_SRAM0_BASE;
+}
+
+#ifdef CONFIG_LCD_INFO
+#include <nand.h>
+#include <version.h>
+
+void lcd_show_board_info(void)
+{
+	ulong dram_size, nand_size;
+	int i;
+	char temp[32];
+
+	lcd_printf ("%s\n", U_BOOT_VERSION);
+	lcd_printf ("(C) 2008 Genesys Design\n");
+	lcd_printf ("j.holzman at genesysdesign.com.au\n");
+	lcd_printf ("%s CPU at %s MHz\n",
+		AT91_CPU_NAME,
+		strmhz(temp, AT91_MAIN_CLOCK));
+
+	dram_size = 0;
+	for (i = 0; i < CONFIG_NR_DRAM_BANKS; i++)
+		dram_size += gd->bd->bi_dram[i].size;
+	nand_size = 0;
+	for (i = 0; i < CONFIG_SYS_MAX_NAND_DEVICE; i++)
+		nand_size += nand_info[i].size;
+	lcd_printf ("  %ld MB SDRAM, %ld MB NAND\n",
+		dram_size >> 20,
+		nand_size >> 20 );
+}
+#endif /* CONFIG_LCD_INFO */
+#endif
+
+int board_init(void)
+{
+	/* Enable Ctrlc */
+	console_init_f();
+
+	/* arch number of TMQ CAPD Board */
+	gd->bd->bi_arch_number = MACH_TYPE_TMQ_CAPD;
+	/* adress of boot parameters */
+	gd->bd->bi_boot_params = PHYS_SDRAM + 0x100;
+
+	capd_serial_hw_init();
+#ifdef CONFIG_CMD_NAND
+	capd_nand_hw_init();
+#endif
+#ifdef CONFIG_USB_OHCI_NEW
+	capd_uhp_hw_init();
+#endif
+#ifdef CONFIG_LCD
+	capd_lcd_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;
+}
diff --git a/include/asm-arm/mach-types.h b/include/asm-arm/mach-types.h
index ce6d25f..94ad824 100644
--- a/include/asm-arm/mach-types.h
+++ b/include/asm-arm/mach-types.h
@@ -1,5 +1,5 @@
 /*
- * This was automagically generated from arch/arm/tools/mach-types!
+ * This was automagically generated from mach-types!
  * Do NOT edit
  */
 
@@ -1857,6 +1857,68 @@ extern unsigned int __machine_arch_type;
 #define MACH_TYPE_IMX27IPCAM           1871
 #define MACH_TYPE_NEMOC                1872
 #define MACH_TYPE_GENEVA               1873
+#define MACH_TYPE_HTCPHAROS            1874
+#define MACH_TYPE_NEONC                1875
+#define MACH_TYPE_NAS7100              1876
+#define MACH_TYPE_TEUPHONE             1877
+#define MACH_TYPE_ANNAX_ETH2           1878
+#define MACH_TYPE_CSB733               1879
+#define MACH_TYPE_BK3                  1880
+#define MACH_TYPE_OMAP_EM32            1881
+#define MACH_TYPE_ET9261CP             1882
+#define MACH_TYPE_JASPERC              1883
+#define MACH_TYPE_ISSI_ARM9            1884
+#define MACH_TYPE_UED                  1885
+#define MACH_TYPE_ESIBLADE             1886
+#define MACH_TYPE_EYE02                1887
+#define MACH_TYPE_IMX27KBD             1888
+#define MACH_TYPE_SST61VC010_FPGA      1889
+#define MACH_TYPE_KIXVP435             1890
+#define MACH_TYPE_KIXNP435             1891
+#define MACH_TYPE_AFRICA               1892
+#define MACH_TYPE_NH233                1893
+#define MACH_TYPE_RD88F6183AP_GE       1894
+#define MACH_TYPE_BCM4760              1895
+#define MACH_TYPE_EDDY_V2              1896
+#define MACH_TYPE_REALVIEW_PBA8        1897
+#define MACH_TYPE_HID_A7               1898
+#define MACH_TYPE_HERO                 1899
+#define MACH_TYPE_OMAP_POSEIDON        1900
+#define MACH_TYPE_REALVIEW_PBX         1901
+#define MACH_TYPE_MICRO9S              1902
+#define MACH_TYPE_MAKO                 1903
+#define MACH_TYPE_XDAFLAME             1904
+#define MACH_TYPE_PHIDGET_SBC2         1905
+#define MACH_TYPE_LIMESTONE            1906
+#define MACH_TYPE_IPROBE_C32           1907
+#define MACH_TYPE_RUT100               1908
+#define MACH_TYPE_ASUSP535             1909
+#define MACH_TYPE_HTCRAPHAEL           1910
+#define MACH_TYPE_SYGDG1               1911
+#define MACH_TYPE_SYGDG2               1912
+#define MACH_TYPE_SEOUL                1913
+#define MACH_TYPE_SALERNO              1914
+#define MACH_TYPE_UCN_S3C64XX          1915
+#define MACH_TYPE_MSM7201A             1916
+#define MACH_TYPE_LPR1                 1917
+#define MACH_TYPE_ARMADILLO500FX       1918
+#define MACH_TYPE_G3EVM                1919
+#define MACH_TYPE_Z3_DM355             1920
+#define MACH_TYPE_W90P910EVB           1921
+#define MACH_TYPE_W90P920EVB           1922
+#define MACH_TYPE_W90P950EVB           1923
+#define MACH_TYPE_W90N960EVB           1924
+#define MACH_TYPE_CAMHD                1925
+#define MACH_TYPE_MVC100               1926
+#define MACH_TYPE_ELECTRUM_200         1927
+#define MACH_TYPE_HTCJADE              1928
+#define MACH_TYPE_MEMPHIS              1929
+#define MACH_TYPE_IMX27SBC             1930
+#define MACH_TYPE_LEXTAR               1931
+#define MACH_TYPE_MV88F6281GTW_GE      1932
+#define MACH_TYPE_NCP                  1933
+#define MACH_TYPE_Z32AN                1934
+#define MACH_TYPE_TMQ_CAPD             1935
 
 #ifdef CONFIG_ARCH_EBSA110
 # ifdef machine_arch_type
@@ -23998,6 +24060,750 @@ extern unsigned int __machine_arch_type;
 # define machine_is_geneva()	(0)
 #endif
 
+#ifdef CONFIG_MACH_HTCPHAROS
+# ifdef machine_arch_type
+#  undef machine_arch_type
+#  define machine_arch_type	__machine_arch_type
+# else
+#  define machine_arch_type	MACH_TYPE_HTCPHAROS
+# endif
+# define machine_is_htcpharos()	(machine_arch_type == MACH_TYPE_HTCPHAROS)
+#else
+# define machine_is_htcpharos()	(0)
+#endif
+
+#ifdef CONFIG_MACH_NEONC
+# ifdef machine_arch_type
+#  undef machine_arch_type
+#  define machine_arch_type	__machine_arch_type
+# else
+#  define machine_arch_type	MACH_TYPE_NEONC
+# endif
+# define machine_is_neonc()	(machine_arch_type == MACH_TYPE_NEONC)
+#else
+# define machine_is_neonc()	(0)
+#endif
+
+#ifdef CONFIG_MACH_NAS7100
+# ifdef machine_arch_type
+#  undef machine_arch_type
+#  define machine_arch_type	__machine_arch_type
+# else
+#  define machine_arch_type	MACH_TYPE_NAS7100
+# endif
+# define machine_is_nas7100()	(machine_arch_type == MACH_TYPE_NAS7100)
+#else
+# define machine_is_nas7100()	(0)
+#endif
+
+#ifdef CONFIG_MACH_TEUPHONE
+# ifdef machine_arch_type
+#  undef machine_arch_type
+#  define machine_arch_type	__machine_arch_type
+# else
+#  define machine_arch_type	MACH_TYPE_TEUPHONE
+# endif
+# define machine_is_teuphone()	(machine_arch_type == MACH_TYPE_TEUPHONE)
+#else
+# define machine_is_teuphone()	(0)
+#endif
+
+#ifdef CONFIG_MACH_ANNAX_ETH2
+# ifdef machine_arch_type
+#  undef machine_arch_type
+#  define machine_arch_type	__machine_arch_type
+# else
+#  define machine_arch_type	MACH_TYPE_ANNAX_ETH2
+# endif
+# define machine_is_annax_eth2()	(machine_arch_type == MACH_TYPE_ANNAX_ETH2)
+#else
+# define machine_is_annax_eth2()	(0)
+#endif
+
+#ifdef CONFIG_MACH_CSB733
+# ifdef machine_arch_type
+#  undef machine_arch_type
+#  define machine_arch_type	__machine_arch_type
+# else
+#  define machine_arch_type	MACH_TYPE_CSB733
+# endif
+# define machine_is_csb733()	(machine_arch_type == MACH_TYPE_CSB733)
+#else
+# define machine_is_csb733()	(0)
+#endif
+
+#ifdef CONFIG_MACH_BK3
+# ifdef machine_arch_type
+#  undef machine_arch_type
+#  define machine_arch_type	__machine_arch_type
+# else
+#  define machine_arch_type	MACH_TYPE_BK3
+# endif
+# define machine_is_bk3()	(machine_arch_type == MACH_TYPE_BK3)
+#else
+# define machine_is_bk3()	(0)
+#endif
+
+#ifdef CONFIG_MACH_OMAP_EM32
+# ifdef machine_arch_type
+#  undef machine_arch_type
+#  define machine_arch_type	__machine_arch_type
+# else
+#  define machine_arch_type	MACH_TYPE_OMAP_EM32
+# endif
+# define machine_is_omap_em32()	(machine_arch_type == MACH_TYPE_OMAP_EM32)
+#else
+# define machine_is_omap_em32()	(0)
+#endif
+
+#ifdef CONFIG_MACH_ET9261CP
+# ifdef machine_arch_type
+#  undef machine_arch_type
+#  define machine_arch_type	__machine_arch_type
+# else
+#  define machine_arch_type	MACH_TYPE_ET9261CP
+# endif
+# define machine_is_et9261cp()	(machine_arch_type == MACH_TYPE_ET9261CP)
+#else
+# define machine_is_et9261cp()	(0)
+#endif
+
+#ifdef CONFIG_MACH_JASPERC
+# ifdef machine_arch_type
+#  undef machine_arch_type
+#  define machine_arch_type	__machine_arch_type
+# else
+#  define machine_arch_type	MACH_TYPE_JASPERC
+# endif
+# define machine_is_jasperc()	(machine_arch_type == MACH_TYPE_JASPERC)
+#else
+# define machine_is_jasperc()	(0)
+#endif
+
+#ifdef CONFIG_MACH_ISSI_ARM9
+# ifdef machine_arch_type
+#  undef machine_arch_type
+#  define machine_arch_type	__machine_arch_type
+# else
+#  define machine_arch_type	MACH_TYPE_ISSI_ARM9
+# endif
+# define machine_is_issi_arm9()	(machine_arch_type == MACH_TYPE_ISSI_ARM9)
+#else
+# define machine_is_issi_arm9()	(0)
+#endif
+
+#ifdef CONFIG_MACH_UED
+# ifdef machine_arch_type
+#  undef machine_arch_type
+#  define machine_arch_type	__machine_arch_type
+# else
+#  define machine_arch_type	MACH_TYPE_UED
+# endif
+# define machine_is_ued()	(machine_arch_type == MACH_TYPE_UED)
+#else
+# define machine_is_ued()	(0)
+#endif
+
+#ifdef CONFIG_MACH_ESIBLADE
+# ifdef machine_arch_type
+#  undef machine_arch_type
+#  define machine_arch_type	__machine_arch_type
+# else
+#  define machine_arch_type	MACH_TYPE_ESIBLADE
+# endif
+# define machine_is_esiblade()	(machine_arch_type == MACH_TYPE_ESIBLADE)
+#else
+# define machine_is_esiblade()	(0)
+#endif
+
+#ifdef CONFIG_MACH_EYE02
+# ifdef machine_arch_type
+#  undef machine_arch_type
+#  define machine_arch_type	__machine_arch_type
+# else
+#  define machine_arch_type	MACH_TYPE_EYE02
+# endif
+# define machine_is_eye02()	(machine_arch_type == MACH_TYPE_EYE02)
+#else
+# define machine_is_eye02()	(0)
+#endif
+
+#ifdef CONFIG_MACH_IMX27KBD
+# ifdef machine_arch_type
+#  undef machine_arch_type
+#  define machine_arch_type	__machine_arch_type
+# else
+#  define machine_arch_type	MACH_TYPE_IMX27KBD
+# endif
+# define machine_is_imx27kbd()	(machine_arch_type == MACH_TYPE_IMX27KBD)
+#else
+# define machine_is_imx27kbd()	(0)
+#endif
+
+#ifdef CONFIG_MACH_SST61VC010_FPGA
+# ifdef machine_arch_type
+#  undef machine_arch_type
+#  define machine_arch_type	__machine_arch_type
+# else
+#  define machine_arch_type	MACH_TYPE_SST61VC010_FPGA
+# endif
+# define machine_is_sst61vc010_fpga()	(machine_arch_type == MACH_TYPE_SST61VC010_FPGA)
+#else
+# define machine_is_sst61vc010_fpga()	(0)
+#endif
+
+#ifdef CONFIG_MACH_KIXVP435
+# ifdef machine_arch_type
+#  undef machine_arch_type
+#  define machine_arch_type	__machine_arch_type
+# else
+#  define machine_arch_type	MACH_TYPE_KIXVP435
+# endif
+# define machine_is_kixvp435()	(machine_arch_type == MACH_TYPE_KIXVP435)
+#else
+# define machine_is_kixvp435()	(0)
+#endif
+
+#ifdef CONFIG_MACH_KIXNP435
+# ifdef machine_arch_type
+#  undef machine_arch_type
+#  define machine_arch_type	__machine_arch_type
+# else
+#  define machine_arch_type	MACH_TYPE_KIXNP435
+# endif
+# define machine_is_kixnp435()	(machine_arch_type == MACH_TYPE_KIXNP435)
+#else
+# define machine_is_kixnp435()	(0)
+#endif
+
+#ifdef CONFIG_MACH_AFRICA
+# ifdef machine_arch_type
+#  undef machine_arch_type
+#  define machine_arch_type	__machine_arch_type
+# else
+#  define machine_arch_type	MACH_TYPE_AFRICA
+# endif
+# define machine_is_africa()	(machine_arch_type == MACH_TYPE_AFRICA)
+#else
+# define machine_is_africa()	(0)
+#endif
+
+#ifdef CONFIG_MACH_NH233
+# ifdef machine_arch_type
+#  undef machine_arch_type
+#  define machine_arch_type	__machine_arch_type
+# else
+#  define machine_arch_type	MACH_TYPE_NH233
+# endif
+# define machine_is_nh233()	(machine_arch_type == MACH_TYPE_NH233)
+#else
+# define machine_is_nh233()	(0)
+#endif
+
+#ifdef CONFIG_MACH_RD88F6183AP_GE
+# ifdef machine_arch_type
+#  undef machine_arch_type
+#  define machine_arch_type	__machine_arch_type
+# else
+#  define machine_arch_type	MACH_TYPE_RD88F6183AP_GE
+# endif
+# define machine_is_rd88f6183ap_ge()	(machine_arch_type == MACH_TYPE_RD88F6183AP_GE)
+#else
+# define machine_is_rd88f6183ap_ge()	(0)
+#endif
+
+#ifdef CONFIG_MACH_BCM4760
+# ifdef machine_arch_type
+#  undef machine_arch_type
+#  define machine_arch_type	__machine_arch_type
+# else
+#  define machine_arch_type	MACH_TYPE_BCM4760
+# endif
+# define machine_is_bcm4760()	(machine_arch_type == MACH_TYPE_BCM4760)
+#else
+# define machine_is_bcm4760()	(0)
+#endif
+
+#ifdef CONFIG_MACH_EDDY_V2
+# ifdef machine_arch_type
+#  undef machine_arch_type
+#  define machine_arch_type	__machine_arch_type
+# else
+#  define machine_arch_type	MACH_TYPE_EDDY_V2
+# endif
+# define machine_is_eddy_v2()	(machine_arch_type == MACH_TYPE_EDDY_V2)
+#else
+# define machine_is_eddy_v2()	(0)
+#endif
+
+#ifdef CONFIG_MACH_REALVIEW_PBA8
+# ifdef machine_arch_type
+#  undef machine_arch_type
+#  define machine_arch_type	__machine_arch_type
+# else
+#  define machine_arch_type	MACH_TYPE_REALVIEW_PBA8
+# endif
+# define machine_is_realview_pba8()	(machine_arch_type == MACH_TYPE_REALVIEW_PBA8)
+#else
+# define machine_is_realview_pba8()	(0)
+#endif
+
+#ifdef CONFIG_MACH_HID_A7
+# ifdef machine_arch_type
+#  undef machine_arch_type
+#  define machine_arch_type	__machine_arch_type
+# else
+#  define machine_arch_type	MACH_TYPE_HID_A7
+# endif
+# define machine_is_hid_a7()	(machine_arch_type == MACH_TYPE_HID_A7)
+#else
+# define machine_is_hid_a7()	(0)
+#endif
+
+#ifdef CONFIG_MACH_HERO
+# ifdef machine_arch_type
+#  undef machine_arch_type
+#  define machine_arch_type	__machine_arch_type
+# else
+#  define machine_arch_type	MACH_TYPE_HERO
+# endif
+# define machine_is_hero()	(machine_arch_type == MACH_TYPE_HERO)
+#else
+# define machine_is_hero()	(0)
+#endif
+
+#ifdef CONFIG_MACH_OMAP_POSEIDON
+# ifdef machine_arch_type
+#  undef machine_arch_type
+#  define machine_arch_type	__machine_arch_type
+# else
+#  define machine_arch_type	MACH_TYPE_OMAP_POSEIDON
+# endif
+# define machine_is_omap_poseidon()	(machine_arch_type == MACH_TYPE_OMAP_POSEIDON)
+#else
+# define machine_is_omap_poseidon()	(0)
+#endif
+
+#ifdef CONFIG_MACH_REALVIEW_PBX
+# ifdef machine_arch_type
+#  undef machine_arch_type
+#  define machine_arch_type	__machine_arch_type
+# else
+#  define machine_arch_type	MACH_TYPE_REALVIEW_PBX
+# endif
+# define machine_is_realview_pbx()	(machine_arch_type == MACH_TYPE_REALVIEW_PBX)
+#else
+# define machine_is_realview_pbx()	(0)
+#endif
+
+#ifdef CONFIG_MACH_MICRO9S
+# ifdef machine_arch_type
+#  undef machine_arch_type
+#  define machine_arch_type	__machine_arch_type
+# else
+#  define machine_arch_type	MACH_TYPE_MICRO9S
+# endif
+# define machine_is_micro9s()	(machine_arch_type == MACH_TYPE_MICRO9S)
+#else
+# define machine_is_micro9s()	(0)
+#endif
+
+#ifdef CONFIG_MACH_MAKO
+# ifdef machine_arch_type
+#  undef machine_arch_type
+#  define machine_arch_type	__machine_arch_type
+# else
+#  define machine_arch_type	MACH_TYPE_MAKO
+# endif
+# define machine_is_mako()	(machine_arch_type == MACH_TYPE_MAKO)
+#else
+# define machine_is_mako()	(0)
+#endif
+
+#ifdef CONFIG_MACH_XDAFLAME
+# ifdef machine_arch_type
+#  undef machine_arch_type
+#  define machine_arch_type	__machine_arch_type
+# else
+#  define machine_arch_type	MACH_TYPE_XDAFLAME
+# endif
+# define machine_is_xdaflame()	(machine_arch_type == MACH_TYPE_XDAFLAME)
+#else
+# define machine_is_xdaflame()	(0)
+#endif
+
+#ifdef CONFIG_MACH_PHIDGET_SBC2
+# ifdef machine_arch_type
+#  undef machine_arch_type
+#  define machine_arch_type	__machine_arch_type
+# else
+#  define machine_arch_type	MACH_TYPE_PHIDGET_SBC2
+# endif
+# define machine_is_phidget_sbc2()	(machine_arch_type == MACH_TYPE_PHIDGET_SBC2)
+#else
+# define machine_is_phidget_sbc2()	(0)
+#endif
+
+#ifdef CONFIG_MACH_LIMESTONE
+# ifdef machine_arch_type
+#  undef machine_arch_type
+#  define machine_arch_type	__machine_arch_type
+# else
+#  define machine_arch_type	MACH_TYPE_LIMESTONE
+# endif
+# define machine_is_limestone()	(machine_arch_type == MACH_TYPE_LIMESTONE)
+#else
+# define machine_is_limestone()	(0)
+#endif
+
+#ifdef CONFIG_MACH_IPROBE_C32
+# ifdef machine_arch_type
+#  undef machine_arch_type
+#  define machine_arch_type	__machine_arch_type
+# else
+#  define machine_arch_type	MACH_TYPE_IPROBE_C32
+# endif
+# define machine_is_iprobe_c32()	(machine_arch_type == MACH_TYPE_IPROBE_C32)
+#else
+# define machine_is_iprobe_c32()	(0)
+#endif
+
+#ifdef CONFIG_MACH_RUT100
+# ifdef machine_arch_type
+#  undef machine_arch_type
+#  define machine_arch_type	__machine_arch_type
+# else
+#  define machine_arch_type	MACH_TYPE_RUT100
+# endif
+# define machine_is_rut100()	(machine_arch_type == MACH_TYPE_RUT100)
+#else
+# define machine_is_rut100()	(0)
+#endif
+
+#ifdef CONFIG_MACH_ASUSP535
+# ifdef machine_arch_type
+#  undef machine_arch_type
+#  define machine_arch_type	__machine_arch_type
+# else
+#  define machine_arch_type	MACH_TYPE_ASUSP535
+# endif
+# define machine_is_asusp535()	(machine_arch_type == MACH_TYPE_ASUSP535)
+#else
+# define machine_is_asusp535()	(0)
+#endif
+
+#ifdef CONFIG_MACH_HTCRAPHAEL
+# ifdef machine_arch_type
+#  undef machine_arch_type
+#  define machine_arch_type	__machine_arch_type
+# else
+#  define machine_arch_type	MACH_TYPE_HTCRAPHAEL
+# endif
+# define machine_is_htcraphael()	(machine_arch_type == MACH_TYPE_HTCRAPHAEL)
+#else
+# define machine_is_htcraphael()	(0)
+#endif
+
+#ifdef CONFIG_MACH_SYGDG1
+# ifdef machine_arch_type
+#  undef machine_arch_type
+#  define machine_arch_type	__machine_arch_type
+# else
+#  define machine_arch_type	MACH_TYPE_SYGDG1
+# endif
+# define machine_is_sygdg1()	(machine_arch_type == MACH_TYPE_SYGDG1)
+#else
+# define machine_is_sygdg1()	(0)
+#endif
+
+#ifdef CONFIG_MACH_SYGDG2
+# ifdef machine_arch_type
+#  undef machine_arch_type
+#  define machine_arch_type	__machine_arch_type
+# else
+#  define machine_arch_type	MACH_TYPE_SYGDG2
+# endif
+# define machine_is_sygdg2()	(machine_arch_type == MACH_TYPE_SYGDG2)
+#else
+# define machine_is_sygdg2()	(0)
+#endif
+
+#ifdef CONFIG_MACH_SEOUL
+# ifdef machine_arch_type
+#  undef machine_arch_type
+#  define machine_arch_type	__machine_arch_type
+# else
+#  define machine_arch_type	MACH_TYPE_SEOUL
+# endif
+# define machine_is_seoul()	(machine_arch_type == MACH_TYPE_SEOUL)
+#else
+# define machine_is_seoul()	(0)
+#endif
+
+#ifdef CONFIG_MACH_SALERNO
+# ifdef machine_arch_type
+#  undef machine_arch_type
+#  define machine_arch_type	__machine_arch_type
+# else
+#  define machine_arch_type	MACH_TYPE_SALERNO
+# endif
+# define machine_is_salerno()	(machine_arch_type == MACH_TYPE_SALERNO)
+#else
+# define machine_is_salerno()	(0)
+#endif
+
+#ifdef CONFIG_MACH_UCN_S3C64XX
+# ifdef machine_arch_type
+#  undef machine_arch_type
+#  define machine_arch_type	__machine_arch_type
+# else
+#  define machine_arch_type	MACH_TYPE_UCN_S3C64XX
+# endif
+# define machine_is_ucn_s3c64xx()	(machine_arch_type == MACH_TYPE_UCN_S3C64XX)
+#else
+# define machine_is_ucn_s3c64xx()	(0)
+#endif
+
+#ifdef CONFIG_MACH_MSM7201A
+# ifdef machine_arch_type
+#  undef machine_arch_type
+#  define machine_arch_type	__machine_arch_type
+# else
+#  define machine_arch_type	MACH_TYPE_MSM7201A
+# endif
+# define machine_is_msm7201a()	(machine_arch_type == MACH_TYPE_MSM7201A)
+#else
+# define machine_is_msm7201a()	(0)
+#endif
+
+#ifdef CONFIG_MACH_LPR1
+# ifdef machine_arch_type
+#  undef machine_arch_type
+#  define machine_arch_type	__machine_arch_type
+# else
+#  define machine_arch_type	MACH_TYPE_LPR1
+# endif
+# define machine_is_lpr1()	(machine_arch_type == MACH_TYPE_LPR1)
+#else
+# define machine_is_lpr1()	(0)
+#endif
+
+#ifdef CONFIG_MACH_ARMADILLO500FX
+# ifdef machine_arch_type
+#  undef machine_arch_type
+#  define machine_arch_type	__machine_arch_type
+# else
+#  define machine_arch_type	MACH_TYPE_ARMADILLO500FX
+# endif
+# define machine_is_armadillo500fx()	(machine_arch_type == MACH_TYPE_ARMADILLO500FX)
+#else
+# define machine_is_armadillo500fx()	(0)
+#endif
+
+#ifdef CONFIG_MACH_G3EVM
+# ifdef machine_arch_type
+#  undef machine_arch_type
+#  define machine_arch_type	__machine_arch_type
+# else
+#  define machine_arch_type	MACH_TYPE_G3EVM
+# endif
+# define machine_is_g3evm()	(machine_arch_type == MACH_TYPE_G3EVM)
+#else
+# define machine_is_g3evm()	(0)
+#endif
+
+#ifdef CONFIG_MACH_Z3_DM355
+# ifdef machine_arch_type
+#  undef machine_arch_type
+#  define machine_arch_type	__machine_arch_type
+# else
+#  define machine_arch_type	MACH_TYPE_Z3_DM355
+# endif
+# define machine_is_z3_dm355()	(machine_arch_type == MACH_TYPE_Z3_DM355)
+#else
+# define machine_is_z3_dm355()	(0)
+#endif
+
+#ifdef CONFIG_MACH_W90P910EVB
+# ifdef machine_arch_type
+#  undef machine_arch_type
+#  define machine_arch_type	__machine_arch_type
+# else
+#  define machine_arch_type	MACH_TYPE_W90P910EVB
+# endif
+# define machine_is_w90p910evb()	(machine_arch_type == MACH_TYPE_W90P910EVB)
+#else
+# define machine_is_w90p910evb()	(0)
+#endif
+
+#ifdef CONFIG_MACH_W90P920EVB
+# ifdef machine_arch_type
+#  undef machine_arch_type
+#  define machine_arch_type	__machine_arch_type
+# else
+#  define machine_arch_type	MACH_TYPE_W90P920EVB
+# endif
+# define machine_is_w90p920evb()	(machine_arch_type == MACH_TYPE_W90P920EVB)
+#else
+# define machine_is_w90p920evb()	(0)
+#endif
+
+#ifdef CONFIG_MACH_W90P950EVB
+# ifdef machine_arch_type
+#  undef machine_arch_type
+#  define machine_arch_type	__machine_arch_type
+# else
+#  define machine_arch_type	MACH_TYPE_W90P950EVB
+# endif
+# define machine_is_w90p950evb()	(machine_arch_type == MACH_TYPE_W90P950EVB)
+#else
+# define machine_is_w90p950evb()	(0)
+#endif
+
+#ifdef CONFIG_MACH_W90N960EVB
+# ifdef machine_arch_type
+#  undef machine_arch_type
+#  define machine_arch_type	__machine_arch_type
+# else
+#  define machine_arch_type	MACH_TYPE_W90N960EVB
+# endif
+# define machine_is_w90n960evb()	(machine_arch_type == MACH_TYPE_W90N960EVB)
+#else
+# define machine_is_w90n960evb()	(0)
+#endif
+
+#ifdef CONFIG_MACH_CAMHD
+# ifdef machine_arch_type
+#  undef machine_arch_type
+#  define machine_arch_type	__machine_arch_type
+# else
+#  define machine_arch_type	MACH_TYPE_CAMHD
+# endif
+# define machine_is_camhd()	(machine_arch_type == MACH_TYPE_CAMHD)
+#else
+# define machine_is_camhd()	(0)
+#endif
+
+#ifdef CONFIG_MACH_MVC100
+# ifdef machine_arch_type
+#  undef machine_arch_type
+#  define machine_arch_type	__machine_arch_type
+# else
+#  define machine_arch_type	MACH_TYPE_MVC100
+# endif
+# define machine_is_mvc100()	(machine_arch_type == MACH_TYPE_MVC100)
+#else
+# define machine_is_mvc100()	(0)
+#endif
+
+#ifdef CONFIG_MACH_ELECTRUM_200
+# ifdef machine_arch_type
+#  undef machine_arch_type
+#  define machine_arch_type	__machine_arch_type
+# else
+#  define machine_arch_type	MACH_TYPE_ELECTRUM_200
+# endif
+# define machine_is_electrum_200()	(machine_arch_type == MACH_TYPE_ELECTRUM_200)
+#else
+# define machine_is_electrum_200()	(0)
+#endif
+
+#ifdef CONFIG_MACH_HTCJADE
+# ifdef machine_arch_type
+#  undef machine_arch_type
+#  define machine_arch_type	__machine_arch_type
+# else
+#  define machine_arch_type	MACH_TYPE_HTCJADE
+# endif
+# define machine_is_htcjade()	(machine_arch_type == MACH_TYPE_HTCJADE)
+#else
+# define machine_is_htcjade()	(0)
+#endif
+
+#ifdef CONFIG_MACH_MEMPHIS
+# ifdef machine_arch_type
+#  undef machine_arch_type
+#  define machine_arch_type	__machine_arch_type
+# else
+#  define machine_arch_type	MACH_TYPE_MEMPHIS
+# endif
+# define machine_is_memphis()	(machine_arch_type == MACH_TYPE_MEMPHIS)
+#else
+# define machine_is_memphis()	(0)
+#endif
+
+#ifdef CONFIG_MACH_IMX27SBC
+# ifdef machine_arch_type
+#  undef machine_arch_type
+#  define machine_arch_type	__machine_arch_type
+# else
+#  define machine_arch_type	MACH_TYPE_IMX27SBC
+# endif
+# define machine_is_imx27sbc()	(machine_arch_type == MACH_TYPE_IMX27SBC)
+#else
+# define machine_is_imx27sbc()	(0)
+#endif
+
+#ifdef CONFIG_MACH_LEXTAR
+# ifdef machine_arch_type
+#  undef machine_arch_type
+#  define machine_arch_type	__machine_arch_type
+# else
+#  define machine_arch_type	MACH_TYPE_LEXTAR
+# endif
+# define machine_is_lextar()	(machine_arch_type == MACH_TYPE_LEXTAR)
+#else
+# define machine_is_lextar()	(0)
+#endif
+
+#ifdef CONFIG_MACH_MV88F6281GTW_GE
+# ifdef machine_arch_type
+#  undef machine_arch_type
+#  define machine_arch_type	__machine_arch_type
+# else
+#  define machine_arch_type	MACH_TYPE_MV88F6281GTW_GE
+# endif
+# define machine_is_mv88f6281gtw_ge()	(machine_arch_type == MACH_TYPE_MV88F6281GTW_GE)
+#else
+# define machine_is_mv88f6281gtw_ge()	(0)
+#endif
+
+#ifdef CONFIG_MACH_NCP
+# ifdef machine_arch_type
+#  undef machine_arch_type
+#  define machine_arch_type	__machine_arch_type
+# else
+#  define machine_arch_type	MACH_TYPE_NCP
+# endif
+# define machine_is_ncp()	(machine_arch_type == MACH_TYPE_NCP)
+#else
+# define machine_is_ncp()	(0)
+#endif
+
+#ifdef CONFIG_MACH_Z32AN
+# ifdef machine_arch_type
+#  undef machine_arch_type
+#  define machine_arch_type	__machine_arch_type
+# else
+#  define machine_arch_type	MACH_TYPE_Z32AN
+# endif
+# define machine_is_z32an_series()	(machine_arch_type == MACH_TYPE_Z32AN)
+#else
+# define machine_is_z32an_series()	(0)
+#endif
+
+#ifdef CONFIG_MACH_TMQ_CAPD
+# ifdef machine_arch_type
+#  undef machine_arch_type
+#  define machine_arch_type	__machine_arch_type
+# else
+#  define machine_arch_type	MACH_TYPE_TMQ_CAPD
+# endif
+# define machine_is_tmq_capd()	(machine_arch_type == MACH_TYPE_TMQ_CAPD)
+#else
+# define machine_is_tmq_capd()	(0)
+#endif
+
 /*
  * These have not yet been registered
  */
diff --git a/include/configs/tmq_capd.h b/include/configs/tmq_capd.h
new file mode 100644
index 0000000..7d6cbcc
--- /dev/null
+++ b/include/configs/tmq_capd.h
@@ -0,0 +1,165 @@
+/*
+ * (C) Copyright 2007-2008
+ * Stelian Pop <stelian.pop at leadtechdesign.com>
+ * Lead Tech Design <www.leadtechdesign.com>
+ *
+ * Configuation settings for the AT91SAM9263EK 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
+
+/* ARM asynchronous clock */
+#define AT91_CPU_NAME		"AT91SAM9263"
+#define AT91_MAIN_CLOCK		198656000	/* from 18.432 MHz crystal */
+#define AT91_MASTER_CLOCK	99328000	/* peripheral = main / 2 */
+#define CONFIG_SYS_HZ		1000000		/* 1us resolution */
+
+#define AT91_SLOW_CLOCK		32768	/* slow clock */
+
+#define CONFIG_ARM926EJS	1	/* This is an ARM926EJS Core	*/
+#define CONFIG_AT91SAM9263	1	/* It's an Atmel AT91SAM9263 SoC*/
+#define CONFIG_TMQ_CAPD		1	/* on an TMQ CAPD Board	*/
+#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_ATMEL_USART	1
+#undef CONFIG_USART0
+#undef CONFIG_USART1
+#undef CONFIG_USART2
+#define CONFIG_USART3		1	/* USART 3 is DBGU */
+
+/* LCD */
+#define CONFIG_LCD			1
+#define LCD_BPP				LCD_COLOR8
+#define CONFIG_LCD_LOGO			1
+#undef LCD_TEST_PATTERN
+#define CONFIG_LCD_INFO			1
+#define CONFIG_LCD_INFO_BELOW_LOGO	1
+#define CONFIG_SYS_WHITE_ON_BLACK	1
+#define CONFIG_ATMEL_LCD		1
+#define CONFIG_ATMEL_LCD_BGR555		1
+#define CONFIG_SYS_CONSOLE_IS_IN_ENV	1
+
+#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_IMI
+#undef CONFIG_CMD_AUTOSCRIPT
+#undef CONFIG_CMD_FPGA
+#undef CONFIG_CMD_LOADS
+#undef CONFIG_CMD_IMLS
+
+#undef CONFIG_CMD_NET
+#undef CONFIG_CMD_PING
+#undef CONFIG_CMD_DHCP
+#define CONFIG_CMD_NAND		1
+#define CONFIG_CMD_USB		1
+#define CONFIG_CMD_FAT		1
+
+/* SDRAM */
+#define CONFIG_NR_DRAM_BANKS		1
+#define PHYS_SDRAM			0x20000000
+#define PHYS_SDRAM_SIZE			0x02000000	/* 32 megs */
+
+#define	CONFIG_SYS_NO_FLASH			1 		/* No NOR Flash */
+
+/* NAND flash */
+#define NAND_MAX_CHIPS			1
+#define CONFIG_SYS_MAX_NAND_DEVICE		1
+#define CONFIG_SYS_NAND_BASE			0x40000000
+//#define CONFIG_SYS_NAND_DBW_8			1
+#define CONFIG_SYS_NAND_DBW_16			1		/* 16bit */
+
+/* USB */
+#define SP2526_1_FITTED			1
+#undef SP2526_2_FITTED
+#define CONFIG_USB_OHCI_NEW		1
+#define LITTLEENDIAN			1
+#define CONFIG_DOS_PARTITION		1
+#define CONFIG_SYS_USB_OHCI_CPU_INIT		1
+#define CONFIG_SYS_USB_OHCI_REGS_BASE		0x00a00000	/* AT91SAM9263_UHP_BASE */
+#define CONFIG_SYS_USB_OHCI_SLOT_NAME		"at91sam9263"
+#define CONFIG_SYS_USB_OHCI_MAX_ROOT_PORTS	2
+#define CONFIG_USB_STORAGE		1
+
+#define CONFIG_SYS_LOAD_ADDR			0x21000000	/* load address */
+
+#define CONFIG_SYS_MEMTEST_START		PHYS_SDRAM
+#define CONFIG_SYS_MEMTEST_END			0x21e00000
+
+/* bootstrap + u-boot + env + linux in nandflash */
+#define CONFIG_ENV_IS_IN_NAND	1
+#define CONFIG_ENV_OFFSET		0x60000
+#define CONFIG_ENV_OFFSET_REDUND	0x80000
+#define CONFIG_ENV_SIZE		0x20000		/* 1 sector = 128 kB */
+#define CONFIG_BOOTCOMMAND	"nand read 21100000 100000 500000; bootm 21100000"
+#define CONFIG_BOOTARGS		"console=ttyS0,115200 " \
+				"root=/dev/mtdblock5 " \
+				"mtdparts=at91_nand:128k(bootstrap)ro,256k(uboot)ro,128k(env1)ro,128k(env2)ro,2M(linux),-(root) " \
+				"rw rootfstype=jffs2"
+
+
+#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
+
+#define ROUND(A, B)		(((A) + (B)) & ~((B) - 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
diff --git a/tools/Makefile b/tools/Makefile
index 9e9ee15..f1a0f9d 100644
--- a/tools/Makefile
+++ b/tools/Makefile
@@ -47,6 +47,9 @@ endif
 ifeq ($(VENDOR),atmel)
 LOGO_BMP= logos/atmel.bmp
 endif
+ifeq ($(VENDOR),tmq)
+LOGO_BMP= logos/tmqlogo.bmp
+endif
 
 
 #-------------------------------------------------------------------------
diff --git a/tools/logos/tmqlogo.bmp b/tools/logos/tmqlogo.bmp
new file mode 100644
index 0000000000000000000000000000000000000000..d28b666d3ee2f583dd983202edb93109d9d0b72e
GIT binary patch
literal 20254
zcmeI43tSZC{{J5!L`$Q*Wap3<l#4=Of*`AVmYKcGt{`{=6f?y;r6yupnRr1oP1D5i
zf?%Phn1<#pQqwfKt?s&nh=8Jqhy*HVik)-*|JVQXeP$QUQztuley?7?*Z(WKGxN;s
z?96*U-^=sNtm?4NgBZ8YPcha5bAlaXN=)roOL;{oW9^=iUw=mny;?8_#_VZzOV$Fj
zEm>>k>|n=UXu(*g)^^O(*^WK+oD1vMkulf5Jj?7lc4xjW&oHk}Em;u0=&8<~nf9gj
zOxN9xNv^G#=;_3S?j6{Wu773r-Fva&UQR6L<u<JQD=sYZm1kIBuO2Kmkg?c4PqU|9
zQL?zcjExU$$(H*$vw40l>>U+jaVkePUikuhH>fk4`?of1nTD}MogG`IdXaVfTPWM4
zZo at W6&oXCmFzck%uti#TwmyupHQ|iCs_Vl(3TemY4{Xoo419sD4SA7$5bn$d>4Vu@
z;hor)p^S+G)GTYL1KT&a70ZZXZ0nHc*cXwEZO44_a7UItg0T$|&#_O2wPkA}+Of~E
zyn2W$TNd>Kdo#+Hy&v6$&5!nEQzCV2UWA&B88L|U7%_o$j-JHUPw-@$Cw6BaPxN8$
z#tddFU-xBuUw30u$49d+vG1_u at qJm^>qA&#ypk=OK7hr?g|oHO2D15Y1+$np$FXs5
z4P~!Po6EM$6xkQE6l~)xk)^%)8XGioCYuu<%T~-B$9lZIm<>*dWw{B1*x^JC>pE{0
z+r4No+q5W(?OiZ|txkM{y`MOPJ)5+S&09F1txlTDJeICwb63n`t3P^!rLUgEPA5mP
z_dcG%mam!4j(s$ReU~zlby)ow+w<`>c4Xanmhtf%X1{hPo1VImO-x(P^r`8r!=`;~
z%$5&WOhyVT-1;W_ENwk2%Xo(!-9DY=WxmcfWvphcw;W;HH?Lqrwx_bpZ424HElXKw
zW;)xyJ%Js_NM`w%W at Nt4q@5Yed*@#E at t#HOROV`y`b9G9x$79)urr-KmzB?kWbI{%
z2R>%s?ODrCezk}#-IvK`?9XB|zTU*f9NoaqX1~v_97<s04}Z>_zdpwzj(x#;9yYUn
zM~tjCcLf_z at C_SnJj{x7x3Ttl)hsLjOE&Y=F&1RJ!0PjNuy0NsWT#Dg+51IbvjeAd
zS-821RhhnJTFVXArRXm6E&7qUfBz4rK3m70FaE#Gr{pFZQq;gc`@V#^o^ND9B{$fP
zl05cY>0Q?D{NGv4xx>u)LL)0ZTfn5UT6U}~pY^?Topro&lZ94Rv7T4z*@%jIHnIF3
zi at sXL#$LY32G^FeH)^i1xatPhc=a@!S9_f;thvL4+tqAq{YAF?hnuXt<|12DbB|fB
zUuG#kG_bw(S6Kb^3+&Unn{54!AK1|wm)Pg^b?iue1Iw!WiIv~K!mj<}E^GMvUG{(e
zS;zi?=|6w^Cwu4r+aDs(+MYQwJ3D4?_hiie5wq=;F$Xf+;{TfIwpR9zj&^qTe~=&1
zp=8AzA2Cji-u{;YG|y>;ME;Q3V~Ji?!z}*EcpZ4Ny<IaCq9XHZ(GuniYwN<zI&o=h
zwWr%SIkjlPx3z+NXeYRO_Vgm7ujN<5I&V9UKkGEl^tQc&or9yJ>|YMxK}?!Y65fpk
zEZU*?;b>`f3-EGo+qRvHt6R?iFMpUM{Icn-#@9-c6yoLO=H9upYumQYgxrac(*9x1
z{P+RzCHak3{%QFY8mA%rb$I^yb{#r&XxFaY3opp8=i8y-d1~YTp6}4c&d$-1V{>u!
zaQE`^@(=KX>Gk;2E0s#kW0_K^7X(St0j0rUP$=A8U0vF>d-`c;(*c(d+Osl~^=Xsk
z9}F-5J^Fct0BFxP-n;v2cJD5&`{}+*+x9LVZf<T~3JA{6-#@_L&kr=fj_5ruKebvd
ziW=+IKuHFcI&B~)`Lq*(#OYeyo1ZwS{%JE$o~6)IGR=PD)l+0APUYw4o6UGTdE&%L
z*-o82dFte;n|D2W^ym=?*?9#7KzRNk<h6o8_<kQh;IkRv%d>h7xT@)51O&KsYU>P&
zBu1GYp+xlfb6TOLprFV+ZOOgs_wN31_wMz(_s-J$^?P{XkN>-S_U`o`n%unHyxhI5
z00aDdgG4eLy~ov`Mk5IL6Ts~OM_RC&1`GkQr%T(GfGF#ZJo?W`&(5yUl2>3UDowdE
z^-A`v8|#y9OwGR0G^i<M>iX<iOR}@Gr#2048lHUvt9yc<8}aMO1xW1ZpH+R2%a1#(
z%+IDmKIQG0Q>n<o^?HOyg}X~T#6@)E|HJ@^A3S)?m9bYcmoyQ-vsbPRzmmByGdn3M
zJ9FwcO}%ft_T81&Gn(AodV*fho-#i2UYI2NuK3vTk1G$HY_2P6)FSz=4JM%#MKw`G
zrjbGdUE4j~k|6#`1z1p&Q)saiueovd#*G{IZ=7vv!pzw#Sj58p8~4xN`>u&vuQYjh
zxOsx13=k18D2UQ8PaXWtM&P%nHePBC#|B(L$h}#Phm=-m8y+bI5 at NfjtrgWne%$QS
z6d(UR-UsWO=jbzJR2wmCef#e&5pDZm{e$^}q9Ti>uz1b=vsW_i-}~vt+3b7w?l)zh
zz46meO_}$9x_AFOVEpO++3XuV;J)rXdvf=s3?kcq!tWOd|11_hx*l2;Lfrnsb;!>F
z{!HggW=qr$o!o=dl;^C3=rbG`uhp&K_&QF|w!fc!+QET;2imZW4H}Y}bry{UpjTK>
zyrya4`q!K8-)qWvt?BOlrues-?%!{E3;deC8+#VTOJ-VA&mLYRKbaqDmnXwdwA!Q0
z{$&|D4D_IQ2+cg;Mio7`pPly47i^50CB!=kv;?zl%K2c)wlTFovYy8f`f6_cv&;eY
zOF=;%{5J%N;y&cI at jjF{cHxct_wK#^(@*!CUcZsq)YO!@_y+iSJwbkyXKm%nzrgy%
z2EBlQXp4vP=~2H(1}LA at FTQgmHc(bRw#8=o5-Z;Lv&%t^@+YX7_HN_Lr&unu@%!%k
zW8ZW8MxI#Tzk{7Ud+hA at P4M5IZr1cmweyqF-!GE-g+|IN8dQnMJO%}Fikwn at +kbJM
zblNfnFrdyNvA~4$B0}IM_gi@*Z)tXK`YbU7JidZoF*IURzURWC!U9Wf at tU-5-d;Yw
zK0ZD at 1CU{ZynTEEeeo9H8|c}6%8FeRUgZ3!`lI~&$NBN3t0o?gXL8<_Q?(%J4DK(s
zYe^jy+j%t$ifBD#@>$9a1O>s53zklw2wKA)A^o?;_kbN(cg^|IcNP{|a!QVTlAh%&
zie7<1IKbclFNI$8(u+PpLB86Mr3WwWT{?VLSJW?FJ)ayu8#URDf7_8cYEfg&($w$q
zS9rLzagt?Z3rg0rdoZE%l$S_ln17U4>yBNz^y)Qq=)_lFeRbNLIdf(_WYcC$n>cjn
z&|WWh>C&-vD=S_MPGNk*#?h|8Vk+MM$)=P{Z{>*Xdv|>*2tM<__|!LOyJzI5yS9(=
zj`?EGo at FuKqIVO@XWsjGGWw%VFB$xjn~mqMO~Fqjc&Kf7pAYkb<Zn=Tpr7K1EcpQ0
z&*qx>*;~Q20<fXOCQh8QX!(|XNAin}Rx>?fM&sAqjvU#?ZObR0EP8v!v|&SEmQh+S
z3d=K at KiRZtZAu38*Zb1mZfb+r{o8InOD~P|9e-)O=lqKky8Cz at -s9Ds{8#4JGXP@;
zwgQHaAV5UuiD)n^ptN>qtr)mmY)H7&h#Tteo*0Pe+O=!vu3dW|twYwf0kB`oDby#S
z9SOn!3WFk`W1><cEBAG2!+Uz<PF!SEb<p{dVhEd^-E*(>8a8ppqUHOK$hb_V99SVL
zUl at Ncw3@|YvY7CP)iS`Zzy9*eFFzyu_~Yd;a9lKJ#;dQq@*G!W@%~MlHf&e{eo9U6
zvc0~+g4*X>ANNc94|khVJ;kGXzqeKwJhFO1_a<*|WM3M$3P2wAR|NPe{QX2hsZ?Mb
z%0EP}Qc03p<*!f=PzgFeok1%JI*p1t8Z^EIcXRh}dGQ5|qvBlon4c}PkvBL{latdk
zZCqSj-Tebem3sIpdLY<`s22vPgGGZuRAJZJ0XnT(qn8A&Qk2vpu128X at 9);$$qB>g
zG{Q^H#i6z8*yZJ+6X$%q??`Tbey-7+Q)n{g6d4ilbC5Lia!on8IYlN at VU7vVxB;o9
zAg|Dro5T590fHYV_%XNT%imu__V(ML*z4u}pKO4wNJ;If61=PT2B{(hufyFwtRA#9
zW_WeX at bVSGYK<zWdaq|w4{x^~R(_$$WRr-W=oilyw1SS$tk!ANiPVxP2CMaYg<*2?
z?%io=E7Ot&^_vZQcL>SE=5KJXXNF9rcCslBY|89ev!=fEbh{VbwQ=)S@;xU{){7cR
znwPwqEN!8v(Fd!hCnv8?PL7YHEf%A^mi$B9T-rD~_L;jRGc)DAHzqFHa>QJItD(N3
z#$?IKsk&Krt0t%5LLICe3DamUud1u5yLq$jsyVk3jkoG<-K?vvy^wD#C?I~^9^nT8
z!oZIMd>e*X`3cl#<)`gU{8Y-I!!E^NdH4SIZ`Biq8&^PLQegGo?oEA>K)3~X#l>L&
zRG-ZCr%%@E4AQ)~0O<fEXPBI*_d8&a3<0|pzCB%CMr1A4N^m^EKVWj2LJ$-q-{t%$
z{!-uJnWVJX2m|znUYd4npB9-4Lqx=E3~*1)ii?cap#!YYCI^VRmC13 at 5TzuEyG6Yr
z@<5`XH|V9^X_1m%$|8QE=%?sECTp=?6vcqB)E|mXg?Y786pH?5jD>j>Tl<EGuc^pC
z-gnffDRp^;WmRX^#YTko4GiobQ&p877!snzA%}(r#vZFOLVq$on*-bQ_pkgwaNDM}
z8#Y0IX&8@!{(MAVmG7Rl)x&+fH@{gu!SmAI-g=Gil<KA3z|RX6G%Ua?F;0^7`s5Jk
zPcLK{1W8Do?iamMLW!o|t(Oi68oikHECTz~g?f#W4 at n_@fulZh6|ds$@Q&ET`ecRz
z9>p~vmL?5y%v7s1A+zlrmc;qX&7xpf9T<5aLK0QMDuh#AmQK*^)<Tj3rpXbKAY}op
zE;3RZ7QfqIPzsV>tqB}eUtXA3H%_M(j+PV_R-^`Nq?B^=Q9Z_K8}p1nCaHr})c=mH
zy1Y)WR_inxNvqQcVTa0dax73R*>CC(65O^y=C^+If^OZb_jc>{xv%%0>OI|N5BI!$
zX-c;@FAwh4&GYcV-rbsd^hW(c6%6Nx0wOsi0AXCpGT>AaCo2|DMmE)mSqk?|Nuv>W
zKwl#l2B_&ovBD34^g?9DGd%NSsGj)sN$ZQ at 7s{z1E*K^aV)&>|@eZ3BPe4)UL4kp@
zT4os#4b{jXxB^-JLSkH~4zU6HOOB)ifP8fkVG&Wgby#l*)hbnL;kDEGIagzJD*e$C
zi=`q}6|77tFFvZ$=(IO;tI`A1f{sitf?v9SP!OC%FDO-d?Z8{c-^Y*ZZ&^x8zr(wB
zZrikH&o<8mYc~z<UbU;+8=H1Uxy3Bqvv<!@_kh1NdH3)lf;N6i{c45GPXeOENX2eQ
z3^d{gwOpb=<WIG?e=0MC02|`dvXUZnq>}hCaycgRYmo^Vz#X*_5s{IR5fSmwpP<%A
zvz^kkdO<NMd3D<A)U=ILMvf7J)w&T$$%_*c6Avh)-5Nn7MI>kKUb#9#AVnfo2?p)%
zXu`KLD=XfhQTxYSyWBWhsrEZsTxhC*#0={$7ax^0g0}J0nLyP5F)U#nEM;p&e&bPC
z`nuHAG`&h4aHtq5IfpCoarB4U1 at UiL%J&;rZQQtO&8k(aGE-Kq%2+=?J!9jlRqHa>
zqh;0ljMUBdz1{kv^I_u$PbGdxkXe#itxt?J>{bP1_*2v_aa<CJfS=~bMoxmm8AfFG
zv$KCGX`vs6Mim*TClLB5PujDQV<pg<l=1GADO0DAwX(~^DfrJG8Ea7MCnr6Nq}-y#
zGj=I`vEP}WPy6754|Xny>E9n$O4RR;mUIEh(cGiK4_D!UpC}3|6C<M1R{E<&!;Y9^
zlLTGJA+yC&o^B9BDE<ZL)!N3o1dM=(ovSLZC@(HQRaj^$DJdx}E-t at ZpI}gm>BV4|
z`#bo_`Q!G*it_UEi<OlXr57tM6ki_s-sOvx7cb<Omsedbzfe(Hb+>ol{%&p*0sRsG
z;Hdi5<i9!t=a=j;CQd18;{;J!&r-B1wLXp6tqTKXLt0B3yR(}$2^T+f{Y!)o{NTTA
zeV|6A3*G1lPsR(kQSBWv4afzv-&Lqp`uMcW^=TO!kxtk9YxMmaE}BfaMpH at Y;blj)
z8l?`gPA3sR1Q2+lHZ*>*q|`+37!eUMBFmrx$w_IE;C`&!WU5 at J*67H81tB=J{&pCu
zqa`&a44j|>EG#rvT)lI;;q>iu$D;HDG%5L(oLo5p|C;`+^$X9yRQ+vO`(er*6D~yA
zCwt3^FexkE;}vrFQne9<P|1daMFqJ<#=BwTMu&&@?d|0i7?>C*2J3~iAe4DJMJjcs
z(i~He0^>6fc at ke*LwO{PIiwj-pT!R0)t!S~rikbhH4?C>NW+^$szI&R&g at 4mxJ?gX
zvKE;-Xk+$9Uy1~9Nu6FR8k*8XwQ}Yy93U0Eg(mZDghL^FV5lDa5Fd8yv=Ih_v^ZWH
zYKU75eo-sqBtajSm>P-5m^ES9o@?t=I%!q8`M6dc9NyS~`cXP=F5p9Vg$21an at 1R^
zs>f%P`p`4^Ij9AVxevpW>p!ZXdHwPbzqdDS+O~=K)tWGjU-rfe2aP!;D+YD<jtcPh
z9J!~&Qug5s9~9xhO?Sh`jUELX7_R6!Z#puTZgqgt&ri{LJ?>w^TQd=SQr8<qO~jOU
zkUyj}_EHi&Tbb6vTI{9xkvG3f?C?SrgZ1b?B+ufm%N at 9teFjpH?)cFFK|ryL!3FgI
zb?A?&2Ej15ijJbtQj}vd-bTdLHXQt7X-rC_s4^Uoq7&yO&dZ9$x6PXw6%i4Zn25^|
zw|EEm=?{z;6|*2275B!=rAKwa!C{T{p=!Z!25A{1$G9HlXZj0D>o|s>o7;GTdTjgm
zZ`rbCIbPiM at 1sQ+bwD1f|DeETemSTci%Q<`IDB|uZ&9V6sT>fj@{PH)tNYRtgwtFb
zztN*`fmg=qkjPT|_xEsibeJt-^R#}bRQywh#4FW?jk68lm%)a_N*Xn$@_>ikZ1}IJ
zxABAA`e9=f+0l_adyI&RT2g!As7?^I^$iN7NA%1>6_P%n|BtDHXc&DHbsXL5!eKTV
zR0F~q%|)i-o1>I!?T&%p#KEq_2M4R-7Dq)yg(pvjPY^#rW5^mYVnjkRcxHTiI9pNy
z{I$Lso#9Y<E}41%{=*3<cyPbUAO9j(&a$_sei;t$=hmuq>y8~?e);90!(N>>1LF*H
z$a`VU{BjEla|(+}CUo`D;dX>if<ZSxPzQN?F0C#q%FW9me&Zm&(KydhtK&5)edyL@
z6NmQd()v9=y{Jo_ZBS|^kF?8>)c$Epv=CZ`{m58!QFUnucf9XDRniNha-;3ATD2ZO
z7KxiWwbZj!BRwZonvd%AD($UnVd`N0;_J5?@7%uD*jT$&3KsgFt1zOjHG!Y;S|HNY
z?OgQ1YDOWU9$R({<$OT)N(k0)ASx;<`~ae;J~?(rq+Ts$jTtjyaiUHuEL<=FwWHww
zL&FGBqf6K|Y$!%m>{{86A0w#5Ntu}&kw0g at L}7#?3=KTsMa4ch+hN;=AqeI$4B6QD
z)fh31pJyrA9yZwz{KQW~LUkH3Xu8)|hz1B1Hhv>U;d&;=se;AO+b7J%T=R+BTAfOn
zg~Cl*-?8J?FtzfvE1|gV8(ZPP5XI8?rEJx)<2#X(P9vS3IAab*KK2>SB~^3btZ*H=
zWr=E5B_>rGk4j3Fp{^<k at pZ)YMs%^NYHBVthO5-#m@~I(YHDs(UAR!ypirp|4VO!c
zPu9kQU-p?}h;xSYYz1}~cK{_$91h0+z=$1 at 8qtuoW5<pI5$Ine&K#A65?)vzvlx*$
zASs2%jgikxjnV{*iL-_b899WE1{FCv03?R8*)XDP;0aLHCt4rohbUJX<U4AvZ?MX5
zd#FyQ@%}W>e|$+1dfO%w^2fMQ at ZJ&7U}`*)MOd8?D+-N`fm*#GJ58?%t3Pq#YJx@#
zX at c+!$F{*S1ZC)<ZTpUxVdV`Yut!5}KK0a*^>R#?)4 at +A`YQqhLqoNpq5T)2hk!8%
zZC%B={_tOIY{J}xgoFh(HR%DMs|b%BGiKDR<A>5$qr;$1Oi9^XR~IX)v`MRxE`(9n
zt|b^$8c8>AUZepykx6z$>rtIYM?%voQOfGyKTA-l^cfxpB$ZO54T+4DBBe1?`b`g3
zp|YPe88&HB(hxvFMziWohWLP^tjC9#+V~;76k1GW%ltI~bLaY~g0 at Ems{%d^30C=h
zRYU_kR(_*LkB)hB?X|hckD-(i5s+>wB(-1mBuSWAX|$M+3hIFDSoBU06&I%~HA-o7
zCDF1Jl{5sRixzd&Nca1wbg-1BBTGoBKQ`XFbrW{yPF+dySzWL?tkzt$IZVPi>$F-)
z>RVTQYo<TqBD5+P^w~)YX#mE`6jHFFp>C8?r89^k%IyUgiyKEv=*FO9f~qtEj=UpU
zsnLlTv(aFnD>BW^ElWp*m8)SlC2(|Slm;n$ibF;acE|f8=<iG#3GbC3yyxtih4&CM
zYP0H+p?*RBU6xWq`PW$8N2gQ!&i&NeXZsl6-rEP_LQ4}&c||B{NPnZpjhnFIt73D_
z0zIyK9aT^kQ=>m9>`-Wh%wki4sllMqFGk|f9Wok^BCe_CR+%i=wWat_P_Uq#S!u$6
zcU}SUD>>&Us`UxCipx+gpt#E|J8wL02-bwxno8=j!wh=5D=+wIYje!?3&IdR5xsO$
zc2WrXdzt|TojMTw(D_EsPb(<SnF~%e%+vxOI^4Rr0}*}uu10mE)u at yPon9ZkyT7-0
z7A}WA&D}E=BOK`Hh-yh=nCdWcwF3Gj?C284#@Igv7e<L7o0SuV!=D>rhHcn{9>|Bw
zQfiTZEylfGVz5T-J^$10+lLQ26OImrAoecFvlJB?e+(ZpZo->85%Wyunz at qNr~l1j
zQ%<4Lcr8e&6XNxPwmug<$EvBK5ItE4)*mX#xf7<>1ou4y0YbmGW<m*pnP!NOjLOZ%
zP?ew#J5*HycBb=SSY$qqk|ykCuEkt+^UT&I2?=xO&V8 at OSY)hdIF!C*)+{WaJDNTd
zXRD2$m9U_$X6yRY6l|4{dZ*G at Xsoz%JSi$PG-6 at K)V3}j9*b9^zelM#G3~%g1#Vv-
zh>xEfx6<9sEi`R+a$MZx$?=mHPIYqZlesY|Hg at bJvL!?KV|1jip8<RXC#~dYp}tLP
zKL9^d(fRWw%Wwk(!ggD*bjA2 at 4ZZ;wy;S*rb^g355BX!lii4%)7%8i(Ye>L&Y2c67
zXujfFfZia4>V=s#$ltgVkB71hI#D`g%)L4{2mxu#xw;D%uGS|}3>w(Lt6%~M=~ksn
zD!A+BdW^i);#FxhA42L5uQd|z;)=?u%F3#$N<yA%E-uGHW#!e13spacYSe}wuU1{o
zwUm at sR9?MWReAYh`IfgQzTDcb-xQ1^qQlt2$*E=gK~rPn$tDHT*qfXCH{X17;7XFK
zTMxIc?xB+=@pb(@T%21v_Zh?uIfU?$S%Ll5g!?bXuj)!RE&F26K)r-O9v;?zMQQbf
z at UXBD46=#11+r|v@$Q6!W#@}(2lfpOjGClV4+su6goi2u2i7<EV}w;0Af*>0$`u$J
z6f|&x0 at a*TQXdL6i-wu&QfGys52p6tTxH`254MzC8!e(A=pQySJTyQX*mpri at ll`&
ztA$`mqBMqtk#?{y%p;;EBbF>CbG<?>hTMV67ZezcNKISjOzhQ>G9peEp`SlAfOmSd
z*vT0>#M7Q`5FO&50e4K&+}+*Wt=6>@W;%6pb#3b;KVoAmQ+R$QjXe%O8vm;)?bpq-
zbMMJ>KmBz3u3fwKY$;j0bNlw~E9NIed3tp3_NKYvLsaahJLmzS8>Z8R4p3<XlpgwX
zw*xUjh1+06hX^HEtXhLHYw3`=u&82dpop*!(_?E*z^poCsRw2$Jrj;7hcOz+92+H|
z{xhh8wY3Bpz=$HAZsPN{Pa)u%>-|-FLt}1EiFx0mX~R0A-bEmi%L?ikaw8DrVL;dt
zzU)q8zizwHQ_{kJ at gyVezVKTxZf>{()3uYUhfDi5xDmyl*Jy at _9Xt-d4Qp4V+$=j^
zR#rM*3JUi1QTcQWdVT5EZazM~z9GRrOD|TJo;UvRL2h1N(M_!yU2_x{s1A|pP<{PS
z-(OUzb=tAFOvJCCe4PSWPB0udTZ)WV4}}>}1gg=`2o4TOzm;#pfW8jyLzpVh%nS?=
zm4XJHU7e2eQ>*%-7Jxiqd}|KU8Z~*sH{A at yaKM=v!@9`iz{?Rs6r>jVDS>Q+j|>%@
zqhkv&bcNEg{4t8V(yfOl_{rAQtt)7D?bN9UZf3c<SfAXqRxcFd<h}j+J4UY%|2|xE
z$7Ct87}xqs(LU;EpXm_+-t)J26Adb@#`_=@Y{kd7<)B!p850{DJ8D$ySWIH69vgSN
zZf;Win9(s?E9e{x3e1f$F{4L~i#d%ThKSy<IbN#`)fxtlU4N!BxA43T1Y9%+Bjv at n
z8a5})9L4uGYU_pE(=nq*Pq>P%1;@t~DDRe|#DU}*i}#-%jKRVb4v6w1KRGKz`OKS7
zSJo33By`vzGb%DV@*@%+cV`lydsni~ojpA{K|)9mwe!BmZ_~50d*j2k8^CYtU2{=U
zk at 28gWW<1IuX#Svi<7#)m+nhl`2N+ at YcD@uUVsjFeof8Qt2H%swRPwW(CpPyX1rtR
zDynICT0u at Zt-n=MDMz~8Q?+**uhlo)s<~iBiG*7GfdOzqQAv4a)zz!D^jDdiQ(0GY
zt0osAj~)xNSn!U`@qi8<)5dL`lb^jktXFIMzfFC2%Iue at mnGL3R*|6SMZ+Uz^F<7i
zIkF+>a?BbIXD0V;Hup|6+o at A$7($_|i%WawmWZ8?mqcD!v3BhTYd^nUjN{C!9vCf7
z51QvW{iC-QX7`>w*GCWomY#<n<<%Ug at JAgHis>f2FvN(6ZbWfIQZgFpTybL%RZtE(
z7g(QHXhBhgK!ycuhx!P24sG<vJIRHq5TyGJmLl9t#9$IMS;CvJF}TrKI^AA09{FS%
z_gBO^{0 at NbecIzUrkoB}8 at 0$vlvRWEww2U?d8{VMIyg8{Z9 at r!^as@;fpqQa>f!1N
zg1|@!T|L_KaA at tn@eekO`e!pwKl|6EE7orK at GJ`3!osq>p3~9ioj$#{kN4PbUYj*j
zA at -;8&yst48}w9!O88%l=gNO+eVhjRB&n=<5Awpp5(Rnl2}%;Uo5GETSt%?L6aoe?
zyd7eZ!Ts#)9xUK<R+)k{(u#9?Fyyfh(&H(Z_>l}@ok5Z-k)Bhc(O+A3!d`F{=v!@j
z?%@2)U*BA|V#U@*>cCk_CMc!{%#*yQFHD-;J>#u0ll*p-Ky^9Ar%!<0FY<dFQonB-
zP88#O=Hh*eCc<BNezhI&lbJG}Q(Qd2%pD=H6X(Vq81TrGDJBxa_U)bNr&Hw2P&}73
zf3qD%8~o<#*}pAYw)I>koTad2e$U|PzR at 2od@Cs}&HMF_LVUk6l_99r?1X=V?=R@@
z_py0&YugUF2+5oACGdBX`LnlWbX;KnUR$<v`5ja8c0@#{Ht=PxJ2 at H>H(7(=XLV)y
z_h=j<f}$<F+P<reGk$0E>|ZA=-F!Q at z;ga8kC at S((-TAR99zg+- at N{p1p^0_mYE7J
zoZCj}q1n+MrSJ!qtv<^q_y!cjN4ChNiJV}qUS~VrCp49XgfQUPqNOt)8X>Qh5nB0C
zE`bqG%urH+;fGStBL5wq?Xd8RE&LP>5}bdiCeOI`#buYOSM=@{J at 2EB-qLp)^i at ge
zpgyIAIk%S;%cB5)0MxI4l-ThcQ*vavTo23fg?t8PJJctHj_*e1N3)29C=WZhK!>g}
zLh at ia88`F83~%Y&nK0rvksaDVkYrCk4SH=svHj at l`R4KC%g_(5-ZOqs_wIw2epPzD
z$a1OAw%j|Pm&#qL|Aqh|I>0O5FNZn`G3a@<kYUk%PS}HREjK at bce*ZgVF)DV!LSW<
z=t8-di%}*>BIG*k)R|g4zevljov{sZB%|M);+K?d+dco{*t-`?O6cbxCe!)qf%7kw
zp+w2eEh;OmJ9?1D at W>v{jdIH$dZ!Y|d~&(XU#Z4`<mkkpJ#HjGvL`P>+P$sH!6l=M
z=G3M=knlo=OVH}e#1hN!V$6|4bLXb_&YhoaL-d^6w{QDGyRmmq=28`i!tMOXwS3$e
z0sZT`GY89Tb=wo;M;>d;{Su<1{_8_OIOf_yu7k<5Pe5$HwhQ^nST7A<zz<B at wj~vk
z(140(5#mSlcwAA2hIeej%__gP&$nya?k~fCK(CxsR&;*wo8Sk_J#q8%ZBQj#%qBr<
z=GCpW_-$s&+ne<$XIAd<Jg?FUzQkjlwH~$=R*%RF{jOg-=O^3_5kA->DH4B<EuN(Z
z5xLq(cVrwN&43+$(L9!H{2)Li;*rO1RhX$)klW{t5)7u~<zBwMbz2EW at SCw%XE;RS
z_zOnsF!Y4J!$a$-0Y>R{+OU_YsQWKOwFfBv(>Yu>iXiAMJCiRXslW&nB*#6N6bP8S
z9dE?XnG$e&c(Ie?OYa_UtUQUw7fSJDu(|l^o#Q)8%kYG&wckqhnQX*{j4#ooc at 4Gj
zHF(3*oz|tYGNXCl@)@sM$x+OP{ikR7U;Uh%^=b6b8W82IVhw&IL>Sf9WSk$~fUgZb
z0PEOq<k=r?<5uC-x;wW|f4=hszsY7XBLDun$(?<^o_IZE)I~NIAHmqL+<WEJnmq<f
z&GY|NB)@CtJh6~_(7{r1V^bmtkE951=J~|tznozkC+OCW#xER(^xK$}vVP;ce|zJD
z6S!&3aoFI{6yDtIx8##nUi2Wgbr$!z at no^l_~pklCJyaF&icz|@Mzxn<*ojwTL~cX
z!;N$YK%{|e`u`qm|2GDT7cM>iX4PN&XCVX{;-Q=G_9!W#UKsvctX{7!I)eM;G_vwr
z29#iCH0K}Lw|vg4!{p3rWryp+89p4Y|EIY;&iC1lkH#A)n-E8urMx0 at Y=dH at J;g?D
z2z_Ku=*kdpxG*mruqo!AdWwQ6o(SpKYuL0!%lDay4qiycHiOJaXvX}LfVODPw4wNc
z1QjGOLWY;@qt*r<@vzT7XXFE5pyHT`9vK}sHPDodj-8Z+UL0;wIXQ8DZCX0P(dnE}
zzmn>(Jw+zID_)$*9|p*dy?PCU(a&|rCStx<uPz;J%w#|1&}DY~yNRLIuuO-5OCt}t
c)A~P?;V^MH&GCk-5Ka7;35g7myi~UT2NB!r;s5{u

literal 0
HcmV?d00001

-- 
1.6.0.4



More information about the U-Boot mailing list