diff options
Diffstat (limited to 'recipes/u-boot')
-rw-r--r-- | recipes/u-boot/u-boot-2009.11/at91/100-icnova.patch | 6820 | ||||
-rw-r--r-- | recipes/u-boot/u-boot_2009.11.bb | 34 |
2 files changed, 6839 insertions, 15 deletions
diff --git a/recipes/u-boot/u-boot-2009.11/at91/100-icnova.patch b/recipes/u-boot/u-boot-2009.11/at91/100-icnova.patch new file mode 100644 index 0000000000..0fe4620094 --- /dev/null +++ b/recipes/u-boot/u-boot-2009.11/at91/100-icnova.patch @@ -0,0 +1,6820 @@ +diff -Naur u-boot-2009.11/board/in-circuit/icnova/ap7000_nand.c u-boot-2009.11.new/board/in-circuit/icnova/ap7000_nand.c +--- u-boot-2009.11/board/in-circuit/icnova/ap7000_nand.c 1970-01-01 01:00:00.000000000 +0100 ++++ u-boot-2009.11.new/board/in-circuit/icnova/ap7000_nand.c 2010-10-08 12:09:30.000000000 +0200 +@@ -0,0 +1,87 @@ ++#include <common.h> ++#include <asm/arch/gpio.h> ++#include <asm/arch/hmatrix.h> ++#include <nand.h> ++#include <linux/mtd/mtd.h> ++#include "../../../cpu/at32ap/hsmc3.h" ++ ++void nand_init(void) { ++ gpio_select_pio(CFG_NAND_CE, GPIOF_OUTPUT); ++ gpio_select_pir(CFG_NAND_RDY, GPIOF_PULLUP); ++} ++ ++static void icnova_nand_hwctl(struct mtd_info *mtd, int cmd, unsigned int ctrl) { ++ struct nand_chip *this = mtd->priv; ++ ++ //putc(0x20); putc(0x08); // SPACE BS ++ //putc(0x20); putc(0x08); // SPACE BS ++ if (ctrl & NAND_CTRL_CHANGE) { ++ if(ctrl & NAND_NCE) { ++ //printf("NAND_CE "); ++ gpio_set_value(GPIO_PIN_PE16, 1); ++ gpio_set_value(CFG_NAND_CE, 0); ++ } else { ++ //printf("NAND_NCE"); ++ gpio_set_value(CFG_NAND_CE, 1); ++ gpio_set_value(GPIO_PIN_PE16, 0); ++ } ++ } ++ ++ if(cmd == NAND_CMD_NONE) { ++ //printf("\n"); ++ return; ++ } ++ //udelay(1000); ++ ++ //printf("0x%x ", cmd); ++ if (ctrl & NAND_CLE) { ++ //printf("CLE\n"); ++ writeb(cmd, uncached(this->IO_ADDR_W + (1 << CFG_NAND_CLE))); ++ } else { ++ //printf("ALE\n"); ++ writeb(cmd, uncached(this->IO_ADDR_W + (1 << CFG_NAND_ALE))); ++ } ++ ++ return; ++} ++ ++static int icnova_nand_rdy(struct mtd_info *mtd) { ++ int ret; ++ //udelay(100); ++ ret = gpio_get_value(CFG_NAND_RDY); ++ //udelay(20); ++ return ret; ++} ++ ++int board_nand_init(struct nand_chip *nand) { ++ /* Setup SMC-Timings */ ++ //hsmc3_writel(CYCLE3, 0x00090009); ++ //hsmc3_writel(PULSE3, 0x04030403); ++ //hsmc3_writel(SETUP3, 0x00010001); ++ //hsmc3_writel(MODE3, 0x00020003); ++ hsmc3_writel(CYCLE3, 0x00090009); ++ hsmc3_writel(PULSE3, 0x07050705); ++ hsmc3_writel(SETUP3, 0x00020002); ++ hsmc3_writel(MODE3, 0x00020003); ++ // Enable NAND-Logic ++ hmatrix_slave_write(EBI, SFR, ++ hmatrix_slave_read(EBI, SFR) | ++ HMATRIX_BIT(EBI_NAND_ENABLE)); ++ ++ ++ /* Setup GPIO-Lines */ ++ gpio_select_pio(CFG_NAND_CE, GPIOF_OUTPUT); ++ gpio_select_pio(GPIO_PIN_PE16, GPIOF_OUTPUT); ++ gpio_set_value(CFG_NAND_CE, 1); ++ gpio_select_pio(CFG_NAND_RDY, GPIOF_PULLUP); ++ ++ /* Setup NAND-Struct */ ++ nand->chip_delay = 50; ++ nand->ecc.mode = NAND_ECC_SOFT; ++ nand->cmd_ctrl = icnova_nand_hwctl; ++ nand->dev_ready = icnova_nand_rdy; ++ ++ return 0; ++ ++} ++ +diff -Naur u-boot-2009.11/board/in-circuit/icnova/at91_nand.c u-boot-2009.11.new/board/in-circuit/icnova/at91_nand.c +--- u-boot-2009.11/board/in-circuit/icnova/at91_nand.c 1970-01-01 01:00:00.000000000 +0100 ++++ u-boot-2009.11.new/board/in-circuit/icnova/at91_nand.c 2010-10-08 12:09:30.000000000 +0200 +@@ -0,0 +1,123 @@ ++/* ++ * (C) 2010 ++ * Benjamin Tietz, In-Circuit <benjamin.tietz@in-circuit.de> ++ * ++ * (C) Copyright 2007-2008 ++ * Stelian Pop <stelian.pop@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/at91sam9g45.h> ++#include <asm/arch/at91sam9_matrix.h> ++#include <asm/arch/at91sam9_smc.h> ++#include <asm/arch/at91_pmc.h> ++#include <asm/arch/io.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 << CFG_NAND_ALE) ++#define MASK_CLE (1 << CFG_NAND_CLE) ++ ++static void icnova_arm9_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(CFG_NAND_CE, !(ctrl & NAND_NCE)); ++ this->IO_ADDR_W = (void *) IO_ADDR_W; ++ } ++ ++ if (cmd != NAND_CMD_NONE) ++ writeb(cmd, this->IO_ADDR_W); ++} ++ ++static int icnova_arm9_nand_ready(struct mtd_info *mtd) ++{ ++ return at91_get_gpio_value(CFG_NAND_RDY); ++} ++ ++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 = icnova_arm9_nand_hwcontrol; ++ nand->dev_ready = icnova_arm9_nand_ready; ++ nand->chip_delay = 20; ++ ++ return 0; ++} ++ ++void icnova_nand_hw_init(void) ++{ ++ unsigned long csa; ++ ++ /* Enable CS3 */ ++ csa = at91_sys_read(AT91_MATRIX_EBICSA); ++ at91_sys_write(AT91_MATRIX_EBICSA, ++ csa | AT91_MATRIX_EBI_CS3A_SMC_SMARTMEDIA); ++ ++ /* Configure SMC CS3 for NAND/SmartMedia */ ++ at91_sys_write(AT91_SMC_SETUP(3), ++ AT91_SMC_NWESETUP_(8) | AT91_SMC_NCS_WRSETUP_(0) | ++ AT91_SMC_NRDSETUP_(8) | AT91_SMC_NCS_RDSETUP_(0)); ++ at91_sys_write(AT91_SMC_PULSE(3), ++ AT91_SMC_NWEPULSE_(28) | AT91_SMC_NCS_WRPULSE_(20) | ++ AT91_SMC_NRDPULSE_(28) | AT91_SMC_NCS_RDPULSE_(20)); ++ at91_sys_write(AT91_SMC_CYCLE(3), ++ AT91_SMC_NWECYCLE_(36) | AT91_SMC_NRDCYCLE_(36)); ++ 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_SYS_NAND_DBW_8 */ ++ AT91_SMC_DBW_8 | ++#endif ++ AT91_SMC_TDF_(3)); ++ ++ at91_sys_write(AT91_PMC_PCER, 1 << AT91SAM9G45_ID_PIOC); ++ ++ /* Configure RDY/BSY */ ++ at91_set_gpio_input(CFG_NAND_RDY, 1); ++ ++ /* Enable NandFlash */ ++ at91_set_gpio_output(CFG_NAND_CE, 1); ++} ++ +diff -Naur u-boot-2009.11/board/in-circuit/icnova/config.mk u-boot-2009.11.new/board/in-circuit/icnova/config.mk +--- u-boot-2009.11/board/in-circuit/icnova/config.mk 1970-01-01 01:00:00.000000000 +0100 ++++ u-boot-2009.11.new/board/in-circuit/icnova/config.mk 2010-10-08 12:09:30.000000000 +0200 +@@ -0,0 +1,8 @@ ++#PLATFORM_RELFLAGS += -ffunction-sections -fdata-sections ++#PLATFORM_LDFLAGS += --gc-sections ++#TEXT_BASE = 0x10000000 ++#TEXT_BASE = 0x00000000 ++TEXT_BASE = 0x73f00000 ++#TEXT_BASE = 0x00300800 ++#LDSCRIPT = $(obj)board/in-circuit/icnova/u-boot.lds ++#CONFIG_ATMEL_USART = y +diff -Naur u-boot-2009.11/board/in-circuit/icnova/flash2x8.c u-boot-2009.11.new/board/in-circuit/icnova/flash2x8.c +--- u-boot-2009.11/board/in-circuit/icnova/flash2x8.c 1970-01-01 01:00:00.000000000 +0100 ++++ u-boot-2009.11.new/board/in-circuit/icnova/flash2x8.c 2010-10-08 12:09:30.000000000 +0200 +@@ -0,0 +1,241 @@ ++/* ++ * Copyright (C) 2005-2006 Atmel Corporation ++ * ++ * 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> ++ ++#ifndef CONFIG_ICNOVA_ARM9 ++#include <asm/cacheflush.h> ++#include <asm/sections.h> ++#else ++#define dcache_flush_unlocked() while(0) ++#define sync_write_buffer() while(0) ++#define uncached(addr) addr ++#endif ++#include <asm/io.h> ++ ++DECLARE_GLOBAL_DATA_PTR; ++ ++flash_info_t flash_info[1]; ++ ++static void flash_identify(uint16_t *flash, flash_info_t *info) ++{ ++ unsigned long flags; ++ ++ flags = disable_interrupts(); ++ ++ dcache_flush_unlocked(); ++ ++ writew(0xaaaa, flash + 0x555); ++ writew(0x5555, flash + 0xaaa); ++ writew(0x9090, flash + 0x555); ++ info->flash_id = readl(flash); ++ writew(0xf0f0, flash); ++ ++ readw(flash); ++ ++ if (flags) ++ enable_interrupts(); ++} ++ ++#if CONFIG_SYS_FLASH_SECT > CONFIG_SYS_MAX_FLASH_SECT ++# error Flash has more sectors than allowed at max ++#endif ++ ++unsigned long flash_init(void) ++{ ++ unsigned long addr; ++ unsigned int i; ++ ++ flash_info[0].size = CONFIG_SYS_FLASH_SIZE; ++ flash_info[0].sector_count = CONFIG_SYS_FLASH_SECT; ++ ++ flash_identify(uncached((void *)CONFIG_SYS_FLASH_BASE), &flash_info[0]); ++ ++ for (i=0, addr =0; ++ i < CONFIG_SYS_MAX_FLASH_SECT; ++ i++,addr+=(CONFIG_SYS_FLASH_SIZE/CONFIG_SYS_FLASH_SECT)) ++ flash_info[0].start[i] = addr; ++ ++ return CONFIG_SYS_FLASH_SIZE; ++} ++ ++void flash_print_info(flash_info_t *info) ++{ ++ int i; ++ printf("Flash: Vendor ID: 0x%02lx, Product ID: 0x%02lx\n", ++ info->flash_id >> 16, info->flash_id & 0xffff); ++ printf("Size: %ld MB in %d sectors\n", ++ info->size >> 10, info->sector_count); ++ for(i=0; i<CONFIG_SYS_FLASH_SECT; i++) ++ printf("\tSect %i @ 0x%08lx\n",i, flash_info[0].start[i]); ++} ++ ++int flash_erase(flash_info_t *info, int s_first, int s_last) ++{ ++ unsigned long flags; ++ unsigned long start_time; ++ uint16_t *fb, *sb; ++ unsigned int i; ++ int ret; ++ uint16_t status; ++ ++ if ((s_first < 0) || (s_first > s_last) ++ || (s_last >= info->sector_count)) { ++ puts("Error: first and/or last sector out of range\n"); ++ return ERR_INVAL; ++ } ++ ++ for (i = s_first; i < s_last; i++) ++ if (info->protect[i]) { ++ printf("Error: sector %d is protected\n", i); ++ return ERR_PROTECTED; ++ } ++ ++ fb = (uint16_t *)uncached(info->start[0]); ++ ++ dcache_flush_unlocked(); ++ ++ for (i = s_first; (i <= s_last) && !ctrlc(); i++) { ++ printf("Erasing sector %3d...", i); ++ ++ sb = (uint16_t *)uncached(info->start[i]); ++ ++ flags = disable_interrupts(); ++ ++ start_time = get_timer(0); ++ ++ /* Unlock sector */ ++ writew(0xaaaa, fb + 0x555); ++ writew(0x7070, sb); ++ ++ /* Erase sector */ ++ writew(0xaaaa, fb + 0x555); ++ writew(0x5555, fb + 0xaaa); ++ writew(0x8080, fb + 0x555); ++ writew(0xaaaa, fb + 0x555); ++ writew(0x5555, fb + 0xaaa); ++ writew(0x3030, sb); ++ ++ /* Wait for completion */ ++ ret = ERR_OK; ++ do { ++ /* TODO: Timeout */ ++ status = readw(sb); ++ } while ((status != 0xffff) /*&& !(status & 0x2828)*/); ++ ++ writew(0xf0f0, fb); ++ ++ /* ++ * Make sure the command actually makes it to the bus ++ * before we re-enable interrupts. ++ */ ++ readw(fb); ++ ++ if (flags) ++ enable_interrupts(); ++ ++ if (status != 0xffff) { ++ printf("Flash erase error at address 0x%p: 0x%02x\n", ++ sb, status); ++ ret = ERR_PROG_ERROR; ++ break; ++ } ++ } ++ ++ if (ctrlc()) ++ printf("User interrupt!\n"); ++ ++ return ERR_OK; ++} ++ ++int write_buff(flash_info_t *info, uchar *src, ++ ulong addr, ulong count) ++{ ++ unsigned long flags; ++ uint16_t *base, *p, *s, *end; ++ uint16_t word, status, status1; ++ int ret = ERR_OK; ++ ++ if (addr < info->start[0] ++ || (addr + count) > (info->start[0] + info->size) ++ || (addr + count) < addr) { ++ puts("Error: invalid address range\n"); ++ return ERR_INVAL; ++ } ++ ++ if (addr & 1 || count & 1 || (unsigned int)src & 1) { ++ puts("Error: misaligned source, destination or count\n"); ++ return ERR_ALIGN; ++ } ++ ++ base = (uint16_t *)uncached(info->start[0]); ++ end = (uint16_t *)uncached(addr + count); ++ ++ flags = disable_interrupts(); ++ ++ dcache_flush_unlocked(); ++ sync_write_buffer(); ++ ++ for (p = (uint16_t *)uncached(addr), s = (uint16_t *)src; ++ p < end && !ctrlc(); p++, s++) { ++ word = *s; ++ ++ writew(0xaaaa, base + 0x555); ++ writew(0x5555, base + 0xaaa); ++ writew(0xa0a0, base + 0x555); ++ writew(word, p); ++ ++ sync_write_buffer(); ++ ++ /* Wait for completion */ ++ status1 = readw(p); ++ do { ++ /* TODO: Timeout */ ++ status = status1; ++ status1 = readw(p); ++ } while (((status ^ status1) & 0x4040) /* toggled */ ++ /*&& !(status1 & 0x2828)*/); /* error bits */ ++ ++ /* ++ * We'll need to check once again for toggle bit ++ * because the toggle bit may stop toggling as I/O5 ++ * changes to "1" (ref at49bv642.pdf p9) ++ */ ++ status1 = readw(p); ++ status = readw(p); ++ ++ //writew(0xf0f0, base); ++ //readw(base); ++ ++ if ((status ^ status1) & 0x4040) { ++ printf("Flash write error at address 0x%p: " ++ "0x%02x != 0x%02x\n", ++ p, status,word); ++ ret = ERR_PROG_ERROR; ++ break; ++ } ++ } ++ ++ if (flags) ++ enable_interrupts(); ++ ++ return ret; ++} +diff -Naur u-boot-2009.11/board/in-circuit/icnova/flash.c u-boot-2009.11.new/board/in-circuit/icnova/flash.c +--- u-boot-2009.11/board/in-circuit/icnova/flash.c 1970-01-01 01:00:00.000000000 +0100 ++++ u-boot-2009.11.new/board/in-circuit/icnova/flash.c 2010-10-08 12:09:30.000000000 +0200 +@@ -0,0 +1,229 @@ ++/* ++ * Copyright (C) 2005-2006 Atmel Corporation ++ * ++ * 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/cacheflush.h> ++#include <asm/io.h> ++#include <asm/sections.h> ++ ++DECLARE_GLOBAL_DATA_PTR; ++ ++flash_info_t flash_info[1]; ++ ++static void flash_identify(uint16_t *flash, flash_info_t *info) ++{ ++ unsigned long flags; ++ ++ flags = disable_interrupts(); ++ ++ dcache_flush_unlocked(); ++ ++ writew(0xaa, flash + 0x555); ++ writew(0x55, flash + 0xaaa); ++ writew(0x90, flash + 0x555); ++ info->flash_id = readl(flash); ++ writew(0xff, flash); ++ ++ readw(flash); ++ ++ if (flags) ++ enable_interrupts(); ++} ++ ++unsigned long flash_init(void) ++{ ++ unsigned long addr; ++ unsigned int i; ++ ++ flash_info[0].size = CONFIG_SYS_FLASH_SIZE; ++ flash_info[0].sector_count = 135; ++ ++ flash_identify(uncached((void *)CONFIG_SYS_FLASH_BASE), &flash_info[0]); ++ ++ for (i = 0, addr = 0; i < 8; i++, addr += 0x2000) ++ flash_info[0].start[i] = addr; ++ for (; i < flash_info[0].sector_count; i++, addr += 0x10000) ++ flash_info[0].start[i] = addr; ++ ++ return CONFIG_SYS_FLASH_SIZE; ++} ++ ++void flash_print_info(flash_info_t *info) ++{ ++ printf("Flash: Vendor ID: 0x%02lx, Product ID: 0x%02lx\n", ++ info->flash_id >> 16, info->flash_id & 0xffff); ++ printf("Size: %ld MB in %d sectors\n", ++ info->size >> 10, info->sector_count); ++} ++ ++int flash_erase(flash_info_t *info, int s_first, int s_last) ++{ ++ unsigned long flags; ++ unsigned long start_time; ++ uint16_t *fb, *sb; ++ unsigned int i; ++ int ret; ++ uint16_t status; ++ ++ if ((s_first < 0) || (s_first > s_last) ++ || (s_last >= info->sector_count)) { ++ puts("Error: first and/or last sector out of range\n"); ++ return ERR_INVAL; ++ } ++ ++ for (i = s_first; i < s_last; i++) ++ if (info->protect[i]) { ++ printf("Error: sector %d is protected\n", i); ++ return ERR_PROTECTED; ++ } ++ ++ fb = (uint16_t *)uncached(info->start[0]); ++ ++ dcache_flush_unlocked(); ++ ++ for (i = s_first; (i <= s_last) && !ctrlc(); i++) { ++ printf("Erasing sector %3d...", i); ++ ++ sb = (uint16_t *)uncached(info->start[i]); ++ ++ flags = disable_interrupts(); ++ ++ start_time = get_timer(0); ++ ++ /* Unlock sector */ ++ writew(0xaa, fb + 0x555); ++ writew(0x70, sb); ++ ++ /* Erase sector */ ++ writew(0xaa, fb + 0x555); ++ writew(0x55, fb + 0xaaa); ++ writew(0x80, fb + 0x555); ++ writew(0xaa, fb + 0x555); ++ writew(0x55, fb + 0xaaa); ++ writew(0x30, sb); ++ ++ /* Wait for completion */ ++ ret = ERR_OK; ++ do { ++ /* TODO: Timeout */ ++ status = readw(sb); ++ } while ((status != 0xffff) && !(status & 0x28)); ++ ++ writew(0xf0, fb); ++ ++ /* ++ * Make sure the command actually makes it to the bus ++ * before we re-enable interrupts. ++ */ ++ readw(fb); ++ ++ if (flags) ++ enable_interrupts(); ++ ++ if (status != 0xffff) { ++ printf("Flash erase error at address 0x%p: 0x%02x\n", ++ sb, status); ++ ret = ERR_PROG_ERROR; ++ break; ++ } ++ } ++ ++ if (ctrlc()) ++ printf("User interrupt!\n"); ++ ++ return ERR_OK; ++} ++ ++int write_buff(flash_info_t *info, uchar *src, ++ ulong addr, ulong count) ++{ ++ unsigned long flags; ++ uint16_t *base, *p, *s, *end; ++ uint16_t word, status, status1; ++ int ret = ERR_OK; ++ ++ if (addr < info->start[0] ++ || (addr + count) > (info->start[0] + info->size) ++ || (addr + count) < addr) { ++ puts("Error: invalid address range\n"); ++ return ERR_INVAL; ++ } ++ ++ if (addr & 1 || count & 1 || (unsigned int)src & 1) { ++ puts("Error: misaligned source, destination or count\n"); ++ return ERR_ALIGN; ++ } ++ ++ base = (uint16_t *)uncached(info->start[0]); ++ end = (uint16_t *)uncached(addr + count); ++ ++ flags = disable_interrupts(); ++ ++ dcache_flush_unlocked(); ++ sync_write_buffer(); ++ ++ for (p = (uint16_t *)uncached(addr), s = (uint16_t *)src; ++ p < end && !ctrlc(); p++, s++) { ++ word = *s; ++ ++ writew(0xaa, base + 0x555); ++ writew(0x55, base + 0xaaa); ++ writew(0xa0, base + 0x555); ++ writew(word, p); ++ ++ sync_write_buffer(); ++ ++ /* Wait for completion */ ++ status1 = readw(p); ++ do { ++ /* TODO: Timeout */ ++ status = status1; ++ status1 = readw(p); ++ } while (((status ^ status1) & 0x40) /* toggled */ ++ && !(status1 & 0x28)); /* error bits */ ++ ++ /* ++ * We'll need to check once again for toggle bit ++ * because the toggle bit may stop toggling as I/O5 ++ * changes to "1" (ref at49bv642.pdf p9) ++ */ ++ status1 = readw(p); ++ status = readw(p); ++ if ((status ^ status1) & 0x40) { ++ printf("Flash write error at address 0x%p: " ++ "0x%02x != 0x%02x\n", ++ p, status,word); ++ ret = ERR_PROG_ERROR; ++ writew(0xf0, base); ++ readw(base); ++ break; ++ } ++ ++ writew(0xf0, base); ++ readw(base); ++ } ++ ++ if (flags) ++ enable_interrupts(); ++ ++ return ret; ++} +diff -Naur u-boot-2009.11/board/in-circuit/icnova/icnova_arm.c u-boot-2009.11.new/board/in-circuit/icnova/icnova_arm.c +--- u-boot-2009.11/board/in-circuit/icnova/icnova_arm.c 1970-01-01 01:00:00.000000000 +0100 ++++ u-boot-2009.11.new/board/in-circuit/icnova/icnova_arm.c 2010-10-08 12:09:30.000000000 +0200 +@@ -0,0 +1,294 @@ ++/* ++ * (C) 2010 Benjamin Tietz, In-Circuit <benjamin.tietz@in-circuit.de> ++ * ++ * (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/sizes.h> ++#include <asm/arch/at91sam9g45.h> ++#include <asm/arch/at91sam9_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/clk.h> ++#include <asm/arch/gpio.h> ++#include <asm/arch/io.h> ++#include <asm/arch/hardware.h> ++#include <lcd.h> ++#include <atmel_lcdc.h> ++#if defined(CONFIG_RESET_PHY_R) && defined(CONFIG_MACB) ++#include <net.h> ++#endif ++#include <netdev.h> ++#include "nand.h" ++ ++DECLARE_GLOBAL_DATA_PTR; ++ ++/* ------------------------------------------------------------------------- */ ++/* ++ * Miscelaneous platform dependent initialisations ++ */ ++ ++ ++#ifdef CONFIG_MACB ++static void icnova_arm9_macb_hw_init(void) ++{ ++ //unsigned long rstc; ++ /* ++ * Disable pull-up on: ++ * RXDV (PA15) => PHY normal mode (not Test mode) ++ * ERX0 (PA12) => PHY ADDR0 ++ * ERX1 (PA13) => PHY ADDR1 ++ * ERX2 (PA8) => PHY ADDR2 ++ * ERX3 (PA9) => PHY ADDR3 ++ * ECRS (PA29) => PHY ADDR4 => PHYADDR = 0x0 ++ * ECOL (PA30) => full MII interface ++ * ERXER (PA16) => no repeater ++ * ETXCLK (PA17) => no isolate ++ */ ++ unsigned long phy_mask = pin_to_mask(AT91_PIN_PA15) | ++ pin_to_mask(AT91_PIN_PA8) | pin_to_mask(AT91_PIN_PA9) | ++ pin_to_mask(AT91_PIN_PA12) | pin_to_mask(AT91_PIN_PA13) | ++ pin_to_mask(AT91_PIN_PA29) | pin_to_mask(AT91_PIN_PA30) | ++ pin_to_mask(AT91_PIN_PA16) | pin_to_mask(AT91_PIN_PA17); ++ /* Reset and pdwn-pins */ ++ unsigned long rst = pin_to_mask(AT91_PIN_PA26); ++ unsigned long pdwn = pin_to_mask(AT91_PIN_PA25); ++ /* Enable clock */ ++ at91_sys_write(AT91_PMC_PCER, 1 << AT91SAM9G45_ID_EMAC); ++ ++ /* ++ * Set up Pins ++ */ ++ writel(rst | pdwn | phy_mask, ++ pin_to_controller(AT91_PIN_PA0) + PIO_PER); ++ writel(rst | pdwn | phy_mask, ++ pin_to_controller(AT91_PIN_PA0) + PIO_OER); ++ writel(rst | pdwn | phy_mask, ++ pin_to_controller(AT91_PIN_PA0) + PIO_CODR); ++ udelay(1000); ++ writel(rst, ++ pin_to_controller(AT91_PIN_PA0) + PIO_SODR); ++ udelay(500000); ++ // phy-mask will be resetted by internal hardware ++ ++#if 0 ++ rstc = readl(AT91_BASE_SYS + AT91_RSTC_MR); ++ ++ /* Need to reset PHY -> 500ms reset */ ++ writel(AT91_BASE_SYS + AT91_RSTC_MR, AT91_RSTC_KEY | ++ (AT91_RSTC_ERSTL & (0x0D << 8)) | ++ AT91_RSTC_URSTEN); ++ ++ writel(AT91_BASE_SYS + AT91_RSTC_CR, AT91_RSTC_KEY | AT91_RSTC_EXTRST); ++ ++ /* Wait for end hardware reset */ ++ while (!(readl(AT91_BASE_SYS + AT91_RSTC_SR) & AT91_RSTC_NRSTL)) ++ asm("nop"); ++ ++ /* Restore NRST value */ ++ writel(AT91_BASE_SYS + AT91_RSTC_MR, AT91_RSTC_KEY | ++ (rstc) | ++ AT91_RSTC_URSTEN); ++#endif ++ ++ at91_macb_hw_init(); ++} ++#endif ++ ++#ifdef CONFIG_LCD ++ ++vidinfo_t panel_info = { ++ vl_col: 480, ++ vl_row: 272, ++ vl_clk: 9000000, ++ vl_sync: ATMEL_LCDC_INVLINE_NORMAL | ++ ATMEL_LCDC_INVFRAME_NORMAL, ++ vl_bpix: 3, ++ vl_tft: 1, ++ vl_hsync_len: 45, ++ vl_left_margin: 1, ++ vl_right_margin:1, ++ vl_vsync_len: 1, ++ vl_upper_margin:40, ++ vl_lower_margin:1, ++ mmio: AT91SAM9G45_LCDC_BASE, ++}; ++ ++ ++void lcd_enable(void) ++{ ++ at91_set_A_periph(AT91_PIN_PE6, 1); /* power up */ ++} ++ ++void lcd_disable(void) ++{ ++ at91_set_A_periph(AT91_PIN_PE6, 0); /* power down */ ++} ++ ++static void at91sam9m10g45ek_lcd_hw_init(void) ++{ ++ at91_set_A_periph(AT91_PIN_PE0, 0); /* LCDDPWR */ ++ at91_set_A_periph(AT91_PIN_PE2, 0); /* LCDCC */ ++ at91_set_A_periph(AT91_PIN_PE3, 0); /* LCDVSYNC */ ++ at91_set_A_periph(AT91_PIN_PE4, 0); /* LCDHSYNC */ ++ at91_set_A_periph(AT91_PIN_PE5, 0); /* LCDDOTCK */ ++ ++ at91_set_A_periph(AT91_PIN_PE7, 0); /* LCDD0 */ ++ at91_set_A_periph(AT91_PIN_PE8, 0); /* LCDD1 */ ++ at91_set_A_periph(AT91_PIN_PE9, 0); /* LCDD2 */ ++ at91_set_A_periph(AT91_PIN_PE10, 0); /* LCDD3 */ ++ at91_set_A_periph(AT91_PIN_PE11, 0); /* LCDD4 */ ++ at91_set_A_periph(AT91_PIN_PE12, 0); /* LCDD5 */ ++ at91_set_A_periph(AT91_PIN_PE13, 0); /* LCDD6 */ ++ at91_set_A_periph(AT91_PIN_PE14, 0); /* LCDD7 */ ++ at91_set_A_periph(AT91_PIN_PE15, 0); /* LCDD8 */ ++ at91_set_A_periph(AT91_PIN_PE16, 0); /* LCDD9 */ ++ at91_set_A_periph(AT91_PIN_PE17, 0); /* LCDD10 */ ++ at91_set_A_periph(AT91_PIN_PE18, 0); /* LCDD11 */ ++ at91_set_A_periph(AT91_PIN_PE19, 0); /* LCDD12 */ ++ at91_set_B_periph(AT91_PIN_PE20, 0); /* LCDD13 */ ++ at91_set_A_periph(AT91_PIN_PE21, 0); /* LCDD14 */ ++ at91_set_A_periph(AT91_PIN_PE22, 0); /* LCDD15 */ ++ at91_set_A_periph(AT91_PIN_PE23, 0); /* LCDD16 */ ++ at91_set_A_periph(AT91_PIN_PE24, 0); /* LCDD17 */ ++ at91_set_A_periph(AT91_PIN_PE25, 0); /* LCDD18 */ ++ at91_set_A_periph(AT91_PIN_PE26, 0); /* LCDD19 */ ++ at91_set_A_periph(AT91_PIN_PE27, 0); /* LCDD20 */ ++ at91_set_B_periph(AT91_PIN_PE28, 0); /* LCDD21 */ ++ at91_set_A_periph(AT91_PIN_PE29, 0); /* LCDD22 */ ++ at91_set_A_periph(AT91_PIN_PE30, 0); /* LCDD23 */ ++ ++ at91_sys_write(AT91_PMC_PCER, 1 << AT91SAM9G45_ID_LCDC); ++ ++ gd->fb_base = CONFIG_AT91SAM9G45_LCD_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 ATMEL Corp\n"); ++ lcd_printf ("at91support@atmel.com\n"); ++ lcd_printf ("%s CPU at %s MHz\n", ++ AT91_CPU_NAME, ++ strmhz(temp, get_cpu_clk_rate())); ++ ++ 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 ++ ++#ifdef CONFIG_MMC ++static void icnova_arm9_mmc_init(void) { ++ at91_set_A_periph(AT91_PIN_PA0, 0); ++ at91_set_A_periph(AT91_PIN_PA1, 1); ++ at91_set_A_periph(AT91_PIN_PA2, 1); ++ at91_set_A_periph(AT91_PIN_PA3, 1); ++ at91_set_A_periph(AT91_PIN_PA4, 1); ++ at91_set_A_periph(AT91_PIN_PA5, 1); ++ ++ at91_sys_write(AT91_PMC_PCER, 1<<AT91SAM9G45_ID_MCI0); ++} ++ ++int board_mmc_init(bd_t *bd) { ++ icnova_arm9_mmc_init(); ++ return atmel_mmc_init(bd); ++} ++#endif ++ ++int board_init(void) ++{ ++ /* Enable Ctrlc */ ++ console_init_f(); ++ ++ /* arch number of AT91SAM9M10G45EK-Board */ ++//#ifdef CONFIG_AT91SAM9M10G45EK ++// gd->bd->bi_arch_number = MACH_TYPE_AT91SAM9M10G45EK; ++//#elif defined CONFIG_AT91SAM9G45EKES ++ gd->bd->bi_arch_number = MACH_TYPE_AT91SAM9G45EKES; ++//#endif ++ /* adress of boot parameters */ ++ gd->bd->bi_boot_params = PHYS_SDRAM + 0x100; ++ ++ at91_serial_hw_init(); ++#ifdef CONFIG_CMD_NAND ++ icnova_nand_hw_init(); ++#endif ++#ifdef CONFIG_MACB ++ icnova_arm9_macb_hw_init(); ++#endif ++ ++#ifdef CONFIG_LCD ++ icnova_arm9_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; ++} ++ ++#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 *)AT91SAM9G45_BASE_EMAC, 0x00); ++#endif ++ return rc; ++} ++ +diff -Naur u-boot-2009.11/board/in-circuit/icnova/icnova.c u-boot-2009.11.new/board/in-circuit/icnova/icnova.c +--- u-boot-2009.11/board/in-circuit/icnova/icnova.c 1970-01-01 01:00:00.000000000 +0100 ++++ u-boot-2009.11.new/board/in-circuit/icnova/icnova.c 2010-10-08 12:11:21.000000000 +0200 +@@ -0,0 +1,127 @@ ++/* ++ * Copyright (C) 2005-2006 Atmel Corporation ++ * ++ * 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/io.h> ++#include <asm/sdram.h> ++#include <asm/arch/clk.h> ++#include <asm/arch/gpio.h> ++#include <asm/arch/hmatrix.h> ++#include <netdev.h> ++ ++DECLARE_GLOBAL_DATA_PTR; ++ ++static const struct sdram_config sdram_config = { ++ .data_bits = SDRAM_DATA_32BIT, ++ .row_bits = 13, ++ .col_bits = 9, ++ .bank_bits = 2, ++ .cas = 2, ++ .twr = 2, ++ .trc = 7, ++ .trp = 2, ++ .trcd = 2, ++ .tras = 4, ++ .txsr = 7, ++ /* 7.81 us */ ++ .refresh_period = (781 * (SDRAMC_BUS_HZ / 1000)) / 100000, ++}; ++ ++int board_early_init_f(void) ++{ ++ /* Enable SDRAM in the EBI mux */ ++ hmatrix_slave_write(EBI, SFR, HMATRIX_BIT(EBI_SDRAM_ENABLE)); ++ ++ gpio_enable_ebi(); ++#ifdef CONFIG_USART0 ++ gpio_enable_usart0(); ++#endif ++#ifdef CONFIG_USART1 ++ gpio_enable_usart1(); ++#endif ++#ifdef CONFIG_USART2 ++ gpio_enable_usart2(); ++#endif ++#ifdef CONFIG_USART3 ++ gpio_enable_usart3(); ++#endif ++#ifdef CONFIG_USART4 ++ gpio_enable_usart4(); ++#endif ++#ifdef CONFIG_MACB ++ gpio_select_pio(GPIO_PIN_PB30, GPIOF_OUTPUT); ++ gpio_set_value(GPIO_PIN_PB30, 0); ++ gpio_select_pio(GPIO_PIN_PB29, GPIOF_OUTPUT); ++ gpio_set_value(GPIO_PIN_PB29, 0); ++ udelay(100); ++ gpio_set_value(GPIO_PIN_PB29, 1); ++ gpio_enable_macb0(); ++#endif ++#ifdef CONFIG_MACB2 ++ gpio_enable_macb1(); ++#endif ++#ifdef CONFIG_MMC ++ gpio_enable_mmci(); ++#endif ++ ++ return 0; ++} ++ ++ ++phys_size_t initdram(int board_type) ++{ ++ unsigned long expected_size; ++ unsigned long actual_size; ++ void *sdram_base; ++ ++ sdram_base = map_physmem(EBI_SDRAM_BASE, EBI_SDRAM_SIZE, MAP_NOCACHE); ++ ++ expected_size = sdram_init(sdram_base, &sdram_config); ++ actual_size = get_ram_size(sdram_base, expected_size); ++ ++ unmap_physmem(sdram_base, EBI_SDRAM_SIZE); ++ ++ if (expected_size != actual_size) ++ printf("Warning: Only %lu of %lu MiB SDRAM is working\n", ++ actual_size >> 20, expected_size >> 20); ++ ++ return actual_size; ++} ++ ++void board_init_info(void) ++{ ++ gd->bd->bi_phy_id[0] = 0x00; ++#ifdef CONFIG_MACB2 ++ gd->bd->bi_phy_id[1] = 0x00; ++#endif ++} ++ ++#ifdef CONFIG_CMD_NET ++int board_eth_init(bd_t *bi) ++{ ++ macb_eth_initialize(0, (void *)MACB0_BASE, bi->bi_phy_id[0]); ++#ifdef CONFIG_MACB2 ++ macb_eth_initialize(1, (void *)MACB1_BASE, bi->bi_phy_id[1]); ++#endif ++ return 0; ++} ++#endif +diff -Naur u-boot-2009.11/board/in-circuit/icnova/Makefile u-boot-2009.11.new/board/in-circuit/icnova/Makefile +--- u-boot-2009.11/board/in-circuit/icnova/Makefile 1970-01-01 01:00:00.000000000 +0100 ++++ u-boot-2009.11.new/board/in-circuit/icnova/Makefile 2010-10-08 12:09:30.000000000 +0200 +@@ -0,0 +1,51 @@ ++# ++# (C) Copyright 2001-2006 ++# Wolfgang Denk, DENX Software Engineering, wd@denx.de. ++# ++# Copyright (C) 2005-2006 Atmel Corporation ++# ++# (C) 2008 - 2010 Benjamin Tietz, In-Circuit benjamin.tietz@in-circuit.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 ++include $(TOPDIR)/include/config.mk ++ ++LIB := $(obj)lib$(BOARD).a ++ ++COBJS := $(BOARD).o flash.o ++ ++include Makefile.$(BNAME) ++ ++COBJS-y += $(COBJS) ++SRCS := $(SOBJS:.o=.S) $(COBJS-y:.o=.c) ++OBJS := $(addprefix $(obj),$(SOBJS) $(COBJS-y)) ++ ++# $(obj).depend ++$(LIB): $(OBJS) ++ $(AR) $(ARFLAGS) $@ $(OBJS) ++ ++######################################################################### ++ ++# defines $(obj).depend target ++include $(SRCTREE)/rules.mk ++ ++sinclude $(obj).depend ++ ++######################################################################### +diff -Naur u-boot-2009.11/board/in-circuit/icnova/Makefile.icnova_arm9oem u-boot-2009.11.new/board/in-circuit/icnova/Makefile.icnova_arm9oem +--- u-boot-2009.11/board/in-circuit/icnova/Makefile.icnova_arm9oem 1970-01-01 01:00:00.000000000 +0100 ++++ u-boot-2009.11.new/board/in-circuit/icnova/Makefile.icnova_arm9oem 2010-10-08 12:09:30.000000000 +0200 +@@ -0,0 +1,6 @@ ++ ++COBJS := $(BOARD)_$(ARCH).o flash2x8.o ++ifdef CONFIG_CMD_NAND ++COBJS += at91_nand.o ++endif ++ +diff -Naur u-boot-2009.11/board/in-circuit/icnova/Makefile.icnova_arm9oem_u4 u-boot-2009.11.new/board/in-circuit/icnova/Makefile.icnova_arm9oem_u4 +--- u-boot-2009.11/board/in-circuit/icnova/Makefile.icnova_arm9oem_u4 1970-01-01 01:00:00.000000000 +0100 ++++ u-boot-2009.11.new/board/in-circuit/icnova/Makefile.icnova_arm9oem_u4 2010-10-08 13:02:52.000000000 +0200 +@@ -0,0 +1,6 @@ ++ ++COBJS := $(BOARD)_$(ARCH).o flash2x8.o ++ifdef CONFIG_CMD_NAND ++COBJS += at91_nand.o ++endif ++ +diff -Naur u-boot-2009.11/board/in-circuit/icnova/Makefile.icnova_oemplus u-boot-2009.11.new/board/in-circuit/icnova/Makefile.icnova_oemplus +--- u-boot-2009.11/board/in-circuit/icnova/Makefile.icnova_oemplus 1970-01-01 01:00:00.000000000 +0100 ++++ u-boot-2009.11.new/board/in-circuit/icnova/Makefile.icnova_oemplus 2010-10-08 12:09:30.000000000 +0200 +@@ -0,0 +1,2 @@ ++ ++COBJS := $(BOARD).o flash2x8.o avr32_nand.o +diff -Naur u-boot-2009.11/board/in-circuit/icnova/nand.h u-boot-2009.11.new/board/in-circuit/icnova/nand.h +--- u-boot-2009.11/board/in-circuit/icnova/nand.h 1970-01-01 01:00:00.000000000 +0100 ++++ u-boot-2009.11.new/board/in-circuit/icnova/nand.h 2010-10-08 12:09:30.000000000 +0200 +@@ -0,0 +1,2 @@ ++ ++void icnova_nand_hw_init(void); +diff -Naur u-boot-2009.11/board/in-circuit/icnova/u-boot.lds u-boot-2009.11.new/board/in-circuit/icnova/u-boot.lds +--- u-boot-2009.11/board/in-circuit/icnova/u-boot.lds 1970-01-01 01:00:00.000000000 +0100 ++++ u-boot-2009.11.new/board/in-circuit/icnova/u-boot.lds 2010-10-08 12:09:30.000000000 +0200 +@@ -0,0 +1,73 @@ ++/* -*- Fundamental -*- ++ * ++ * Copyright (C) 2005-2006 Atmel Corporation ++ * ++ * 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-avr32", "elf32-avr32", "elf32-avr32") ++OUTPUT_ARCH(avr32) ++ENTRY(_start) ++ ++SECTIONS ++{ ++ . = 0; ++ _text = .; ++ .text : { ++ *(.exception.text) ++ *(.text) ++ *(.text.*) ++ } ++ _etext = .; ++ ++ .rodata : { ++ *(.rodata) ++ *(.rodata.*) ++ } ++ ++ . = ALIGN(8); ++ _data = .; ++ .data : { ++ *(.data) ++ *(.data.*) ++ } ++ ++ . = ALIGN(4); ++ __u_boot_cmd_start = .; ++ .u_boot_cmd : { ++ KEEP(*(.u_boot_cmd)) ++ } ++ __u_boot_cmd_end = .; ++ ++ . = ALIGN(4); ++ _got = .; ++ .got : { ++ *(.got) ++ } ++ _egot = .; ++ ++ . = ALIGN(8); ++ _edata = .; ++ ++ .bss (NOLOAD) : { ++ *(.bss) ++ *(.bss.*) ++ } ++ . = ALIGN(8); ++ _end = .; ++} +diff -Naur u-boot-2009.11/common/env_flash.c u-boot-2009.11.new/common/env_flash.c +--- u-boot-2009.11/common/env_flash.c 2009-12-15 23:20:54.000000000 +0100 ++++ u-boot-2009.11.new/common/env_flash.c 2010-10-08 12:09:30.000000000 +0200 +@@ -25,6 +25,7 @@ + */ + + /* #define DEBUG */ ++#define DEBUG + + #include <common.h> + #include <command.h> +@@ -313,6 +314,7 @@ + return 1; + + puts ("Writing to Flash... "); ++ debug(" %08lX + %08lX", (ulong) flash_sect_addr, len); + rc = flash_write((char *)env_buffer, flash_sect_addr, len); + if (rc != 0) { + flash_perror (rc); +diff -Naur u-boot-2009.11/cpu/arm926ejs/at91/at91sam9m10g45_devices.c u-boot-2009.11.new/cpu/arm926ejs/at91/at91sam9m10g45_devices.c +--- u-boot-2009.11/cpu/arm926ejs/at91/at91sam9m10g45_devices.c 2009-12-15 23:20:54.000000000 +0100 ++++ u-boot-2009.11.new/cpu/arm926ejs/at91/at91sam9m10g45_devices.c 2010-10-08 12:11:21.000000000 +0200 +@@ -31,31 +31,38 @@ + void at91_serial0_hw_init(void) + { + at91_set_A_periph(AT91_PIN_PB19, 1); /* TXD0 */ +- at91_set_A_periph(AT91_PIN_PB18, 0); /* RXD0 */ ++ at91_set_A_periph(AT91_PIN_PB18, 1); /* RXD0 */ + at91_sys_write(AT91_PMC_PCER, 1 << AT91SAM9G45_ID_US0); + } + + void at91_serial1_hw_init(void) + { + at91_set_A_periph(AT91_PIN_PB4, 1); /* TXD1 */ +- at91_set_A_periph(AT91_PIN_PB5, 0); /* RXD1 */ ++ at91_set_A_periph(AT91_PIN_PB5, 1); /* RXD1 */ + at91_sys_write(AT91_PMC_PCER, 1 << AT91SAM9G45_ID_US1); + } + + void at91_serial2_hw_init(void) + { +- at91_set_A_periph(AT91_PIN_PD6, 1); /* TXD2 */ +- at91_set_A_periph(AT91_PIN_PD7, 0); /* RXD2 */ ++ at91_set_A_periph(AT91_PIN_PB6, 1); /* TXD2 */ ++ at91_set_A_periph(AT91_PIN_PB7, 1); /* RXD2 */ + at91_sys_write(AT91_PMC_PCER, 1 << AT91SAM9G45_ID_US2); + } + + void at91_serial3_hw_init(void) + { +- at91_set_A_periph(AT91_PIN_PB12, 0); /* DRXD */ ++ at91_set_A_periph(AT91_PIN_PB12, 1); /* DRXD */ + at91_set_A_periph(AT91_PIN_PB13, 1); /* DTXD */ + at91_sys_write(AT91_PMC_PCER, 1 << AT91_ID_SYS);; + } + ++void at91_serial4_hw_init(void) ++{ ++ at91_set_A_periph(AT91_PIN_PB8, 1); /* TXD3 */ ++ at91_set_A_periph(AT91_PIN_PB9, 1); /* RXD3 */ ++ at91_sys_write(AT91_PMC_PCER, 1 << AT91SAM9G45_ID_US3); ++} ++ + void at91_serial_hw_init(void) + { + #ifdef CONFIG_USART0 +@@ -73,6 +80,10 @@ + #ifdef CONFIG_USART3 /* DBGU */ + at91_serial3_hw_init(); + #endif ++ ++#ifdef CONFIG_USART4 ++ at91_serial4_hw_init(); ++#endif + } + + #ifdef CONFIG_ATMEL_SPI +diff -Naur u-boot-2009.11/cpu/arm926ejs/at91/lowlevel_init.S u-boot-2009.11.new/cpu/arm926ejs/at91/lowlevel_init.S +--- u-boot-2009.11/cpu/arm926ejs/at91/lowlevel_init.S 2009-12-15 23:20:54.000000000 +0100 ++++ u-boot-2009.11.new/cpu/arm926ejs/at91/lowlevel_init.S 2010-10-08 12:09:30.000000000 +0200 +@@ -36,6 +36,9 @@ + #include <asm/arch/at91sam9_matrix.h> + #include <asm/arch/at91sam9_sdramc.h> + #include <asm/arch/at91sam9_smc.h> ++#ifdef CONFIG_SYS_AT91_DDRAM ++#include <asm/arch/at91sam9g45_ddrsdram.h> ++#endif + + _TEXT_BASE: + .word TEXT_BASE +@@ -102,9 +105,36 @@ + /* ---------------------------------------------------------------------------- + * PMC Init Step 2. + * ---------------------------------------------------------------------------- ++ * - Switch on the Main Oscillator ++ * ---------------------------------------------------------------------------- ++ */ ++ ldr r1, =(AT91_BASE_SYS + AT91_PMC_MCKR) ++ ++ /* -Master Clock Controller register PMC_MCKR */ ++ ldr r0, =CONFIG_SYS_MCKR1_VAL ++ str r0, [r1] ++ ++ /* Reading the PMC Status to detect when the Master clock is ready */ ++ mov r4, #AT91_PMC_MCKRDY ++MCKRDY_Loop: ++ ldr r3, [r2] ++ and r3, r4, r3 ++ cmp r3, #AT91_PMC_MCKRDY ++ bne MCKRDY_Loop ++ ++/* ---------------------------------------------------------------------------- ++ * PMC Init Step 3. ++ * ---------------------------------------------------------------------------- + * Setup PLLA + * ---------------------------------------------------------------------------- + */ ++#ifdef CONFIG_SYS_PLLICPR_VAL ++ ++ ldr r1, =(AT91_BASE_SYS + AT91_PMC_PLLICPR) ++ ldr r0, =CONFIG_SYS_PLLICPR_VAL ++ str r0, [r1] ++ ++#endif + ldr r1, =(AT91_BASE_SYS + AT91_CKGR_PLLAR) + ldr r0, =CONFIG_SYS_PLLAR_VAL + str r0, [r1] +@@ -117,26 +147,14 @@ + cmp r3, #AT91_PMC_LOCKA + bne MOSCS_Loop1 + ++ + /* ---------------------------------------------------------------------------- +- * PMC Init Step 3. ++ * PMC Init Step 4. + * ---------------------------------------------------------------------------- +- * - Switch on the Main Oscillator ++ * - Switch on the Main Oscillator part 2 + * ---------------------------------------------------------------------------- + */ + ldr r1, =(AT91_BASE_SYS + AT91_PMC_MCKR) +- +- /* -Master Clock Controller register PMC_MCKR */ +- ldr r0, =CONFIG_SYS_MCKR1_VAL +- str r0, [r1] +- +- /* Reading the PMC Status to detect when the Master clock is ready */ +- mov r4, #AT91_PMC_MCKRDY +-MCKRDY_Loop: +- ldr r3, [r2] +- and r3, r4, r3 +- cmp r3, #AT91_PMC_MCKRDY +- bne MCKRDY_Loop +- + ldr r0, =CONFIG_SYS_MCKR2_VAL + str r0, [r1] + +@@ -154,10 +172,14 @@ + * - memory control configuration 2 + * ---------------------------------------------------------------------------- + */ ++#ifdef CONFIG_SYS_AT91_DDRAM ++ ldr r0, =(AT91_BASE_SYS + AT91_DDRSDRAMC_RTR) ++#else + ldr r0, =(AT91_BASE_SYS + AT91_SDRAMC_TR) ++#endif + ldr r1, [r0] + cmp r1, #0 +- bne SDRAM_setup_end ++ //bne SDRAM_setup_end + + ldr r0, =SMRDATA1 + ldr r2, =SMRDATA2 +@@ -176,10 +198,89 @@ + cmp r2, r0 + bne 2b + ++#ifdef CONFIG_SYS_AT91_DDRAM ++.macro AT91_DDR_CMD cmd, offset, timeout ++ ldr r1, =(AT91_BASE_SYS + AT91_DDRSDRAMC_MR) ++ ldr r0, =\cmd ++ str r0, [r1] ++ ldr r1, =(PHYS_SDRAM + \offset) ++ ldr r0, =0 ++ str r0, [r1] ++ ldr r5, =\timeout ++ bl at91_sleep_ns ++.endm ++ ++ mov r3, lr ++ AT91_DDR_CMD AT91_DDRSDRAMC_MODE_NOP, 0, 200000 ++ /* Step 4: Another NOP to enable cke */ ++ AT91_DDR_CMD AT91_DDRSDRAMC_MODE_NOP, 0, 400 ++ /* Step 5: Set All Bank precharge*/ ++ AT91_DDR_CMD AT91_DDRSDRAMC_MODE_PRECHARGE, 0, 400 ++ /* Step 6: Set EMR operation EMRS2 */ ++ AT91_DDR_CMD AT91_DDRSDRAMC_MODE_EXT_LMR, 0x04000000, 400 ++ /* Step 7: Set EMR operation EMRS3 */ ++ AT91_DDR_CMD AT91_DDRSDRAMC_MODE_EXT_LMR, 0x06000000, 400 ++ /* Step 8: Set EMR operation EMRS1 */ ++ AT91_DDR_CMD AT91_DDRSDRAMC_MODE_EXT_LMR, 0x02000000, 400 ++ /* Step 9: Enable DLL-Reset */ ++ ldr r1, =(AT91_BASE_SYS + AT91_DDRSDRAMC_CR) ++ ldr r0, [r1] ++ orr r0, r0, #AT91_DDRSDRAMC_DLL ++ str r0, [r1] ++ /* Step 10: reset DLL */ ++ AT91_DDR_CMD AT91_DDRSDRAMC_MODE_LMR, 0x0, 400 ++ /* Step 11: Set All Bank precharge*/ ++ AT91_DDR_CMD AT91_DDRSDRAMC_MODE_PRECHARGE, 0, 400 ++ /* Step 12: Enable auto-refresh */ ++ AT91_DDR_CMD AT91_DDRSDRAMC_MODE_REFRESH, 0, 400 ++ AT91_DDR_CMD AT91_DDRSDRAMC_MODE_REFRESH, 0, 400 ++ /* Step 13: Disable DLL reset */ ++ ldr r1, =(AT91_BASE_SYS + AT91_DDRSDRAMC_CR) ++ ldr r0, [r1] ++ bic r0, r0, #AT91_DDRSDRAMC_DLL ++ str r0, [r1] ++ /* Step 14: MRS cycle */ ++ AT91_DDR_CMD AT91_DDRSDRAMC_MODE_LMR, 0, 400 ++ /* Step 15: Program OCD int Config-reg */ ++ ldr r1, =(AT91_BASE_SYS + AT91_DDRSDRAMC_CR) ++ ldr r0, [r1] ++ orr r0, r0, #AT91_DDRSDRAMC_OCD ++ str r0, [r1] ++ /* Step 16: Set EMR operation EMRS1 */ ++ AT91_DDR_CMD AT91_DDRSDRAMC_MODE_EXT_LMR, 0x02000000, 400 ++ /* Step 17: Program End OCD int Config-reg */ ++ ldr r1, =(AT91_BASE_SYS + AT91_DDRSDRAMC_CR) ++ ldr r0, [r1] ++ bic r0, r0, #AT91_DDRSDRAMC_OCD ++ str r0, [r1] ++ /* Step 18: Set EMR operation EMRS1 */ ++ AT91_DDR_CMD AT91_DDRSDRAMC_MODE_EXT_LMR, 0x02000000, 400 ++ /* Step 19-21: End calibration and set up refresh */ ++ AT91_DDR_CMD AT91_DDRSDRAMC_MODE_NORMAL, 0, 10 ++ str r0, [r1] ++ ldr r1, =(AT91_BASE_SYS + AT91_DDRSDRAMC_RTR) ++ ldr r0, =CONFIG_SYS_SDRAM_REFRESH_VAL ++ str r0, [r1] ++ ldr r5, =2000 ++ bl at91_sleep_ns ++ mov lr, r3 ++#endif ++ + SDRAM_setup_end: + /* everything is fine now */ + mov pc, lr + ++ ++at91_sleep_ns: ++ lsl r5, r5, #3 ++ /* 1ns */ ++sl_inner: ++ sub r5, r5, #1 ++ cmp r5, #0 ++ bne sl_inner ++ /* Done */ ++ mov pc, lr ++ + .ltorg + + SMRDATA: +@@ -224,6 +325,20 @@ + .word CONFIG_SYS_SMC0_SETUP0_VAL + + SMRDATA1: ++#ifdef CONFIG_SYS_AT91_DDRAM ++ .word (AT91_BASE_SYS + AT91_PMC_SCER) ++ .word AT91CAP9_PMC_DDR ++ .word (AT91_BASE_SYS + AT91_DDRSDRAMC_MDR) ++ .word CONFIG_SYS_DDRC_MDR_VAL ++ .word (AT91_BASE_SYS + AT91_DDRSDRAMC_CR) ++ .word CONFIG_SYS_DDRC_CR0_VAL ++ .word (AT91_BASE_SYS + AT91_DDRSDRAMC_T0PR) ++ .word CONFIG_SYS_DDRC_T0PR_VAL ++ .word (AT91_BASE_SYS + AT91_DDRSDRAMC_T1PR) ++ .word CONFIG_SYS_DDRC_T1PR_VAL ++ .word (AT91_BASE_SYS + AT91_DDRSDRAMC_T2PR) ++ .word CONFIG_SYS_DDRC_T2PR_VAL ++#else + .word (AT91_BASE_SYS + AT91_SDRAMC_MR) + .word CONFIG_SYS_SDRC_MR_VAL1 + .word (AT91_BASE_SYS + AT91_SDRAMC_TR) +@@ -266,6 +381,7 @@ + .word CONFIG_SYS_SDRC_TR_VAL2 + .word AT91_SDRAM_BASE + .word CONFIG_SYS_SDRAM_VAL12 ++#endif + /* User reset enable*/ + .word (AT91_BASE_SYS + AT91_RSTC_MR) + .word CONFIG_SYS_RSTC_RMR_VAL +diff -Naur u-boot-2009.11/cpu/arm926ejs/start.S u-boot-2009.11.new/cpu/arm926ejs/start.S +--- u-boot-2009.11/cpu/arm926ejs/start.S 2009-12-15 23:20:54.000000000 +0100 ++++ u-boot-2009.11.new/cpu/arm926ejs/start.S 2010-10-08 12:09:30.000000000 +0200 +@@ -184,8 +184,8 @@ + cmp r0, r1 + ble clbss_l + +- bl coloured_LED_init +- bl red_LED_on ++// bl coloured_LED_init ++// bl red_LED_on + + ldr pc, _start_armboot + +diff -Naur u-boot-2009.11/drivers/mmc/gen_atmel_mci.c u-boot-2009.11.new/drivers/mmc/gen_atmel_mci.c +--- u-boot-2009.11/drivers/mmc/gen_atmel_mci.c 1970-01-01 01:00:00.000000000 +0100 ++++ u-boot-2009.11.new/drivers/mmc/gen_atmel_mci.c 2010-10-08 12:09:30.000000000 +0200 +@@ -0,0 +1,329 @@ ++/* ++ * Copyright 2010, Rob Emanuele <rob at emanuele.us> ++ * ++ * Original Driver: ++ * Copyright (C) 2004-2006 Atmel Corporation ++ * ++ * 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 ++ */ ++ ++//#define GEN_ATMEL_MCI_DEBUG 1 ++#include <config.h> ++#include <common.h> ++#include <command.h> ++#include <hwconfig.h> ++#include <mmc.h> ++#include <part.h> ++#include <malloc.h> ++#include <mmc.h> ++#include <asm/io.h> ++#include <asm/errno.h> ++#include <asm/byteorder.h> ++#include <asm/arch/clk.h> ++#include <asm/arch/memory-map.h> ++#include "atmel_mci.h" ++ ++DECLARE_GLOBAL_DATA_PTR; ++ ++#ifndef CONFIG_SYS_MMC_CLK_OD ++#define CONFIG_SYS_MMC_CLK_OD 150000 ++#endif ++#define MMC_DEFAULT_BLKLEN 512 ++ ++void dump_cmd(uint cmdr, uint arg, uint status, const char* msg) ++{ ++ printf("gen_atmel_mci: CMDR 0x%08x (%2u) ARGR 0x%08x (SR: 0x%08x) %s\n", ++ cmdr, cmdr&0x3F, arg, status, msg); ++} ++ ++/* Setup for MCI Clock and Block Size */ ++static void mci_set_mode(unsigned long hz, unsigned long blklen) ++{ ++ unsigned long bus_hz; ++ unsigned long clkdiv; ++ ++ if (hz > 0) { ++ bus_hz = get_mck_clk_rate(); ++ clkdiv = (bus_hz / hz) / 2 - 1; ++ } else { ++ clkdiv = ~0UL; ++ } ++ ++ //printf("mmc: setting clock %lu Hz, block size %lu\n", hz, blklen); ++ ++ if (clkdiv & ~255UL) { ++ clkdiv = 255; ++ //printf("mmc: clock %lu too low; setting CLKDIV to 255\n", hz); ++ } ++ ++ blklen &= 0xfffc; ++ /* On some platforms RDPROOF and WRPROOF are ignored */ ++ mmci_writel(MR, (MMCI_BF(CLKDIV, clkdiv) ++ | MMCI_BF(BLKLEN, blklen) ++ | MMCI_BIT(RDPROOF) ++ | MMCI_BIT(WRPROOF))); ++} ++ ++/* Return the CMDR with flags for a given command and data packet */ ++static uint atmel_encode_cmd(struct mmc_cmd *cmd, struct mmc_data *data, uint* error_flags) ++{ ++ uint cmdr = 0; ++ /* Default Flags for Errors */ ++ *error_flags |= (MMCI_BIT(DTOE) | MMCI_BIT(RDIRE) | MMCI_BIT(RENDE) | MMCI_BIT(RINDE) | MMCI_BIT(RTOE)); ++ ++ /* Default Flags for the Command */ ++ cmdr |= MMCI_BIT(MAXLAT); ++ ++ if (data) { ++ cmdr |= MMCI_BF(TRCMD,1); ++ ++ if (data->blocks > 1) { ++ cmdr |= MMCI_BF(TRTYP,1); ++ } ++ ++ if (data->flags & MMC_DATA_READ) ++ cmdr |= MMCI_BIT(TRDIR); ++ } ++ ++ if (cmd->resp_type & MMC_RSP_CRC) ++ *error_flags |= MMCI_BIT(RCRCE); ++ ++ if (cmd->resp_type & MMC_RSP_136) ++ cmdr |= MMCI_BF(RSPTYP,2); ++ else if (cmd->resp_type & MMC_RSP_BUSY) ++ cmdr |= MMCI_BF(RSPTYP,3); ++ else if (cmd->resp_type & MMC_RSP_PRESENT) ++ cmdr |= MMCI_BF(RSPTYP,1); ++ ++ return cmdr | MMCI_BF(CMDNB,cmd->cmdidx); ++} ++ ++static uint atmel_data_read(uint* data, uint error_flags) ++{ ++ uint status; ++ do { ++ status = mmci_readl(SR); ++ if (status & (error_flags | MMCI_BIT(OVRE))) ++ goto io_fail; ++ } while (!(status & MMCI_BIT(RXRDY))); ++ ++ if (status & MMCI_BIT(RXRDY)) { ++ *data = mmci_readl(RDR); ++ status = 0; ++ } ++io_fail: ++ return status; ++} ++ ++static uint atmel_data_write(uint* data, uint error_flags) ++{ ++ uint status; ++ do { ++ status = mmci_readl(SR); ++ if (status & (error_flags | MMCI_BIT(UNRE))) ++ goto io_fail; ++ } while (!(status & MMCI_BIT(TXRDY))); ++ ++ if (status & MMCI_BIT(TXRDY)) { ++ mmci_writel(TDR,*data); ++ status = 0; ++ } ++io_fail: ++ return status; ++} ++ ++/* ++ * Sends a command out on the bus and deals with the block data. ++ * Takes the mmc pointer, a command pointer, and an optional data pointer. ++ */ ++static int ++atmel_send_cmd(struct mmc *mmc, struct mmc_cmd *cmd, struct mmc_data *data) ++{ ++ uint cmdr; ++ uint error_flags = 0; ++ uint status; ++ ++ /* Figure out the transfer arguments */ ++ cmdr = atmel_encode_cmd(cmd, data, &error_flags); ++ ++ /* Send the command */ ++ mmci_writel(ARGR,cmd->cmdarg); ++ mmci_writel(CMDR, cmdr); ++ ++#if GEN_ATMEL_MCI_DEBUG ++ dump_cmd(cmdr, cmd->cmdarg, 0, "COMMAND Dbg Msg"); ++#endif ++ ++ /* Wait for the command to complete */ ++ while (!((status = mmci_readl(SR)) & MMCI_BIT(CMDRDY))); ++ ++ if (status & error_flags) { ++ //dump_cmd(cmdr, cmd->cmdarg, status, "COMMAND Failed"); ++ return COMM_ERR; ++ } ++ ++ /* Copy the response to the response buffer */ ++ if (cmd->resp_type & MMC_RSP_136) { ++ cmd->response[0] = mmci_readl(RSPR); ++ cmd->response[1] = mmci_readl(RSPR1); ++ cmd->response[2] = mmci_readl(RSPR2); ++ cmd->response[3] = mmci_readl(RSPR3); ++ } else ++ cmd->response[0] = mmci_readl(RSPR); ++ ++ /* transfer all of the blocks */ ++ if (data) { ++ uint word_count, block_count; ++ uint* ioptr; ++ uint sys_blocksize, dummy, i; ++ uint (*atmel_data_op)(uint* data, uint error_flags); ++ ++ if (data->flags & MMC_DATA_READ) { ++ atmel_data_op = atmel_data_read; ++ sys_blocksize = mmc->read_bl_len; ++ ioptr = (uint*)data->dest; ++ } else { ++ atmel_data_op = atmel_data_write; ++ sys_blocksize = mmc->write_bl_len; ++ ioptr = (uint*)data->src; ++ } ++ ++ status = 0; ++ for(block_count = 0; block_count < data->blocks && !status; block_count++) { ++ word_count = 0; ++ do { ++ status = atmel_data_op(ioptr,error_flags); ++ word_count++; ++ ioptr++; ++ } while(!status && word_count < (data->blocksize / 4)); ++#if GEN_ATMEL_MCI_DEBUG ++ if (data->flags & MMC_DATA_READ) ++ { ++ char *mem_args[3]; ++ char mem_addr_str[16]; ++ char mem_len_str[16]; ++ printf("Command caused a block read for %u bytes (read %u bytes)\n", data->blocksize, word_count*4); ++ mem_args[0] = "md.l"; ++ sprintf(mem_addr_str,"0x%08x",(uint)(data->dest)); ++ mem_args[1] = mem_addr_str; ++ sprintf(mem_len_str,"0x%x",word_count); ++ mem_args[2] = mem_len_str; ++ printf("Dumping with: %s %s %s\n", mem_args[0], mem_args[1], mem_args[2]); ++ do_mem_md(NULL, 0, 3, mem_args); ++ } ++#endif ++#if GEN_ATMEL_MCI_DEBUG ++ if (!status && word_count < (sys_blocksize / 4)) ++ printf("sponging....\n"); ++#endif ++ /* sponge the rest of a full block */ ++ while (!status && word_count < (sys_blocksize / 4)) { ++ status = atmel_data_op(&dummy,error_flags); ++ word_count++; ++ } ++ if (status) { ++ dump_cmd(cmdr, cmd->cmdarg, status, "XFER Failed"); ++ return COMM_ERR; ++ } ++ } ++ ++ /* Wait for Transfer End */ ++ i = 0; ++ do { ++ status = mmci_readl(SR); ++ ++ if (status & error_flags) { ++ dump_cmd(cmdr, cmd->cmdarg, status, "XFER DTIP Wait Failed"); ++ return COMM_ERR; ++ } ++ i++; ++ } while ((status & MMCI_BIT(DTIP)) && i < 10000); ++ if (status & MMCI_BIT(DTIP)) { ++ dump_cmd(cmdr, cmd->cmdarg, status, "XFER DTIP never unset, ignoring"); ++ } ++ } ++ ++ return 0; ++} ++ ++static void atmel_set_ios(struct mmc *mmc) ++{ ++ /* Set the clock speed */ ++ mci_set_mode(mmc->clock, MMC_DEFAULT_BLKLEN); ++ ++ /* set the bus width and select slot A for this interface ++ * there is no capability for multiple slots on the same interface yet ++ */ ++ /* Bitfield SCDBUS needs to be expanded to 2 bits for 8-bit buses ++ */ ++ if (mmc->bus_width == 4) ++ mmci_writel(SDCR, MMCI_BF(SCDBUS,0x1)|MMCI_BF(SCDSEL,0x0)); ++ else ++ mmci_writel(SDCR, MMCI_BF(SCDBUS,0x0)|MMCI_BF(SCDSEL,0x0)); ++} ++ ++static int atmel_init(struct mmc *mmc) ++{ ++ /* Initialize controller */ ++ mmci_writel(CR, MMCI_BIT(SWRST)); /* soft reset */ ++ mmci_writel(CR, MMCI_BIT(PWSDIS)); /* disable power save */ ++ mmci_writel(CR, MMCI_BIT(MCIEN)); /* enable mci */ ++ ++ /* Initial Time-outs */ ++ mmci_writel(DTOR, 0x7f); ++ /* Disable Interrupts */ ++ mmci_writel(IDR, ~0UL); ++ ++ /* Set defualt clocks and blocklen */ ++ mci_set_mode(CONFIG_SYS_MMC_CLK_OD, MMC_DEFAULT_BLKLEN); ++ ++ return 0; ++} ++ ++static int atmel_initialize(bd_t *bis) ++{ ++ struct mmc *mmc; ++ ++ mmc = malloc(sizeof(struct mmc)); ++ ++ sprintf(mmc->name, "Atmel MCI"); ++ /* We set this but atmel_mci.h makes use of MMCI_BASE directly */ ++ mmc->priv = (void *)MMCI_BASE; ++ mmc->send_cmd = atmel_send_cmd; ++ mmc->set_ios = atmel_set_ios; ++ mmc->init = atmel_init; ++ ++ /* need to be able to pass these in on a baord by board basis */ ++ mmc->voltages = MMC_VDD_32_33 | MMC_VDD_33_34; ++ mmc->host_caps = MMC_MODE_4BIT; ++ ++ /* High Speed Support? */ ++ ++ mmc->f_min = get_mck_clk_rate() / (2*(0xFF+1)); ++ mmc->f_max = get_mck_clk_rate() / (2); ++ ++ mmc_register(mmc); ++ ++ return 0; ++} ++ ++int atmel_mmc_init(bd_t *bis) ++{ ++ return atmel_initialize(bis); ++} +diff -Naur u-boot-2009.11/drivers/mmc/Makefile u-boot-2009.11.new/drivers/mmc/Makefile +--- u-boot-2009.11/drivers/mmc/Makefile 2009-12-15 23:20:54.000000000 +0100 ++++ u-boot-2009.11.new/drivers/mmc/Makefile 2010-10-08 12:09:30.000000000 +0200 +@@ -26,6 +26,7 @@ + LIB := $(obj)libmmc.a + + COBJS-$(CONFIG_GENERIC_MMC) += mmc.o ++COBJS-$(CONFIG_GENERIC_ATMEL_MCI) += gen_atmel_mci.o + COBJS-$(CONFIG_ATMEL_MCI) += atmel_mci.o + COBJS-$(CONFIG_BFIN_SDH) += bfin_sdh.o + COBJS-$(CONFIG_OMAP3_MMC) += omap3_mmc.o +diff -Naur u-boot-2009.11/drivers/mmc/mmc.c u-boot-2009.11.new/drivers/mmc/mmc.c +--- u-boot-2009.11/drivers/mmc/mmc.c 2009-12-15 23:20:54.000000000 +0100 ++++ u-boot-2009.11.new/drivers/mmc/mmc.c 2010-10-08 12:09:30.000000000 +0200 +@@ -36,6 +36,13 @@ + static struct list_head mmc_devices; + static int cur_dev_num = -1; + ++int __board_mmc_getcd(u8 *cd, struct mmc *mmc) { ++ return -1; ++} ++ ++int board_mmc_getcd(u8 *cd, struct mmc *mmc)__attribute__((weak, ++ alias("__board_mmc_getcd"))); ++ + int mmc_send_cmd(struct mmc *mmc, struct mmc_cmd *cmd, struct mmc_data *data) + { + return mmc->send_cmd(mmc, cmd, data); +@@ -172,7 +179,7 @@ + err = mmc_set_blocklen(mmc, mmc->read_bl_len); + + if (err) +- return err; ++ goto free_buffer; + + for (i = startblock; i <= endblock; i++) { + int segment_size; +@@ -273,7 +280,15 @@ + + cmd.cmdidx = SD_CMD_APP_SEND_OP_COND; + cmd.resp_type = MMC_RSP_R3; +- cmd.cmdarg = mmc->voltages; ++ ++ /* ++ * Most cards do not answer if some reserved bits ++ * in the ocr are set. However, Some controller ++ * can set bit 7 (reserved for low voltages), but ++ * how to manage low voltages SD card is not yet ++ * specified. ++ */ ++ cmd.cmdarg = mmc->voltages & 0xff8000; + + if (mmc->version == SD_VERSION_2) + cmd.cmdarg |= OCR_HCS; +diff -Naur u-boot-2009.11/drivers/serial/atmel_usart.c u-boot-2009.11.new/drivers/serial/atmel_usart.c +--- u-boot-2009.11/drivers/serial/atmel_usart.c 2009-12-15 23:20:54.000000000 +0100 ++++ u-boot-2009.11.new/drivers/serial/atmel_usart.c 2010-10-08 12:11:21.000000000 +0200 +@@ -34,6 +34,9 @@ + #elif defined(CONFIG_USART3) + # define USART_ID 3 + # define USART_BASE USART3_BASE ++#elif defined(CONFIG_USART4) ++# define USART_ID 4 ++# define USART_BASE USART4_BASE + #endif + + #include "atmel_usart.h" +diff -Naur u-boot-2009.11/include/asm-arm/arch-at91/at91_pmc.h u-boot-2009.11.new/include/asm-arm/arch-at91/at91_pmc.h +--- u-boot-2009.11/include/asm-arm/arch-at91/at91_pmc.h 2009-12-15 23:20:54.000000000 +0100 ++++ u-boot-2009.11.new/include/asm-arm/arch-at91/at91_pmc.h 2010-10-08 12:09:30.000000000 +0200 +@@ -111,6 +111,8 @@ + #define AT91_PMC_PCK2RDY (1 << 10) /* Programmable Clock 2 */ + #define AT91_PMC_PCK3RDY (1 << 11) /* Programmable Clock 3 */ + #define AT91_PMC_IMR (AT91_PMC + 0x6c) /* Interrupt Mask Register */ ++#define AT91_PMC_PLLICPR (AT91_PMC + 0x80) /* Charge Pump Configuration register */ ++#define AT91_PMC_ICPLLA (1 << 0) + + #define AT91_PMC_PROT (AT91_PMC + 0xe4) /* Protect Register [AT91CAP9 revC only] */ + #define AT91_PMC_PROTKEY 0x504d4301 /* Activation Code */ +diff -Naur u-boot-2009.11/include/asm-arm/arch-at91/at91sam9g45_ddrsdram.h u-boot-2009.11.new/include/asm-arm/arch-at91/at91sam9g45_ddrsdram.h +--- u-boot-2009.11/include/asm-arm/arch-at91/at91sam9g45_ddrsdram.h 1970-01-01 01:00:00.000000000 +0100 ++++ u-boot-2009.11.new/include/asm-arm/arch-at91/at91sam9g45_ddrsdram.h 2010-10-08 12:09:30.000000000 +0200 +@@ -0,0 +1,118 @@ ++/* ++ * [origin: Linux kernel arch/arm/mach-at91/include/mach/at91_wdt.h] ++ * ++ * Copyright (C) 2009 Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> ++ * Copyright (C) 2007 Andrew Victor ++ * Copyright (C) 2007 Atmel Corporation. ++ * ++ * DDRSDRAM Controllers (SDRAMC) - System peripherals registers. ++ * Based on AT91SAM9261 datasheet revision D. ++ * ++ * 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. ++ */ ++ ++#ifndef AT91SAM9_DDRSDRAMC_H ++#define AT91SAM9_DDRSDRAMC_H ++ ++/* DDRSDRAM Controller (SDRAMC) registers */ ++#define AT91_DDRSDRAMC_MR (AT91_SDRAMC + 0x00) /* SDRAM Controller Mode Register */ ++#define AT91_DDRSDRAMC_MODE (0xf << 0) /* Command Mode */ ++#define AT91_DDRSDRAMC_MODE_NORMAL 0 ++#define AT91_DDRSDRAMC_MODE_NOP 1 ++#define AT91_DDRSDRAMC_MODE_PRECHARGE 2 ++#define AT91_DDRSDRAMC_MODE_LMR 3 ++#define AT91_DDRSDRAMC_MODE_REFRESH 4 ++#define AT91_DDRSDRAMC_MODE_EXT_LMR 5 ++#define AT91_DDRSDRAMC_MODE_DEEP 6 ++ ++#define AT91_DDRSDRAMC_RTR (AT91_SDRAMC + 0x04) /* SDRAM Controller Refresh Timer Register */ ++#define AT91_DDRSDRAMC_COUNT (0xfff << 0) /* Refresh Timer Counter */ ++ ++#define AT91_DDRSDRAMC_CR (AT91_SDRAMC + 0x08) /* SDRAM Controller Configuration Register */ ++#define AT91_DDRSDRAMC_NC (3 << 0) /* Number of Column Bits */ ++#define AT91_DDRSDRAMC_NC_8 (0 << 0) ++#define AT91_DDRSDRAMC_NC_9 (1 << 0) ++#define AT91_DDRSDRAMC_NC_10 (2 << 0) ++#define AT91_DDRSDRAMC_NC_11 (3 << 0) ++#define AT91_DDRSDRAMC_NC_DDR_9 (0 << 0) ++#define AT91_DDRSDRAMC_NC_DDR_10 (1 << 0) ++#define AT91_DDRSDRAMC_NC_DDR_11 (2 << 0) ++#define AT91_DDRSDRAMC_NC_DDR_12 (3 << 0) ++#define AT91_DDRSDRAMC_NR (3 << 2) /* Number of Row Bits */ ++#define AT91_DDRSDRAMC_NR_11 (0 << 2) ++#define AT91_DDRSDRAMC_NR_12 (1 << 2) ++#define AT91_DDRSDRAMC_NR_13 (2 << 2) ++#define AT91_DDRSDRAMC_NR_14 (3 << 2) ++#define AT91_DDRSDRAMC_CAS (7 << 4) /* CAS Latency */ ++#define AT91_DDRSDRAMC_CAS_1 (1 << 4) ++#define AT91_DDRSDRAMC_CAS_2 (2 << 4) ++#define AT91_DDRSDRAMC_CAS_3 (3 << 4) ++#define AT91_DDRSDRAMC_DLL (1 << 7) ++#define AT91_DDRSDRAMC_DIC (1 << 8) /* Weak Pullups*/ ++#define AT91_DDRSDRAMC_DIS_DLL (1 << 9) /* Disable DLL*/ ++#define AT91_DDRSDRAMC_OCD (0x7 << 12) /* Row Precharge Delay */ ++#define AT91_DDRSDRAMC_DQMS (0x1 << 16) /* Mask Data shared */ ++#define AT91_DDRSDRAMC_ACTBST (0x1 << 18) /* Active Boost to busrt stop*/ ++ ++#define AT91_DDRSDRAMC_T0PR (AT91_SDRAMC + 0x0C) ++#define AT91_DDRSDRAMC_TRAS(x) ((x)<<0) ++#define AT91_DDRSDRAMC_TRCD(x) ((x)<<4) ++#define AT91_DDRSDRAMC_TWR(x) ((x)<<8) ++#define AT91_DDRSDRAMC_TRC(x) ((x)<<12) ++#define AT91_DDRSDRAMC_TRP(x) ((x)<<16) ++#define AT91_DDRSDRAMC_TRRD(x) ((x)<<20) ++#define AT91_DDRSDRAMC_TWTR(x) ((x)<<24) ++#define AT91_DDRSDRAMC_rWRRD (1<<27) ++#define AT91_DDRSDRAMC_TMRD(x) ((x)<<28) ++#define AT91_DDRSDRAMC_T1PR (AT91_SDRAMC + 0x10) ++#define AT91_DDRSDRAMC_TRFC(x) (((x) & 0x1F)<<0) ++#define AT91_DDRSDRAMC_TXSNR(x) (((x) & 0x0FF)<<8) ++#define AT91_DDRSDRAMC_TXSRD(x) (((x) & 0x0FF)<<16) ++#define AT91_DDRSDRAMC_TXP(x) (((x) & 0x0F)<<24) ++#define AT91_DDRSDRAMC_T2PR (AT91_SDRAMC + 0x14) ++#define AT91_DDRSDRAMC_TXARD(x) (((x) & 0x0F)<<0) ++#define AT91_DDRSDRAMC_TXARDS(x) (((x) & 0x0F)<<4) ++#define AT91_DDRSDRAMC_TRPA(x) (((x) & 0x0F)<<8) ++#define AT91_DDRSDRAMC_TRTP(x) (((x) & 0x0F)<<12) ++#define AT91_DDRSDRAMC_LPR (AT91_SDRAMC + 0x1C) /* SDRAM Controller Low Power Register */ ++#define AT91_DDRSDRAMC_LPCB (3 << 0) /* Low-power Configurations */ ++#define AT91_DDRSDRAMC_LPCB_DISABLE 0 ++#define AT91_DDRSDRAMC_LPCB_SELF_REFRESH 1 ++#define AT91_DDRSDRAMC_LPCB_POWER_DOWN 2 ++#define AT91_DDRSDRAMC_LPCB_DEEP_POWER_DOWN 3 ++#define AT91_DDRSDRAMC_CLK_FR (1 << 2) /* Clock Frozen */ ++#define AT91_DDRSDRAMC_PASR (7 << 4) /* Partial Array Self Refresh */ ++#define AT91_DDRSDRAMC_TCSR (3 << 8) /* Temperature Compensated Self Refresh */ ++#define AT91_DDRSDRAMC_DS (3 << 10) /* Drive Strength */ ++#define AT91_DDRSDRAMC_TIMEOUT (3 << 12) /* Time to define when Low Power Mode is enabled */ ++#define AT91_DDRSDRAMC_TIMEOUT_0_CLK_CYCLES (0 << 12) ++#define AT91_DDRSDRAMC_TIMEOUT_64_CLK_CYCLES (1 << 12) ++#define AT91_DDRSDRAMC_TIMEOUT_128_CLK_CYCLES (2 << 12) ++#define AT91_DDRSDRAMC_APDE (1 << 16) /* Active power Down Exit */ ++ ++#define AT91_DDRSDRAMC_MDR (AT91_SDRAMC + 0x20) /* SDRAM Memory Device Register */ ++#define AT91_DDRSDRAMC_MD (7 << 0) /* Memory Device Type */ ++#define AT91_DDRSDRAMC_MD_SDRAM 0 ++#define AT91_DDRSDRAMC_MD_LOW_POWER_SDRAM 1 ++#define AT91_DDRSDRAMC_MD_LOW_POWER_DDRSDRAM 3 ++#define AT91_DDRSDRAMC_MD_DDR2SDRAM 6 ++ ++#define AT91_DDRSDRAMC_DBW (1 << 4) /* Data Bus Width 18 Bit*/ ++ ++#define AT91_DDRSDRAMC_HS (AT91_SDRAMC + 0x2C) /* High Speed Register */ ++#define AT91_DDRSDRAMC_NO_OPTI (1 << 1) /* No Optimization */ ++#define AT91_DDRSDRAMC_DIS_ANTICIP_READ (1 << 2) /* Disable anticip read */ ++#define AT91_DDRSDRAMC_DELAY1 (AT91_SDRAMC + 0x30) /* Delay on I/O */ ++#define AT91_DDRSDRAMC_DELAY2 (AT91_SDRAMC + 0x34) /* Delay on I/O */ ++#define AT91_DDRSDRAMC_DELAY3 (AT91_SDRAMC + 0x38) /* Delay on I/O */ ++#define AT91_DDRSDRAMC_DELAY4 (AT91_SDRAMC + 0x3c) /* Delay on I/O */ ++#define AT91_DDRSDRAMC_DRIVESTRENGTH (AT91_SDRAMC + 0x50) /* Drive Strength */ ++#define AT91_DDRSDRAMC_DSC (1<<0) /* Full drive */ ++#define AT91_DDRSDRAMC_WPMR (AT91_SDRAMC + 0xE4) /* Write protect Mode */ ++ ++#define AT91_DDRSDRAMC_WPEN 0x44445201 /* Enable */ ++#define AT91_DDRSDRAMC_WPDIS 0x44445200 /* Disable */ ++#endif +diff -Naur u-boot-2009.11/include/asm-arm/arch-at91/gpio.h u-boot-2009.11.new/include/asm-arm/arch-at91/gpio.h +--- u-boot-2009.11/include/asm-arm/arch-at91/gpio.h 2009-12-15 23:20:54.000000000 +0100 ++++ u-boot-2009.11.new/include/asm-arm/arch-at91/gpio.h 2010-10-08 12:09:30.000000000 +0200 +@@ -358,7 +358,7 @@ + { + void *pio = pin_to_controller(pin); + unsigned mask = pin_to_mask(pin); +- u32 pdsr; ++ __u32 pdsr; + + pdsr = __raw_readl(pio + PIO_PDSR); + return (pdsr & mask) != 0; +diff -Naur u-boot-2009.11/include/asm-arm/arch-at91/memory-map.h u-boot-2009.11.new/include/asm-arm/arch-at91/memory-map.h +--- u-boot-2009.11/include/asm-arm/arch-at91/memory-map.h 2009-12-15 23:20:54.000000000 +0100 ++++ u-boot-2009.11.new/include/asm-arm/arch-at91/memory-map.h 2010-10-08 12:11:21.000000000 +0200 +@@ -30,6 +30,7 @@ + #define USART1_BASE AT91_USART1 + #define USART2_BASE AT91_USART2 + #define USART3_BASE (AT91_BASE_SYS + AT91_DBGU) ++#define USART4_BASE AT91_USART3 + #define SPI0_BASE AT91_BASE_SPI + + #endif /* __ASM_ARM_ARCH_MEMORYMAP_H__ */ +diff -Naur u-boot-2009.11/include/configs/icnova/arm400MHz.h u-boot-2009.11.new/include/configs/icnova/arm400MHz.h +--- u-boot-2009.11/include/configs/icnova/arm400MHz.h 1970-01-01 01:00:00.000000000 +0100 ++++ u-boot-2009.11.new/include/configs/icnova/arm400MHz.h 2010-10-08 12:09:30.000000000 +0200 +@@ -0,0 +1,8 @@ ++/* ++ * Set up the PLL to run at 140 MHz, the CPU to run at the PLL ++ * frequency, the HSB and PBB at 1/2, and the PBA to run at 1/4 the ++ * PLL frequency. ++ * (CONFIG_SYS_OSC0_HZ * CONFIG_SYS_PLL0_MUL) / CONFIG_SYS_PLL0_DIV = PLL MHz ++ */ ++#define AT91_MAIN_CLOCK 12000000 // 12MHz crystal ++#define CONFIG_ARCH_CPU_INIT +diff -Naur u-boot-2009.11/include/configs/icnova/base_arm.h u-boot-2009.11.new/include/configs/icnova/base_arm.h +--- u-boot-2009.11/include/configs/icnova/base_arm.h 1970-01-01 01:00:00.000000000 +0100 ++++ u-boot-2009.11.new/include/configs/icnova/base_arm.h 2010-10-08 12:09:30.000000000 +0200 +@@ -0,0 +1,90 @@ ++#define CONFIG_SKIP_LOWLEVEL_INIT ++#define CONFIG_SKIP_RELOCATE_UBOOT ++ ++#ifndef CONFIG_SKIP_LOWLEVEL_INIT ++#define MASTER_PLL_MUL 200 ++#define MASTER_PLL_DIV 3 ++ ++/* clocks */ ++#define CONFIG_SYS_MOR_VAL \ ++ (AT91_PMC_MOSCEN | \ ++ (255 << 8)) /* Main Oscillator Start-up Time */ ++ ++#define CONFIG_SYS_PLLICPR_VAL 0 /* AT91_PMC_ICPLLA */ ++#define CONFIG_SYS_PLLAR_VAL \ ++ (AT91_PMC_PLLA_WR_ERRATA | /* Bit 29 must be 1 when prog */ \ ++ AT91_PMC_PLLCOUNT | /* PLL Counter */ \ ++ ((MASTER_PLL_MUL - 1) << 16) | (MASTER_PLL_DIV)) ++ ++/* PCK/2 = MCK Master Clock from PLLA */ ++#define CONFIG_SYS_MCKR1_VAL \ ++ (AT91_PMC_CSS_MAIN | \ ++ AT91_PMC_PRES_1 | \ ++ AT91SAM9_PMC_MDIV_3 | \ ++ AT91_PMC_PDIV_1) ++/* PCK/2 = MCK Master Clock from PLLA */ ++#define CONFIG_SYS_MCKR2_VAL \ ++ (AT91_PMC_CSS_PLLA | \ ++ AT91_PMC_PRES_1 | \ ++ AT91SAM9_PMC_MDIV_3 | \ ++ AT91_PMC_PDIV_2) ++ ++/* define PDC[31:16] as DATA[31:16] */ ++#define CONFIG_SYS_PIOD_PDR_VAL1 0xFFFF0000 ++/* no pull-up for D[31:16] */ ++#define CONFIG_SYS_PIOD_PPUDR_VAL 0xFFFF0000 ++/* EBI0_CSA, CS3 NAND Flash, 3.3V memories */ ++#define CONFIG_SYS_MATRIX_EBI0CSA_VAL \ ++ (AT91_MATRIX_EBI0_DBPUC | AT91_MATRIX_EBI0_VDDIOMSEL_3_3V ) ++#define CONFIG_SYS_MATRIX_EBICSA_VAL 0x00070008 // 3.3V EBI, NAND-En ++ ++ ++/* setup SMC0, CS0 (NOR Flash) - 16-bit, 15 WS */ ++#define CONFIG_SYS_SMC0_SETUP0_VAL \ ++ (AT91_SMC_NWESETUP_(8) | AT91_SMC_NCS_WRSETUP_(0) | \ ++ AT91_SMC_NRDSETUP_(16) | AT91_SMC_NCS_RDSETUP_(0)) ++#define CONFIG_SYS_SMC0_PULSE0_VAL \ ++ (AT91_SMC_NWEPULSE_(0x3b) | AT91_SMC_NCS_WRPULSE_(0x34) | \ ++ AT91_SMC_NRDPULSE_(0x38) | AT91_SMC_NCS_RDPULSE_(0x3b)) ++#define CONFIG_SYS_SMC0_CYCLE0_VAL \ ++ (AT91_SMC_NWECYCLE_(0x3b) | AT91_SMC_NRDCYCLE_(0x3b)) ++#define CONFIG_SYS_SMC0_MODE0_VAL \ ++ AT91_SMC_DBW_16 ++ ++/* user reset enable */ ++#define CONFIG_SYS_RSTC_RMR_VAL \ ++ (AT91_RSTC_KEY | \ ++ AT91_RSTC_PROCRST | \ ++ AT91_RSTC_RSTTYP_WAKEUP | \ ++ AT91_RSTC_RSTTYP_WATCHDOG) ++ ++/* Disable Watchdog */ ++#define CONFIG_SYS_WDTC_WDMR_VAL \ ++ (AT91_WDT_WDIDLEHLT | AT91_WDT_WDDBGHLT | \ ++ AT91_WDT_WDV | \ ++ AT91_WDT_WDDIS | \ ++ AT91_WDT_WDD) ++ ++/* DDR2-SDRAM */ ++#define CONFIG_SYS_AT91_DDRAM ++ ++#define AT91_SDRAMC (0xffffe600 - AT91_BASE_SYS) ++ ++#define CONFIG_SYS_DDRC_MDR_VAL \ ++ (AT91_DDRSDRAMC_DBW| AT91_DDRSDRAMC_MD_DDR2SDRAM) ++#define CONFIG_SYS_DDRC_CR0_VAL \ ++ (AT91_DDRSDRAMC_NC_DDR_10 | AT91_DDRSDRAMC_NR_14 | AT91_DDRSDRAMC_CAS_3) ++#define CONFIG_SYS_DDRC_T0PR_VAL \ ++ (AT91_DDRSDRAMC_TRAS(6) | AT91_DDRSDRAMC_TRCD(2) |\ ++ AT91_DDRSDRAMC_TWR(2) | AT91_DDRSDRAMC_TRC(8) | \ ++ AT91_DDRSDRAMC_TRP(2) | AT91_DDRSDRAMC_TRRD(1) | \ ++ AT91_DDRSDRAMC_TWTR(1) | AT91_DDRSDRAMC_TMRD(2) ) ++#define CONFIG_SYS_DDRC_T1PR_VAL \ ++ (AT91_DDRSDRAMC_TRFC(14) | AT91_DDRSDRAMC_TXSNR(16) \ ++ |AT91_DDRSDRAMC_TXSRD(200) | AT91_DDRSDRAMC_TXP(2)) ++#define CONFIG_SYS_DDRC_T2PR_VAL \ ++ (AT91_DDRSDRAMC_TXARD(2) | AT91_DDRSDRAMC_TXARDS(7) \ ++ |AT91_DDRSDRAMC_TRPA(0) | AT91_DDRSDRAMC_TRTP(1)) ++#define CONFIG_SYS_SDRAM_REFRESH_VAL 0x24B ++ ++#endif +diff -Naur u-boot-2009.11/include/configs/icnova/base.h u-boot-2009.11.new/include/configs/icnova/base.h +--- u-boot-2009.11/include/configs/icnova/base.h 1970-01-01 01:00:00.000000000 +0100 ++++ u-boot-2009.11.new/include/configs/icnova/base.h 2010-10-08 12:09:30.000000000 +0200 +@@ -0,0 +1,86 @@ ++#ifdef CONFIG_ICNOVA_ARM9 ++#define CONFIG_ARM926EJS 1 ++#define CONFIG_AT91SAM9G45 1 ++#else ++#define CONFIG_AVR32 1 ++#define CONFIG_AT32AP 1 ++#endif ++ ++#include <asm/arch/memory-map.h> ++ ++/* ++ * Timer clock frequency. We're using the CPU-internal COUNT register ++ * for this, so this is equivalent to the CPU core clock frequency ++ */ ++#define CONFIG_SYS_HZ 1000 ++ ++#define CONFIG_CMDLINE_TAG 1 ++#define CONFIG_SETUP_MEMORY_TAGS 1 ++#define CONFIG_INITRD_TAG 1 ++ ++#include <config_cmd_default.h> ++#define CONFIG_CMD_ASKENV ++/* ++ * Only interrupt autoboot if <space> is pressed. Otherwise, garbage ++ * data on the serial line may interrupt the boot sequence. ++ */ ++#define CONFIG_BOOTDELAY 3 ++#if 0 ++#define CONFIG_AUTOBOOT 1 ++#define CONFIG_AUTOBOOT_KEYED 1 ++#define CONFIG_AUTOBOOT_PROMPT \ ++ "Press SPACE to abort autoboot in %d seconds\n", bootdelay ++#define CONFIG_AUTOBOOT_DELAY_STR "d" ++#define CONFIG_AUTOBOOT_STOP_STR " " ++#endif ++ ++ ++#ifdef CONFIG_ICNOVA_ARM9 ++#define CONFIG_STACKSIZE (16*2048) ++ ++#define PHYS_SDRAM 0x70000000 ++#define PHYS_SDRAM_SIZE 0x08000000 // 128 MiB ++#define CONFIG_SYS_GBL_DATA_SIZE 128 ++#define INTERNAL_SRAM_BASE 0x00300000 ++#define INTERNAL_SRAM_SIZE 0x00010000 ++#include <configs/icnova/base_arm.h> ++#else ++#define CONFIG_STACKSIZE (2048) ++ ++#define CONFIG_SYS_DCACHE_LINESZ 32 ++#define CONFIG_SYS_ICACHE_LINESZ 32 ++ ++#define CONFIG_PIO2 1 ++#define CONFIG_SYS_NR_PIOS 5 ++#define CONFIG_SYS_HSDRAMC 1 ++#define PHYS_SDRAM EBI_SDRAM_BASE ++#define PHYS_SDRAM_SIZE 0x700000 ++#endif ++ ++#define CONFIG_SYS_MEMTEST_START PHYS_SDRAM ++#define CONFIG_SYS_MEMTEST_END (CONFIG_SYS_MEMTEST_START + PHYS_SDRAM_SIZE) ++ ++#define CONFIG_NR_DRAM_BANKS 1 ++ ++#define CONFIG_SYS_INTRAM_BASE INTERNAL_SRAM_BASE ++#define CONFIG_SYS_INTRAM_SIZE INTERNAL_SRAM_SIZE ++#define CONFIG_SYS_SDRAM_BASE PHYS_SDRAM ++ ++#define CONFIG_SYS_INIT_SP_ADDR (CONFIG_SYS_INTRAM_BASE + CONFIG_SYS_INTRAM_SIZE) ++ ++#define CONFIG_SYS_MALLOC_LEN (256*1024) ++#define CONFIG_SYS_DMA_ALLOC_LEN (16384) ++ ++/* Allow 4MB for the kernel run-time image */ ++#define CONFIG_SYS_LOAD_ADDR (PHYS_SDRAM + 0x00400000) ++#define CONFIG_SYS_BOOTPARAMS_LEN (16 * 1024) ++ ++#define CONFIG_SYS_PROMPT "ICnova> " ++#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_AUTO_COMPLETE ++#define CONFIG_SYS_HUSH_PARSER ++#define CONFIG_SYS_PROMPT_HUSH_PS2 "> " ++ +diff -Naur u-boot-2009.11/include/configs/icnova/cpu140MHz.h u-boot-2009.11.new/include/configs/icnova/cpu140MHz.h +--- u-boot-2009.11/include/configs/icnova/cpu140MHz.h 1970-01-01 01:00:00.000000000 +0100 ++++ u-boot-2009.11.new/include/configs/icnova/cpu140MHz.h 2010-10-08 12:09:30.000000000 +0200 +@@ -0,0 +1,42 @@ ++ ++/* ++ * Set up the PLL to run at 140 MHz, the CPU to run at the PLL ++ * frequency, the HSB and PBB at 1/2, and the PBA to run at 1/4 the ++ * PLL frequency. ++ * (CONFIG_SYS_OSC0_HZ * CONFIG_SYS_PLL0_MUL) / CONFIG_SYS_PLL0_DIV = PLL MHz ++ */ ++#define CONFIG_PLL 1 ++#define CONFIG_SYS_POWER_MANAGER 1 ++#define CONFIG_SYS_OSC0_HZ 20000000 ++#define CONFIG_SYS_PLL0_DIV 1 ++#define CONFIG_SYS_PLL0_MUL 7 ++#define CONFIG_SYS_PLL0_SUPPRESS_CYCLES 16 ++/* ++ * Set the CPU running at: ++ * PLL / (2^CONFIG_SYS_CLKDIV_CPU) = CPU MHz ++ */ ++#define CONFIG_SYS_CLKDIV_CPU 0 ++/* ++ * Set the HSB running at: ++ * PLL / (2^CONFIG_SYS_CLKDIV_HSB) = HSB MHz ++ */ ++#define CONFIG_SYS_CLKDIV_HSB 1 ++/* ++ * Set the PBA running at: ++ * PLL / (2^CONFIG_SYS_CLKDIV_PBA) = PBA MHz ++ */ ++#define CONFIG_SYS_CLKDIV_PBA 2 ++/* ++ * Set the PBB running at: ++ * PLL / (2^CONFIG_SYS_CLKDIV_PBB) = PBB MHz ++ */ ++#define CONFIG_SYS_CLKDIV_PBB 1 ++ ++/* ++ * The PLLOPT register controls the PLL like this: ++ * icp = PLLOPT<2> ++ * ivco = PLLOPT<1:0> ++ * ++ * We want icp=1 (default) and ivco=0 (80-160 MHz) or ivco=2 (150-240MHz). ++ */ ++#define CONFIG_SYS_PLL0_OPT 0x04 +diff -Naur u-boot-2009.11/include/configs/icnova/flash2x8.h u-boot-2009.11.new/include/configs/icnova/flash2x8.h +--- u-boot-2009.11/include/configs/icnova/flash2x8.h 1970-01-01 01:00:00.000000000 +0100 ++++ u-boot-2009.11.new/include/configs/icnova/flash2x8.h 2010-10-08 12:09:30.000000000 +0200 +@@ -0,0 +1,19 @@ ++#define CONFIG_CMD_JFFS2 ++#define CONFIG_CMD_FLASH ++ ++//#ifdef CONFIG_ICNOVA_ARM9 ++//#define CONFIG_SYS_FLASH_BASE 0x10000000 ++//#else ++#define CONFIG_SYS_FLASH_BASE 0x00000000 ++//#endif ++#define CONFIG_SYS_FLASH_SIZE 0x00100000 ++#define CONFIG_SYS_MAX_FLASH_BANKS 1 ++#define CONFIG_SYS_FLASH_SECT 8 ++#define CONFIG_SYS_MAX_FLASH_SECT (CONFIG_SYS_FLASH_SECT+1) ++ ++#define CONFIG_SYS_MONITOR_BASE CONFIG_SYS_FLASH_BASE ++ ++#define CONFIG_ENV_IS_IN_FLASH 1 ++#define CONFIG_ENV_SIZE (CONFIG_SYS_FLASH_SIZE / CONFIG_SYS_FLASH_SECT) ++#define CONFIG_ENV_ADDR (CONFIG_SYS_FLASH_BASE + CONFIG_SYS_FLASH_SIZE - CONFIG_ENV_SIZE) ++ +diff -Naur u-boot-2009.11/include/configs/icnova/flash.h u-boot-2009.11.new/include/configs/icnova/flash.h +--- u-boot-2009.11/include/configs/icnova/flash.h 1970-01-01 01:00:00.000000000 +0100 ++++ u-boot-2009.11.new/include/configs/icnova/flash.h 2010-10-08 12:09:30.000000000 +0200 +@@ -0,0 +1,24 @@ ++#define CONFIG_CMD_JFFS2 ++#define CONFIG_JFFS2_CMDLINE ++#define CONFIG_CMD_FLASH ++ ++#define CONFIG_SYS_FLASH_BASE 0x00000000 ++#define CONFIG_SYS_FLASH_SIZE 0x800000 ++#define CONFIG_SYS_MAX_FLASH_BANKS 1 ++#define CONFIG_SYS_MAX_FLASH_SECT 135 ++ ++#define CONFIG_SYS_MONITOR_BASE CONFIG_SYS_FLASH_BASE ++ ++#define CONFIG_ENV_IS_IN_FLASH 1 ++#define CONFIG_ENV_SIZE 65536 ++#define CONFIG_ENV_ADDR 0x20000 ++ ++#define MTDPARTS_DEFAULT "mtdparts=physmap-flash.0:128k(boot)ro,64k(env)ro,-(root)" ++#define MTDIDS_DEFAULT "nor0=physmap-flash.0" ++ ++#undef CONFIG_BOOTARGS ++#undef CONFIG_BOOTCOMMAND ++ ++#define CONFIG_BOOTARGS "root=1F02 rootfstype=jffs2" ++#define CONFIG_BOOTCOMMAND \ ++ "mtdparts default; chpart nor0,2; fsload boot/uImage; bootm" +diff -Naur u-boot-2009.11/include/configs/icnova/mmc.h u-boot-2009.11.new/include/configs/icnova/mmc.h +--- u-boot-2009.11/include/configs/icnova/mmc.h 1970-01-01 01:00:00.000000000 +0100 ++++ u-boot-2009.11.new/include/configs/icnova/mmc.h 2010-10-08 12:09:30.000000000 +0200 +@@ -0,0 +1,25 @@ ++ ++#define CONFIG_DOS_PARTITION 1 ++ ++#undef CONFIG_BOOTARGS ++#undef CONFIG_BOOTCOMMAND ++ ++#define CONFIG_BOOTARGS \ ++ "root=/dev/mmcblk0p1 rootwait=1" ++ ++#define CONFIG_BOOTCOMMAND \ ++ "mmc rescan 0; fsload; bootm" ++ ++#define CONFIG_CMD_EXT2 ++#define CONFIG_CMD_FAT ++#define CONFIG_CMD_MMC ++ ++#define CONFIG_MMC 1 ++#ifdef CONFIG_ICNOVA_ARM9 ++#define CONFIG_GENERIC_MMC 1 ++#define CONFIG_GENERIC_ATMEL_MCI 1 ++/*change this for your cpu */ ++#define MMCI_BASE 0xFFF80000 ++#else ++#define CONFIG_ATMEL_MCI 1 ++#endif +diff -Naur u-boot-2009.11/include/configs/icnova/mmcupdate.h u-boot-2009.11.new/include/configs/icnova/mmcupdate.h +--- u-boot-2009.11/include/configs/icnova/mmcupdate.h 1970-01-01 01:00:00.000000000 +0100 ++++ u-boot-2009.11.new/include/configs/icnova/mmcupdate.h 2010-10-08 12:09:30.000000000 +0200 +@@ -0,0 +1,30 @@ ++#ifdef CONFIG_ICNOVA_ARM9 ++#define MMCUPDATE_UADDRESS "0x70400000" ++#define MMCUPDATE_IADDRESS "0x71000000" ++#define MMCUPDATE_BOOTVAR "$bootargs" ++#else ++#define MMCUPDATE_UADDRESS "0x10400000" ++#define MMCUPDATE_IADDRESS "0x11000000" ++#define MMCUPDATE_BOOTVAR "$(bootargs)" ++#endif ++ ++//#define MMCUPDATE_BOOTARGS CONFIG_BOOTARGS ++//#define MMCUPDATE_BOOTCOMMAND CONFIG_BOOTCOMMAND ++#define MMCUPDATE_BOOTARGS "rootfstype=ubifs root=ubi0:root ubi.mtd=2" ++#define MMCUPDATE_BOOTCOMMAND "mtdparts default; nand read "MMCUPDATE_UADDRESS" nand0,0; bootm" ++ ++#undef CONFIG_BOOTARGS ++#undef CONFIG_BOOTCOMMAND ++ ++#ifdef MTDPARTS_DEFAULT ++#define CONFIG_BOOTARGS MTDPARTS_DEFAULT ++#else ++#define CONFIG_BOOTARGS "" ++#endif ++#define CONFIG_BOOTCOMMAND \ ++ "mtdparts default; mmc rescan 0; " \ ++ "fatload mmc 0 "MMCUPDATE_IADDRESS" ramImage; "\ ++ "fatload mmc 0 "MMCUPDATE_UADDRESS" uImage; " \ ++ "bootm "MMCUPDATE_UADDRESS " " MMCUPDATE_IADDRESS"; "\ ++ "setenv bootargs "MMCUPDATE_BOOTVAR" "MMCUPDATE_BOOTARGS"; "\ ++ MMCUPDATE_BOOTCOMMAND +diff -Naur u-boot-2009.11/include/configs/icnova/nand_arm9.h u-boot-2009.11.new/include/configs/icnova/nand_arm9.h +--- u-boot-2009.11/include/configs/icnova/nand_arm9.h 1970-01-01 01:00:00.000000000 +0100 ++++ u-boot-2009.11.new/include/configs/icnova/nand_arm9.h 2010-10-08 12:09:30.000000000 +0200 +@@ -0,0 +1,16 @@ ++#include <configs/icnova/nand_base.h> ++#define CONFIG_BOOTCOMMAND \ ++ "mtdparts default; nand read 0x71000000 nand0,0; bootm" ++ ++#define CONFIG_SYS_NAND_BASE 0x40000000 ++ ++#ifndef __ASSEMBLY__ ++#include <asm/arch/gpio.h> ++ ++#define CFG_NAND_ALE 21 ++#define CFG_NAND_CLE 22 ++ ++#define CFG_NAND_CE AT91_PIN_PC8 ++#define CFG_NAND_RDY AT91_PIN_PC11 ++ ++#endif +diff -Naur u-boot-2009.11/include/configs/icnova/nand_base.h u-boot-2009.11.new/include/configs/icnova/nand_base.h +--- u-boot-2009.11/include/configs/icnova/nand_base.h 1970-01-01 01:00:00.000000000 +0100 ++++ u-boot-2009.11.new/include/configs/icnova/nand_base.h 2010-10-08 12:09:30.000000000 +0200 +@@ -0,0 +1,32 @@ ++ ++#ifndef NULL ++#define NULL ((void *) 0) ++#endif ++ ++#define CONFIG_CMD_NAND ++#define CONFIG_CMD_MTDPARTS ++#define CONFIG_MTD_DEVICE ++#define CONFIG_MTD_PARTITIONS ++#define CONFIG_MTD_NAND_ECC_JFFS2 ++//#define CONFIG_CMD_UBIFS ++#define CONFIG_JFFS2_CMDLINE ++#define CONFIG_JFFS2_NAND ++#define CONFIG_SYS_MAX_NAND_DEVICE 1 ++#define CONFIG_SYS_NAND_MAX_CHIPS 1 ++#define NAND_MAX_FLOORS 1 ++#define NAND_ChipID_UNKNOWN 0x00 ++#define SECTORSIZE 2048 ++#define ADDR_COLUMN 1 ++#define ADDR_PAGE 2 ++#define ADDR_COLUMN_PAGE 3 ++//#define NAND_PAGE_SIZE 2048 ++ ++ ++#define MTDIDS_DEFAULT "nand0=nand.0" ++#define MTDPARTS_DEFAULT "mtdparts=nand.0:2M(kernel),16M(root),-(Data)" ++ ++ ++#undef CONFIG_BOOTARGS ++#undef CONFIG_BOOTCOMMAND ++ ++#define CONFIG_BOOTARGS "root=1F01 rootfstype=jffs2" +diff -Naur u-boot-2009.11/include/configs/icnova/nand.h u-boot-2009.11.new/include/configs/icnova/nand.h +--- u-boot-2009.11/include/configs/icnova/nand.h 1970-01-01 01:00:00.000000000 +0100 ++++ u-boot-2009.11.new/include/configs/icnova/nand.h 2010-10-08 12:09:30.000000000 +0200 +@@ -0,0 +1,16 @@ ++#include <configs/icnova/nand_base.h> ++#define CONFIG_BOOTCOMMAND \ ++ "mtdparts default; nand read $(fileaddr) nand0,0; bootm" ++ ++#define CONFIG_SYS_NAND_BASE 0x0C000000 ++ ++#ifndef __ASSEMBLY__ ++#include <asm/arch/gpio.h> ++ ++#define CFG_NAND_ALE 21 ++#define CFG_NAND_CLE 22 ++ ++#define CFG_NAND_CE GPIO_PIN_PE19 ++#define CFG_NAND_RDY GPIO_PIN_PE23 ++ ++#endif +diff -Naur u-boot-2009.11/include/configs/icnova/net.h u-boot-2009.11.new/include/configs/icnova/net.h +--- u-boot-2009.11/include/configs/icnova/net.h 1970-01-01 01:00:00.000000000 +0100 ++++ u-boot-2009.11.new/include/configs/icnova/net.h 2010-10-08 12:09:30.000000000 +0200 +@@ -0,0 +1,22 @@ ++ ++/* ++ * After booting the board for the first time, new ethernet addresses ++ * should be generated and assigned to the environment variables ++ * "ethaddr" and "eth1addr". This is normally done during production. ++ */ ++#define CONFIG_OVERWRITE_ETHADDR_ONCE 1 ++#define CONFIG_NET_MULTI 1 ++#define CONFIG_MACB 1 ++#ifndef CONFIG_ICNOVA_ARM9 ++#define AT32AP700x_CHIP_HAS_MACB 1 ++#endif ++ ++/* ++ * BOOTP options ++ */ ++#define CONFIG_BOOTP_SUBNETMASK ++#define CONFIG_BOOTP_GATEWAY ++ ++#define CONFIG_CMD_NET ++#define CONFIG_CMD_NFS ++#define CONFIG_CMD_DHCP +diff -Naur u-boot-2009.11/include/configs/icnova/usart0.h u-boot-2009.11.new/include/configs/icnova/usart0.h +--- u-boot-2009.11/include/configs/icnova/usart0.h 1970-01-01 01:00:00.000000000 +0100 ++++ u-boot-2009.11.new/include/configs/icnova/usart0.h 2010-10-08 12:09:30.000000000 +0200 +@@ -0,0 +1,9 @@ ++ ++#define CONFIG_ATMEL_USART y ++#define CONFIG_BAUDRATE 115200 ++#define CONFIG_SYS_BAUDRATE_TABLE { 115200, 38400, 19200, 9600, 2400 } ++ ++#define CONFIG_USART0 ++#undef CONFIG_USART1 ++#undef CONFIG_USART2 ++#undef CONFIG_USART3 +diff -Naur u-boot-2009.11/include/configs/icnova/usart1.h u-boot-2009.11.new/include/configs/icnova/usart1.h +--- u-boot-2009.11/include/configs/icnova/usart1.h 1970-01-01 01:00:00.000000000 +0100 ++++ u-boot-2009.11.new/include/configs/icnova/usart1.h 2010-10-08 12:09:30.000000000 +0200 +@@ -0,0 +1,9 @@ ++ ++#define CONFIG_ATMEL_USART y ++#define CONFIG_BAUDRATE 115200 ++#define CONFIG_SYS_BAUDRATE_TABLE { 115200, 38400, 19200, 9600, 2400 } ++ ++#undef CONFIG_USART0 ++#define CONFIG_USART1 ++#undef CONFIG_USART2 ++#undef CONFIG_USART3 +diff -Naur u-boot-2009.11/include/configs/icnova/usart2.h u-boot-2009.11.new/include/configs/icnova/usart2.h +--- u-boot-2009.11/include/configs/icnova/usart2.h 1970-01-01 01:00:00.000000000 +0100 ++++ u-boot-2009.11.new/include/configs/icnova/usart2.h 2010-10-08 12:11:21.000000000 +0200 +@@ -0,0 +1,9 @@ ++ ++#define CONFIG_ATMEL_USART 1 ++#define CONFIG_BAUDRATE 115200 ++#define CONFIG_SYS_BAUDRATE_TABLE { 115200, 38400, 19200, 9600, 2400 } ++ ++#undef CONFIG_USART0 ++#undef CONFIG_USART1 ++#define CONFIG_USART2 1 ++#undef CONFIG_USART3 +diff -Naur u-boot-2009.11/include/configs/icnova/usart3.h u-boot-2009.11.new/include/configs/icnova/usart3.h +--- u-boot-2009.11/include/configs/icnova/usart3.h 1970-01-01 01:00:00.000000000 +0100 ++++ u-boot-2009.11.new/include/configs/icnova/usart3.h 2010-10-08 12:09:30.000000000 +0200 +@@ -0,0 +1,9 @@ ++ ++#define CONFIG_ATMEL_USART 1 ++#define CONFIG_BAUDRATE 115200 ++#define CONFIG_SYS_BAUDRATE_TABLE { 115200, 38400, 19200, 9600, 2400 } ++ ++#undef CONFIG_USART0 ++#undef CONFIG_USART1 ++#undef CONFIG_USART2 ++#define CONFIG_USART3 1 +diff -Naur u-boot-2009.11/include/configs/icnova/usart4.h u-boot-2009.11.new/include/configs/icnova/usart4.h +--- u-boot-2009.11/include/configs/icnova/usart4.h 1970-01-01 01:00:00.000000000 +0100 ++++ u-boot-2009.11.new/include/configs/icnova/usart4.h 2010-10-08 12:11:21.000000000 +0200 +@@ -0,0 +1,9 @@ ++#define CONFIG_ATMEL_USART 1 ++#define CONFIG_BAUDRATE 115200 ++#define CONFIG_SYS_BAUDRATE_TABLE { 115200, 38400, 19200, 9600, 2400 } ++ ++#undef CONFIG_USART0 ++#undef CONFIG_USART1 ++#undef CONFIG_USART2 ++#undef CONFIG_USART3 ++#define CONFIG_USART4 1 +diff -Naur u-boot-2009.11/include/configs/icnova_arm9oem.h u-boot-2009.11.new/include/configs/icnova_arm9oem.h +--- u-boot-2009.11/include/configs/icnova_arm9oem.h 1970-01-01 01:00:00.000000000 +0100 ++++ u-boot-2009.11.new/include/configs/icnova_arm9oem.h 2010-10-08 12:11:21.000000000 +0200 +@@ -0,0 +1,17 @@ ++#ifndef __CONFIG_H ++#define __CONFIG_H ++ ++#define CONFIG_ICNOVA_ARM9 ++#include <configs/icnova/base.h> ++#include <configs/icnova/arm400MHz.h> ++#include <configs/icnova/mmc.h> ++#include <configs/icnova/flash2x8.h> ++#include <configs/icnova/nand_arm9.h> ++#include <configs/icnova/net.h> ++#define CONFIG_MACB_SEARCH_PHY ++#include <configs/icnova/usart3.h> // DBGU ++#include <configs/icnova/mmcupdate.h> ++//#include <configs/icnova/lcd320_240.h> ++//#include <configs/icnova/usb.h> ++ ++#endif +diff -Naur u-boot-2009.11/include/configs/icnova_arm9oem.h.orig u-boot-2009.11.new/include/configs/icnova_arm9oem.h.orig +--- u-boot-2009.11/include/configs/icnova_arm9oem.h.orig 1970-01-01 01:00:00.000000000 +0100 ++++ u-boot-2009.11.new/include/configs/icnova_arm9oem.h.orig 2010-10-08 12:09:30.000000000 +0200 +@@ -0,0 +1,17 @@ ++#ifndef __CONFIG_H ++#define __CONFIG_H ++ ++#define CONFIG_ICNOVA_ARM9 ++#include <configs/icnova/base.h> ++#include <configs/icnova/arm400MHz.h> ++#include <configs/icnova/mmc.h> ++#include <configs/icnova/flash2x8.h> ++#include <configs/icnova/nand_arm9.h> ++#include <configs/icnova/net.h> ++#define CONFIG_MACB_SEARCH_PHY ++#include <configs/icnova/usart3.h> // DBGU ++#include <configs/icnova/mmcupdate.h> ++//#include <configs/icnova/lcd320_240.h> ++//#include <configs/icnova/usb.h> ++ ++#endif +diff -Naur u-boot-2009.11/include/configs/icnova_arm9oem_u4.h u-boot-2009.11.new/include/configs/icnova_arm9oem_u4.h +--- u-boot-2009.11/include/configs/icnova_arm9oem_u4.h 1970-01-01 01:00:00.000000000 +0100 ++++ u-boot-2009.11.new/include/configs/icnova_arm9oem_u4.h 2010-10-08 12:13:16.000000000 +0200 +@@ -0,0 +1,17 @@ ++#ifndef __CONFIG_H ++#define __CONFIG_H ++ ++#define CONFIG_ICNOVA_ARM9 ++#include <configs/icnova/base.h> ++#include <configs/icnova/arm400MHz.h> ++#include <configs/icnova/mmc.h> ++#include <configs/icnova/flash2x8.h> ++#include <configs/icnova/nand_arm9.h> ++#include <configs/icnova/net.h> ++#define CONFIG_MACB_SEARCH_PHY ++#include <configs/icnova/usart4.h> ++#include <configs/icnova/mmcupdate.h> ++//#include <configs/icnova/lcd320_240.h> ++//#include <configs/icnova/usb.h> ++ ++#endif +diff -Naur u-boot-2009.11/include/configs/icnova_base.h u-boot-2009.11.new/include/configs/icnova_base.h +--- u-boot-2009.11/include/configs/icnova_base.h 1970-01-01 01:00:00.000000000 +0100 ++++ u-boot-2009.11.new/include/configs/icnova_base.h 2010-10-08 12:09:30.000000000 +0200 +@@ -0,0 +1,10 @@ ++#ifndef __CONFIG_H ++#define __CONFIG_H ++ ++#include <configs/icnova/base.h> ++#include <configs/icnova/cpu140MHz.h> ++#include <configs/icnova/flash.h> ++#include <configs/icnova/net.h> ++#include <configs/icnova/usart1.h> ++ ++#endif +diff -Naur u-boot-2009.11/include/configs/icnova_oem.h u-boot-2009.11.new/include/configs/icnova_oem.h +--- u-boot-2009.11/include/configs/icnova_oem.h 1970-01-01 01:00:00.000000000 +0100 ++++ u-boot-2009.11.new/include/configs/icnova_oem.h 2010-10-08 12:09:30.000000000 +0200 +@@ -0,0 +1,11 @@ ++#ifndef __CONFIG_H ++#define __CONFIG_H ++ ++#include <configs/icnova/base.h> ++#include <configs/icnova/cpu140MHz.h> ++#include <configs/icnova/mmc.h> ++#include <configs/icnova/flash.h> ++#include <configs/icnova/net.h> ++#include <configs/icnova/usart0.h> ++ ++#endif +diff -Naur u-boot-2009.11/include/configs/icnova_oemplus.h u-boot-2009.11.new/include/configs/icnova_oemplus.h +--- u-boot-2009.11/include/configs/icnova_oemplus.h 1970-01-01 01:00:00.000000000 +0100 ++++ u-boot-2009.11.new/include/configs/icnova_oemplus.h 2010-10-08 12:09:30.000000000 +0200 +@@ -0,0 +1,12 @@ ++#ifndef __CONFIG_H ++#define __CONFIG_H ++ ++#include <configs/icnova/base.h> ++#include <configs/icnova/cpu140MHz.h> ++#include <configs/icnova/mmc.h> ++#include <configs/icnova/flash2x8.h> ++#include <configs/icnova/nand.h> ++#include <configs/icnova/net.h> ++#include <configs/icnova/usart0.h> ++ ++#endif +diff -Naur u-boot-2009.11/include/configs/icnova_old.h u-boot-2009.11.new/include/configs/icnova_old.h +--- u-boot-2009.11/include/configs/icnova_old.h 1970-01-01 01:00:00.000000000 +0100 ++++ u-boot-2009.11.new/include/configs/icnova_old.h 2010-10-08 12:09:30.000000000 +0200 +@@ -0,0 +1,11 @@ ++#ifndef __CONFIG_H ++#define __CONFIG_H ++ ++#include <configs/icnova/base.h> ++#include <configs/icnova/cpu140MHz.h> ++#include <configs/icnova/flash.h> ++#include <configs/icnova/mmc.h> ++#include <configs/icnova/net.h> ++#include <configs/icnova/usart0.h> ++ ++#endif +diff -Naur u-boot-2009.11/include/mmc.h u-boot-2009.11.new/include/mmc.h +--- u-boot-2009.11/include/mmc.h 2009-12-15 23:20:54.000000000 +0100 ++++ u-boot-2009.11.new/include/mmc.h 2010-10-08 12:09:30.000000000 +0200 +@@ -272,6 +272,7 @@ + int mmc_read(struct mmc *mmc, u64 src, uchar *dst, int size); + struct mmc *find_mmc_device(int dev_num); + void print_mmc_devices(char separator); ++int board_mmc_getcd(u8 *cd, struct mmc *mmc); + + #ifndef CONFIG_GENERIC_MMC + int mmc_legacy_init(int verbose); +diff -Naur u-boot-2009.11/lib_arm/board.c u-boot-2009.11.new/lib_arm/board.c +--- u-boot-2009.11/lib_arm/board.c 2009-12-15 23:20:54.000000000 +0100 ++++ u-boot-2009.11.new/lib_arm/board.c 2010-10-08 12:09:30.000000000 +0200 +@@ -356,8 +356,10 @@ + serial_initialize(); + #endif + ++#ifdef CONFIG_CMD_NET + /* IP Address */ + gd->bd->bi_ip_addr = getenv_IPaddr ("ipaddr"); ++#endif + + stdio_init (); /* get the devices list going. */ + +diff -Naur u-boot-2009.11/Makefile u-boot-2009.11.new/Makefile +--- u-boot-2009.11/Makefile 2009-12-15 23:20:54.000000000 +0100 ++++ u-boot-2009.11.new/Makefile 2010-10-08 12:15:00.000000000 +0200 +@@ -3586,6 +3586,15 @@ + mimc200_config : unconfig + @$(MKCONFIG) $(@:_config=) avr32 at32ap mimc200 mimc at32ap700x + ++ICNOVA_BOARDS = oem oemplus base old ++$(ICNOVA_BOARDS:%=icnova_%_config): unconfig ++ @$(MKCONFIG) $(@:_config=) avr32 at32ap icnova in-circuit at32ap700x ++ ++ICNOVA_ARM_BOARDS = arm9oem arm9oem_u4 ++$(ICNOVA_ARM_BOARDS:%=icnova_%_config): unconfig ++ @$(MKCONFIG) $(@:_config=) arm arm926ejs icnova in-circuit at91 ++ ++ + #======================================================================== + # SH3 (SuperH) + #======================================================================== +diff -Naur u-boot-2009.11/Makefile.orig u-boot-2009.11.new/Makefile.orig +--- u-boot-2009.11/Makefile.orig 1970-01-01 01:00:00.000000000 +0100 ++++ u-boot-2009.11.new/Makefile.orig 2009-12-15 23:20:54.000000000 +0100 +@@ -0,0 +1,3775 @@ ++# ++# (C) Copyright 2000-2009 ++# 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 Foundatio; 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 ++# ++ ++VERSION = 2009 ++PATCHLEVEL = 11 ++SUBLEVEL = ++EXTRAVERSION = ++ifneq "$(SUBLEVEL)" "" ++U_BOOT_VERSION = $(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION) ++else ++U_BOOT_VERSION = $(VERSION).$(PATCHLEVEL)$(EXTRAVERSION) ++endif ++TIMESTAMP_FILE = $(obj)include/timestamp_autogenerated.h ++VERSION_FILE = $(obj)include/version_autogenerated.h ++ ++HOSTARCH := $(shell uname -m | \ ++ sed -e s/i.86/i386/ \ ++ -e s/sun4u/sparc64/ \ ++ -e s/arm.*/arm/ \ ++ -e s/sa110/arm/ \ ++ -e s/powerpc/ppc/ \ ++ -e s/ppc64/ppc/ \ ++ -e s/macppc/ppc/) ++ ++HOSTOS := $(shell uname -s | tr '[:upper:]' '[:lower:]' | \ ++ sed -e 's/\(cygwin\).*/cygwin/') ++ ++# Set shell to bash if possible, otherwise fall back to sh ++SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \ ++ else if [ -x /bin/bash ]; then echo /bin/bash; \ ++ else echo sh; fi; fi) ++ ++export HOSTARCH HOSTOS SHELL ++ ++# Deal with colliding definitions from tcsh etc. ++VENDOR= ++ ++######################################################################### ++# Allow for silent builds ++ifeq (,$(findstring s,$(MAKEFLAGS))) ++XECHO = echo ++else ++XECHO = : ++endif ++ ++######################################################################### ++# ++# U-boot build supports producing a object files to the separate external ++# directory. Two use cases are supported: ++# ++# 1) Add O= to the make command line ++# 'make O=/tmp/build all' ++# ++# 2) Set environement variable BUILD_DIR to point to the desired location ++# 'export BUILD_DIR=/tmp/build' ++# 'make' ++# ++# The second approach can also be used with a MAKEALL script ++# 'export BUILD_DIR=/tmp/build' ++# './MAKEALL' ++# ++# Command line 'O=' setting overrides BUILD_DIR environent variable. ++# ++# When none of the above methods is used the local build is performed and ++# the object files are placed in the source directory. ++# ++ ++ifdef O ++ifeq ("$(origin O)", "command line") ++BUILD_DIR := $(O) ++endif ++endif ++ ++ifneq ($(BUILD_DIR),) ++saved-output := $(BUILD_DIR) ++ ++# Attempt to create a output directory. ++$(shell [ -d ${BUILD_DIR} ] || mkdir -p ${BUILD_DIR}) ++ ++# Verify if it was successful. ++BUILD_DIR := $(shell cd $(BUILD_DIR) && /bin/pwd) ++$(if $(BUILD_DIR),,$(error output directory "$(saved-output)" does not exist)) ++endif # ifneq ($(BUILD_DIR),) ++ ++OBJTREE := $(if $(BUILD_DIR),$(BUILD_DIR),$(CURDIR)) ++SRCTREE := $(CURDIR) ++TOPDIR := $(SRCTREE) ++LNDIR := $(OBJTREE) ++export TOPDIR SRCTREE OBJTREE ++ ++MKCONFIG := $(SRCTREE)/mkconfig ++export MKCONFIG ++ ++ifneq ($(OBJTREE),$(SRCTREE)) ++REMOTE_BUILD := 1 ++export REMOTE_BUILD ++endif ++ ++# $(obj) and (src) are defined in config.mk but here in main Makefile ++# we also need them before config.mk is included which is the case for ++# some targets like unconfig, clean, clobber, distclean, etc. ++ifneq ($(OBJTREE),$(SRCTREE)) ++obj := $(OBJTREE)/ ++src := $(SRCTREE)/ ++else ++obj := ++src := ++endif ++export obj src ++ ++# Make sure CDPATH settings don't interfere ++unexport CDPATH ++ ++######################################################################### ++ ++ifeq ($(ARCH),powerpc) ++ARCH = ppc ++endif ++ ++# The "tools" are needed early, so put this first ++# Don't include stuff already done in $(LIBS) ++SUBDIRS = tools \ ++ examples/standalone \ ++ examples/api ++ ++.PHONY : $(SUBDIRS) ++ ++ifeq ($(obj)include/config.mk,$(wildcard $(obj)include/config.mk)) ++ ++# Include autoconf.mk before config.mk so that the config options are available ++# to all top level build files. We need the dummy all: target to prevent the ++# dependency target in autoconf.mk.dep from being the default. ++all: ++sinclude $(obj)include/autoconf.mk.dep ++sinclude $(obj)include/autoconf.mk ++ ++# load ARCH, BOARD, and CPU configuration ++include $(obj)include/config.mk ++export ARCH CPU BOARD VENDOR SOC ++ ++# set default to nothing for native builds ++ifeq ($(HOSTARCH),$(ARCH)) ++CROSS_COMPILE ?= ++endif ++ ++# load other configuration ++include $(TOPDIR)/config.mk ++ ++######################################################################### ++# U-Boot objects....order is important (i.e. start must be first) ++ ++OBJS = cpu/$(CPU)/start.o ++ifeq ($(CPU),i386) ++OBJS += cpu/$(CPU)/start16.o ++OBJS += cpu/$(CPU)/resetvec.o ++endif ++ifeq ($(CPU),ppc4xx) ++OBJS += cpu/$(CPU)/resetvec.o ++endif ++ifeq ($(CPU),mpc85xx) ++OBJS += cpu/$(CPU)/resetvec.o ++endif ++ ++OBJS := $(addprefix $(obj),$(OBJS)) ++ ++LIBS = lib_generic/libgeneric.a ++LIBS += lib_generic/lzma/liblzma.a ++LIBS += lib_generic/lzo/liblzo.a ++LIBS += $(shell if [ -f board/$(VENDOR)/common/Makefile ]; then echo \ ++ "board/$(VENDOR)/common/lib$(VENDOR).a"; fi) ++LIBS += cpu/$(CPU)/lib$(CPU).a ++ifdef SOC ++LIBS += cpu/$(CPU)/$(SOC)/lib$(SOC).a ++endif ++ifeq ($(CPU),ixp) ++LIBS += cpu/ixp/npe/libnpe.a ++endif ++LIBS += lib_$(ARCH)/lib$(ARCH).a ++LIBS += fs/cramfs/libcramfs.a fs/fat/libfat.a fs/fdos/libfdos.a fs/jffs2/libjffs2.a \ ++ fs/reiserfs/libreiserfs.a fs/ext2/libext2fs.a fs/yaffs2/libyaffs2.a \ ++ fs/ubifs/libubifs.a ++LIBS += net/libnet.a ++LIBS += disk/libdisk.a ++LIBS += drivers/bios_emulator/libatibiosemu.a ++LIBS += drivers/block/libblock.a ++LIBS += drivers/dma/libdma.a ++LIBS += drivers/fpga/libfpga.a ++LIBS += drivers/gpio/libgpio.a ++LIBS += drivers/hwmon/libhwmon.a ++LIBS += drivers/i2c/libi2c.a ++LIBS += drivers/input/libinput.a ++LIBS += drivers/misc/libmisc.a ++LIBS += drivers/mmc/libmmc.a ++LIBS += drivers/mtd/libmtd.a ++LIBS += drivers/mtd/nand/libnand.a ++LIBS += drivers/mtd/onenand/libonenand.a ++LIBS += drivers/mtd/ubi/libubi.a ++LIBS += drivers/mtd/spi/libspi_flash.a ++LIBS += drivers/net/libnet.a ++LIBS += drivers/net/phy/libphy.a ++LIBS += drivers/net/sk98lin/libsk98lin.a ++LIBS += drivers/pci/libpci.a ++LIBS += drivers/pcmcia/libpcmcia.a ++LIBS += drivers/power/libpower.a ++LIBS += drivers/spi/libspi.a ++ifeq ($(CPU),mpc83xx) ++LIBS += drivers/qe/qe.a ++endif ++ifeq ($(CPU),mpc85xx) ++LIBS += drivers/qe/qe.a ++LIBS += cpu/mpc8xxx/ddr/libddr.a ++LIBS += cpu/mpc8xxx/lib8xxx.a ++TAG_SUBDIRS += cpu/mpc8xxx ++endif ++ifeq ($(CPU),mpc86xx) ++LIBS += cpu/mpc8xxx/ddr/libddr.a ++LIBS += cpu/mpc8xxx/lib8xxx.a ++TAG_SUBDIRS += cpu/mpc8xxx ++endif ++LIBS += drivers/rtc/librtc.a ++LIBS += drivers/serial/libserial.a ++LIBS += drivers/twserial/libtws.a ++LIBS += drivers/usb/gadget/libusb_gadget.a ++LIBS += drivers/usb/host/libusb_host.a ++LIBS += drivers/usb/musb/libusb_musb.a ++LIBS += drivers/video/libvideo.a ++LIBS += drivers/watchdog/libwatchdog.a ++LIBS += common/libcommon.a ++LIBS += libfdt/libfdt.a ++LIBS += api/libapi.a ++LIBS += post/libpost.a ++ ++LIBS := $(addprefix $(obj),$(LIBS)) ++.PHONY : $(LIBS) $(TIMESTAMP_FILE) $(VERSION_FILE) ++ ++LIBBOARD = board/$(BOARDDIR)/lib$(BOARD).a ++LIBBOARD := $(addprefix $(obj),$(LIBBOARD)) ++ ++# Add GCC lib ++ifdef USE_PRIVATE_LIBGCC ++ifeq ("$(USE_PRIVATE_LIBGCC)", "yes") ++PLATFORM_LIBGCC = -L $(OBJTREE)/lib_$(ARCH) -lgcc ++else ++PLATFORM_LIBGCC = -L $(USE_PRIVATE_LIBGCC) -lgcc ++endif ++else ++PLATFORM_LIBGCC = -L $(shell dirname `$(CC) $(CFLAGS) -print-libgcc-file-name`) -lgcc ++endif ++PLATFORM_LIBS += $(PLATFORM_LIBGCC) ++export PLATFORM_LIBS ++ ++# Special flags for CPP when processing the linker script. ++# Pass the version down so we can handle backwards compatibility ++# on the fly. ++LDPPFLAGS += \ ++ -include $(TOPDIR)/include/u-boot/u-boot.lds.h \ ++ $(shell $(LD) --version | \ ++ sed -ne 's/GNU ld version \([0-9][0-9]*\)\.\([0-9][0-9]*\).*/-DLD_MAJOR=\1 -DLD_MINOR=\2/p') ++ ++ifeq ($(CONFIG_NAND_U_BOOT),y) ++NAND_SPL = nand_spl ++U_BOOT_NAND = $(obj)u-boot-nand.bin ++endif ++ ++ifeq ($(CONFIG_ONENAND_U_BOOT),y) ++ONENAND_IPL = onenand_ipl ++U_BOOT_ONENAND = $(obj)u-boot-onenand.bin ++ONENAND_BIN ?= $(obj)onenand_ipl/onenand-ipl-2k.bin ++endif ++ ++__OBJS := $(subst $(obj),,$(OBJS)) ++__LIBS := $(subst $(obj),,$(LIBS)) $(subst $(obj),,$(LIBBOARD)) ++ ++######################################################################### ++######################################################################### ++ ++# Always append ALL so that arch config.mk's can add custom ones ++ALL += $(obj)u-boot.srec $(obj)u-boot.bin $(obj)System.map $(U_BOOT_NAND) $(U_BOOT_ONENAND) ++ ++all: $(ALL) ++ ++$(obj)u-boot.hex: $(obj)u-boot ++ $(OBJCOPY) ${OBJCFLAGS} -O ihex $< $@ ++ ++$(obj)u-boot.srec: $(obj)u-boot ++ $(OBJCOPY) -O srec $< $@ ++ ++$(obj)u-boot.bin: $(obj)u-boot ++ $(OBJCOPY) ${OBJCFLAGS} -O binary $< $@ ++ ++$(obj)u-boot.ldr: $(obj)u-boot ++ $(obj)tools/envcrc --binary > $(obj)env-ldr.o ++ $(LDR) -T $(CONFIG_BFIN_CPU) -c $@ $< $(LDR_FLAGS) ++ ++$(obj)u-boot.ldr.hex: $(obj)u-boot.ldr ++ $(OBJCOPY) ${OBJCFLAGS} -O ihex $< $@ -I binary ++ ++$(obj)u-boot.ldr.srec: $(obj)u-boot.ldr ++ $(OBJCOPY) ${OBJCFLAGS} -O srec $< $@ -I binary ++ ++$(obj)u-boot.img: $(obj)u-boot.bin ++ ./tools/mkimage -A $(ARCH) -T firmware -C none \ ++ -a $(TEXT_BASE) -e 0 \ ++ -n $(shell sed -n -e 's/.*U_BOOT_VERSION//p' $(VERSION_FILE) | \ ++ sed -e 's/"[ ]*$$/ for $(BOARD) board"/') \ ++ -d $< $@ ++ ++$(obj)u-boot.kwb: $(obj)u-boot.bin ++ $(obj)tools/mkimage -n $(KWD_CONFIG) -T kwbimage \ ++ -a $(TEXT_BASE) -e $(TEXT_BASE) -d $< $@ ++ ++$(obj)u-boot.sha1: $(obj)u-boot.bin ++ $(obj)tools/ubsha1 $(obj)u-boot.bin ++ ++$(obj)u-boot.dis: $(obj)u-boot ++ $(OBJDUMP) -d $< > $@ ++ ++GEN_UBOOT = \ ++ UNDEF_SYM=`$(OBJDUMP) -x $(LIBBOARD) $(LIBS) | \ ++ sed -n -e 's/.*\($(SYM_PREFIX)__u_boot_cmd_.*\)/-u\1/p'|sort|uniq`;\ ++ cd $(LNDIR) && $(LD) $(LDFLAGS) $$UNDEF_SYM $(__OBJS) \ ++ --start-group $(__LIBS) --end-group $(PLATFORM_LIBS) \ ++ -Map u-boot.map -o u-boot ++$(obj)u-boot: depend $(SUBDIRS) $(OBJS) $(LIBBOARD) $(LIBS) $(LDSCRIPT) $(obj)u-boot.lds ++ $(GEN_UBOOT) ++ifeq ($(CONFIG_KALLSYMS),y) ++ smap=`$(call SYSTEM_MAP,u-boot) | \ ++ awk '$$2 ~ /[tTwW]/ {printf $$1 $$3 "\\\\000"}'` ; \ ++ $(CC) $(CFLAGS) -DSYSTEM_MAP="\"$${smap}\"" \ ++ -c common/system_map.c -o $(obj)common/system_map.o ++ $(GEN_UBOOT) $(obj)common/system_map.o ++endif ++ ++$(OBJS): depend ++ $(MAKE) -C cpu/$(CPU) $(if $(REMOTE_BUILD),$@,$(notdir $@)) ++ ++$(LIBS): depend $(SUBDIRS) ++ $(MAKE) -C $(dir $(subst $(obj),,$@)) ++ ++$(LIBBOARD): depend $(LIBS) ++ $(MAKE) -C $(dir $(subst $(obj),,$@)) ++ ++$(SUBDIRS): depend ++ $(MAKE) -C $@ all ++ ++$(LDSCRIPT): depend ++ $(MAKE) -C $(dir $@) $(notdir $@) ++ ++$(obj)u-boot.lds: $(LDSCRIPT) ++ $(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$^ >$@ ++ ++$(NAND_SPL): $(TIMESTAMP_FILE) $(VERSION_FILE) $(obj)include/autoconf.mk ++ $(MAKE) -C nand_spl/board/$(BOARDDIR) all ++ ++$(U_BOOT_NAND): $(NAND_SPL) $(obj)u-boot.bin ++ cat $(obj)nand_spl/u-boot-spl-16k.bin $(obj)u-boot.bin > $(obj)u-boot-nand.bin ++ ++$(ONENAND_IPL): $(TIMESTAMP_FILE) $(VERSION_FILE) $(obj)include/autoconf.mk ++ $(MAKE) -C onenand_ipl/board/$(BOARDDIR) all ++ ++$(U_BOOT_ONENAND): $(ONENAND_IPL) $(obj)u-boot.bin ++ cat $(ONENAND_BIN) $(obj)u-boot.bin > $(obj)u-boot-onenand.bin ++ ++$(VERSION_FILE): ++ @( printf '#define U_BOOT_VERSION "U-Boot %s%s"\n' "$(U_BOOT_VERSION)" \ ++ '$(shell $(TOPDIR)/tools/setlocalversion $(TOPDIR))' ) > $@.tmp ++ @cmp -s $@ $@.tmp && rm -f $@.tmp || mv -f $@.tmp $@ ++ ++$(TIMESTAMP_FILE): ++ @date +'#define U_BOOT_DATE "%b %d %C%y"' > $@ ++ @date +'#define U_BOOT_TIME "%T"' >> $@ ++ ++gdbtools: ++ $(MAKE) -C tools/gdb all || exit 1 ++ ++updater: ++ $(MAKE) -C tools/updater all || exit 1 ++ ++env: ++ $(MAKE) -C tools/env all MTD_VERSION=${MTD_VERSION} || exit 1 ++ ++depend dep: $(TIMESTAMP_FILE) $(VERSION_FILE) $(obj)include/autoconf.mk ++ for dir in $(SUBDIRS) ; do $(MAKE) -C $$dir _depend ; done ++ ++TAG_SUBDIRS += include ++TAG_SUBDIRS += lib_generic board/$(BOARDDIR) ++TAG_SUBDIRS += cpu/$(CPU) ++TAG_SUBDIRS += lib_$(ARCH) ++TAG_SUBDIRS += fs/cramfs ++TAG_SUBDIRS += fs/fat ++TAG_SUBDIRS += fs/fdos ++TAG_SUBDIRS += fs/jffs2 ++TAG_SUBDIRS += fs/yaffs2 ++TAG_SUBDIRS += net ++TAG_SUBDIRS += disk ++TAG_SUBDIRS += common ++TAG_SUBDIRS += drivers/bios_emulator ++TAG_SUBDIRS += drivers/block ++TAG_SUBDIRS += drivers/gpio ++TAG_SUBDIRS += drivers/hwmon ++TAG_SUBDIRS += drivers/i2c ++TAG_SUBDIRS += drivers/input ++TAG_SUBDIRS += drivers/misc ++TAG_SUBDIRS += drivers/mmc ++TAG_SUBDIRS += drivers/mtd ++TAG_SUBDIRS += drivers/mtd/nand ++TAG_SUBDIRS += drivers/mtd/onenand ++TAG_SUBDIRS += drivers/mtd/spi ++TAG_SUBDIRS += drivers/net ++TAG_SUBDIRS += drivers/net/sk98lin ++TAG_SUBDIRS += drivers/pci ++TAG_SUBDIRS += drivers/pcmcia ++TAG_SUBDIRS += drivers/qe ++TAG_SUBDIRS += drivers/rtc ++TAG_SUBDIRS += drivers/serial ++TAG_SUBDIRS += drivers/spi ++TAG_SUBDIRS += drivers/usb ++TAG_SUBDIRS += drivers/video ++ ++tags ctags: ++ ctags -w -o $(obj)ctags `find $(SUBDIRS) $(TAG_SUBDIRS) \ ++ -name '*.[ch]' -print` ++ ++etags: ++ etags -a -o $(obj)etags `find $(SUBDIRS) $(TAG_SUBDIRS) \ ++ -name '*.[ch]' -print` ++cscope: ++ find $(SUBDIRS) $(TAG_SUBDIRS) -name '*.[ch]' -print \ ++ > cscope.files ++ cscope -b -q -k ++ ++SYSTEM_MAP = \ ++ $(NM) $1 | \ ++ grep -v '\(compiled\)\|\(\.o$$\)\|\( [aUw] \)\|\(\.\.ng$$\)\|\(LASH[RL]DI\)' | \ ++ LC_ALL=C sort ++$(obj)System.map: $(obj)u-boot ++ @$(call SYSTEM_MAP,$<) > $(obj)System.map ++ ++# ++# Auto-generate the autoconf.mk file (which is included by all makefiles) ++# ++# This target actually generates 2 files; autoconf.mk and autoconf.mk.dep. ++# the dep file is only include in this top level makefile to determine when ++# to regenerate the autoconf.mk file. ++$(obj)include/autoconf.mk.dep: $(obj)include/config.h include/common.h ++ @$(XECHO) Generating $@ ; \ ++ set -e ; \ ++ : Generate the dependancies ; \ ++ $(CC) -x c -DDO_DEPS_ONLY -M $(HOSTCFLAGS) $(CPPFLAGS) \ ++ -MQ $(obj)include/autoconf.mk include/common.h > $@ ++ ++$(obj)include/autoconf.mk: $(obj)include/config.h ++ @$(XECHO) Generating $@ ; \ ++ set -e ; \ ++ : Extract the config macros ; \ ++ $(CPP) $(CFLAGS) -DDO_DEPS_ONLY -dM include/common.h | \ ++ sed -n -f tools/scripts/define2mk.sed > $@.tmp && \ ++ mv $@.tmp $@ ++ ++######################################################################### ++else # !config.mk ++all $(obj)u-boot.hex $(obj)u-boot.srec $(obj)u-boot.bin \ ++$(obj)u-boot.img $(obj)u-boot.dis $(obj)u-boot \ ++$(SUBDIRS) $(TIMESTAMP_FILE) $(VERSION_FILE) gdbtools updater env depend \ ++dep tags ctags etags cscope $(obj)System.map: ++ @echo "System not configured - see README" >&2 ++ @ exit 1 ++endif # config.mk ++ ++.PHONY : CHANGELOG ++CHANGELOG: ++ git log --no-merges U-Boot-1_1_5.. | \ ++ unexpand -a | sed -e 's/\s\s*$$//' > $@ ++ ++include/license.h: tools/bin2header COPYING ++ cat COPYING | gzip -9 -c | ./tools/bin2header license_gzip > include/license.h ++######################################################################### ++ ++unconfig: ++ @rm -f $(obj)include/config.h $(obj)include/config.mk \ ++ $(obj)board/*/config.tmp $(obj)board/*/*/config.tmp \ ++ $(obj)include/autoconf.mk $(obj)include/autoconf.mk.dep ++ ++%: %_config ++ $(MAKE) ++ ++#======================================================================== ++# PowerPC ++#======================================================================== ++ ++######################################################################### ++## MPC5xx Systems ++######################################################################### ++ ++canmb_config: unconfig ++ @$(MKCONFIG) -a canmb ppc mpc5xxx canmb ++ ++cmi_mpc5xx_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc5xx cmi ++ ++PATI_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc5xx pati mpl ++ ++######################################################################### ++## MPC5xxx Systems ++######################################################################### ++ ++aev_config: unconfig ++ @$(MKCONFIG) -a aev ppc mpc5xxx tqm5200 tqc ++ ++BC3450_config: unconfig ++ @$(MKCONFIG) -a BC3450 ppc mpc5xxx bc3450 ++ ++cm5200_config: unconfig ++ @$(MKCONFIG) -a cm5200 ppc mpc5xxx cm5200 ++ ++cpci5200_config: unconfig ++ @$(MKCONFIG) -a cpci5200 ppc mpc5xxx cpci5200 esd ++ ++digsy_mtc_config \ ++digsy_mtc_LOWBOOT_config \ ++digsy_mtc_RAMBOOT_config: unconfig ++ @mkdir -p $(obj)include ++ @mkdir -p $(obj)board/digsy_mtc ++ @ >$(obj)include/config.h ++ @[ -z "$(findstring LOWBOOT_,$@)" ] || \ ++ { echo "TEXT_BASE = 0xFF000000" >$(obj)board/digsy_mtc/config.tmp ; \ ++ echo "... with LOWBOOT configuration" ; \ ++ } ++ @[ -z "$(findstring RAMBOOT_,$@)" ] || \ ++ { echo "TEXT_BASE = 0x00100000" >$(obj)board/digsy_mtc/config.tmp ; \ ++ echo "... with RAMBOOT configuration" ; \ ++ } ++ @$(MKCONFIG) -a digsy_mtc ppc mpc5xxx digsy_mtc ++ ++galaxy5200_LOWBOOT_config \ ++galaxy5200_config: unconfig ++ @mkdir -p $(obj)include ++ @echo "#define CONFIG_$(@:_config=) 1" >$(obj)include/config.h ++ @$(MKCONFIG) -a galaxy5200 ppc mpc5xxx galaxy5200 ++ ++hmi1001_config: unconfig ++ @$(MKCONFIG) hmi1001 ppc mpc5xxx hmi1001 ++ ++Lite5200_config \ ++Lite5200_LOWBOOT_config \ ++Lite5200_LOWBOOT08_config \ ++icecube_5200_config \ ++icecube_5200_LOWBOOT_config \ ++icecube_5200_LOWBOOT08_config \ ++icecube_5200_DDR_config \ ++icecube_5200_DDR_LOWBOOT_config \ ++icecube_5200_DDR_LOWBOOT08_config \ ++icecube_5100_config: unconfig ++ @mkdir -p $(obj)include ++ @mkdir -p $(obj)board/icecube ++ @[ -z "$(findstring LOWBOOT_,$@)" ] || \ ++ { if [ "$(findstring DDR,$@)" ] ; \ ++ then echo "TEXT_BASE = 0xFF800000" >$(obj)board/icecube/config.tmp ; \ ++ else echo "TEXT_BASE = 0xFF000000" >$(obj)board/icecube/config.tmp ; \ ++ fi ; \ ++ $(XECHO) "... with LOWBOOT configuration" ; \ ++ } ++ @[ -z "$(findstring LOWBOOT08,$@)" ] || \ ++ { echo "TEXT_BASE = 0xFF800000" >$(obj)board/icecube/config.tmp ; \ ++ echo "... with 8 MB flash only" ; \ ++ $(XECHO) "... with LOWBOOT configuration" ; \ ++ } ++ @[ -z "$(findstring DDR,$@)" ] || \ ++ { echo "#define CONFIG_MPC5200_DDR" >>$(obj)include/config.h ; \ ++ $(XECHO) "... DDR memory revision" ; \ ++ } ++ @[ -z "$(findstring 5200,$@)" ] || \ ++ { echo "#define CONFIG_MPC5200" >>$(obj)include/config.h ; \ ++ $(XECHO) "... with MPC5200 processor" ; \ ++ } ++ @[ -z "$(findstring 5100,$@)" ] || \ ++ { echo "#define CONFIG_MGT5100" >>$(obj)include/config.h ; \ ++ $(XECHO) "... with MGT5100 processor" ; \ ++ } ++ @$(MKCONFIG) -a IceCube ppc mpc5xxx icecube ++ ++jupiter_config: unconfig ++ @$(MKCONFIG) jupiter ppc mpc5xxx jupiter ++ ++inka4x0_config: unconfig ++ @$(MKCONFIG) inka4x0 ppc mpc5xxx inka4x0 ++ ++lite5200b_config \ ++lite5200b_PM_config \ ++lite5200b_LOWBOOT_config: unconfig ++ @mkdir -p $(obj)include ++ @mkdir -p $(obj)board/icecube ++ @ echo "#define CONFIG_MPC5200_DDR" >>$(obj)include/config.h ++ @ $(XECHO) "... DDR memory revision" ++ @ echo "#define CONFIG_MPC5200" >>$(obj)include/config.h ++ @ echo "#define CONFIG_LITE5200B" >>$(obj)include/config.h ++ @[ -z "$(findstring _PM_,$@)" ] || \ ++ { echo "#define CONFIG_LITE5200B_PM" >>$(obj)include/config.h ; \ ++ $(XECHO) "... with power management (low-power mode) support" ; \ ++ } ++ @[ -z "$(findstring LOWBOOT_,$@)" ] || \ ++ { echo "TEXT_BASE = 0xFF000000" >$(obj)board/icecube/config.tmp ; \ ++ $(XECHO) "... with LOWBOOT configuration" ; \ ++ } ++ @ $(XECHO) "... with MPC5200B processor" ++ @$(MKCONFIG) -a IceCube ppc mpc5xxx icecube ++ ++mcc200_config \ ++mcc200_SDRAM_config \ ++mcc200_highboot_config \ ++mcc200_COM12_config \ ++mcc200_COM12_SDRAM_config \ ++mcc200_COM12_highboot_config \ ++mcc200_COM12_highboot_SDRAM_config \ ++mcc200_highboot_SDRAM_config \ ++prs200_config \ ++prs200_DDR_config \ ++prs200_highboot_config \ ++prs200_highboot_DDR_config: unconfig ++ @mkdir -p $(obj)include ++ @mkdir -p $(obj)board/mcc200 ++ @[ -n "$(findstring highboot,$@)" ] || \ ++ { $(XECHO) "... with lowboot configuration" ; \ ++ } ++ @[ -z "$(findstring highboot,$@)" ] || \ ++ { echo "TEXT_BASE = 0xFFF00000" >$(obj)board/mcc200/config.tmp ; \ ++ $(XECHO) "... with highboot configuration" ; \ ++ } ++ @[ -n "$(findstring _SDRAM,$@)" ] || \ ++ { if [ -n "$(findstring mcc200,$@)" ]; \ ++ then \ ++ $(XECHO) "... with DDR" ; \ ++ else \ ++ if [ -n "$(findstring _DDR,$@)" ];\ ++ then \ ++ $(XECHO) "... with DDR" ; \ ++ else \ ++ echo "#define CONFIG_MCC200_SDRAM" >>$(obj)include/config.h ;\ ++ $(XECHO) "... with SDRAM" ; \ ++ fi; \ ++ fi; \ ++ } ++ @[ -z "$(findstring _SDRAM,$@)" ] || \ ++ { echo "#define CONFIG_MCC200_SDRAM" >>$(obj)include/config.h ; \ ++ $(XECHO) "... with SDRAM" ; \ ++ } ++ @[ -z "$(findstring COM12,$@)" ] || \ ++ { echo "#define CONFIG_CONSOLE_COM12" >>$(obj)include/config.h ; \ ++ $(XECHO) "... with console on COM12" ; \ ++ } ++ @[ -z "$(findstring prs200,$@)" ] || \ ++ { echo "#define CONFIG_PRS200" >>$(obj)include/config.h ;\ ++ } ++ @$(MKCONFIG) -n $@ -a mcc200 ppc mpc5xxx mcc200 ++ ++mecp5200_config: unconfig ++ @$(MKCONFIG) mecp5200 ppc mpc5xxx mecp5200 esd ++ ++motionpro_config: unconfig ++ @$(MKCONFIG) motionpro ppc mpc5xxx motionpro ++ ++mucmc52_config: unconfig ++ @$(MKCONFIG) mucmc52 ppc mpc5xxx mucmc52 ++ ++munices_config: unconfig ++ @$(MKCONFIG) munices ppc mpc5xxx munices ++ ++MVBC_P_config: unconfig ++ @mkdir -p $(obj)include ++ @mkdir -p $(obj)board/mvbc_p ++ @ >$(obj)include/config.h ++ @[ -z "$(findstring MVBC_P,$@)" ] || \ ++ { echo "#define CONFIG_MVBC_P" >>$(obj)include/config.h; } ++ @$(MKCONFIG) -n $@ -a MVBC_P ppc mpc5xxx mvbc_p matrix_vision ++ ++o2dnt_config: unconfig ++ @$(MKCONFIG) o2dnt ppc mpc5xxx o2dnt ++ ++pcm030_config \ ++pcm030_LOWBOOT_config: unconfig ++ @mkdir -p $(obj)include $(obj)board/phytec/pcm030 ++ @ >$(obj)include/config.h ++ @[ -z "$(findstring LOWBOOT_,$@)" ] || \ ++ { echo "TEXT_BASE = 0xFF000000" >$(obj)board/phytec/pcm030/config.tmp ; \ ++ echo "... with LOWBOOT configuration" ; \ ++ } ++ @$(MKCONFIG) -a pcm030 ppc mpc5xxx pcm030 phytec ++ ++pf5200_config: unconfig ++ @$(MKCONFIG) pf5200 ppc mpc5xxx pf5200 esd ++ ++PM520_config \ ++PM520_DDR_config \ ++PM520_ROMBOOT_config \ ++PM520_ROMBOOT_DDR_config: unconfig ++ @mkdir -p $(obj)include ++ @[ -z "$(findstring DDR,$@)" ] || \ ++ { echo "#define CONFIG_MPC5200_DDR" >>$(obj)include/config.h ; \ ++ $(XECHO) "... DDR memory revision" ; \ ++ } ++ @[ -z "$(findstring ROMBOOT,$@)" ] || \ ++ { echo "#define CONFIG_BOOT_ROM" >>$(obj)include/config.h ; \ ++ $(XECHO) "... booting from 8-bit flash" ; \ ++ } ++ @$(MKCONFIG) -a PM520 ppc mpc5xxx pm520 ++ ++smmaco4_config: unconfig ++ @$(MKCONFIG) -a smmaco4 ppc mpc5xxx tqm5200 tqc ++ ++spieval_config: unconfig ++ @$(MKCONFIG) -a spieval ppc mpc5xxx tqm5200 tqc ++ ++TB5200_B_config \ ++TB5200_config: unconfig ++ @mkdir -p $(obj)include ++ @[ -z "$(findstring _B,$@)" ] || \ ++ { echo "#define CONFIG_TQM5200_B" >>$(obj)include/config.h ; \ ++ $(XECHO) "... with MPC5200B processor" ; \ ++ } ++ @$(MKCONFIG) -n $@ -a TB5200 ppc mpc5xxx tqm5200 tqc ++ ++MINI5200_config \ ++EVAL5200_config \ ++TOP5200_config: unconfig ++ @mkdir -p $(obj)include ++ @ echo "#define CONFIG_$(@:_config=) 1" >$(obj)include/config.h ++ @$(MKCONFIG) -n $@ -a TOP5200 ppc mpc5xxx top5200 emk ++ ++Total5100_config \ ++Total5200_config \ ++Total5200_lowboot_config \ ++Total5200_Rev2_config \ ++Total5200_Rev2_lowboot_config: unconfig ++ @mkdir -p $(obj)include ++ @mkdir -p $(obj)board/total5200 ++ @[ -z "$(findstring 5100,$@)" ] || \ ++ { echo "#define CONFIG_MGT5100" >>$(obj)include/config.h ; \ ++ $(XECHO) "... with MGT5100 processor" ; \ ++ } ++ @[ -z "$(findstring 5200,$@)" ] || \ ++ { echo "#define CONFIG_MPC5200" >>$(obj)include/config.h ; \ ++ $(XECHO) "... with MPC5200 processor" ; \ ++ } ++ @[ -n "$(findstring Rev,$@)" ] || \ ++ { echo "#define CONFIG_TOTAL5200_REV 1" >>$(obj)include/config.h ; \ ++ $(XECHO) "... revision 1 board" ; \ ++ } ++ @[ -z "$(findstring Rev2_,$@)" ] || \ ++ { echo "#define CONFIG_TOTAL5200_REV 2" >>$(obj)include/config.h ; \ ++ $(XECHO) "... revision 2 board" ; \ ++ } ++ @[ -z "$(findstring lowboot_,$@)" ] || \ ++ { echo "TEXT_BASE = 0xFE000000" >$(obj)board/total5200/config.tmp ; \ ++ $(XECHO) "... with lowboot configuration" ; \ ++ } ++ @$(MKCONFIG) -a Total5200 ppc mpc5xxx total5200 ++ ++cam5200_config \ ++cam5200_niosflash_config \ ++fo300_config \ ++MiniFAP_config \ ++TQM5200S_config \ ++TQM5200S_HIGHBOOT_config \ ++TQM5200_B_config \ ++TQM5200_B_HIGHBOOT_config \ ++TQM5200_config \ ++TQM5200_STK100_config: unconfig ++ @mkdir -p $(obj)include ++ @mkdir -p $(obj)board/tqc/tqm5200 ++ @[ -z "$(findstring cam5200,$@)" ] || \ ++ { echo "#define CONFIG_CAM5200" >>$(obj)include/config.h ; \ ++ echo "#define CONFIG_TQM5200S" >>$(obj)include/config.h ; \ ++ echo "#define CONFIG_TQM5200_B" >>$(obj)include/config.h ; \ ++ $(XECHO) "... TQM5200S on Cam5200" ; \ ++ } ++ @[ -z "$(findstring niosflash,$@)" ] || \ ++ { echo "#define CONFIG_CAM5200_NIOSFLASH" >>$(obj)include/config.h ; \ ++ $(XECHO) "... with NIOS flash driver" ; \ ++ } ++ @[ -z "$(findstring fo300,$@)" ] || \ ++ { echo "#define CONFIG_FO300" >>$(obj)include/config.h ; \ ++ $(XECHO) "... TQM5200 on FO300" ; \ ++ } ++ @[ -z "$(findstring MiniFAP,$@)" ] || \ ++ { echo "#define CONFIG_MINIFAP" >>$(obj)include/config.h ; \ ++ $(XECHO) "... TQM5200_AC on MiniFAP" ; \ ++ } ++ @[ -z "$(findstring STK100,$@)" ] || \ ++ { echo "#define CONFIG_STK52XX_REV100" >>$(obj)include/config.h ; \ ++ $(XECHO) "... on a STK52XX.100 base board" ; \ ++ } ++ @[ -z "$(findstring TQM5200_B,$@)" ] || \ ++ { echo "#define CONFIG_TQM5200_B" >>$(obj)include/config.h ; \ ++ } ++ @[ -z "$(findstring TQM5200S,$@)" ] || \ ++ { echo "#define CONFIG_TQM5200S" >>$(obj)include/config.h ; \ ++ echo "#define CONFIG_TQM5200_B" >>$(obj)include/config.h ; \ ++ } ++ @[ -z "$(findstring HIGHBOOT,$@)" ] || \ ++ { echo "TEXT_BASE = 0xFFF00000" >$(obj)board/tqm5200/config.tmp ; \ ++ } ++ @$(MKCONFIG) -n $@ -a TQM5200 ppc mpc5xxx tqm5200 tqc ++ ++uc101_config: unconfig ++ @$(MKCONFIG) uc101 ppc mpc5xxx uc101 ++ ++v38b_config: unconfig ++ @$(MKCONFIG) -a v38b ppc mpc5xxx v38b ++ ++######################################################################### ++## MPC512x Systems ++######################################################################### ++ ++aria_config: unconfig ++ @$(MKCONFIG) -a aria ppc mpc512x aria davedenx ++ ++mecp5123_config: unconfig ++ @$(MKCONFIG) -a mecp5123 ppc mpc512x mecp5123 esd ++ ++mpc5121ads_config \ ++mpc5121ads_rev2_config \ ++ : unconfig ++ @mkdir -p $(obj)include ++ @if [ "$(findstring rev2,$@)" ] ; then \ ++ echo "#define CONFIG_ADS5121_REV2 1" > $(obj)include/config.h; \ ++ fi ++ @$(MKCONFIG) -a mpc5121ads ppc mpc512x mpc5121ads freescale ++ ++######################################################################### ++## MPC8xx Systems ++######################################################################### ++ ++Adder_config \ ++Adder87x_config \ ++AdderII_config \ ++ : unconfig ++ @mkdir -p $(obj)include ++ $(if $(findstring AdderII,$@), \ ++ @echo "#define CONFIG_MPC852T" > $(obj)include/config.h) ++ @$(MKCONFIG) -a Adder ppc mpc8xx adder ++ ++AdderUSB_config: unconfig ++ @$(MKCONFIG) -a AdderUSB ppc mpc8xx adder ++ ++ADS860_config \ ++FADS823_config \ ++FADS850SAR_config \ ++MPC86xADS_config \ ++MPC885ADS_config \ ++FADS860T_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc8xx fads ++ ++AMX860_config : unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc8xx amx860 westel ++ ++c2mon_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc8xx c2mon ++ ++CCM_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc8xx CCM siemens ++ ++cogent_mpc8xx_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc8xx cogent ++ ++ELPT860_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc8xx elpt860 LEOX ++ ++EP88x_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc8xx ep88x ++ ++ESTEEM192E_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc8xx esteem192e ++ ++ETX094_config : unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc8xx etx094 ++ ++FLAGADM_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc8xx flagadm ++ ++xtract_GEN860T = $(subst _SC,,$(subst _config,,$1)) ++ ++GEN860T_SC_config \ ++GEN860T_config: unconfig ++ @mkdir -p $(obj)include ++ @[ -z "$(findstring _SC,$@)" ] || \ ++ { echo "#define CONFIG_SC" >>$(obj)include/config.h ; \ ++ $(XECHO) "With reduced H/W feature set (SC)..." ; \ ++ } ++ @$(MKCONFIG) -a $(call xtract_GEN860T,$@) ppc mpc8xx gen860t ++ ++GENIETV_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc8xx genietv ++ ++GTH_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc8xx gth ++ ++hermes_config : unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc8xx hermes ++ ++HMI10_config : unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc8xx tqm8xx tqc ++ ++IAD210_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc8xx IAD210 siemens ++ ++xtract_ICU862 = $(subst _100MHz,,$(subst _config,,$1)) ++ ++ICU862_100MHz_config \ ++ICU862_config: unconfig ++ @mkdir -p $(obj)include ++ @[ -z "$(findstring _100MHz,$@)" ] || \ ++ { echo "#define CONFIG_100MHz" >>$(obj)include/config.h ; \ ++ $(XECHO) "... with 100MHz system clock" ; \ ++ } ++ @$(MKCONFIG) -a $(call xtract_ICU862,$@) ppc mpc8xx icu862 ++ ++IP860_config : unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc8xx ip860 ++ ++IVML24_256_config \ ++IVML24_128_config \ ++IVML24_config: unconfig ++ @mkdir -p $(obj)include ++ @[ -z "$(findstring IVML24_config,$@)" ] || \ ++ { echo "#define CONFIG_IVML24_16M" >>$(obj)include/config.h ; \ ++ } ++ @[ -z "$(findstring IVML24_128_config,$@)" ] || \ ++ { echo "#define CONFIG_IVML24_32M" >>$(obj)include/config.h ; \ ++ } ++ @[ -z "$(findstring IVML24_256_config,$@)" ] || \ ++ { echo "#define CONFIG_IVML24_64M" >>$(obj)include/config.h ; \ ++ } ++ @$(MKCONFIG) -a IVML24 ppc mpc8xx ivm ++ ++IVMS8_256_config \ ++IVMS8_128_config \ ++IVMS8_config: unconfig ++ @mkdir -p $(obj)include ++ @[ -z "$(findstring IVMS8_config,$@)" ] || \ ++ { echo "#define CONFIG_IVMS8_16M" >>$(obj)include/config.h ; \ ++ } ++ @[ -z "$(findstring IVMS8_128_config,$@)" ] || \ ++ { echo "#define CONFIG_IVMS8_32M" >>$(obj)include/config.h ; \ ++ } ++ @[ -z "$(findstring IVMS8_256_config,$@)" ] || \ ++ { echo "#define CONFIG_IVMS8_64M" >>$(obj)include/config.h ; \ ++ } ++ @$(MKCONFIG) -a IVMS8 ppc mpc8xx ivm ++ ++kmsupx4_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc8xx km8xx keymile ++ ++KUP4K_config : unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc8xx kup4k kup ++ ++KUP4X_config : unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc8xx kup4x kup ++ ++LANTEC_config : unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc8xx lantec ++ ++lwmon_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc8xx lwmon ++ ++MBX_config \ ++MBX860T_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc8xx mbx8xx ++ ++mgsuvd_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc8xx km8xx keymile ++ ++MHPC_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc8xx mhpc eltec ++ ++xtract_NETVIA = $(subst _V2,,$(subst _config,,$1)) ++ ++NETVIA_V2_config \ ++NETVIA_config: unconfig ++ @mkdir -p $(obj)include ++ @[ -z "$(findstring NETVIA_config,$@)" ] || \ ++ { echo "#define CONFIG_NETVIA_VERSION 1" >>$(obj)include/config.h ; \ ++ $(XECHO) "... Version 1" ; \ ++ } ++ @[ -z "$(findstring NETVIA_V2_config,$@)" ] || \ ++ { echo "#define CONFIG_NETVIA_VERSION 2" >>$(obj)include/config.h ; \ ++ $(XECHO) "... Version 2" ; \ ++ } ++ @$(MKCONFIG) -a $(call xtract_NETVIA,$@) ppc mpc8xx netvia ++ ++xtract_NETPHONE = $(subst _V2,,$(subst _config,,$1)) ++ ++NETPHONE_V2_config \ ++NETPHONE_config: unconfig ++ @mkdir -p $(obj)include ++ @[ -z "$(findstring NETPHONE_config,$@)" ] || \ ++ { echo "#define CONFIG_NETPHONE_VERSION 1" >>$(obj)include/config.h ; \ ++ } ++ @[ -z "$(findstring NETPHONE_V2_config,$@)" ] || \ ++ { echo "#define CONFIG_NETPHONE_VERSION 2" >>$(obj)include/config.h ; \ ++ } ++ @$(MKCONFIG) -a $(call xtract_NETPHONE,$@) ppc mpc8xx netphone ++ ++xtract_NETTA = $(subst _SWAPHOOK,,$(subst _6412,,$(subst _ISDN,,$(subst _config,,$1)))) ++ ++NETTA_ISDN_6412_SWAPHOOK_config \ ++NETTA_ISDN_SWAPHOOK_config \ ++NETTA_6412_SWAPHOOK_config \ ++NETTA_SWAPHOOK_config \ ++NETTA_ISDN_6412_config \ ++NETTA_ISDN_config \ ++NETTA_6412_config \ ++NETTA_config: unconfig ++ @mkdir -p $(obj)include ++ @[ -z "$(findstring ISDN_,$@)" ] || \ ++ { echo "#define CONFIG_NETTA_ISDN 1" >>$(obj)include/config.h ; \ ++ } ++ @[ -n "$(findstring ISDN_,$@)" ] || \ ++ { echo "#undef CONFIG_NETTA_ISDN" >>$(obj)include/config.h ; \ ++ } ++ @[ -z "$(findstring 6412_,$@)" ] || \ ++ { echo "#define CONFIG_NETTA_6412 1" >>$(obj)include/config.h ; \ ++ } ++ @[ -n "$(findstring 6412_,$@)" ] || \ ++ { echo "#undef CONFIG_NETTA_6412" >>$(obj)include/config.h ; \ ++ } ++ @[ -z "$(findstring SWAPHOOK_,$@)" ] || \ ++ { echo "#define CONFIG_NETTA_SWAPHOOK 1" >>$(obj)include/config.h ; \ ++ } ++ @[ -n "$(findstring SWAPHOOK_,$@)" ] || \ ++ { echo "#undef CONFIG_NETTA_SWAPHOOK" >>$(obj)include/config.h ; \ ++ } ++ @$(MKCONFIG) -a $(call xtract_NETTA,$@) ppc mpc8xx netta ++ ++xtract_NETTA2 = $(subst _V2,,$(subst _config,,$1)) ++ ++NETTA2_V2_config \ ++NETTA2_config: unconfig ++ @mkdir -p $(obj)include ++ @[ -z "$(findstring NETTA2_config,$@)" ] || \ ++ { echo "#define CONFIG_NETTA2_VERSION 1" >>$(obj)include/config.h ; \ ++ } ++ @[ -z "$(findstring NETTA2_V2_config,$@)" ] || \ ++ { echo "#define CONFIG_NETTA2_VERSION 2" >>$(obj)include/config.h ; \ ++ } ++ @$(MKCONFIG) -a $(call xtract_NETTA2,$@) ppc mpc8xx netta2 ++ ++NC650_Rev1_config \ ++NC650_Rev2_config \ ++CP850_config: unconfig ++ @mkdir -p $(obj)include ++ @[ -z "$(findstring CP850,$@)" ] || \ ++ { echo "#define CONFIG_CP850 1" >>$(obj)include/config.h ; \ ++ echo "#define CONFIG_IDS852_REV2 1" >>$(obj)include/config.h ; \ ++ } ++ @[ -z "$(findstring Rev1,$@)" ] || \ ++ { echo "#define CONFIG_IDS852_REV1 1" >>$(obj)include/config.h ; \ ++ } ++ @[ -z "$(findstring Rev2,$@)" ] || \ ++ { echo "#define CONFIG_IDS852_REV2 1" >>$(obj)include/config.h ; \ ++ } ++ @$(MKCONFIG) -a NC650 ppc mpc8xx nc650 ++ ++NX823_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc8xx nx823 ++ ++pcu_e_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc8xx pcu_e siemens ++ ++QS850_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc8xx qs850 snmc ++ ++QS823_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc8xx qs850 snmc ++ ++QS860T_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc8xx qs860t snmc ++ ++quantum_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc8xx quantum ++ ++R360MPI_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc8xx r360mpi ++ ++RBC823_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc8xx rbc823 ++ ++RPXClassic_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc8xx RPXClassic ++ ++RPXlite_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc8xx RPXlite ++ ++RPXlite_DW_64_config \ ++RPXlite_DW_LCD_config \ ++RPXlite_DW_64_LCD_config \ ++RPXlite_DW_NVRAM_config \ ++RPXlite_DW_NVRAM_64_config \ ++RPXlite_DW_NVRAM_LCD_config \ ++RPXlite_DW_NVRAM_64_LCD_config \ ++RPXlite_DW_config: unconfig ++ @mkdir -p $(obj)include ++ @[ -z "$(findstring _64,$@)" ] || \ ++ { echo "#define RPXlite_64MHz" >>$(obj)include/config.h ; \ ++ $(XECHO) "... with 64MHz system clock ..."; \ ++ } ++ @[ -z "$(findstring _LCD,$@)" ] || \ ++ { echo "#define CONFIG_LCD" >>$(obj)include/config.h ; \ ++ echo "#define CONFIG_NEC_NL6448BC20" >>$(obj)include/config.h ; \ ++ $(XECHO) "... with LCD display ..."; \ ++ } ++ @[ -z "$(findstring _NVRAM,$@)" ] || \ ++ { echo "#define CONFIG_ENV_IS_IN_NVRAM" >>$(obj)include/config.h ; \ ++ $(XECHO) "... with ENV in NVRAM ..."; \ ++ } ++ @$(MKCONFIG) -a RPXlite_DW ppc mpc8xx RPXlite_dw ++ ++rmu_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc8xx rmu ++ ++RRvision_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc8xx RRvision ++ ++RRvision_LCD_config: unconfig ++ @mkdir -p $(obj)include ++ @echo "#define CONFIG_LCD" >$(obj)include/config.h ++ @echo "#define CONFIG_SHARP_LQ104V7DS01" >>$(obj)include/config.h ++ @$(MKCONFIG) -a RRvision ppc mpc8xx RRvision ++ ++SM850_config : unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc8xx tqm8xx tqc ++ ++spc1920_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc8xx spc1920 ++ ++SPD823TS_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc8xx spd8xx ++ ++stxxtc_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc8xx stxxtc stx ++ ++svm_sc8xx_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc8xx svm_sc8xx ++ ++SXNI855T_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc8xx sixnet ++ ++# EMK MPC8xx based modules ++TOP860_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc8xx top860 emk ++ ++# Play some tricks for configuration selection ++# Only 855 and 860 boards may come with FEC ++# and only 823 boards may have LCD support ++xtract_8xx = $(subst _LCD,,$(subst _config,,$1)) ++ ++FPS850L_config \ ++FPS860L_config \ ++NSCU_config \ ++TQM823L_config \ ++TQM823L_LCD_config \ ++TQM850L_config \ ++TQM855L_config \ ++TQM860L_config \ ++TQM862L_config \ ++TQM823M_config \ ++TQM850M_config \ ++TQM855M_config \ ++TQM860M_config \ ++TQM862M_config \ ++TQM866M_config \ ++TQM885D_config \ ++TK885D_config \ ++virtlab2_config: unconfig ++ @mkdir -p $(obj)include ++ @[ -z "$(findstring _LCD,$@)" ] || \ ++ { echo "#define CONFIG_LCD" >>$(obj)include/config.h ; \ ++ echo "#define CONFIG_NEC_NL6448BC20" >>$(obj)include/config.h ; \ ++ $(XECHO) "... with LCD display" ; \ ++ } ++ @$(MKCONFIG) -a $(call xtract_8xx,$@) ppc mpc8xx tqm8xx tqc ++ ++TTTech_config: unconfig ++ @mkdir -p $(obj)include ++ @echo "#define CONFIG_LCD" >$(obj)include/config.h ++ @echo "#define CONFIG_SHARP_LQ104V7DS01" >>$(obj)include/config.h ++ @$(MKCONFIG) -a TQM823L ppc mpc8xx tqm8xx tqc ++ ++uc100_config : unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc8xx uc100 ++ ++v37_config: unconfig ++ @mkdir -p $(obj)include ++ @echo "#define CONFIG_LCD" >$(obj)include/config.h ++ @echo "#define CONFIG_SHARP_LQ084V1DG21" >>$(obj)include/config.h ++ @$(MKCONFIG) $(@:_config=) ppc mpc8xx v37 ++ ++wtk_config: unconfig ++ @mkdir -p $(obj)include ++ @echo "#define CONFIG_LCD" >$(obj)include/config.h ++ @echo "#define CONFIG_SHARP_LQ065T9DR51U" >>$(obj)include/config.h ++ @$(MKCONFIG) -a TQM823L ppc mpc8xx tqm8xx tqc ++ ++######################################################################### ++## PPC4xx Systems ++######################################################################### ++xtract_4xx = $(subst _25,,$(subst _33,,$(subst _BA,,$(subst _ME,,$(subst _HI,,$(subst _config,,$1)))))) ++ ++acadia_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc ppc4xx acadia amcc ++ ++acadia_nand_config: unconfig ++ @mkdir -p $(obj)include $(obj)board/amcc/acadia ++ @mkdir -p $(obj)nand_spl/board/amcc/acadia ++ @echo "#define CONFIG_NAND_U_BOOT" > $(obj)include/config.h ++ @$(MKCONFIG) -n $@ -a acadia ppc ppc4xx acadia amcc ++ @echo "TEXT_BASE = 0x01000000" > $(obj)board/amcc/acadia/config.tmp ++ @echo "CONFIG_NAND_U_BOOT = y" >> $(obj)include/config.mk ++ ++ADCIOP_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc ppc4xx adciop esd ++ ++alpr_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc ppc4xx alpr prodrive ++ ++AP1000_config:unconfig ++ @$(MKCONFIG) $(@:_config=) ppc ppc4xx ap1000 amirix ++ ++APC405_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc ppc4xx apc405 esd ++ ++AR405_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc ppc4xx ar405 esd ++ ++ASH405_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc ppc4xx ash405 esd ++ ++bamboo_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc ppc4xx bamboo amcc ++ ++bamboo_nand_config: unconfig ++ @mkdir -p $(obj)include $(obj)board/amcc/bamboo ++ @mkdir -p $(obj)nand_spl/board/amcc/bamboo ++ @echo "#define CONFIG_NAND_U_BOOT" > $(obj)include/config.h ++ @$(MKCONFIG) -n $@ -a bamboo ppc ppc4xx bamboo amcc ++ @echo "TEXT_BASE = 0x01000000" > $(obj)board/amcc/bamboo/config.tmp ++ @echo "CONFIG_NAND_U_BOOT = y" >> $(obj)include/config.mk ++ ++bubinga_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc ppc4xx bubinga amcc ++ ++CANBT_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc ppc4xx canbt esd ++ ++# Arches, Canyonlands & Glacier use different U-Boot images ++arches_config \ ++canyonlands_config \ ++glacier_config: unconfig ++ @mkdir -p $(obj)include ++ @echo "#define CONFIG_$$(echo $(subst ,,$(@:_config=)) | \ ++ tr '[:lower:]' '[:upper:]')" >$(obj)include/config.h ++ @$(MKCONFIG) -n $@ -a canyonlands ppc ppc4xx canyonlands amcc ++ ++canyonlands_nand_config \ ++glacier_nand_config: unconfig ++ @mkdir -p $(obj)include $(obj)board/amcc/canyonlands ++ @mkdir -p $(obj)nand_spl/board/amcc/canyonlands ++ @echo "#define CONFIG_NAND_U_BOOT" > $(obj)include/config.h ++ @echo "#define CONFIG_$$(echo $(subst ,,$(@:_nand_config=)) | \ ++ tr '[:lower:]' '[:upper:]')" >> $(obj)include/config.h ++ @$(MKCONFIG) -n $@ -a canyonlands ppc ppc4xx canyonlands amcc ++ @echo "TEXT_BASE = 0x01000000" > $(obj)board/amcc/canyonlands/config.tmp ++ @echo "CONFIG_NAND_U_BOOT = y" >> $(obj)include/config.mk ++ ++CATcenter_config \ ++CATcenter_25_config \ ++CATcenter_33_config: unconfig ++ @mkdir -p $(obj)include ++ @ echo "/* CATcenter uses PPChameleon Model ME */" > $(obj)include/config.h ++ @ echo "#define CONFIG_PPCHAMELEON_MODULE_MODEL 1" >> $(obj)include/config.h ++ @[ -z "$(findstring _25,$@)" ] || \ ++ { echo "#define CONFIG_PPCHAMELEON_CLK_25" >> $(obj)include/config.h ; \ ++ $(XECHO) "SysClk = 25MHz" ; \ ++ } ++ @[ -z "$(findstring _33,$@)" ] || \ ++ { echo "#define CONFIG_PPCHAMELEON_CLK_33" >> $(obj)include/config.h ; \ ++ $(XECHO) "SysClk = 33MHz" ; \ ++ } ++ @$(MKCONFIG) -a $(call xtract_4xx,$@) ppc ppc4xx PPChameleonEVB dave ++ ++CMS700_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc ppc4xx cms700 esd ++ ++CPCI2DP_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc ppc4xx cpci2dp esd ++ ++CPCI405_config \ ++CPCI4052_config \ ++CPCI405DT_config \ ++CPCI405AB_config: unconfig ++ @mkdir -p $(obj)board/esd/cpci405 ++ @$(MKCONFIG) $(@:_config=) ppc ppc4xx cpci405 esd ++ ++CPCIISER4_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc ppc4xx cpciiser4 esd ++ ++CRAYL1_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc ppc4xx L1 cray ++ ++csb272_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc ppc4xx csb272 ++ ++csb472_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc ppc4xx csb472 ++ ++DASA_SIM_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc ppc4xx dasa_sim esd ++ ++dlvision_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc ppc4xx dlvision gdsys ++ ++DP405_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc ppc4xx dp405 esd ++ ++DU405_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc ppc4xx du405 esd ++ ++DU440_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc ppc4xx du440 esd ++ ++ebony_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc ppc4xx ebony amcc ++ ++ERIC_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc ppc4xx eric ++ ++EXBITGEN_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc ppc4xx exbitgen ++ ++fx12mm_flash_config: unconfig ++ @mkdir -p $(obj)include $(obj)board/xilinx/ppc405-generic ++ @mkdir -p $(obj)include $(obj)board/avnet/fx12mm ++ @echo "LDSCRIPT:=$(SRCTREE)/board/xilinx/ppc405-generic/u-boot-rom.lds"\ ++ > $(obj)board/avnet/fx12mm/config.tmp ++ @echo "TEXT_BASE := 0xFFCB0000" \ ++ >> $(obj)board/avnet/fx12mm/config.tmp ++ @$(MKCONFIG) fx12mm ppc ppc4xx fx12mm avnet ++ ++fx12mm_config: unconfig ++ @mkdir -p $(obj)include $(obj)board/xilinx/ppc405-generic ++ @mkdir -p $(obj)include $(obj)board/avnet/fx12mm ++ @echo "LDSCRIPT:=$(SRCTREE)/board/xilinx/ppc405-generic/u-boot-ram.lds"\ ++ > $(obj)board/avnet/fx12mm/config.tmp ++ @echo "TEXT_BASE := 0x03000000" \ ++ >> $(obj)board/avnet/fx12mm/config.tmp ++ @$(MKCONFIG) fx12mm ppc ppc4xx fx12mm avnet ++ ++G2000_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc ppc4xx g2000 ++ ++gdppc440etx_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc ppc4xx gdppc440etx gdsys ++ ++hcu4_config: unconfig ++ @mkdir -p $(obj)board/netstal/common ++ @$(MKCONFIG) $(@:_config=) ppc ppc4xx hcu4 netstal ++ ++hcu5_config: unconfig ++ @mkdir -p $(obj)board/netstal/common ++ @$(MKCONFIG) $(@:_config=) ppc ppc4xx hcu5 netstal ++ ++HH405_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc ppc4xx hh405 esd ++ ++HUB405_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc ppc4xx hub405 esd ++ ++# Compact-Center(codename intip) & DevCon-Center use different U-Boot images ++intip_config \ ++devconcenter_config: unconfig ++ @mkdir -p $(obj)include ++ @echo "#define CONFIG_$$(echo $(subst ,,$(@:_config=)) | \ ++ tr '[:lower:]' '[:upper:]')" >$(obj)include/config.h ++ @$(MKCONFIG) -n $@ -a intip ppc ppc4xx intip gdsys ++ ++JSE_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc ppc4xx jse ++ ++KAREF_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc ppc4xx karef sandburst ++ ++katmai_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc ppc4xx katmai amcc ++ ++# Kilauea & Haleakala images are identical (recognized via PVR) ++kilauea_config \ ++haleakala_config: unconfig ++ @$(MKCONFIG) -n $@ -a kilauea ppc ppc4xx kilauea amcc ++ ++kilauea_nand_config \ ++haleakala_nand_config: unconfig ++ @mkdir -p $(obj)include $(obj)board/amcc/kilauea ++ @mkdir -p $(obj)nand_spl/board/amcc/kilauea ++ @echo "#define CONFIG_NAND_U_BOOT" > $(obj)include/config.h ++ @$(MKCONFIG) -n $@ -a kilauea ppc ppc4xx kilauea amcc ++ @echo "TEXT_BASE = 0x01000000" > $(obj)board/amcc/kilauea/config.tmp ++ @echo "CONFIG_NAND_U_BOOT = y" >> $(obj)include/config.mk ++ ++korat_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc ppc4xx korat ++ ++luan_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc ppc4xx luan amcc ++ ++lwmon5_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc ppc4xx lwmon5 ++ ++makalu_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc ppc4xx makalu amcc ++ ++mcu25_config: unconfig ++ @mkdir -p $(obj)board/netstal/common ++ @$(MKCONFIG) $(@:_config=) ppc ppc4xx mcu25 netstal ++ ++METROBOX_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc ppc4xx metrobox sandburst ++ ++MIP405_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc ppc4xx mip405 mpl ++ ++MIP405T_config: unconfig ++ @mkdir -p $(obj)include ++ @echo "#define CONFIG_MIP405T" >$(obj)include/config.h ++ @$(XECHO) "Enable subset config for MIP405T" ++ @$(MKCONFIG) -a MIP405 ppc ppc4xx mip405 mpl ++ ++ML2_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc ppc4xx ml2 ++ ++ml300_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc ppc4xx ml300 xilinx ++ ++ml507_flash_config: unconfig ++ @mkdir -p $(obj)include $(obj)board/xilinx/ppc440-generic ++ @mkdir -p $(obj)include $(obj)board/xilinx/ml507 ++ @echo "LDSCRIPT:=$(SRCTREE)/board/xilinx/ppc440-generic/u-boot-rom.lds"\ ++ > $(obj)board/xilinx/ml507/config.tmp ++ @echo "TEXT_BASE := 0xFE360000" \ ++ >> $(obj)board/xilinx/ml507/config.tmp ++ @$(MKCONFIG) ml507 ppc ppc4xx ml507 xilinx ++ ++ml507_config: unconfig ++ @mkdir -p $(obj)include $(obj)board/xilinx/ppc440-generic ++ @mkdir -p $(obj)include $(obj)board/xilinx/ml507 ++ @echo "LDSCRIPT:=$(SRCTREE)/board/xilinx/ppc440-generic/u-boot-ram.lds"\ ++ > $(obj)board/xilinx/ml507/config.tmp ++ @echo "TEXT_BASE := 0x04000000" \ ++ >> $(obj)board/xilinx/ml507/config.tmp ++ @$(MKCONFIG) ml507 ppc ppc4xx ml507 xilinx ++ ++neo_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc ppc4xx neo gdsys ++ ++ocotea_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc ppc4xx ocotea amcc ++ ++OCRTC_config \ ++ORSG_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc ppc4xx ocrtc esd ++ ++p3p440_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc ppc4xx p3p440 prodrive ++ ++PCI405_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc ppc4xx pci405 esd ++ ++pcs440ep_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc ppc4xx pcs440ep ++ ++PIP405_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc ppc4xx pip405 mpl ++ ++PLU405_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc ppc4xx plu405 esd ++ ++PMC405_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc ppc4xx pmc405 esd ++ ++PMC405DE_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc ppc4xx pmc405de esd ++ ++PMC440_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc ppc4xx pmc440 esd ++ ++PPChameleonEVB_config \ ++PPChameleonEVB_BA_25_config \ ++PPChameleonEVB_ME_25_config \ ++PPChameleonEVB_HI_25_config \ ++PPChameleonEVB_BA_33_config \ ++PPChameleonEVB_ME_33_config \ ++PPChameleonEVB_HI_33_config: unconfig ++ @mkdir -p $(obj)include ++ @[ -z "$(findstring EVB_BA,$@)" ] || \ ++ { echo "#define CONFIG_PPCHAMELEON_MODULE_MODEL 0" >>$(obj)include/config.h ; \ ++ $(XECHO) "... BASIC model" ; \ ++ } ++ @[ -z "$(findstring EVB_ME,$@)" ] || \ ++ { echo "#define CONFIG_PPCHAMELEON_MODULE_MODEL 1" >>$(obj)include/config.h ; \ ++ $(XECHO) "... MEDIUM model" ; \ ++ } ++ @[ -z "$(findstring EVB_HI,$@)" ] || \ ++ { echo "#define CONFIG_PPCHAMELEON_MODULE_MODEL 2" >>$(obj)include/config.h ; \ ++ $(XECHO) "... HIGH-END model" ; \ ++ } ++ @[ -z "$(findstring _25,$@)" ] || \ ++ { echo "#define CONFIG_PPCHAMELEON_CLK_25" >>$(obj)include/config.h ; \ ++ $(XECHO) "SysClk = 25MHz" ; \ ++ } ++ @[ -z "$(findstring _33,$@)" ] || \ ++ { echo "#define CONFIG_PPCHAMELEON_CLK_33" >>$(obj)include/config.h ; \ ++ $(XECHO) "SysClk = 33MHz" ; \ ++ } ++ @$(MKCONFIG) -a $(call xtract_4xx,$@) ppc ppc4xx PPChameleonEVB dave ++ ++quad100hd_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc ppc4xx quad100hd ++ ++redwood_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc ppc4xx redwood amcc ++ ++sbc405_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc ppc4xx sbc405 ++ ++sc3_config:unconfig ++ @$(MKCONFIG) $(@:_config=) ppc ppc4xx sc3 ++ ++sequoia_config \ ++rainier_config: unconfig ++ @mkdir -p $(obj)include ++ @echo "#define CONFIG_$$(echo $(subst ,,$(@:_config=)) | \ ++ tr '[:lower:]' '[:upper:]')" >$(obj)include/config.h ++ @$(MKCONFIG) -n $@ -a sequoia ppc ppc4xx sequoia amcc ++ ++sequoia_nand_config \ ++rainier_nand_config: unconfig ++ @mkdir -p $(obj)include $(obj)board/amcc/sequoia ++ @mkdir -p $(obj)nand_spl/board/amcc/sequoia ++ @echo "#define CONFIG_NAND_U_BOOT" > $(obj)include/config.h ++ @echo "#define CONFIG_$$(echo $(subst ,,$(@:_config=)) | \ ++ tr '[:lower:]' '[:upper:]')" >> $(obj)include/config.h ++ @$(MKCONFIG) -n $@ -a sequoia ppc ppc4xx sequoia amcc ++ @echo "TEXT_BASE = 0x01000000" > $(obj)board/amcc/sequoia/config.tmp ++ @echo "CONFIG_NAND_U_BOOT = y" >> $(obj)include/config.mk ++ ++sequoia_ramboot_config \ ++rainier_ramboot_config: unconfig ++ @mkdir -p $(obj)include $(obj)board/amcc/sequoia ++ @echo "#define CONFIG_SYS_RAMBOOT" > $(obj)include/config.h ++ @echo "#define CONFIG_$$(echo $(subst ,,$(@:_config=)) | \ ++ tr '[:lower:]' '[:upper:]')" >> $(obj)include/config.h ++ @$(MKCONFIG) -n $@ -a sequoia ppc ppc4xx sequoia amcc ++ @echo "TEXT_BASE = 0x01000000" > $(obj)board/amcc/sequoia/config.tmp ++ @echo "LDSCRIPT = board/amcc/sequoia/u-boot-ram.lds" >> \ ++ $(obj)board/amcc/sequoia/config.tmp ++ ++taihu_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc ppc4xx taihu amcc ++ ++taishan_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc ppc4xx taishan amcc ++ ++v5fx30teval_config: unconfig ++ @mkdir -p $(obj)include $(obj)board/xilinx/ppc440-generic ++ @mkdir -p $(obj)include $(obj)board/avnet/v5fx30teval ++ @echo "LDSCRIPT:=$(SRCTREE)/board/xilinx/ppc440-generic/u-boot-ram.lds"\ ++ > $(obj)board/avnet/v5fx30teval/config.tmp ++ @echo "TEXT_BASE := 0x03000000" \ ++ >> $(obj)board/avnet/v5fx30teval/config.tmp ++ @$(MKCONFIG) v5fx30teval ppc ppc4xx v5fx30teval avnet ++ ++v5fx30teval_flash_config: unconfig ++ @mkdir -p $(obj)include $(obj)board/xilinx/ppc440-generic ++ @mkdir -p $(obj)include $(obj)board/avnet/v5fx30teval ++ @echo "LDSCRIPT:=$(SRCTREE)/board/xilinx/ppc440-generic/u-boot-rom.lds"\ ++ > $(obj)board/avnet/v5fx30teval/config.tmp ++ @echo "TEXT_BASE := 0xFF1C0000" \ ++ >> $(obj)board/avnet/v5fx30teval/config.tmp ++ @$(MKCONFIG) v5fx30teval ppc ppc4xx v5fx30teval avnet ++ ++VOH405_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc ppc4xx voh405 esd ++ ++VOM405_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc ppc4xx vom405 esd ++ ++W7OLMC_config \ ++W7OLMG_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc ppc4xx w7o ++ ++# Walnut & Sycamore images are identical (recognized via PVR) ++walnut_config \ ++sycamore_config: unconfig ++ @$(MKCONFIG) -n $@ -a walnut ppc ppc4xx walnut amcc ++ ++WUH405_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc ppc4xx wuh405 esd ++ ++xilinx-ppc405-generic_flash_config: unconfig ++ @mkdir -p $(obj)include $(obj)board/xilinx/ppc405-generic ++ @echo "LDSCRIPT:=$(SRCTREE)/board/xilinx/ppc405-generic/u-boot-rom.lds"\ ++ > $(obj)board/xilinx/ppc405-generic/config.tmp ++ @echo "TEXT_BASE := 0xFE360000" \ ++ >> $(obj)board/xilinx/ppc405-generic/config.tmp ++ @$(MKCONFIG) xilinx-ppc405-generic ppc ppc4xx ppc405-generic xilinx ++ ++xilinx-ppc405-generic_config: unconfig ++ @mkdir -p $(obj)include $(obj)board/xilinx/ppc405-generic ++ @echo "LDSCRIPT:=$(SRCTREE)/board/xilinx/ppc405-generic/u-boot-ram.lds"\ ++ > $(obj)board/xilinx/ppc405-generic/config.tmp ++ @echo "TEXT_BASE := 0x04000000" \ ++ >> $(obj)board/xilinx/ppc405-generic/config.tmp ++ @$(MKCONFIG) xilinx-ppc405-generic ppc ppc4xx ppc405-generic xilinx ++ ++xilinx-ppc440-generic_flash_config: unconfig ++ @mkdir -p $(obj)include $(obj)board/xilinx/ppc440-generic ++ @echo "LDSCRIPT:=$(SRCTREE)/board/xilinx/ppc440-generic/u-boot-rom.lds"\ ++ > $(obj)board/xilinx/ppc440-generic/config.tmp ++ @echo "TEXT_BASE := 0xFE360000" \ ++ >> $(obj)board/xilinx/ppc440-generic/config.tmp ++ @$(MKCONFIG) xilinx-ppc440-generic ppc ppc4xx ppc440-generic xilinx ++ ++xilinx-ppc440-generic_config: unconfig ++ @mkdir -p $(obj)include $(obj)board/xilinx/ppc440-generic ++ @echo "LDSCRIPT:=$(SRCTREE)/board/xilinx/ppc440-generic/u-boot-ram.lds"\ ++ > $(obj)board/xilinx/ppc440-generic/config.tmp ++ @echo "TEXT_BASE := 0x04000000" \ ++ >> $(obj)board/xilinx/ppc440-generic/config.tmp ++ @$(MKCONFIG) xilinx-ppc440-generic ppc ppc4xx ppc440-generic xilinx ++ ++XPEDITE1000_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc ppc4xx xpedite1000 xes ++ ++yosemite_config \ ++yellowstone_config: unconfig ++ @mkdir -p $(obj)include ++ @echo "#define CONFIG_$$(echo $(subst ,,$(@:_config=)) | \ ++ tr '[:lower:]' '[:upper:]')" >$(obj)include/config.h ++ @$(MKCONFIG) -n $@ -a yosemite ppc ppc4xx yosemite amcc ++ ++yucca_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc ppc4xx yucca amcc ++ ++zeus_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc ppc4xx zeus ++ ++######################################################################### ++## MPC8220 Systems ++######################################################################### ++ ++Alaska8220_config \ ++Yukon8220_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc8220 alaska ++ ++sorcery_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc8220 sorcery ++ ++######################################################################### ++## MPC824x Systems ++######################################################################### ++xtract_82xx = $(subst _BIGFLASH,,$(subst _ROMBOOT,,$(subst _L2,,$(subst _266MHz,,$(subst _300MHz,,$(subst _config,,$1)))))) ++ ++A3000_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc824x a3000 ++ ++barco_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc824x barco ++ ++BMW_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc824x bmw ++ ++CPC45_config \ ++CPC45_ROMBOOT_config: unconfig ++ @$(MKCONFIG) $(call xtract_82xx,$@) ppc mpc824x cpc45 ++ @cd $(obj)include ; \ ++ if [ "$(findstring _ROMBOOT_,$@)" ] ; then \ ++ echo "CONFIG_BOOT_ROM = y" >> config.mk ; \ ++ $(XECHO) "... booting from 8-bit flash" ; \ ++ else \ ++ echo "CONFIG_BOOT_ROM = n" >> config.mk ; \ ++ $(XECHO) "... booting from 64-bit flash" ; \ ++ fi; \ ++ echo "export CONFIG_BOOT_ROM" >> config.mk; ++ ++CU824_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc824x cu824 ++ ++debris_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc824x debris etin ++ ++eXalion_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc824x eXalion ++ ++HIDDEN_DRAGON_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc824x hidden_dragon ++ ++kvme080_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc824x kvme080 etin ++ ++# HDLAN is broken ATM. Should be fixed as soon as hardware is available and as ++# time permits. ++#linkstation_HDLAN_config \ ++# Remove this line when HDLAN is fixed ++linkstation_HGLAN_config: unconfig ++ @mkdir -p $(obj)include ++ @case $@ in \ ++ *HGLAN*) echo "#define CONFIG_HGLAN 1" >$(obj)include/config.h; ;; \ ++ *HDLAN*) echo "#define CONFIG_HLAN 1" >$(obj)include/config.h; ;; \ ++ esac ++ @$(MKCONFIG) -n $@ -a linkstation ppc mpc824x linkstation ++ ++MOUSSE_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc824x mousse ++ ++MUSENKI_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc824x musenki ++ ++MVBLUE_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc824x mvblue ++ ++OXC_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc824x oxc ++ ++PN62_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc824x pn62 ++ ++Sandpoint8240_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc824x sandpoint ++ ++Sandpoint8245_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc824x sandpoint ++ ++sbc8240_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc824x sbc8240 ++ ++SL8245_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc824x sl8245 ++ ++utx8245_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc824x utx8245 ++ ++######################################################################### ++## MPC8260 Systems ++######################################################################### ++ ++atc_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc8260 atc ++ ++cogent_mpc8260_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc8260 cogent ++ ++CPU86_config \ ++CPU86_ROMBOOT_config: unconfig ++ @$(MKCONFIG) $(call xtract_82xx,$@) ppc mpc8260 cpu86 ++ @cd $(obj)include ; \ ++ if [ "$(findstring _ROMBOOT_,$@)" ] ; then \ ++ echo "CONFIG_BOOT_ROM = y" >> config.mk ; \ ++ $(XECHO) "... booting from 8-bit flash" ; \ ++ else \ ++ echo "CONFIG_BOOT_ROM = n" >> config.mk ; \ ++ $(XECHO) "... booting from 64-bit flash" ; \ ++ fi; \ ++ echo "export CONFIG_BOOT_ROM" >> config.mk; ++ ++CPU87_config \ ++CPU87_ROMBOOT_config: unconfig ++ @$(MKCONFIG) $(call xtract_82xx,$@) ppc mpc8260 cpu87 ++ @cd $(obj)include ; \ ++ if [ "$(findstring _ROMBOOT_,$@)" ] ; then \ ++ echo "CONFIG_BOOT_ROM = y" >> config.mk ; \ ++ $(XECHO) "... booting from 8-bit flash" ; \ ++ else \ ++ echo "CONFIG_BOOT_ROM = n" >> config.mk ; \ ++ $(XECHO) "... booting from 64-bit flash" ; \ ++ fi; \ ++ echo "export CONFIG_BOOT_ROM" >> config.mk; ++ ++ep8248_config \ ++ep8248E_config : unconfig ++ @$(MKCONFIG) ep8248 ppc mpc8260 ep8248 ++ ++ep8260_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc8260 ep8260 ++ ++ep82xxm_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc8260 ep82xxm ++ ++gw8260_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc8260 gw8260 ++ ++hymod_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc8260 hymod ++ ++IDS8247_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc8260 ids8247 ++ ++IPHASE4539_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc8260 iphase4539 ++ ++ISPAN_config \ ++ISPAN_REVB_config: unconfig ++ @mkdir -p $(obj)include ++ @if [ "$(findstring _REVB_,$@)" ] ; then \ ++ echo "#define CONFIG_SYS_REV_B" > $(obj)include/config.h ; \ ++ fi ++ @$(MKCONFIG) -a ISPAN ppc mpc8260 ispan ++ ++mgcoge_config : unconfig ++ @$(MKCONFIG) mgcoge ppc mpc8260 mgcoge keymile ++ ++MPC8260ADS_config \ ++MPC8260ADS_lowboot_config \ ++MPC8260ADS_33MHz_config \ ++MPC8260ADS_33MHz_lowboot_config \ ++MPC8260ADS_40MHz_config \ ++MPC8260ADS_40MHz_lowboot_config \ ++MPC8272ADS_config \ ++MPC8272ADS_lowboot_config \ ++PQ2FADS_config \ ++PQ2FADS_lowboot_config \ ++PQ2FADS-VR_config \ ++PQ2FADS-VR_lowboot_config \ ++PQ2FADS-ZU_config \ ++PQ2FADS-ZU_lowboot_config \ ++PQ2FADS-ZU_66MHz_config \ ++PQ2FADS-ZU_66MHz_lowboot_config \ ++ : unconfig ++ @mkdir -p $(obj)include ++ @mkdir -p $(obj)board/freescale/mpc8260ads ++ $(if $(findstring PQ2FADS,$@), \ ++ @echo "#define CONFIG_ADSTYPE CONFIG_SYS_PQ2FADS" > $(obj)include/config.h, \ ++ @echo "#define CONFIG_ADSTYPE CONFIG_SYS_"$(subst MPC,,$(word 1,$(subst _, ,$@))) > $(obj)include/config.h) ++ $(if $(findstring MHz,$@), \ ++ @echo "#define CONFIG_8260_CLKIN" $(subst MHz,,$(word 2,$(subst _, ,$@)))"000000" >> $(obj)include/config.h, \ ++ $(if $(findstring VR,$@), \ ++ @echo "#define CONFIG_8260_CLKIN 66000000" >> $(obj)include/config.h)) ++ @[ -z "$(findstring lowboot_,$@)" ] || \ ++ { echo "TEXT_BASE = 0xFF800000" >$(obj)board/freescale/mpc8260ads/config.tmp ; \ ++ $(XECHO) "... with lowboot configuration" ; \ ++ } ++ @$(MKCONFIG) -a MPC8260ADS ppc mpc8260 mpc8260ads freescale ++ ++MPC8266ADS_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc8260 mpc8266ads freescale ++ ++muas3001_dev_config \ ++muas3001_config : unconfig ++ @mkdir -p $(obj)include ++ @mkdir -p $(obj)board/muas3001 ++ @if [ "$(findstring dev,$@)" ] ; then \ ++ echo "#define CONFIG_MUAS_DEV_BOARD" > $(obj)include/config.h ; \ ++ fi ++ @$(MKCONFIG) -a muas3001 ppc mpc8260 muas3001 ++ ++# PM825/PM826 default configuration: small (= 8 MB) Flash / boot from 64-bit flash ++PM825_config \ ++PM825_ROMBOOT_config \ ++PM825_BIGFLASH_config \ ++PM825_ROMBOOT_BIGFLASH_config \ ++PM826_config \ ++PM826_ROMBOOT_config \ ++PM826_BIGFLASH_config \ ++PM826_ROMBOOT_BIGFLASH_config: unconfig ++ @mkdir -p $(obj)include ++ @mkdir -p $(obj)board/pm826 ++ @if [ "$(findstring PM825_,$@)" ] ; then \ ++ echo "#define CONFIG_PCI" >$(obj)include/config.h ; \ ++ else \ ++ >$(obj)include/config.h ; \ ++ fi ++ @if [ "$(findstring _ROMBOOT_,$@)" ] ; then \ ++ $(XECHO) "... booting from 8-bit flash" ; \ ++ echo "#define CONFIG_BOOT_ROM" >>$(obj)include/config.h ; \ ++ echo "TEXT_BASE = 0xFF800000" >$(obj)board/pm826/config.tmp ; \ ++ if [ "$(findstring _BIGFLASH_,$@)" ] ; then \ ++ $(XECHO) "... with 32 MB Flash" ; \ ++ echo "#define CONFIG_FLASH_32MB" >>$(obj)include/config.h ; \ ++ fi; \ ++ else \ ++ $(XECHO) "... booting from 64-bit flash" ; \ ++ if [ "$(findstring _BIGFLASH_,$@)" ] ; then \ ++ $(XECHO) "... with 32 MB Flash" ; \ ++ echo "#define CONFIG_FLASH_32MB" >>$(obj)include/config.h ; \ ++ echo "TEXT_BASE = 0x40000000" >$(obj)board/pm826/config.tmp ; \ ++ else \ ++ echo "TEXT_BASE = 0xFF000000" >$(obj)board/pm826/config.tmp ; \ ++ fi; \ ++ fi ++ @$(MKCONFIG) -a PM826 ppc mpc8260 pm826 ++ ++PM828_config \ ++PM828_PCI_config \ ++PM828_ROMBOOT_config \ ++PM828_ROMBOOT_PCI_config: unconfig ++ @mkdir -p $(obj)include ++ @mkdir -p $(obj)board/pm826 ++ @if [ "$(findstring _PCI_,$@)" ] ; then \ ++ echo "#define CONFIG_PCI" >>$(obj)include/config.h ; \ ++ $(XECHO) "... with PCI enabled" ; \ ++ fi ++ @if [ "$(findstring _ROMBOOT_,$@)" ] ; then \ ++ $(XECHO) "... booting from 8-bit flash" ; \ ++ echo "#define CONFIG_BOOT_ROM" >>$(obj)include/config.h ; \ ++ echo "TEXT_BASE = 0xFF800000" >$(obj)board/pm826/config.tmp ; \ ++ fi ++ @$(MKCONFIG) -a PM828 ppc mpc8260 pm828 ++ ++ppmc8260_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc8260 ppmc8260 ++ ++Rattler8248_config \ ++Rattler_config: unconfig ++ @mkdir -p $(obj)include ++ $(if $(findstring 8248,$@), \ ++ @echo "#define CONFIG_MPC8248" > $(obj)include/config.h) ++ @$(MKCONFIG) -a Rattler ppc mpc8260 rattler ++ ++RPXsuper_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc8260 rpxsuper ++ ++rsdproto_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc8260 rsdproto ++ ++sacsng_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc8260 sacsng ++ ++sbc8260_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc8260 sbc8260 ++ ++SCM_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc8260 SCM siemens ++ ++TQM8255_AA_config \ ++TQM8260_AA_config \ ++TQM8260_AB_config \ ++TQM8260_AC_config \ ++TQM8260_AD_config \ ++TQM8260_AE_config \ ++TQM8260_AF_config \ ++TQM8260_AG_config \ ++TQM8260_AH_config \ ++TQM8260_AI_config \ ++TQM8265_AA_config: unconfig ++ @mkdir -p $(obj)include ++ @case "$@" in \ ++ TQM8255_AA_config) CTYPE=MPC8255; CFREQ=300; CACHE=no; BMODE=8260;; \ ++ TQM8260_AA_config) CTYPE=MPC8260; CFREQ=200; CACHE=no; BMODE=8260;; \ ++ TQM8260_AB_config) CTYPE=MPC8260; CFREQ=200; CACHE=yes; BMODE=60x;; \ ++ TQM8260_AC_config) CTYPE=MPC8260; CFREQ=200; CACHE=yes; BMODE=60x;; \ ++ TQM8260_AD_config) CTYPE=MPC8260; CFREQ=300; CACHE=no; BMODE=60x;; \ ++ TQM8260_AE_config) CTYPE=MPC8260; CFREQ=266; CACHE=no; BMODE=8260;; \ ++ TQM8260_AF_config) CTYPE=MPC8260; CFREQ=300; CACHE=no; BMODE=60x;; \ ++ TQM8260_AG_config) CTYPE=MPC8260; CFREQ=300; CACHE=no; BMODE=8260;; \ ++ TQM8260_AH_config) CTYPE=MPC8260; CFREQ=300; CACHE=yes; BMODE=60x;; \ ++ TQM8260_AI_config) CTYPE=MPC8260; CFREQ=300; CACHE=no; BMODE=60x;; \ ++ TQM8265_AA_config) CTYPE=MPC8265; CFREQ=300; CACHE=no; BMODE=60x;; \ ++ esac; \ ++ if [ "$${CTYPE}" != "MPC8260" ] ; then \ ++ echo "#define CONFIG_$${CTYPE}" >>$(obj)include/config.h ; \ ++ fi; \ ++ echo "#define CONFIG_$${CFREQ}MHz" >>$(obj)include/config.h ; \ ++ echo "... with $${CFREQ}MHz system clock" ; \ ++ if [ "$${CACHE}" = "yes" ] ; then \ ++ echo "#define CONFIG_L2_CACHE" >>$(obj)include/config.h ; \ ++ $(XECHO) "... with L2 Cache support" ; \ ++ else \ ++ echo "#undef CONFIG_L2_CACHE" >>$(obj)include/config.h ; \ ++ $(XECHO) "... without L2 Cache support" ; \ ++ fi; \ ++ if [ "$${BMODE}" = "60x" ] ; then \ ++ echo "#define CONFIG_BUSMODE_60x" >>$(obj)include/config.h ; \ ++ $(XECHO) "... with 60x Bus Mode" ; \ ++ else \ ++ echo "#undef CONFIG_BUSMODE_60x" >>$(obj)include/config.h ; \ ++ $(XECHO) "... without 60x Bus Mode" ; \ ++ fi ++ @$(MKCONFIG) -a TQM8260 ppc mpc8260 tqm8260 tqc ++ ++TQM8272_config: unconfig ++ @$(MKCONFIG) TQM8272 ppc mpc8260 tqm8272 tqc ++ ++VoVPN-GW_66MHz_config \ ++VoVPN-GW_100MHz_config: unconfig ++ @mkdir -p $(obj)include ++ @echo "#define CONFIG_CLKIN_$(word 2,$(subst _, ,$@))" > $(obj)include/config.h ++ @$(MKCONFIG) -a VoVPN-GW ppc mpc8260 vovpn-gw funkwerk ++ ++ZPC1900_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc8260 zpc1900 ++ ++######################################################################### ++## Coldfire ++######################################################################### ++ ++M5208EVBE_config : unconfig ++ @$(MKCONFIG) $(@:_config=) m68k mcf52x2 m5208evbe freescale ++ ++M52277EVB_config \ ++M52277EVB_spansion_config \ ++M52277EVB_stmicro_config : unconfig ++ @case "$@" in \ ++ M52277EVB_config) FLASH=SPANSION;; \ ++ M52277EVB_spansion_config) FLASH=SPANSION;; \ ++ M52277EVB_stmicro_config) FLASH=STMICRO;; \ ++ esac; \ ++ if [ "$${FLASH}" = "SPANSION" ] ; then \ ++ echo "#define CONFIG_SYS_SPANSION_BOOT" >> $(obj)include/config.h ; \ ++ echo "TEXT_BASE = 0x00000000" > $(obj)board/freescale/m52277evb/config.tmp ; \ ++ cp $(obj)board/freescale/m52277evb/u-boot.spa $(obj)board/freescale/m52277evb/u-boot.lds ; \ ++ $(XECHO) "... with SPANSION boot..." ; \ ++ fi; \ ++ if [ "$${FLASH}" = "STMICRO" ] ; then \ ++ echo "#define CONFIG_CF_SBF" >> $(obj)include/config.h ; \ ++ echo "#define CONFIG_SYS_STMICRO_BOOT" >> $(obj)include/config.h ; \ ++ echo "TEXT_BASE = 0x43E00000" > $(obj)board/freescale/m52277evb/config.tmp ; \ ++ cp $(obj)board/freescale/m52277evb/u-boot.stm $(obj)board/freescale/m52277evb/u-boot.lds ; \ ++ $(XECHO) "... with ST Micro boot..." ; \ ++ fi ++ @$(MKCONFIG) -a M52277EVB m68k mcf5227x m52277evb freescale ++ ++M5235EVB_config \ ++M5235EVB_Flash16_config \ ++M5235EVB_Flash32_config: unconfig ++ @case "$@" in \ ++ M5235EVB_config) FLASH=16;; \ ++ M5235EVB_Flash16_config) FLASH=16;; \ ++ M5235EVB_Flash32_config) FLASH=32;; \ ++ esac; \ ++ if [ "$${FLASH}" != "16" ] ; then \ ++ echo "#define NORFLASH_PS32BIT 1" >> $(obj)include/config.h ; \ ++ echo "TEXT_BASE = 0xFFC00000" > $(obj)board/freescale/m5235evb/config.tmp ; \ ++ cp $(obj)board/freescale/m5235evb/u-boot.32 $(obj)board/freescale/m5235evb/u-boot.lds ; \ ++ else \ ++ echo "TEXT_BASE = 0xFFE00000" > $(obj)board/freescale/m5235evb/config.tmp ; \ ++ cp $(obj)board/freescale/m5235evb/u-boot.16 $(obj)board/freescale/m5235evb/u-boot.lds ; \ ++ fi ++ @$(MKCONFIG) -a M5235EVB m68k mcf523x m5235evb freescale ++ ++M5249EVB_config : unconfig ++ @$(MKCONFIG) $(@:_config=) m68k mcf52x2 m5249evb freescale ++ ++M5253DEMO_config : unconfig ++ @$(MKCONFIG) $(@:_config=) m68k mcf52x2 m5253demo freescale ++ ++M5253EVBE_config : unconfig ++ @$(MKCONFIG) $(@:_config=) m68k mcf52x2 m5253evbe freescale ++ ++cobra5272_config : unconfig ++ @$(MKCONFIG) $(@:_config=) m68k mcf52x2 cobra5272 ++ ++EB+MCF-EV123_config : unconfig ++ @mkdir -p $(obj)include ++ @mkdir -p $(obj)board/BuS/EB+MCF-EV123 ++ @echo "TEXT_BASE = 0xFFE00000"|tee $(obj)board/BuS/EB+MCF-EV123/textbase.mk ++ @$(MKCONFIG) EB+MCF-EV123 m68k mcf52x2 EB+MCF-EV123 BuS ++ ++EB+MCF-EV123_internal_config : unconfig ++ @mkdir -p $(obj)include ++ @mkdir -p $(obj)board/BuS/EB+MCF-EV123 ++ @echo "TEXT_BASE = 0xF0000000"|tee $(obj)board/BuS/EB+MCF-EV123/textbase.mk ++ @$(MKCONFIG) EB+MCF-EV123 m68k mcf52x2 EB+MCF-EV123 BuS ++ ++idmr_config : unconfig ++ @$(MKCONFIG) $(@:_config=) m68k mcf52x2 idmr ++ ++M5271EVB_config : unconfig ++ @$(MKCONFIG) $(@:_config=) m68k mcf52x2 m5271evb freescale ++ ++M5272C3_config : unconfig ++ @$(MKCONFIG) $(@:_config=) m68k mcf52x2 m5272c3 freescale ++ ++M5275EVB_config : unconfig ++ @$(MKCONFIG) $(@:_config=) m68k mcf52x2 m5275evb freescale ++ ++M5282EVB_config : unconfig ++ @$(MKCONFIG) $(@:_config=) m68k mcf52x2 m5282evb freescale ++ ++M53017EVB_config : unconfig ++ @$(MKCONFIG) $(@:_config=) m68k mcf532x m53017evb freescale ++ ++M5329AFEE_config \ ++M5329BFEE_config : unconfig ++ @case "$@" in \ ++ M5329AFEE_config) NAND=0;; \ ++ M5329BFEE_config) NAND=16;; \ ++ esac; \ ++ if [ "$${NAND}" != "0" ] ; then \ ++ echo "#define NANDFLASH_SIZE $${NAND}" > $(obj)include/config.h ; \ ++ fi ++ @$(MKCONFIG) -a M5329EVB m68k mcf532x m5329evb freescale ++ ++M5373EVB_config : unconfig ++ @case "$@" in \ ++ M5373EVB_config) NAND=16;; \ ++ esac; \ ++ if [ "$${NAND}" != "0" ] ; then \ ++ echo "#define NANDFLASH_SIZE $${NAND}" > $(obj)include/config.h ; \ ++ fi ++ @$(MKCONFIG) -a M5373EVB m68k mcf532x m5373evb freescale ++ ++M54451EVB_config \ ++M54451EVB_stmicro_config : unconfig ++ @case "$@" in \ ++ M54451EVB_config) FLASH=NOR;; \ ++ M54451EVB_stmicro_config) FLASH=STMICRO;; \ ++ esac; \ ++ if [ "$${FLASH}" = "NOR" ] ; then \ ++ echo "TEXT_BASE = 0x00000000" > $(obj)board/freescale/m54451evb/config.tmp ; \ ++ cp $(obj)board/freescale/m54451evb/u-boot.spa $(obj)board/freescale/m54451evb/u-boot.lds ; \ ++ $(XECHO) "... with NOR boot..." ; \ ++ fi; \ ++ if [ "$${FLASH}" = "STMICRO" ] ; then \ ++ echo "#define CONFIG_CF_SBF" >> $(obj)include/config.h ; \ ++ echo "#define CONFIG_SYS_STMICRO_BOOT" >> $(obj)include/config.h ; \ ++ echo "TEXT_BASE = 0x47E00000" > $(obj)board/freescale/m54451evb/config.tmp ; \ ++ cp $(obj)board/freescale/m54451evb/u-boot.stm $(obj)board/freescale/m54451evb/u-boot.lds ; \ ++ $(XECHO) "... with ST Micro boot..." ; \ ++ fi; \ ++ echo "#define CONFIG_SYS_INPUT_CLKSRC 24000000" >> $(obj)include/config.h ; ++ @$(MKCONFIG) -a M54451EVB m68k mcf5445x m54451evb freescale ++ ++M54455EVB_config \ ++M54455EVB_atmel_config \ ++M54455EVB_intel_config \ ++M54455EVB_a33_config \ ++M54455EVB_a66_config \ ++M54455EVB_i33_config \ ++M54455EVB_i66_config \ ++M54455EVB_stm33_config : unconfig ++ @case "$@" in \ ++ M54455EVB_config) FLASH=ATMEL; FREQ=33333333;; \ ++ M54455EVB_atmel_config) FLASH=ATMEL; FREQ=33333333;; \ ++ M54455EVB_intel_config) FLASH=INTEL; FREQ=33333333;; \ ++ M54455EVB_a33_config) FLASH=ATMEL; FREQ=33333333;; \ ++ M54455EVB_a66_config) FLASH=ATMEL; FREQ=66666666;; \ ++ M54455EVB_i33_config) FLASH=INTEL; FREQ=33333333;; \ ++ M54455EVB_i66_config) FLASH=INTEL; FREQ=66666666;; \ ++ M54455EVB_stm33_config) FLASH=STMICRO; FREQ=33333333;; \ ++ esac; \ ++ if [ "$${FLASH}" = "INTEL" ] ; then \ ++ echo "#define CONFIG_SYS_INTEL_BOOT" >> $(obj)include/config.h ; \ ++ echo "TEXT_BASE = 0x00000000" > $(obj)board/freescale/m54455evb/config.tmp ; \ ++ cp $(obj)board/freescale/m54455evb/u-boot.int $(obj)board/freescale/m54455evb/u-boot.lds ; \ ++ $(XECHO) "... with INTEL boot..." ; \ ++ fi; \ ++ if [ "$${FLASH}" = "ATMEL" ] ; then \ ++ echo "#define CONFIG_SYS_ATMEL_BOOT" >> $(obj)include/config.h ; \ ++ echo "TEXT_BASE = 0x04000000" > $(obj)board/freescale/m54455evb/config.tmp ; \ ++ cp $(obj)board/freescale/m54455evb/u-boot.atm $(obj)board/freescale/m54455evb/u-boot.lds ; \ ++ $(XECHO) "... with ATMEL boot..." ; \ ++ fi; \ ++ if [ "$${FLASH}" = "STMICRO" ] ; then \ ++ echo "#define CONFIG_CF_SBF" >> $(obj)include/config.h ; \ ++ echo "#define CONFIG_SYS_STMICRO_BOOT" >> $(obj)include/config.h ; \ ++ echo "TEXT_BASE = 0x4FE00000" > $(obj)board/freescale/m54455evb/config.tmp ; \ ++ cp $(obj)board/freescale/m54455evb/u-boot.stm $(obj)board/freescale/m54455evb/u-boot.lds ; \ ++ $(XECHO) "... with ST Micro boot..." ; \ ++ fi; \ ++ echo "#define CONFIG_SYS_INPUT_CLKSRC $${FREQ}" >> $(obj)include/config.h ; \ ++ $(XECHO) "... with $${FREQ}Hz input clock" ++ @$(MKCONFIG) -a M54455EVB m68k mcf5445x m54455evb freescale ++ ++M5475AFE_config \ ++M5475BFE_config \ ++M5475CFE_config \ ++M5475DFE_config \ ++M5475EFE_config \ ++M5475FFE_config \ ++M5475GFE_config : unconfig ++ @case "$@" in \ ++ M5475AFE_config) BOOT=2;CODE=0;VID=0;USB=0;RAM=64;RAM1=0;; \ ++ M5475BFE_config) BOOT=2;CODE=16;VID=0;USB=0;RAM=64;RAM1=0;; \ ++ M5475CFE_config) BOOT=2;CODE=16;VID=1;USB=1;RAM=64;RAM1=0;; \ ++ M5475DFE_config) BOOT=2;CODE=0;VID=0;USB=1;RAM=64;RAM1=0;; \ ++ M5475EFE_config) BOOT=2;CODE=0;VID=1;USB=1;RAM=64;RAM1=0;; \ ++ M5475FFE_config) BOOT=2;CODE=32;VID=1;USB=1;RAM=64;RAM1=64;; \ ++ M5475GFE_config) BOOT=4;CODE=0;VID=0;USB=0;RAM=64;RAM1=0;; \ ++ esac; \ ++ echo "#define CONFIG_SYS_BUSCLK 133333333" > $(obj)include/config.h ; \ ++ echo "#define CONFIG_SYS_BOOTSZ $${BOOT}" >> $(obj)include/config.h ; \ ++ echo "#define CONFIG_SYS_DRAMSZ $${RAM}" >> $(obj)include/config.h ; \ ++ if [ "$${RAM1}" != "0" ] ; then \ ++ echo "#define CONFIG_SYS_DRAMSZ1 $${RAM1}" >> $(obj)include/config.h ; \ ++ fi; \ ++ if [ "$${CODE}" != "0" ] ; then \ ++ echo "#define CONFIG_SYS_NOR1SZ $${CODE}" >> $(obj)include/config.h ; \ ++ fi; \ ++ if [ "$${VID}" == "1" ] ; then \ ++ echo "#define CONFIG_SYS_VIDEO" >> $(obj)include/config.h ; \ ++ fi; \ ++ if [ "$${USB}" == "1" ] ; then \ ++ echo "#define CONFIG_SYS_USBCTRL" >> $(obj)include/config.h ; \ ++ fi ++ @$(MKCONFIG) -a M5475EVB m68k mcf547x_8x m547xevb freescale ++ ++M5485AFE_config \ ++M5485BFE_config \ ++M5485CFE_config \ ++M5485DFE_config \ ++M5485EFE_config \ ++M5485FFE_config \ ++M5485GFE_config \ ++M5485HFE_config : unconfig ++ @case "$@" in \ ++ M5485AFE_config) BOOT=2;CODE=0;VID=0;USB=0;RAM=64;RAM1=0;; \ ++ M5485BFE_config) BOOT=2;CODE=16;VID=0;USB=0;RAM=64;RAM1=0;; \ ++ M5485CFE_config) BOOT=2;CODE=16;VID=1;USB=1;RAM=64;RAM1=0;; \ ++ M5485DFE_config) BOOT=2;CODE=0;VID=0;USB=1;RAM=64;RAM1=0;; \ ++ M5485EFE_config) BOOT=2;CODE=0;VID=1;USB=1;RAM=64;RAM1=0;; \ ++ M5485FFE_config) BOOT=2;CODE=32;VID=1;USB=1;RAM=64;RAM1=64;; \ ++ M5485GFE_config) BOOT=4;CODE=0;VID=0;USB=0;RAM=64;RAM1=0;; \ ++ M5485HFE_config) BOOT=2;CODE=16;VID=1;USB=0;RAM=64;RAM1=0;; \ ++ esac; \ ++ echo "#define CONFIG_SYS_BUSCLK 100000000" > $(obj)include/config.h ; \ ++ echo "#define CONFIG_SYS_BOOTSZ $${BOOT}" >> $(obj)include/config.h ; \ ++ echo "#define CONFIG_SYS_DRAMSZ $${RAM}" >> $(obj)include/config.h ; \ ++ if [ "$${RAM1}" != "0" ] ; then \ ++ echo "#define CONFIG_SYS_DRAMSZ1 $${RAM1}" >> $(obj)include/config.h ; \ ++ fi; \ ++ if [ "$${CODE}" != "0" ] ; then \ ++ echo "#define CONFIG_SYS_NOR1SZ $${CODE}" >> $(obj)include/config.h ; \ ++ fi; \ ++ if [ "$${VID}" == "1" ] ; then \ ++ echo "#define CONFIG_SYS_VIDEO" >> $(obj)include/config.h ; \ ++ fi; \ ++ if [ "$${USB}" == "1" ] ; then \ ++ echo "#define CONFIG_SYS_USBCTRL" >> $(obj)include/config.h ; \ ++ fi ++ @$(MKCONFIG) -a M5485EVB m68k mcf547x_8x m548xevb freescale ++ ++TASREG_config : unconfig ++ @$(MKCONFIG) $(@:_config=) m68k mcf52x2 tasreg esd ++ ++######################################################################### ++## MPC83xx Systems ++######################################################################### ++ ++kmeter1_config: unconfig ++ @$(MKCONFIG) kmeter1 ppc mpc83xx kmeter1 keymile ++ ++MPC8313ERDB_33_config \ ++MPC8313ERDB_66_config \ ++MPC8313ERDB_NAND_33_config \ ++MPC8313ERDB_NAND_66_config: unconfig ++ @mkdir -p $(obj)include ++ @mkdir -p $(obj)board/freescale/mpc8313erdb ++ @if [ "$(findstring _33_,$@)" ] ; then \ ++ $(XECHO) -n "...33M ..." ; \ ++ echo "#define CONFIG_SYS_33MHZ" >>$(obj)include/config.h ; \ ++ fi ; \ ++ if [ "$(findstring _66_,$@)" ] ; then \ ++ $(XECHO) -n "...66M..." ; \ ++ echo "#define CONFIG_SYS_66MHZ" >>$(obj)include/config.h ; \ ++ fi ; \ ++ if [ "$(findstring _NAND_,$@)" ] ; then \ ++ $(XECHO) -n "...NAND..." ; \ ++ echo "TEXT_BASE = 0x00100000" > $(obj)board/freescale/mpc8313erdb/config.tmp ; \ ++ echo "#define CONFIG_NAND_U_BOOT" >>$(obj)include/config.h ; \ ++ fi ; ++ @$(MKCONFIG) -a MPC8313ERDB ppc mpc83xx mpc8313erdb freescale ++ @if [ "$(findstring _NAND_,$@)" ] ; then \ ++ echo "CONFIG_NAND_U_BOOT = y" >> $(obj)include/config.mk ; \ ++ fi ; ++ ++MPC8315ERDB_config: unconfig ++ @$(MKCONFIG) -a MPC8315ERDB ppc mpc83xx mpc8315erdb freescale ++ ++MPC8323ERDB_config: unconfig ++ @$(MKCONFIG) -a MPC8323ERDB ppc mpc83xx mpc8323erdb freescale ++ ++MPC832XEMDS_config \ ++MPC832XEMDS_HOST_33_config \ ++MPC832XEMDS_HOST_66_config \ ++MPC832XEMDS_SLAVE_config \ ++MPC832XEMDS_ATM_config: unconfig ++ @mkdir -p $(obj)include ++ @if [ "$(findstring _HOST_,$@)" ] ; then \ ++ $(XECHO) -n "... PCI HOST " ; \ ++ echo "#define CONFIG_PCI" >>$(obj)include/config.h ; \ ++ fi ; \ ++ if [ "$(findstring _SLAVE_,$@)" ] ; then \ ++ $(XECHO) "...PCI SLAVE 66M" ; \ ++ echo "#define CONFIG_PCI" >>$(obj)include/config.h ; \ ++ echo "#define CONFIG_PCISLAVE" >>$(obj)include/config.h ; \ ++ fi ; \ ++ if [ "$(findstring _33_,$@)" ] ; then \ ++ $(XECHO) -n "...33M ..." ; \ ++ echo "#define PCI_33M" >>$(obj)include/config.h ; \ ++ echo "#define CONFIG_PQ_MDS_PIB 1" >>$(obj)include/config.h ; \ ++ fi ; \ ++ if [ "$(findstring _66_,$@)" ] ; then \ ++ $(XECHO) -n "...66M..." ; \ ++ echo "#define PCI_66M" >>$(obj)include/config.h ; \ ++ echo "#define CONFIG_PQ_MDS_PIB 1" >>$(obj)include/config.h ; \ ++ fi ; \ ++ if [ "$(findstring _ATM_,$@)" ] ; then \ ++ $(XECHO) -n "...ATM..." ; \ ++ echo "#define CONFIG_PQ_MDS_PIB 1" >>$(obj)include/config.h ; \ ++ echo "#define CONFIG_PQ_MDS_PIB_ATM 1" >>$(obj)include/config.h ; \ ++ fi ; ++ @$(MKCONFIG) -a MPC832XEMDS ppc mpc83xx mpc832xemds freescale ++ ++MPC8349EMDS_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc83xx mpc8349emds freescale ++ ++MPC8349ITX_config \ ++MPC8349ITX_LOWBOOT_config \ ++MPC8349ITXGP_config: unconfig ++ @mkdir -p $(obj)include ++ @mkdir -p $(obj)board/freescale/mpc8349itx ++ @echo "#define CONFIG_$(subst _LOWBOOT,,$(@:_config=))" >> $(obj)include/config.h ++ @if [ "$(findstring GP,$@)" ] ; then \ ++ echo "TEXT_BASE = 0xFE000000" >$(obj)board/freescale/mpc8349itx/config.tmp ; \ ++ fi ++ @if [ "$(findstring LOWBOOT,$@)" ] ; then \ ++ echo "TEXT_BASE = 0xFE000000" >$(obj)board/freescale/mpc8349itx/config.tmp ; \ ++ fi ++ @$(MKCONFIG) -a -n $(@:_config=) MPC8349ITX ppc mpc83xx mpc8349itx freescale ++ ++MPC8360EMDS_config \ ++MPC8360EMDS_HOST_33_config \ ++MPC8360EMDS_HOST_66_config \ ++MPC8360EMDS_SLAVE_config \ ++MPC8360EMDS_ATM_config: unconfig ++ @mkdir -p $(obj)include ++ @if [ "$(findstring _HOST_,$@)" ] ; then \ ++ $(XECHO) -n "... PCI HOST " ; \ ++ echo "#define CONFIG_PCI" >>$(obj)include/config.h ; \ ++ fi ; \ ++ if [ "$(findstring _SLAVE_,$@)" ] ; then \ ++ $(XECHO) "...PCI SLAVE 66M" ; \ ++ echo "#define CONFIG_PCI" >>$(obj)include/config.h ; \ ++ echo "#define CONFIG_PCISLAVE" >>$(obj)include/config.h ; \ ++ fi ; \ ++ if [ "$(findstring _33_,$@)" ] ; then \ ++ $(XECHO) -n "...33M ..." ; \ ++ echo "#define PCI_33M" >>$(obj)include/config.h ; \ ++ echo "#define CONFIG_PQ_MDS_PIB 1" >>$(obj)include/config.h ; \ ++ fi ; \ ++ if [ "$(findstring _66_,$@)" ] ; then \ ++ $(XECHO) -n "...66M..." ; \ ++ echo "#define PCI_66M" >>$(obj)include/config.h ; \ ++ echo "#define CONFIG_PQ_MDS_PIB 1" >>$(obj)include/config.h ; \ ++ fi ; \ ++ if [ "$(findstring _ATM_,$@)" ] ; then \ ++ $(XECHO) -n "...ATM..." ; \ ++ echo "#define CONFIG_PQ_MDS_PIB 1" >>$(obj)include/config.h ; \ ++ echo "#define CONFIG_PQ_MDS_PIB_ATM 1" >>$(obj)include/config.h ; \ ++ fi ; ++ @$(MKCONFIG) -a MPC8360EMDS ppc mpc83xx mpc8360emds freescale ++ ++MPC8360ERDK_33_config \ ++MPC8360ERDK_66_config \ ++MPC8360ERDK_config: unconfig ++ @mkdir -p $(obj)include ++ @if [ "$(findstring _33_,$@)" ] ; then \ ++ $(XECHO) -n "... CLKIN 33MHz " ; \ ++ echo "#define CONFIG_CLKIN_33MHZ" >>$(obj)include/config.h ;\ ++ fi ; ++ @$(MKCONFIG) -a MPC8360ERDK ppc mpc83xx mpc8360erdk freescale ++ ++MPC837XEMDS_config \ ++MPC837XEMDS_HOST_config: unconfig ++ @mkdir -p $(obj)include ++ @if [ "$(findstring _HOST_,$@)" ] ; then \ ++ $(XECHO) -n "... PCI HOST " ; \ ++ echo "#define CONFIG_PCI" >>$(obj)include/config.h ; \ ++ fi ; ++ @$(MKCONFIG) -a MPC837XEMDS ppc mpc83xx mpc837xemds freescale ++ ++MPC837XERDB_config: unconfig ++ @$(MKCONFIG) -a MPC837XERDB ppc mpc83xx mpc837xerdb freescale ++ ++MVBLM7_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc83xx mvblm7 matrix_vision ++ ++sbc8349_config \ ++sbc8349_PCI_33_config \ ++sbc8349_PCI_66_config: unconfig ++ @$(MKCONFIG) -t $(@:_config=) sbc8349 ppc mpc83xx sbc8349 ++ ++SIMPC8313_LP_config \ ++SIMPC8313_SP_config: unconfig ++ @mkdir -p $(obj)include ++ @mkdir -p $(obj)board/sheldon/simpc8313 ++ @if [ "$(findstring _LP_,$@)" ] ; then \ ++ $(XECHO) -n "...Large Page NAND..." ; \ ++ echo "#define CONFIG_NAND_LP" >> $(obj)include/config.h ; \ ++ fi ; \ ++ if [ "$(findstring _SP_,$@)" ] ; then \ ++ $(XECHO) -n "...Small Page NAND..." ; \ ++ echo "#define CONFIG_NAND_SP" >> $(obj)include/config.h ; \ ++ fi ; ++ @$(MKCONFIG) -a SIMPC8313 ppc mpc83xx simpc8313 sheldon ++ @echo "CONFIG_NAND_U_BOOT = y" >> $(obj)include/config.mk ++ ++TQM834x_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc83xx tqm834x tqc ++ ++vme8349_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc83xx vme8349 esd ++ ++######################################################################### ++## MPC85xx Systems ++######################################################################### ++ ++ATUM8548_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc85xx atum8548 ++ ++MPC8536DS_NAND_config \ ++MPC8536DS_SDCARD_config \ ++MPC8536DS_SPIFLASH_config \ ++MPC8536DS_36BIT_config \ ++MPC8536DS_config: unconfig ++ @$(MKCONFIG) -t $(@:_config=) MPC8536DS ppc mpc85xx mpc8536ds freescale ++ ++MPC8540ADS_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc85xx mpc8540ads freescale ++ ++MPC8540EVAL_config \ ++MPC8540EVAL_33_config \ ++MPC8540EVAL_66_config \ ++MPC8540EVAL_33_slave_config \ ++MPC8540EVAL_66_slave_config: unconfig ++ @mkdir -p $(obj)include ++ @if [ "$(findstring _33_,$@)" ] ; then \ ++ $(XECHO) "... 33 MHz PCI" ; \ ++ else \ ++ echo "#define CONFIG_SYSCLK_66M" >>$(obj)include/config.h ; \ ++ $(XECHO) "... 66 MHz PCI" ; \ ++ fi ; \ ++ if [ "$(findstring _slave_,$@)" ] ; then \ ++ echo "#define CONFIG_PCI_SLAVE" >>$(obj)include/config.h ; \ ++ $(XECHO) " slave" ; \ ++ else \ ++ $(XECHO) " host" ; \ ++ fi ++ @$(MKCONFIG) -a MPC8540EVAL ppc mpc85xx mpc8540eval ++ ++MPC8560ADS_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc85xx mpc8560ads freescale ++ ++MPC8541CDS_legacy_config \ ++MPC8541CDS_config: unconfig ++ @mkdir -p $(obj)include ++ @if [ "$(findstring _legacy_,$@)" ] ; then \ ++ echo "#define CONFIG_LEGACY" >>$(obj)include/config.h ; \ ++ $(XECHO) "... legacy" ; \ ++ fi ++ @$(MKCONFIG) -a MPC8541CDS ppc mpc85xx mpc8541cds freescale ++ ++MPC8544DS_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc85xx mpc8544ds freescale ++ ++MPC8548CDS_legacy_config \ ++MPC8548CDS_config: unconfig ++ @mkdir -p $(obj)include ++ @if [ "$(findstring _legacy_,$@)" ] ; then \ ++ echo "#define CONFIG_LEGACY" >>$(obj)include/config.h ; \ ++ $(XECHO) "... legacy" ; \ ++ fi ++ @$(MKCONFIG) -a MPC8548CDS ppc mpc85xx mpc8548cds freescale ++ ++MPC8555CDS_legacy_config \ ++MPC8555CDS_config: unconfig ++ @mkdir -p $(obj)include ++ @if [ "$(findstring _legacy_,$@)" ] ; then \ ++ echo "#define CONFIG_LEGACY" >>$(obj)include/config.h ; \ ++ $(XECHO) "... legacy" ; \ ++ fi ++ @$(MKCONFIG) -a MPC8555CDS ppc mpc85xx mpc8555cds freescale ++ ++MPC8568MDS_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc85xx mpc8568mds freescale ++ ++MPC8569MDS_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc85xx mpc8569mds freescale ++ ++MPC8572DS_36BIT_config \ ++MPC8572DS_config: unconfig ++ @$(MKCONFIG) -t $(@:_config=) MPC8572DS ppc mpc85xx mpc8572ds freescale ++ ++P2020DS_36BIT_config \ ++P2020DS_config: unconfig ++ @$(MKCONFIG) -t $(@:_config=) P2020DS ppc mpc85xx p2020ds freescale ++ ++P1011RDB_config \ ++P1011RDB_NAND_config \ ++P1011RDB_SDCARD_config \ ++P1011RDB_SPIFLASH_config \ ++P1020RDB_config \ ++P1020RDB_NAND_config \ ++P1020RDB_SDCARD_config \ ++P1020RDB_SPIFLASH_config \ ++P2010RDB_config \ ++P2010RDB_NAND_config \ ++P2010RDB_SDCARD_config \ ++P2010RDB_SPIFLASH_config \ ++P2020RDB_config \ ++P2020RDB_NAND_config \ ++P2020RDB_SDCARD_config \ ++P2020RDB_SPIFLASH_config: unconfig ++ @$(MKCONFIG) -t $(@:_config=) P1_P2_RDB ppc mpc85xx p1_p2_rdb freescale ++ ++PM854_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc85xx pm854 ++ ++PM856_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc85xx pm856 ++ ++sbc8540_config \ ++sbc8540_33_config \ ++sbc8540_66_config: unconfig ++ @$(MKCONFIG) -t $(@:_config=) SBC8540 ppc mpc85xx sbc8560 ++ ++sbc8548_config \ ++sbc8548_PCI_33_config \ ++sbc8548_PCI_66_config \ ++sbc8548_PCI_33_PCIE_config \ ++sbc8548_PCI_66_PCIE_config: unconfig ++ @$(MKCONFIG) -t $(@:_config=) sbc8548 ppc mpc85xx sbc8548 ++ ++sbc8560_config \ ++sbc8560_33_config \ ++sbc8560_66_config: unconfig ++ @$(MKCONFIG) -t $(@:_config=) sbc8560 ppc mpc85xx sbc8560 ++ ++socrates_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc85xx socrates ++ ++stxgp3_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc85xx stxgp3 stx ++ ++stxssa_config \ ++stxssa_4M_config: unconfig ++ @mkdir -p $(obj)include ++ @if [ "$(findstring _4M_,$@)" ] ; then \ ++ echo "#define CONFIG_STXSSA_4M" >>$(obj)include/config.h ; \ ++ $(XECHO) "... with 4 MiB flash memory" ; \ ++ fi ++ @$(MKCONFIG) -a stxssa ppc mpc85xx stxssa stx ++ ++TQM8540_config \ ++TQM8541_config \ ++TQM8548_config \ ++TQM8548_AG_config \ ++TQM8548_BE_config \ ++TQM8555_config \ ++TQM8560_config: unconfig ++ @mkdir -p $(obj)include ++ @BTYPE=$(@:_config=); \ ++ CTYPE=$(subst TQM,,$(subst _AG,,$(subst _BE,,$(@:_config=)))); \ ++ $(XECHO) "... "$${BTYPE}" (MPC"$${CTYPE}")"; \ ++ echo "#define CONFIG_MPC$${CTYPE}">>$(obj)include/config.h; \ ++ echo "#define CONFIG_$${BTYPE}">>$(obj)include/config.h; \ ++ echo "#define CONFIG_HOSTNAME tqm$${CTYPE}">>$(obj)include/config.h; \ ++ echo "#define CONFIG_BOARDNAME \"$${BTYPE}\"">>$(obj)include/config.h; ++ @$(MKCONFIG) -a TQM85xx ppc mpc85xx tqm85xx tqc ++ @echo "CONFIG_$(@:_config=) = y">>$(obj)include/config.mk; ++ ++XPEDITE5200_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc85xx xpedite5200 xes ++ ++XPEDITE5370_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc85xx xpedite5370 xes ++ ++######################################################################### ++## MPC86xx Systems ++######################################################################### ++ ++MPC8610HPCD_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc86xx mpc8610hpcd freescale ++ ++MPC8641HPCN_36BIT_config \ ++MPC8641HPCN_config: unconfig ++ @mkdir -p $(obj)include ++ @if [ "$(findstring _36BIT_,$@)" ] ; then \ ++ echo "#define CONFIG_PHYS_64BIT" >>$(obj)include/config.h ; \ ++ $(XECHO) "... enabling 36-bit physical addressing." ; \ ++ fi ++ @$(MKCONFIG) -a MPC8641HPCN ppc mpc86xx mpc8641hpcn freescale ++ ++sbc8641d_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc86xx sbc8641d ++ ++XPEDITE5170_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc mpc86xx xpedite5170 xes ++ ++######################################################################### ++## 74xx/7xx Systems ++######################################################################### ++ ++AmigaOneG3SE_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc 74xx_7xx AmigaOneG3SE MAI ++ ++BAB7xx_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc 74xx_7xx bab7xx eltec ++ ++CPCI750_config: unconfig ++ @$(MKCONFIG) CPCI750 ppc 74xx_7xx cpci750 esd ++ ++DB64360_config: unconfig ++ @$(MKCONFIG) DB64360 ppc 74xx_7xx db64360 Marvell ++ ++DB64460_config: unconfig ++ @$(MKCONFIG) DB64460 ppc 74xx_7xx db64460 Marvell ++ ++ELPPC_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc 74xx_7xx elppc eltec ++ ++EVB64260_config \ ++EVB64260_750CX_config: unconfig ++ @$(MKCONFIG) EVB64260 ppc 74xx_7xx evb64260 ++ ++mpc7448hpc2_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc 74xx_7xx mpc7448hpc2 freescale ++ ++P3G4_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc 74xx_7xx evb64260 ++ ++p3m750_config \ ++p3m7448_config: unconfig ++ @mkdir -p $(obj)include ++ @if [ "$(findstring 750_,$@)" ] ; then \ ++ echo "#define CONFIG_P3M750" >>$(obj)include/config.h ; \ ++ else \ ++ echo "#define CONFIG_P3M7448" >>$(obj)include/config.h ; \ ++ fi ++ @$(MKCONFIG) -a p3mx ppc 74xx_7xx p3mx prodrive ++ ++PCIPPC2_config \ ++PCIPPC6_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc 74xx_7xx pcippc2 ++ ++ppmc7xx_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc 74xx_7xx ppmc7xx ++ ++ZUMA_config: unconfig ++ @$(MKCONFIG) $(@:_config=) ppc 74xx_7xx evb64260 ++ ++#======================================================================== ++# ARM ++#======================================================================== ++######################################################################### ++## StrongARM Systems ++######################################################################### ++ ++assabet_config : unconfig ++ @$(MKCONFIG) $(@:_config=) arm sa1100 assabet ++ ++dnp1110_config : unconfig ++ @$(MKCONFIG) $(@:_config=) arm sa1100 dnp1110 ++ ++gcplus_config : unconfig ++ @$(MKCONFIG) $(@:_config=) arm sa1100 gcplus ++ ++lart_config : unconfig ++ @$(MKCONFIG) $(@:_config=) arm sa1100 lart ++ ++shannon_config : unconfig ++ @$(MKCONFIG) $(@:_config=) arm sa1100 shannon ++ ++######################################################################### ++## ARM92xT Systems ++######################################################################### ++ ++######################################################################### ++## Atmel AT91RM9200 Systems ++######################################################################### ++ ++at91rm9200dk_config : unconfig ++ @$(MKCONFIG) $(@:_config=) arm arm920t at91rm9200dk atmel at91rm9200 ++ ++at91rm9200ek_config : unconfig ++ @$(MKCONFIG) $(@:_config=) arm arm920t at91rm9200ek atmel at91rm9200 ++ ++cmc_pu2_config : unconfig ++ @$(MKCONFIG) $(@:_config=) arm arm920t cmc_pu2 NULL at91rm9200 ++ ++CPUAT91_RAM_config \ ++CPUAT91_config : unconfig ++ @mkdir -p $(obj)include ++ @echo "#define CONFIG_$(@:_config=) 1" >$(obj)include/config.h ++ @$(MKCONFIG) -a cpuat91 arm arm920t cpuat91 eukrea at91rm9200 ++ ++csb637_config : unconfig ++ @$(MKCONFIG) $(@:_config=) arm arm920t csb637 NULL at91rm9200 ++ ++kb9202_config : unconfig ++ @$(MKCONFIG) $(@:_config=) arm arm920t kb9202 NULL at91rm9200 ++ ++m501sk_config : unconfig ++ @$(MKCONFIG) $(@:_config=) arm arm920t m501sk NULL at91rm9200 ++ ++mp2usb_config : unconfig ++ @$(MKCONFIG) $(@:_config=) arm arm920t mp2usb NULL at91rm9200 ++ ++######################################################################### ++## Atmel ARM926EJ-S Systems ++######################################################################### ++ ++afeb9260_config: unconfig ++ @$(MKCONFIG) $(@:_config=) arm arm926ejs afeb9260 NULL at91 ++ ++at91cap9adk_config : unconfig ++ @$(MKCONFIG) $(@:_config=) arm arm926ejs at91cap9adk atmel at91 ++ ++at91sam9260ek_nandflash_config \ ++at91sam9260ek_dataflash_cs0_config \ ++at91sam9260ek_dataflash_cs1_config \ ++at91sam9260ek_config \ ++at91sam9g20ek_nandflash_config \ ++at91sam9g20ek_dataflash_cs0_config \ ++at91sam9g20ek_dataflash_cs1_config \ ++at91sam9g20ek_config : unconfig ++ @mkdir -p $(obj)include ++ @if [ "$(findstring 9g20,$@)" ] ; then \ ++ echo "#define CONFIG_AT91SAM9G20EK 1" >>$(obj)include/config.h ; \ ++ $(XECHO) "... 9G20 Variant" ; \ ++ else \ ++ echo "#define CONFIG_AT91SAM9260EK 1" >>$(obj)include/config.h ; \ ++ fi; ++ @if [ "$(findstring _nandflash,$@)" ] ; then \ ++ echo "#define CONFIG_SYS_USE_NANDFLASH 1" >>$(obj)include/config.h ; \ ++ $(XECHO) "... with environment variable in NAND FLASH" ; \ ++ elif [ "$(findstring dataflash_cs0,$@)" ] ; then \ ++ echo "#define CONFIG_SYS_USE_DATAFLASH_CS0 1" >>$(obj)include/config.h ; \ ++ $(XECHO) "... with environment variable in SPI DATAFLASH CS0" ; \ ++ else \ ++ echo "#define CONFIG_SYS_USE_DATAFLASH_CS1 1" >>$(obj)include/config.h ; \ ++ $(XECHO) "... with environment variable in SPI DATAFLASH CS1" ; \ ++ fi; ++ @$(MKCONFIG) -a at91sam9260ek arm arm926ejs at91sam9260ek atmel at91 ++ ++at91sam9xeek_nandflash_config \ ++at91sam9xeek_dataflash_cs0_config \ ++at91sam9xeek_dataflash_cs1_config \ ++at91sam9xeek_config : unconfig ++ @mkdir -p $(obj)include ++ @if [ "$(findstring _nandflash,$@)" ] ; then \ ++ echo "#define CONFIG_SYS_USE_NANDFLASH 1" >>$(obj)include/config.h ; \ ++ $(XECHO) "... with environment variable in NAND FLASH" ; \ ++ elif [ "$(findstring dataflash_cs0,$@)" ] ; then \ ++ echo "#define CONFIG_SYS_USE_DATAFLASH_CS0 1" >>$(obj)include/config.h ; \ ++ $(XECHO) "... with environment variable in SPI DATAFLASH CS0" ; \ ++ else \ ++ echo "#define CONFIG_SYS_USE_DATAFLASH_CS1 1" >>$(obj)include/config.h ; \ ++ $(XECHO) "... with environment variable in SPI DATAFLASH CS1" ; \ ++ fi; ++ @$(MKCONFIG) -n at91sam9xeek -a at91sam9260ek arm arm926ejs at91sam9260ek atmel at91 ++ ++at91sam9261ek_nandflash_config \ ++at91sam9261ek_dataflash_cs0_config \ ++at91sam9261ek_dataflash_cs3_config \ ++at91sam9261ek_config \ ++at91sam9g10ek_nandflash_config \ ++at91sam9g10ek_dataflash_cs0_config \ ++at91sam9g10ek_dataflash_cs3_config \ ++at91sam9g10ek_config : unconfig ++ @mkdir -p $(obj)include ++ @if [ "$(findstring 9g10,$@)" ] ; then \ ++ echo "#define CONFIG_AT91SAM9G10EK 1" >>$(obj)include/config.h ; \ ++ $(XECHO) "... 9G10 Variant" ; \ ++ else \ ++ echo "#define CONFIG_AT91SAM9261EK 1" >>$(obj)include/config.h ; \ ++ fi; ++ @if [ "$(findstring _nandflash,$@)" ] ; then \ ++ echo "#define CONFIG_SYS_USE_NANDFLASH 1" >>$(obj)include/config.h ; \ ++ $(XECHO) "... with environment variable in NAND FLASH" ; \ ++ elif [ "$(findstring dataflash_cs0,$@)" ] ; then \ ++ echo "#define CONFIG_SYS_USE_DATAFLASH_CS3 1" >>$(obj)include/config.h ; \ ++ $(XECHO) "... with environment variable in SPI DATAFLASH CS3" ; \ ++ else \ ++ echo "#define CONFIG_SYS_USE_DATAFLASH_CS0 1" >>$(obj)include/config.h ; \ ++ $(XECHO) "... with environment variable in SPI DATAFLASH CS0" ; \ ++ fi; ++ @$(MKCONFIG) -a at91sam9261ek arm arm926ejs at91sam9261ek atmel at91 ++ ++at91sam9263ek_norflash_config \ ++at91sam9263ek_norflash_boot_config \ ++at91sam9263ek_nandflash_config \ ++at91sam9263ek_dataflash_config \ ++at91sam9263ek_dataflash_cs0_config \ ++at91sam9263ek_config : unconfig ++ @mkdir -p $(obj)include ++ @if [ "$(findstring _nandflash,$@)" ] ; then \ ++ echo "#define CONFIG_SYS_USE_NANDFLASH 1" >>$(obj)include/config.h ; \ ++ $(XECHO) "... with environment variable in NAND FLASH" ; \ ++ elif [ "$(findstring norflash,$@)" ] ; then \ ++ echo "#define CONFIG_SYS_USE_NORFLASH 1" >>$(obj)include/config.h ; \ ++ $(XECHO) "... with environment variable in NOR FLASH" ; \ ++ else \ ++ echo "#define CONFIG_SYS_USE_DATAFLASH 1" >>$(obj)include/config.h ; \ ++ $(XECHO) "... with environment variable in SPI DATAFLASH CS0" ; \ ++ fi; ++ @if [ "$(findstring norflash_boot,$@)" ] ; then \ ++ echo "#define CONFIG_SYS_USE_BOOT_NORFLASH 1" >>$(obj)include/config.h ; \ ++ $(XECHO) "... and boot from NOR FLASH" ; \ ++ fi; ++ @$(MKCONFIG) -a at91sam9263ek arm arm926ejs at91sam9263ek atmel at91 ++ ++at91sam9rlek_nandflash_config \ ++at91sam9rlek_dataflash_config \ ++at91sam9rlek_dataflash_cs0_config \ ++at91sam9rlek_config : unconfig ++ @mkdir -p $(obj)include ++ @if [ "$(findstring _nandflash,$@)" ] ; then \ ++ echo "#define CONFIG_SYS_USE_NANDFLASH 1" >>$(obj)include/config.h ; \ ++ $(XECHO) "... with environment variable in NAND FLASH" ; \ ++ else \ ++ echo "#define CONFIG_SYS_USE_DATAFLASH 1" >>$(obj)include/config.h ; \ ++ $(XECHO) "... with environment variable in SPI DATAFLASH CS0" ; \ ++ fi; ++ @$(MKCONFIG) -a at91sam9rlek arm arm926ejs at91sam9rlek atmel at91 ++ ++CPU9G20_128M_config \ ++CPU9G20_config \ ++CPU9260_128M_config \ ++CPU9260_config : unconfig ++ @mkdir -p $(obj)include ++ @echo "#define CONFIG_$(@:_config=) 1" >$(obj)include/config.h ++ @$(MKCONFIG) -a cpu9260 arm arm926ejs cpu9260 eukrea at91 ++ ++meesc_config : unconfig ++ @$(MKCONFIG) $(@:_config=) arm arm926ejs meesc esd at91 ++ ++pm9261_config : unconfig ++ @$(MKCONFIG) $(@:_config=) arm arm926ejs pm9261 ronetix at91 ++ ++at91sam9m10g45ek_nandflash_config \ ++at91sam9m10g45ek_dataflash_config \ ++at91sam9m10g45ek_dataflash_cs0_config \ ++at91sam9m10g45ek_config \ ++at91sam9g45ekes_nandflash_config \ ++at91sam9g45ekes_dataflash_config \ ++at91sam9g45ekes_dataflash_cs0_config \ ++at91sam9g45ekes_config : unconfig ++ @mkdir -p $(obj)include ++ @if [ "$(findstring 9m10,$@)" ] ; then \ ++ echo "#define CONFIG_AT91SAM9M10G45EK 1" >>$(obj)include/config.h ; \ ++ $(XECHO) "... 9M10G45 Variant" ; \ ++ else \ ++ echo "#define CONFIG_AT91SAM9G45EKES 1" >>$(obj)include/config.h ; \ ++ fi; ++ ++ @if [ "$(findstring _nandflash,$@)" ] ; then \ ++ echo "#define CONFIG_SYS_USE_NANDFLASH 1" >>$(obj)include/config.h ; \ ++ $(XECHO) "... with environment variable in NAND FLASH" ; \ ++ else \ ++ echo "#define CONFIG_ATMEL_SPI 1" >>$(obj)include/config.h ; \ ++ $(XECHO) "... with environment variable in SPI DATAFLASH CS0" ; \ ++ fi; ++ @$(MKCONFIG) -a at91sam9m10g45ek arm arm926ejs at91sam9m10g45ek atmel at91 ++ ++pm9263_config : unconfig ++ @$(MKCONFIG) $(@:_config=) arm arm926ejs pm9263 ronetix at91 ++ ++SBC35_A9G20_NANDFLASH_config \ ++SBC35_A9G20_EEPROM_config \ ++SBC35_A9G20_config : unconfig ++ @mkdir -p $(obj)include ++ @echo "#define CONFIG_$(@:_config=) 1" >$(obj)include/config.h ++ @$(MKCONFIG) -a sbc35_a9g20 arm arm926ejs sbc35_a9g20 calao at91 ++ ++TNY_A9G20_NANDFLASH_config \ ++TNY_A9G20_EEPROM_config \ ++TNY_A9G20_config \ ++TNY_A9260_NANDFLASH_config \ ++TNY_A9260_EEPROM_config \ ++TNY_A9260_config : unconfig ++ @mkdir -p $(obj)include ++ @echo "#define CONFIG_$(@:_config=) 1" >$(obj)include/config.h ++ @$(MKCONFIG) -a tny_a9260 arm arm926ejs tny_a9260 calao at91 ++ ++######################################################################## ++## ARM Integrator boards - see doc/README-integrator for more info. ++integratorap_config \ ++ap_config \ ++ap966_config \ ++ap922_config \ ++ap922_XA10_config \ ++ap7_config \ ++ap720t_config \ ++ap920t_config \ ++ap926ejs_config \ ++ap946es_config: unconfig ++ @board/armltd/integrator/split_by_variant.sh ap $@ ++ ++integratorcp_config \ ++cp_config \ ++cp920t_config \ ++cp926ejs_config \ ++cp946es_config \ ++cp1136_config \ ++cp966_config \ ++cp922_config \ ++cp922_XA10_config \ ++cp1026_config: unconfig ++ @board/armltd/integrator/split_by_variant.sh cp $@ ++ ++davinci_dvevm_config : unconfig ++ @$(MKCONFIG) $(@:_config=) arm arm926ejs dvevm davinci davinci ++ ++davinci_schmoogie_config : unconfig ++ @$(MKCONFIG) $(@:_config=) arm arm926ejs schmoogie davinci davinci ++ ++davinci_sffsdr_config : unconfig ++ @$(MKCONFIG) $(@:_config=) arm arm926ejs sffsdr davinci davinci ++ ++davinci_sonata_config : unconfig ++ @$(MKCONFIG) $(@:_config=) arm arm926ejs sonata davinci davinci ++ ++davinci_dm355evm_config : unconfig ++ @$(MKCONFIG) $(@:_config=) arm arm926ejs dm355evm davinci davinci ++ ++davinci_dm355leopard_config : unconfig ++ @$(MKCONFIG) $(@:_config=) arm arm926ejs dm355leopard davinci davinci ++ ++davinci_dm365evm_config : unconfig ++ @$(MKCONFIG) $(@:_config=) arm arm926ejs dm365evm davinci davinci ++ ++davinci_dm6467evm_config : unconfig ++ @$(MKCONFIG) $(@:_config=) arm arm926ejs dm6467evm davinci davinci ++ ++imx27lite_config: unconfig ++ @$(MKCONFIG) $(@:_config=) arm arm926ejs imx27lite logicpd mx27 ++ ++lpd7a400_config \ ++lpd7a404_config: unconfig ++ @$(MKCONFIG) $(@:_config=) arm lh7a40x lpd7a40x ++ ++mv88f6281gtw_ge_config: unconfig ++ @$(MKCONFIG) $(@:_config=) arm arm926ejs $(@:_config=) Marvell kirkwood ++ ++mx1ads_config : unconfig ++ @$(MKCONFIG) $(@:_config=) arm arm920t mx1ads NULL imx ++ ++mx1fs2_config : unconfig ++ @$(MKCONFIG) $(@:_config=) arm arm920t mx1fs2 NULL imx ++ ++netstar_config: unconfig ++ @$(MKCONFIG) $(@:_config=) arm arm925t netstar ++ ++nhk8815_config \ ++nhk8815_onenand_config: unconfig ++ @mkdir -p $(obj)include ++ @ > $(obj)include/config.h ++ @if [ "$(findstring _onenand, $@)" ] ; then \ ++ echo "#define CONFIG_BOOT_ONENAND" >> $(obj)include/config.h; \ ++ $(XECHO) "... configured to boot from OneNand Flash"; \ ++ else \ ++ $(XECHO) "... configured to boot from Nand Flash"; \ ++ fi ++ @$(MKCONFIG) -a nhk8815 arm arm926ejs nhk8815 st nomadik ++ ++omap1510inn_config : unconfig ++ @$(MKCONFIG) $(@:_config=) arm arm925t omap1510inn ti ++ ++xtract_omap1610xxx = $(subst _cs0boot,,$(subst _cs3boot,,$(subst _cs_autoboot,,$(subst _config,,$1)))) ++ ++omap1610inn_config \ ++omap1610inn_cs0boot_config \ ++omap1610inn_cs3boot_config \ ++omap1610inn_cs_autoboot_config \ ++omap1610h2_config \ ++omap1610h2_cs0boot_config \ ++omap1610h2_cs3boot_config \ ++omap1610h2_cs_autoboot_config: unconfig ++ @mkdir -p $(obj)include ++ @if [ "$(findstring _cs0boot_, $@)" ] ; then \ ++ echo "#define CONFIG_CS0_BOOT" >> .$(obj)include/config.h ; \ ++ $(XECHO) "... configured for CS0 boot"; \ ++ elif [ "$(findstring _cs_autoboot_, $@)" ] ; then \ ++ echo "#define CONFIG_CS_AUTOBOOT" >> $(obj)include/config.h ; \ ++ $(XECHO) "... configured for CS_AUTO boot"; \ ++ else \ ++ echo "#define CONFIG_CS3_BOOT" >> $(obj)include/config.h ; \ ++ $(XECHO) "... configured for CS3 boot"; \ ++ fi; ++ @$(MKCONFIG) -a $(call xtract_omap1610xxx,$@) arm arm926ejs omap1610inn ti omap ++ ++omap5912osk_config : unconfig ++ @$(MKCONFIG) $(@:_config=) arm arm926ejs omap5912osk ti omap ++ ++openrd_base_config: unconfig ++ @$(MKCONFIG) $(@:_config=) arm arm926ejs $(@:_config=) Marvell kirkwood ++ ++xtract_omap730p2 = $(subst _cs0boot,,$(subst _cs3boot,, $(subst _config,,$1))) ++ ++omap730p2_config \ ++omap730p2_cs0boot_config \ ++omap730p2_cs3boot_config : unconfig ++ @mkdir -p $(obj)include ++ @if [ "$(findstring _cs0boot_, $@)" ] ; then \ ++ echo "#define CONFIG_CS0_BOOT" >> $(obj)include/config.h ; \ ++ $(XECHO) "... configured for CS0 boot"; \ ++ else \ ++ echo "#define CONFIG_CS3_BOOT" >> $(obj)include/config.h ; \ ++ $(XECHO) "... configured for CS3 boot"; \ ++ fi; ++ @$(MKCONFIG) -a $(call xtract_omap730p2,$@) arm arm926ejs omap730p2 ti omap ++ ++rd6281a_config: unconfig ++ @$(MKCONFIG) $(@:_config=) arm arm926ejs $(@:_config=) Marvell kirkwood ++ ++sbc2410x_config: unconfig ++ @$(MKCONFIG) $(@:_config=) arm arm920t sbc2410x NULL s3c24x0 ++ ++scb9328_config : unconfig ++ @$(MKCONFIG) $(@:_config=) arm arm920t scb9328 NULL imx ++ ++sheevaplug_config: unconfig ++ @$(MKCONFIG) $(@:_config=) arm arm926ejs $(@:_config=) Marvell kirkwood ++ ++smdk2400_config : unconfig ++ @$(MKCONFIG) $(@:_config=) arm arm920t smdk2400 samsung s3c24x0 ++ ++smdk2410_config : unconfig ++ @$(MKCONFIG) $(@:_config=) arm arm920t smdk2410 samsung s3c24x0 ++ ++SX1_stdout_serial_config \ ++SX1_config: unconfig ++ @mkdir -p $(obj)include ++ @if [ "$(findstring _stdout_serial_, $@)" ] ; then \ ++ echo "#undef CONFIG_STDOUT_USBTTY" >> $(obj)include/config.h ; \ ++ $(XECHO) "... configured for stdout serial"; \ ++ else \ ++ echo "#define CONFIG_STDOUT_USBTTY" >> $(obj)include/config.h ; \ ++ $(XECHO) "... configured for stdout usbtty"; \ ++ fi; ++ @$(MKCONFIG) SX1 arm arm925t sx1 ++ ++# TRAB default configuration: 8 MB Flash, 32 MB RAM ++xtract_trab = $(subst _bigram,,$(subst _bigflash,,$(subst _old,,$(subst _config,,$1)))) ++ ++trab_config \ ++trab_bigram_config \ ++trab_bigflash_config \ ++trab_old_config: unconfig ++ @mkdir -p $(obj)include ++ @mkdir -p $(obj)board/trab ++ @[ -z "$(findstring _bigram,$@)" ] || \ ++ { echo "#define CONFIG_FLASH_8MB" >>$(obj)include/config.h ; \ ++ echo "#define CONFIG_RAM_32MB" >>$(obj)include/config.h ; \ ++ $(XECHO) "... with 8 MB Flash, 32 MB RAM" ; \ ++ } ++ @[ -z "$(findstring _bigflash,$@)" ] || \ ++ { echo "#define CONFIG_FLASH_16MB" >>$(obj)include/config.h ; \ ++ echo "#define CONFIG_RAM_16MB" >>$(obj)include/config.h ; \ ++ $(XECHO) "... with 16 MB Flash, 16 MB RAM" ; \ ++ echo "TEXT_BASE = 0x0CF40000" >$(obj)board/trab/config.tmp ; \ ++ } ++ @[ -z "$(findstring _old,$@)" ] || \ ++ { echo "#define CONFIG_FLASH_8MB" >>$(obj)include/config.h ; \ ++ echo "#define CONFIG_RAM_16MB" >>$(obj)include/config.h ; \ ++ $(XECHO) "... with 8 MB Flash, 16 MB RAM" ; \ ++ echo "TEXT_BASE = 0x0CF40000" >$(obj)board/trab/config.tmp ; \ ++ } ++ @$(MKCONFIG) -a $(call xtract_trab,$@) arm arm920t trab NULL s3c24x0 ++ ++VCMA9_config : unconfig ++ @$(MKCONFIG) $(@:_config=) arm arm920t vcma9 mpl s3c24x0 ++ ++######################################################################### ++# ARM supplied Versatile development boards ++######################################################################### ++ ++cm4008_config : unconfig ++ @$(MKCONFIG) $(@:_config=) arm arm920t cm4008 NULL ks8695 ++ ++cm41xx_config : unconfig ++ @$(MKCONFIG) $(@:_config=) arm arm920t cm41xx NULL ks8695 ++ ++versatile_config \ ++versatileab_config \ ++versatilepb_config : unconfig ++ @board/armltd/versatile/split_by_variant.sh $@ ++ ++voiceblue_config: unconfig ++ @$(MKCONFIG) $(@:_config=) arm arm925t voiceblue ++ ++######################################################################### ++## S3C44B0 Systems ++######################################################################### ++ ++B2_config : unconfig ++ @$(MKCONFIG) $(@:_config=) arm s3c44b0 B2 dave ++ ++######################################################################### ++## ARM720T Systems ++######################################################################### ++ ++armadillo_config: unconfig ++ @$(MKCONFIG) $(@:_config=) arm arm720t armadillo ++ ++ep7312_config : unconfig ++ @$(MKCONFIG) $(@:_config=) arm arm720t ep7312 ++ ++impa7_config : unconfig ++ @$(MKCONFIG) $(@:_config=) arm arm720t impa7 ++ ++modnet50_config : unconfig ++ @$(MKCONFIG) $(@:_config=) arm arm720t modnet50 ++ ++evb4510_config : unconfig ++ @$(MKCONFIG) $(@:_config=) arm arm720t evb4510 NULL s3c4510b ++ ++lpc2292sodimm_config: unconfig ++ @$(MKCONFIG) $(@:_config=) arm arm720t lpc2292sodimm NULL lpc2292 ++ ++SMN42_config : unconfig ++ @$(MKCONFIG) $(@:_config=) arm arm720t SMN42 siemens lpc2292 ++ ++######################################################################### ++## ARM CORTEX Systems ++######################################################################### ++ ++devkit8000_config : unconfig ++ @$(MKCONFIG) $(@:_config=) arm arm_cortexa8 devkit8000 timll omap3 ++ ++omap3_beagle_config : unconfig ++ @$(MKCONFIG) $(@:_config=) arm arm_cortexa8 beagle ti omap3 ++ ++omap3_overo_config : unconfig ++ @$(MKCONFIG) $(@:_config=) arm arm_cortexa8 overo NULL omap3 ++ ++omap3_evm_config : unconfig ++ @$(MKCONFIG) $(@:_config=) arm arm_cortexa8 evm ti omap3 ++ ++omap3_pandora_config : unconfig ++ @$(MKCONFIG) $(@:_config=) arm arm_cortexa8 pandora NULL omap3 ++ ++omap3_sdp3430_config : unconfig ++ @$(MKCONFIG) $(@:_config=) arm arm_cortexa8 sdp3430 ti omap3 ++ ++omap3_zoom1_config : unconfig ++ @$(MKCONFIG) $(@:_config=) arm arm_cortexa8 zoom1 logicpd omap3 ++ ++omap3_zoom2_config : unconfig ++ @$(MKCONFIG) $(@:_config=) arm arm_cortexa8 zoom2 logicpd omap3 ++ ++smdkc100_config: unconfig ++ @$(MKCONFIG) $(@:_config=) arm arm_cortexa8 smdkc100 samsung s5pc1xx ++ ++######################################################################### ++## XScale Systems ++######################################################################### ++ ++actux1_config : unconfig ++ @$(MKCONFIG) $(@:_config=) arm ixp actux1 ++ ++actux2_config : unconfig ++ @$(MKCONFIG) $(@:_config=) arm ixp actux2 ++ ++actux3_config : unconfig ++ @$(MKCONFIG) $(@:_config=) arm ixp actux3 ++ ++actux4_config : unconfig ++ @$(MKCONFIG) $(@:_config=) arm ixp actux4 ++ ++cerf250_config : unconfig ++ @$(MKCONFIG) $(@:_config=) arm pxa cerf250 ++ ++cradle_config : unconfig ++ @$(MKCONFIG) $(@:_config=) arm pxa cradle ++ ++csb226_config : unconfig ++ @$(MKCONFIG) $(@:_config=) arm pxa csb226 ++ ++delta_config : unconfig ++ @$(MKCONFIG) $(@:_config=) arm pxa delta ++ ++innokom_config : unconfig ++ @$(MKCONFIG) $(@:_config=) arm pxa innokom ++ ++ixdp425_config : unconfig ++ @$(MKCONFIG) $(@:_config=) arm ixp ixdp425 ++ ++ixdpg425_config : unconfig ++ @$(MKCONFIG) $(@:_config=) arm ixp ixdp425 ++ ++lubbock_config : unconfig ++ @$(MKCONFIG) $(@:_config=) arm pxa lubbock ++ ++pleb2_config : unconfig ++ @$(MKCONFIG) $(@:_config=) arm pxa pleb2 ++ ++logodl_config : unconfig ++ @$(MKCONFIG) $(@:_config=) arm pxa logodl ++ ++pdnb3_config \ ++scpu_config: unconfig ++ @mkdir -p $(obj)include ++ @if [ "$(findstring scpu_,$@)" ] ; then \ ++ echo "#define CONFIG_SCPU" >>$(obj)include/config.h ; \ ++ $(XECHO) "... on SCPU board variant" ; \ ++ fi ++ @$(MKCONFIG) -a pdnb3 arm ixp pdnb3 prodrive ++ ++pxa255_idp_config: unconfig ++ @$(MKCONFIG) $(@:_config=) arm pxa pxa255_idp ++ ++polaris_config \ ++trizepsiv_config : unconfig ++ @mkdir -p $(obj)include ++ @if [ "$(findstring polaris,$@)" ] ; then \ ++ echo "#define CONFIG_POLARIS 1" >>$(obj)include/config.h ; \ ++ fi; ++ @$(MKCONFIG) -a trizepsiv arm pxa trizepsiv ++ ++wepep250_config : unconfig ++ @$(MKCONFIG) $(@:_config=) arm pxa wepep250 ++ ++xaeniax_config : unconfig ++ @$(MKCONFIG) $(@:_config=) arm pxa xaeniax ++ ++xm250_config : unconfig ++ @$(MKCONFIG) $(@:_config=) arm pxa xm250 ++ ++xsengine_config : unconfig ++ @$(MKCONFIG) $(@:_config=) arm pxa xsengine ++ ++zylonite_config : ++ @$(MKCONFIG) $(@:_config=) arm pxa zylonite ++ ++######################################################################### ++## ARM1136 Systems ++######################################################################### ++ ++apollon_config : unconfig ++ @mkdir -p $(obj)include ++ @echo "#define CONFIG_ONENAND_U_BOOT" > $(obj)include/config.h ++ @$(MKCONFIG) $(@:_config=) arm arm1136 apollon NULL omap24xx ++ @echo "CONFIG_ONENAND_U_BOOT = y" >> $(obj)include/config.mk ++ ++imx31_litekit_config : unconfig ++ @$(MKCONFIG) $(@:_config=) arm arm1136 imx31_litekit logicpd mx31 ++ ++imx31_phycore_eet_config \ ++imx31_phycore_config : unconfig ++ @mkdir -p $(obj)include ++ @if [ -n "$(findstring _eet_,$@)" ]; then \ ++ echo "#define CONFIG_IMX31_PHYCORE_EET" >> $(obj)include/config.h; \ ++ fi ++ @$(MKCONFIG) -a imx31_phycore arm arm1136 imx31_phycore NULL mx31 ++ ++mx31ads_config : unconfig ++ @$(MKCONFIG) $(@:_config=) arm arm1136 mx31ads freescale mx31 ++ ++mx31pdk_config \ ++mx31pdk_nand_config : unconfig ++ @mkdir -p $(obj)include ++ @if [ -n "$(findstring _nand_,$@)" ]; then \ ++ echo "#define CONFIG_NAND_U_BOOT" >> $(obj)include/config.h; \ ++ else \ ++ echo "#define CONFIG_SKIP_LOWLEVEL_INIT" >> $(obj)include/config.h; \ ++ echo "#define CONFIG_SKIP_RELOCATE_UBOOT" >> $(obj)include/config.h; \ ++ fi ++ @$(MKCONFIG) -a mx31pdk arm arm1136 mx31pdk freescale mx31 ++ ++omap2420h4_config : unconfig ++ @$(MKCONFIG) $(@:_config=) arm arm1136 omap2420h4 ti omap24xx ++ ++qong_config : unconfig ++ @$(MKCONFIG) $(@:_config=) arm arm1136 qong davedenx mx31 ++ ++######################################################################### ++## ARM1176 Systems ++######################################################################### ++smdk6400_noUSB_config \ ++smdk6400_config : unconfig ++ @mkdir -p $(obj)include $(obj)board/samsung/smdk6400 ++ @mkdir -p $(obj)nand_spl/board/samsung/smdk6400 ++ @echo "#define CONFIG_NAND_U_BOOT" > $(obj)include/config.h ++ @if [ -z "$(findstring smdk6400_noUSB_config,$@)" ]; then \ ++ echo "RAM_TEXT = 0x57e00000" >> $(obj)board/samsung/smdk6400/config.tmp;\ ++ $(MKCONFIG) $(@:_config=) arm arm1176 smdk6400 samsung s3c64xx; \ ++ else \ ++ echo "RAM_TEXT = 0xc7e00000" >> $(obj)board/samsung/smdk6400/config.tmp;\ ++ $(MKCONFIG) $(@:_noUSB_config=) arm arm1176 smdk6400 samsung s3c64xx; \ ++ fi ++ @echo "CONFIG_NAND_U_BOOT = y" >> $(obj)include/config.mk ++ ++#======================================================================== ++# i386 ++#======================================================================== ++######################################################################### ++## AMD SC520 CDP ++######################################################################### ++eNET_config : unconfig ++ @$(MKCONFIG) $(@:_config=) i386 i386 eNET NULL sc520 ++ ++sc520_cdp_config : unconfig ++ @$(MKCONFIG) $(@:_config=) i386 i386 sc520_cdp NULL sc520 ++ ++sc520_spunk_config : unconfig ++ @$(MKCONFIG) $(@:_config=) i386 i386 sc520_spunk NULL sc520 ++ ++sc520_spunk_rel_config : unconfig ++ @$(MKCONFIG) $(@:_config=) i386 i386 sc520_spunk NULL sc520 ++ ++#======================================================================== ++# MIPS ++#======================================================================== ++######################################################################### ++## MIPS32 4Kc ++######################################################################### ++ ++xtract_incaip = $(subst _100MHz,,$(subst _133MHz,,$(subst _150MHz,,$(subst _config,,$1)))) ++ ++incaip_100MHz_config \ ++incaip_133MHz_config \ ++incaip_150MHz_config \ ++incaip_config: unconfig ++ @mkdir -p $(obj)include ++ @[ -z "$(findstring _100MHz,$@)" ] || \ ++ { echo "#define CPU_CLOCK_RATE 100000000" >>$(obj)include/config.h ; \ ++ $(XECHO) "... with 100MHz system clock" ; \ ++ } ++ @[ -z "$(findstring _133MHz,$@)" ] || \ ++ { echo "#define CPU_CLOCK_RATE 133000000" >>$(obj)include/config.h ; \ ++ $(XECHO) "... with 133MHz system clock" ; \ ++ } ++ @[ -z "$(findstring _150MHz,$@)" ] || \ ++ { echo "#define CPU_CLOCK_RATE 150000000" >>$(obj)include/config.h ; \ ++ $(XECHO) "... with 150MHz system clock" ; \ ++ } ++ @$(MKCONFIG) -a $(call xtract_incaip,$@) mips mips incaip ++ ++tb0229_config: unconfig ++ @$(MKCONFIG) $(@:_config=) mips mips tb0229 ++ ++vct_premium_config \ ++vct_premium_small_config \ ++vct_premium_onenand_config \ ++vct_premium_onenand_small_config \ ++vct_platinum_config \ ++vct_platinum_small_config \ ++vct_platinum_onenand_config \ ++vct_platinum_onenand_small_config \ ++vct_platinumavc_config \ ++vct_platinumavc_small_config \ ++vct_platinumavc_onenand_config \ ++vct_platinumavc_onenand_small_config: unconfig ++ @mkdir -p $(obj)include ++ @if [ "$(findstring _premium,$@)" ] ; then \ ++ echo "#define CONFIG_VCT_PREMIUM" > $(obj)include/config.h ; \ ++ $(XECHO) "... on Premium board variant" ; \ ++ fi ++ @if [ "$(findstring _platinum_,$@)" ] ; then \ ++ echo "#define CONFIG_VCT_PLATINUM" > $(obj)include/config.h ; \ ++ $(XECHO) "... on Platinum board variant" ; \ ++ fi ++ @if [ "$(findstring _platinumavc,$@)" ] ; then \ ++ echo "#define CONFIG_VCT_PLATINUMAVC" > $(obj)include/config.h ; \ ++ $(XECHO) "... on PlatinumAVC board variant" ; \ ++ fi ++ @if [ "$(findstring _onenand,$@)" ] ; then \ ++ echo "#define CONFIG_VCT_ONENAND" >> $(obj)include/config.h ; \ ++ $(XECHO) "... on OneNAND board variant" ; \ ++ fi ++ @if [ "$(findstring _small,$@)" ] ; then \ ++ echo "#define CONFIG_VCT_SMALL_IMAGE" >> $(obj)include/config.h ; \ ++ $(XECHO) "... stripped down image variant" ; \ ++ fi ++ @$(MKCONFIG) -a vct mips mips vct micronas ++ ++######################################################################### ++## MIPS32 AU1X00 ++######################################################################### ++ ++dbau1000_config : unconfig ++ @mkdir -p $(obj)include ++ @echo "#define CONFIG_DBAU1000 1" >$(obj)include/config.h ++ @$(MKCONFIG) -a dbau1x00 mips mips dbau1x00 ++ ++dbau1100_config : unconfig ++ @mkdir -p $(obj)include ++ @echo "#define CONFIG_DBAU1100 1" >$(obj)include/config.h ++ @$(MKCONFIG) -a dbau1x00 mips mips dbau1x00 ++ ++dbau1500_config : unconfig ++ @mkdir -p $(obj)include ++ @echo "#define CONFIG_DBAU1500 1" >$(obj)include/config.h ++ @$(MKCONFIG) -a dbau1x00 mips mips dbau1x00 ++ ++dbau1550_config : unconfig ++ @mkdir -p $(obj)include ++ @echo "#define CONFIG_DBAU1550 1" >$(obj)include/config.h ++ @$(MKCONFIG) -a dbau1x00 mips mips dbau1x00 ++ ++dbau1550_el_config : unconfig ++ @mkdir -p $(obj)include ++ @echo "#define CONFIG_DBAU1550 1" >$(obj)include/config.h ++ @$(MKCONFIG) -a dbau1x00 mips mips dbau1x00 ++ ++gth2_config : unconfig ++ @mkdir -p $(obj)include ++ @echo "#define CONFIG_GTH2 1" >$(obj)include/config.h ++ @$(MKCONFIG) -a gth2 mips mips gth2 ++ ++pb1000_config : unconfig ++ @mkdir -p $(obj)include ++ @echo "#define CONFIG_PB1000 1" >$(obj)include/config.h ++ @$(MKCONFIG) -a pb1x00 mips mips pb1x00 ++ ++qemu_mips_config : unconfig ++ @mkdir -p $(obj)include ++ @echo "#define CONFIG_QEMU_MIPS 1" >$(obj)include/config.h ++ @$(MKCONFIG) -a qemu-mips mips mips qemu-mips ++ ++######################################################################### ++## MIPS64 5Kc ++######################################################################### ++ ++purple_config : unconfig ++ @$(MKCONFIG) $(@:_config=) mips mips purple ++ ++#======================================================================== ++# Nios ++#======================================================================== ++######################################################################### ++## Nios32 ++######################################################################### ++ ++ADNPESC1_DNPEVA2_base_32_config \ ++ADNPESC1_base_32_config \ ++ADNPESC1_config: unconfig ++ @mkdir -p $(obj)include ++ @[ -z "$(findstring _DNPEVA2,$@)" ] || \ ++ { echo "#define CONFIG_DNPEVA2 1" >>$(obj)include/config.h ; \ ++ $(XECHO) "... DNP/EVA2 configuration" ; \ ++ } ++ @[ -z "$(findstring _base_32,$@)" ] || \ ++ { echo "#define CONFIG_NIOS_BASE_32 1" >>$(obj)include/config.h ; \ ++ $(XECHO) "... NIOS 'base_32' configuration" ; \ ++ } ++ @[ -z "$(findstring ADNPESC1_config,$@)" ] || \ ++ { echo "#define CONFIG_NIOS_BASE_32 1" >>$(obj)include/config.h ; \ ++ $(XECHO) "... NIOS 'base_32' configuration (DEFAULT)" ; \ ++ } ++ @$(MKCONFIG) -a ADNPESC1 nios nios adnpesc1 ssv ++ ++DK1C20_safe_32_config \ ++DK1C20_standard_32_config \ ++DK1C20_config: unconfig ++ @mkdir -p $(obj)include ++ @[ -z "$(findstring _safe_32,$@)" ] || \ ++ { echo "#define CONFIG_NIOS_SAFE_32 1" >>$(obj)include/config.h ; \ ++ $(XECHO) "... NIOS 'safe_32' configuration" ; \ ++ } ++ @[ -z "$(findstring _standard_32,$@)" ] || \ ++ { echo "#define CONFIG_NIOS_STANDARD_32 1" >>$(obj)include/config.h ; \ ++ $(XECHO) "... NIOS 'standard_32' configuration" ; \ ++ } ++ @[ -z "$(findstring DK1C20_config,$@)" ] || \ ++ { echo "#define CONFIG_NIOS_STANDARD_32 1" >>$(obj)include/config.h ; \ ++ $(XECHO) "... NIOS 'standard_32' configuration (DEFAULT)" ; \ ++ } ++ @$(MKCONFIG) -a DK1C20 nios nios dk1c20 altera ++ ++DK1S10_safe_32_config \ ++DK1S10_standard_32_config \ ++DK1S10_mtx_ldk_20_config \ ++DK1S10_config: unconfig ++ @mkdir -p $(obj)include ++ @[ -z "$(findstring _safe_32,$@)" ] || \ ++ { echo "#define CONFIG_NIOS_SAFE_32 1" >>$(obj)include/config.h ; \ ++ $(XECHO) "... NIOS 'safe_32' configuration" ; \ ++ } ++ @[ -z "$(findstring _standard_32,$@)" ] || \ ++ { echo "#define CONFIG_NIOS_STANDARD_32 1" >>$(obj)include/config.h ; \ ++ $(XECHO) "... NIOS 'standard_32' configuration" ; \ ++ } ++ @[ -z "$(findstring _mtx_ldk_20,$@)" ] || \ ++ { echo "#define CONFIG_NIOS_MTX_LDK_20 1" >>$(obj)include/config.h ; \ ++ $(XECHO) "... NIOS 'mtx_ldk_20' configuration" ; \ ++ } ++ @[ -z "$(findstring DK1S10_config,$@)" ] || \ ++ { echo "#define CONFIG_NIOS_STANDARD_32 1" >>$(obj)include/config.h ; \ ++ $(XECHO) "... NIOS 'standard_32' configuration (DEFAULT)" ; \ ++ } ++ @$(MKCONFIG) -a DK1S10 nios nios dk1s10 altera ++ ++######################################################################### ++## Nios-II ++######################################################################### ++ ++EP1C20_config : unconfig ++ @$(MKCONFIG) EP1C20 nios2 nios2 ep1c20 altera ++ ++EP1S10_config : unconfig ++ @$(MKCONFIG) EP1S10 nios2 nios2 ep1s10 altera ++ ++EP1S40_config : unconfig ++ @$(MKCONFIG) EP1S40 nios2 nios2 ep1s40 altera ++ ++PK1C20_config : unconfig ++ @$(MKCONFIG) PK1C20 nios2 nios2 pk1c20 psyent ++ ++PCI5441_config : unconfig ++ @$(MKCONFIG) PCI5441 nios2 nios2 pci5441 psyent ++ ++#======================================================================== ++## Microblaze ++#======================================================================== ++ ++microblaze-generic_config: unconfig ++ @mkdir -p $(obj)include ++ @$(MKCONFIG) -a $(@:_config=) microblaze microblaze microblaze-generic xilinx ++ ++#======================================================================== ++# Blackfin ++#======================================================================== ++ ++# Analog Devices boards ++BFIN_BOARDS = bf518f-ezbrd bf526-ezbrd bf527-ezkit bf533-ezkit bf533-stamp \ ++ bf537-pnav bf537-stamp bf538f-ezkit bf548-ezkit bf561-ezkit ++ ++# Bluetechnix tinyboards ++BFIN_BOARDS += cm-bf527 cm-bf533 cm-bf537e cm-bf537u cm-bf548 cm-bf561 tcm-bf537 ++ ++# Misc third party boards ++BFIN_BOARDS += bf537-minotaur bf537-srv1 blackstamp ++ ++# I-SYST Micromodule ++BFIN_BOARDS += ibf-dsp561 ++ ++$(BFIN_BOARDS:%=%_config) : unconfig ++ @$(MKCONFIG) $(@:_config=) blackfin blackfin $(@:_config=) ++ ++#======================================================================== ++# AVR32 ++#======================================================================== ++ ++atngw100_config : unconfig ++ @$(MKCONFIG) $(@:_config=) avr32 at32ap atngw100 atmel at32ap700x ++ ++atstk1002_config : unconfig ++ @$(MKCONFIG) $(@:_config=) avr32 at32ap atstk1000 atmel at32ap700x ++ ++atstk1003_config : unconfig ++ @$(MKCONFIG) $(@:_config=) avr32 at32ap atstk1000 atmel at32ap700x ++ ++atstk1004_config : unconfig ++ @$(MKCONFIG) $(@:_config=) avr32 at32ap atstk1000 atmel at32ap700x ++ ++atstk1006_config : unconfig ++ @$(MKCONFIG) $(@:_config=) avr32 at32ap atstk1000 atmel at32ap700x ++ ++favr-32-ezkit_config : unconfig ++ @$(MKCONFIG) $(@:_config=) avr32 at32ap favr-32-ezkit earthlcd at32ap700x ++ ++hammerhead_config : unconfig ++ @$(MKCONFIG) $(@:_config=) avr32 at32ap hammerhead miromico at32ap700x ++ ++mimc200_config : unconfig ++ @$(MKCONFIG) $(@:_config=) avr32 at32ap mimc200 mimc at32ap700x ++ ++#======================================================================== ++# SH3 (SuperH) ++#======================================================================== ++ ++######################################################################### ++## sh2 (Renesas SuperH) ++######################################################################### ++rsk7203_config: unconfig ++ @mkdir -p $(obj)include ++ @echo "#define CONFIG_RSK7203 1" > $(obj)include/config.h ++ @$(MKCONFIG) -a $(@:_config=) sh sh2 rsk7203 renesas ++ ++######################################################################### ++## sh3 (Renesas SuperH) ++######################################################################### ++ ++mpr2_config: unconfig ++ @mkdir -p $(obj)include ++ @echo "#define CONFIG_MPR2 1" > $(obj)include/config.h ++ @$(MKCONFIG) -a $(@:_config=) sh sh3 mpr2 ++ ++ms7720se_config: unconfig ++ @mkdir -p $(obj)include ++ @echo "#define CONFIG_MS7720SE 1" > $(obj)include/config.h ++ @$(MKCONFIG) -a $(@:_config=) sh sh3 ms7720se ++ ++######################################################################### ++## sh4 (Renesas SuperH) ++######################################################################### ++ ++MigoR_config : unconfig ++ @mkdir -p $(obj)include ++ @echo "#define CONFIG_MIGO_R 1" > $(obj)include/config.h ++ @$(MKCONFIG) -a $(@:_config=) sh sh4 MigoR renesas ++ ++ms7750se_config: unconfig ++ @mkdir -p $(obj)include ++ @echo "#define CONFIG_MS7750SE 1" > $(obj)include/config.h ++ @$(MKCONFIG) -a $(@:_config=) sh sh4 ms7750se ++ ++ms7722se_config : unconfig ++ @mkdir -p $(obj)include ++ @echo "#define CONFIG_MS7722SE 1" > $(obj)include/config.h ++ @$(MKCONFIG) -a $(@:_config=) sh sh4 ms7722se ++ ++r2dplus_config : unconfig ++ @mkdir -p $(obj)include ++ @echo "#define CONFIG_R2DPLUS 1" > $(obj)include/config.h ++ @$(MKCONFIG) -a $(@:_config=) sh sh4 r2dplus renesas ++ ++r7780mp_config: unconfig ++ @mkdir -p $(obj)include ++ @echo "#define CONFIG_R7780MP 1" > $(obj)include/config.h ++ @$(MKCONFIG) -a $(@:_config=) sh sh4 r7780mp renesas ++ ++sh7763rdp_config : unconfig ++ @mkdir -p $(obj)include ++ @echo "#define CONFIG_SH7763RDP 1" > $(obj)include/config.h ++ @$(MKCONFIG) -a $(@:_config=) sh sh4 sh7763rdp renesas ++ ++xtract_sh7785lcr = $(subst _32bit,,$(subst _config,,$1)) ++sh7785lcr_32bit_config \ ++sh7785lcr_config : unconfig ++ @mkdir -p $(obj)include ++ @mkdir -p $(obj)board/renesas/sh7785lcr ++ @echo "#define CONFIG_SH7785LCR 1" > $(obj)include/config.h ++ @if [ "$(findstring 32bit, $@)" ] ; then \ ++ echo "#define CONFIG_SH_32BIT 1" >> $(obj)include/config.h ; \ ++ echo "TEXT_BASE = 0x8ff80000" > \ ++ $(obj)board/renesas/sh7785lcr/config.tmp ; \ ++ $(XECHO) " ... enable 32-Bit Address Extended Mode" ; \ ++ fi ++ @$(MKCONFIG) -a $(call xtract_sh7785lcr,$@) sh sh4 sh7785lcr renesas ++ ++ap325rxa_config : unconfig ++ @mkdir -p $(obj)include ++ @echo "#define CONFIG_AP325RXA 1" > $(obj)include/config.h ++ @$(MKCONFIG) -a $(@:_config=) sh sh4 ap325rxa renesas ++ ++espt_config : unconfig ++ @mkdir -p $(obj)include ++ @echo "#define CONFIG_ESPT 1" > $(obj)include/config.h ++ @$(MKCONFIG) -a $(@:_config=) sh sh4 espt ++ ++#======================================================================== ++# SPARC ++#======================================================================== ++ ++######################################################################### ++## LEON3 ++######################################################################### ++ ++# Gaisler GR-XC3S-1500 board ++gr_xc3s_1500_config : unconfig ++ @$(MKCONFIG) $(@:_config=) sparc leon3 gr_xc3s_1500 gaisler ++ ++# Gaisler GR-CPCI-AX2000 board, a General purpose FPGA-AX system ++gr_cpci_ax2000_config : unconfig ++ @$(MKCONFIG) $(@:_config=) sparc leon3 gr_cpci_ax2000 gaisler ++ ++# Gaisler GRLIB template design (GPL SPARC/LEON3) for Altera NIOS ++# Development board Stratix II edition, FPGA Device EP2S60. ++gr_ep2s60_config: unconfig ++ @$(MKCONFIG) $(@:_config=) sparc leon3 gr_ep2s60 gaisler ++ ++# Gaisler LEON3 GRSIM simulator ++grsim_config : unconfig ++ @$(MKCONFIG) $(@:_config=) sparc leon3 grsim gaisler ++ ++######################################################################### ++## LEON2 ++######################################################################### ++ ++# Gaisler LEON2 GRSIM simulator ++grsim_leon2_config : unconfig ++ @$(MKCONFIG) $(@:_config=) sparc leon2 grsim_leon2 gaisler ++ ++######################################################################### ++######################################################################### ++######################################################################### ++ ++clean: ++ @rm -f $(obj)examples/standalone/82559_eeprom \ ++ $(obj)examples/standalone/atmel_df_pow2 \ ++ $(obj)examples/standalone/eepro100_eeprom \ ++ $(obj)examples/standalone/hello_world \ ++ $(obj)examples/standalone/interrupt \ ++ $(obj)examples/standalone/mem_to_mem_idma2intr \ ++ $(obj)examples/standalone/sched \ ++ $(obj)examples/standalone/smc91111_eeprom \ ++ $(obj)examples/standalone/test_burst \ ++ $(obj)examples/standalone/timer ++ @rm -f $(obj)examples/api/demo{,.bin} ++ @rm -f $(obj)tools/bmp_logo $(obj)tools/easylogo/easylogo \ ++ $(obj)tools/env/{fw_printenv,fw_setenv} \ ++ $(obj)tools/envcrc \ ++ $(obj)tools/gdb/{astest,gdbcont,gdbsend} \ ++ $(obj)tools/gen_eth_addr $(obj)tools/img2srec \ ++ $(obj)tools/mkimage $(obj)tools/mpc86x_clk \ ++ $(obj)tools/ncb $(obj)tools/ubsha1 ++ @rm -f $(obj)board/cray/L1/{bootscript.c,bootscript.image} \ ++ $(obj)board/netstar/{eeprom,crcek,crcit,*.srec,*.bin} \ ++ $(obj)board/trab/trab_fkt $(obj)board/voiceblue/eeprom \ ++ $(obj)board/armltd/{integratorap,integratorcp}/u-boot.lds \ ++ $(obj)lib_blackfin/u-boot.lds \ ++ $(obj)u-boot.lds \ ++ $(obj)cpu/blackfin/bootrom-asm-offsets.[chs] ++ @rm -f $(obj)include/bmp_logo.h ++ @rm -f $(obj)nand_spl/{u-boot.lds,u-boot-spl,u-boot-spl.map,System.map} ++ @rm -f $(obj)onenand_ipl/onenand-{ipl,ipl.bin,ipl.map} ++ @rm -f $(ONENAND_BIN) ++ @rm -f $(obj)onenand_ipl/u-boot.lds ++ @rm -f $(TIMESTAMP_FILE) $(VERSION_FILE) ++ @find $(OBJTREE) -type f \ ++ \( -name 'core' -o -name '*.bak' -o -name '*~' \ ++ -o -name '*.o' -o -name '*.a' -o -name '*.exe' \) -print \ ++ | xargs rm -f ++ ++clobber: clean ++ @find $(OBJTREE) -type f \( -name .depend \ ++ -o -name '*.srec' -o -name '*.bin' -o -name u-boot.img \) \ ++ -print0 \ ++ | xargs -0 rm -f ++ @rm -f $(OBJS) $(obj)*.bak $(obj)ctags $(obj)etags $(obj)TAGS \ ++ $(obj)cscope.* $(obj)*.*~ ++ @rm -f $(obj)u-boot $(obj)u-boot.map $(obj)u-boot.hex $(ALL) ++ @rm -f $(obj)u-boot.kwb ++ @rm -f $(obj)tools/{env/crc32.c,inca-swap-bytes} ++ @rm -f $(obj)cpu/mpc824x/bedbug_603e.c ++ @rm -f $(obj)include/asm/proc $(obj)include/asm/arch $(obj)include/asm ++ @[ ! -d $(obj)nand_spl ] || find $(obj)nand_spl -name "*" -type l -print | xargs rm -f ++ @[ ! -d $(obj)onenand_ipl ] || find $(obj)onenand_ipl -name "*" -type l -print | xargs rm -f ++ ++ifeq ($(OBJTREE),$(SRCTREE)) ++mrproper \ ++distclean: clobber unconfig ++else ++mrproper \ ++distclean: clobber unconfig ++ rm -rf $(obj)* ++endif ++ ++backup: ++ F=`basename $(TOPDIR)` ; cd .. ; \ ++ gtar --force-local -zcvf `date "+$$F-%Y-%m-%d-%T.tar.gz"` $$F ++ ++######################################################################### +diff -Naur u-boot-2009.11/mkconfig u-boot-2009.11.new/mkconfig +--- u-boot-2009.11/mkconfig 2009-12-15 23:20:54.000000000 +0100 ++++ u-boot-2009.11.new/mkconfig 2010-10-08 12:09:30.000000000 +0200 +@@ -74,6 +74,7 @@ + echo "ARCH = $2" > config.mk + echo "CPU = $3" >> config.mk + echo "BOARD = $4" >> config.mk ++echo "BNAME = $1" >> config.mk + + [ "$5" ] && [ "$5" != "NULL" ] && echo "VENDOR = $5" >> config.mk + +diff -Naur u-boot-2009.11.orig/board/in-circuit/icnova/icnova_arm.c u-boot-2009.11/board/in-circuit/icnova/icnova_arm.c +--- u-boot-2009.11.orig/board/in-circuit/icnova/icnova_arm.c 2010-10-12 17:00:03.000000000 +0200 ++++ u-boot-2009.11/board/in-circuit/icnova/icnova_arm.c 2011-01-04 12:01:10.000000000 +0100 +@@ -68,14 +68,19 @@ + * ERXER (PA16) => no repeater + * ETXCLK (PA17) => no isolate + */ +- unsigned long phy_mask = pin_to_mask(AT91_PIN_PA15) | ++ unsigned long phy_mask = 0; ++ /* Reset and pdwn-pins */ ++ unsigned long rst = pin_to_mask(AT91_PIN_PA27); ++ unsigned long pdwn = 0; ++#ifndef CONFIG_ICNOVA_SODIMM ++ phy_mask = pin_to_mask(AT91_PIN_PA15) | + pin_to_mask(AT91_PIN_PA8) | pin_to_mask(AT91_PIN_PA9) | + pin_to_mask(AT91_PIN_PA12) | pin_to_mask(AT91_PIN_PA13) | + pin_to_mask(AT91_PIN_PA29) | pin_to_mask(AT91_PIN_PA30) | + pin_to_mask(AT91_PIN_PA16) | pin_to_mask(AT91_PIN_PA17); +- /* Reset and pdwn-pins */ +- unsigned long rst = pin_to_mask(AT91_PIN_PA26); +- unsigned long pdwn = pin_to_mask(AT91_PIN_PA25); ++ rst = pin_to_mask(AT91_PIN_PA26); ++ pdwn = pin_to_mask(AT91_PIN_PA25); ++#endif + /* Enable clock */ + at91_sys_write(AT91_PMC_PCER, 1 << AT91SAM9G45_ID_EMAC); + +@@ -218,14 +223,25 @@ + + #ifdef CONFIG_MMC + static void icnova_arm9_mmc_init(void) { ++#ifdef CONFIG_USE_MMC1 ++ at91_set_A_periph(AT91_PIN_PA31, 0); ++ at91_set_A_periph(AT91_PIN_PA22, 1); ++ at91_set_A_periph(AT91_PIN_PA23, 1); ++ at91_set_A_periph(AT91_PIN_PA24, 1); ++ at91_set_A_periph(AT91_PIN_PA25, 1); ++ at91_set_A_periph(AT91_PIN_PA26, 1); ++#define MMC_ID AT91SAM9G45_ID_MCI1 ++#else + at91_set_A_periph(AT91_PIN_PA0, 0); + at91_set_A_periph(AT91_PIN_PA1, 1); + at91_set_A_periph(AT91_PIN_PA2, 1); + at91_set_A_periph(AT91_PIN_PA3, 1); + at91_set_A_periph(AT91_PIN_PA4, 1); + at91_set_A_periph(AT91_PIN_PA5, 1); ++#define MMC_ID AT91SAM9G45_ID_MCI0 ++#endif + +- at91_sys_write(AT91_PMC_PCER, 1<<AT91SAM9G45_ID_MCI0); ++ at91_sys_write(AT91_PMC_PCER, 1<<MMC_ID); + } + + int board_mmc_init(bd_t *bd) { +diff -Naur u-boot-2009.11.orig/cpu/arm926ejs/at91/at91sam9m10g45_devices.c u-boot-2009.11/cpu/arm926ejs/at91/at91sam9m10g45_devices.c +--- u-boot-2009.11.orig/cpu/arm926ejs/at91/at91sam9m10g45_devices.c 2010-10-12 17:00:03.000000000 +0200 ++++ u-boot-2009.11/cpu/arm926ejs/at91/at91sam9m10g45_devices.c 2011-01-04 11:57:33.000000000 +0100 +@@ -180,7 +180,9 @@ + at91_set_B_periph(AT91_PIN_PA28, 0); /* ERXCK */ + at91_set_B_periph(AT91_PIN_PA6, 0); /* ETX2 */ + at91_set_B_periph(AT91_PIN_PA7, 0); /* ETX3 */ ++#ifndef CONFIG_ICNOVA_SODIMM + at91_set_B_periph(AT91_PIN_PA27, 0); /* ETXER */ + #endif ++#endif + } + #endif +diff -Naur u-boot-2009.11.orig/drivers/net/macb.c u-boot-2009.11/drivers/net/macb.c +--- u-boot-2009.11.orig/drivers/net/macb.c 2009-12-15 23:20:54.000000000 +0100 ++++ u-boot-2009.11/drivers/net/macb.c 2010-10-18 13:56:31.000000000 +0200 +@@ -334,7 +334,7 @@ + } + + /* PHY isn't up to snuff */ +- printf("%s: PHY not found", macb->netdev.name); ++ printf("%s: PHY not found\n", macb->netdev.name); + + return 0; + } +diff -Naur u-boot-2009.11.orig/include/configs/icnova/mmc.h u-boot-2009.11/include/configs/icnova/mmc.h +--- u-boot-2009.11.orig/include/configs/icnova/mmc.h 2010-10-12 17:00:04.000000000 +0200 ++++ u-boot-2009.11/include/configs/icnova/mmc.h 2010-12-17 13:34:17.000000000 +0100 +@@ -19,7 +19,11 @@ + #define CONFIG_GENERIC_MMC 1 + #define CONFIG_GENERIC_ATMEL_MCI 1 + /*change this for your cpu */ ++#ifdef CONFIG_USE_MMC1 ++#define MMCI_BASE 0xFFFD0000 ++#else + #define MMCI_BASE 0xFFF80000 ++#endif + #else + #define CONFIG_ATMEL_MCI 1 + #endif +diff -Naur u-boot-2009.11.orig/include/configs/icnova/mmcupdate.h u-boot-2009.11/include/configs/icnova/mmcupdate.h +--- u-boot-2009.11.orig/include/configs/icnova/mmcupdate.h 2010-10-12 17:00:04.000000000 +0200 ++++ u-boot-2009.11/include/configs/icnova/mmcupdate.h 2011-01-04 11:55:50.000000000 +0100 +@@ -10,7 +10,11 @@ + + //#define MMCUPDATE_BOOTARGS CONFIG_BOOTARGS + //#define MMCUPDATE_BOOTCOMMAND CONFIG_BOOTCOMMAND +-#define MMCUPDATE_BOOTARGS "rootfstype=ubifs root=ubi0:root ubi.mtd=2" ++#ifndef CONFIG_ICNOVA_UBI_MTD ++#define CONFIG_ICNOVA_UBI_MTD "2" ++#endif ++ ++#define MMCUPDATE_BOOTARGS "rootfstype=ubifs root=ubi0:root ubi.mtd=" CONFIG_ICNOVA_UBI_MTD + #define MMCUPDATE_BOOTCOMMAND "mtdparts default; nand read "MMCUPDATE_UADDRESS" nand0,0; bootm" + + #undef CONFIG_BOOTARGS +diff -Naur u-boot-2009.11.orig/include/configs/icnova/nand_arm9.h u-boot-2009.11/include/configs/icnova/nand_arm9.h +--- u-boot-2009.11.orig/include/configs/icnova/nand_arm9.h 2010-10-12 17:00:04.000000000 +0200 ++++ u-boot-2009.11/include/configs/icnova/nand_arm9.h 2011-01-04 11:53:18.000000000 +0100 +@@ -10,7 +10,12 @@ + #define CFG_NAND_ALE 21 + #define CFG_NAND_CLE 22 + ++#ifdef CONFIG_ICNOVA_SODIMM ++#define CFG_NAND_CE AT91_PIN_PC14 ++#define CFG_NAND_RDY AT91_PIN_PC8 ++#else + #define CFG_NAND_CE AT91_PIN_PC8 + #define CFG_NAND_RDY AT91_PIN_PC11 ++#endif + + #endif +diff -Naur u-boot-2009.11.orig/include/configs/icnova_arm9sodimm.h u-boot-2009.11/include/configs/icnova_arm9sodimm.h +--- u-boot-2009.11.orig/include/configs/icnova_arm9sodimm.h 1970-01-01 01:00:00.000000000 +0100 ++++ u-boot-2009.11/include/configs/icnova_arm9sodimm.h 2011-01-04 11:53:10.000000000 +0100 +@@ -0,0 +1,24 @@ ++#ifndef __CONFIG_H ++#define __CONFIG_H ++ ++#define CONFIG_ICNOVA_ARM9 ++#define CONFIG_ICNOVA_SODIMM ++#define CONFIG_USE_MMC1 ++#define CONFIG_ICNOVA_UBI_MTD "1" ++ ++#include <configs/icnova/base.h> ++#include <configs/icnova/arm400MHz.h> ++#include <configs/icnova/mmc.h> ++#include <configs/icnova/flash2x8.h> ++#include <configs/icnova/nand_arm9.h> ++#include <configs/icnova/net.h> ++#define CONFIG_MACB_SEARCH_PHY ++#include <configs/icnova/usart3.h> // DBGU ++#include <configs/icnova/mmcupdate.h> ++//#include <configs/icnova/lcd320_240.h> ++//#include <configs/icnova/usb.h> ++ ++#undef MTDPARTS_DEFAULT ++#define MTDPARTS_DEFAULT "mtdparts=nand.0:4M(kernel),-(root)" ++ ++#endif +diff -Naur u-boot-2009.11.orig/Makefile u-boot-2009.11/Makefile +--- u-boot-2009.11.orig/Makefile 2010-10-12 17:00:04.000000000 +0200 ++++ u-boot-2009.11/Makefile 2011-01-04 11:49:12.000000000 +0100 +@@ -3590,7 +3590,7 @@ + $(ICNOVA_BOARDS:%=icnova_%_config): unconfig + @$(MKCONFIG) $(@:_config=) avr32 at32ap icnova in-circuit at32ap700x + +-ICNOVA_ARM_BOARDS = arm9oem arm9oem_u4 ++ICNOVA_ARM_BOARDS = arm9oem arm9oem_u4 arm9sodimm + $(ICNOVA_ARM_BOARDS:%=icnova_%_config): unconfig + @$(MKCONFIG) $(@:_config=) arm arm926ejs icnova in-circuit at91 + +diff -Naur u-boot-2009.11.orig/board/in-circuit/icnova/Makefile.icnova_arm9sodimm u-boot-2009.11/board/in-circuit/icnova/Makefile.icnova_arm9sodimm +--- u-boot-2009.11.orig/board/in-circuit/icnova/Makefile.icnova_arm9sodimm 1970-01-01 01:00:00.000000000 +0100 ++++ u-boot-2009.11/board/in-circuit/icnova/Makefile.icnova_arm9sodimm 2011-01-04 12:47:26.000000000 +0100 +@@ -0,0 +1,6 @@ ++ ++COBJS := $(BOARD)_$(ARCH).o flash2x8.o ++ifdef CONFIG_CMD_NAND ++COBJS += at91_nand.o ++endif ++ diff --git a/recipes/u-boot/u-boot_2009.11.bb b/recipes/u-boot/u-boot_2009.11.bb index fd88679d50..90a9089270 100644 --- a/recipes/u-boot/u-boot_2009.11.bb +++ b/recipes/u-boot/u-boot_2009.11.bb @@ -8,26 +8,30 @@ DEFAULT_PREFERENCE_at91sam9g45ek = "2" DEFAULT_PREFERENCE_at91sam9m10ekes = "2" DEFAULT_PREFERENCE_at91sam9m10g45ek = "2" DEFAULT_PREFERENCE_at91sam9g45ek = "2" -DEFAULT_PREFERENCE_at91sam9g45ekes = "2" +DEFAULT_PREFERENCE_adb4000 = "2" SRC_URI = "ftp://ftp.denx.de/pub/u-boot/u-boot-${PV}.tar.bz2 " SRC_URI_append_at91 = "\ - file://at91/0002-Support-running-ATSAM9G45-M10-from-dataflash.patch;patch=1 \ - file://at91/0003-Update-SAM9M10-G45-config-for-dataflash-support.patch;patch=1 \ - file://at91/0004-Support-selecting-SPI-mode-in-dataflash-driver.patch;patch=1 \ - file://at91/0005-mux-replace-verbose-dataflash_mmc_mux-command.patch;patch=1 \ - file://at91/0006-libarm-board.c-Gets-overwritten-workaround.patch;patch=1 \ - file://at91/0007-fat.c-Add-DEBUG-currently-disabled.patch;patch=1 \ - file://at91/0008-env_dataflash.c-More-robust-handling.patch;patch=1 \ - file://at91/0009-cmd_debug.c-Add-a-generic-function-for-debug-vars.patch;patch=1 \ - file://at91/0010-debug.h-Add-header-for-debug-variables.patch;patch=1 \ - file://at91/0011-common-Makefile-Add-cmd_debug.c-to-build.patch;patch=1 \ - file://at91/0012-cmd_mci.c-Support-writing-out-AT91-mci-config.patch;patch=1 \ - file://at91/0013-atmel_dataflash.c-Status-printout-depend-on-DEBUG.patch;patch=1 \ - file://at91/0014-AT91-MCI-Add-support-for-SD-Card.patch;patch=1 \ - file://at91/0015-sam9m10g45ek-Add-configuration-file.patch;patch=1 \ + file://at91/0002-Support-running-ATSAM9G45-M10-from-dataflash.patch \ + file://at91/0003-Update-SAM9M10-G45-config-for-dataflash-support.patch \ + file://at91/0004-Support-selecting-SPI-mode-in-dataflash-driver.patch \ + file://at91/0005-mux-replace-verbose-dataflash_mmc_mux-command.patch \ + file://at91/0006-libarm-board.c-Gets-overwritten-workaround.patch \ + file://at91/0007-fat.c-Add-DEBUG-currently-disabled.patch \ + file://at91/0008-env_dataflash.c-More-robust-handling.patch \ + file://at91/0009-cmd_debug.c-Add-a-generic-function-for-debug-vars.patch \ + file://at91/0010-debug.h-Add-header-for-debug-variables.patch \ + file://at91/0011-common-Makefile-Add-cmd_debug.c-to-build.patch \ + file://at91/0012-cmd_mci.c-Support-writing-out-AT91-mci-config.patch \ + file://at91/0013-atmel_dataflash.c-Status-printout-depend-on-DEBUG.patch \ + file://at91/0014-AT91-MCI-Add-support-for-SD-Card.patch \ + file://at91/0015-sam9m10g45ek-Add-configuration-file.patch \ + " + +SRC_URI_append_adb4000 = "\ + file://at91/100-icnova.patch \ " TARGET_LDFLAGS = "" |