> On 11.01.2012 22:56, Marek Vasut wrote: > >> This change adds a basic support for Embest/Timll DevKit3250 board, > >> NOR and UART are the only supported peripherals for a moment. The board > >> doesn't require low-level init, because the initial SDRAM and GPIO > >> configuration is performed during kickstart bootloader execution. > >> > >> Signed-off-by: Vladimir Zapolskiy<v...@mleia.com> > >> --- > >> Changes from v2 to v3: > >> * updated a relocation address > >> * combined a record in maintainers file into the patch > >> * use high speed UART2 by default > >> > >> Changes from v1 to v2: > >> * corrected address in GPLv2+ licence header in files > >> * removed clean and distclean targets from board makefile > >> * do not set machine id explicitly, if CONFIG_MACH_TYPE is defined > >> * minor indentation cleanups > >> > >> MAINTAINERS | 4 + > >> board/timll/devkit3250/Makefile | 44 +++++++++++++ > >> board/timll/devkit3250/devkit3250.c | 71 ++++++++++++++++++++ > >> boards.cfg | 1 + > >> include/configs/devkit3250.h | 121 > >> > >> +++++++++++++++++++++++++++++++++++ 5 files changed, 241 insertions(+), > >> 0 deletions(-) > >> > >> create mode 100644 board/timll/devkit3250/Makefile > >> create mode 100644 board/timll/devkit3250/devkit3250.c > >> create mode 100644 include/configs/devkit3250.h > >> > >> diff --git a/MAINTAINERS b/MAINTAINERS > >> index 4bf12b5..68dedae 100644 > >> --- a/MAINTAINERS > >> +++ b/MAINTAINERS > >> @@ -914,6 +914,10 @@ Sughosh Ganu<urwithsugh...@gmail.com> > >> > >> hawkboard ARM926EJS (OMAP-L138) > >> > >> +Vladimir Zapolskiy<v...@mleia.com> > >> + > >> + devkit3250 lpc32xx > >> + > >> > >> ---------------------------------------------------------------------- > >> --- > >> > >> Unknown / orphaned boards: > >> diff --git a/board/timll/devkit3250/Makefile > >> b/board/timll/devkit3250/Makefile new file mode 100644 > >> index 0000000..ea7827c > >> --- /dev/null > >> +++ b/board/timll/devkit3250/Makefile > >> @@ -0,0 +1,44 @@ > >> +# > >> +# Copyright (C) 2011 by Vladimir Zapolskiy<v...@mleia.com> > >> +# Copyright (C) 2008, Guennadi Liakhovetski<l...@denx.de> > >> +# > >> +# See file CREDITS for list of people who contributed to this > >> +# project. > >> +# > >> +# This program is free software; you can redistribute it and/or > >> +# modify it under the terms of the GNU General Public License as > >> +# published by the Free Software Foundation; either version 2 of > >> +# the License, or (at your option) any later version. > >> +# > >> +# This program is distributed in the hope that it will be useful, > >> +# but WITHOUT ANY WARRANTY; without even the implied warranty of > >> +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > >> +# GNU General Public License for more details. > >> +# > >> +# You should have received a copy of the GNU General Public License > >> +# along with this program; if not, write to the Free Software > >> +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, > >> +# MA 02110-1301, USA. > >> +# > >> + > >> +include $(TOPDIR)/config.mk > >> + > >> +LIB = $(obj)lib$(BOARD).o > >> + > >> +COBJS := devkit3250.o > >> + > >> +SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c) > >> +OBJS := $(addprefix $(obj),$(COBJS)) > >> +SOBJS := $(addprefix $(obj),$(SOBJS)) > >> + > >> +$(LIB): $(obj).depend $(OBJS) $(SOBJS) > >> + $(call cmd_link_o_target, $(OBJS) $(SOBJS)) > >> + > >> +####################################################################### > >> ## + > >> +# defines $(obj).depend target > >> +include $(SRCTREE)/rules.mk > >> + > >> +sinclude $(obj).depend > >> + > >> +####################################################################### > >> ## diff --git a/board/timll/devkit3250/devkit3250.c > >> b/board/timll/devkit3250/devkit3250.c new file mode 100644 > >> index 0000000..461012d > >> --- /dev/null > >> +++ b/board/timll/devkit3250/devkit3250.c > >> @@ -0,0 +1,71 @@ > >> +/* > >> + * Embest/Timll DevKit3250 board support > >> + * > >> + * Copyright (C) 2011 Vladimir Zapolskiy<v...@mleia.com> > >> + * > >> + * This program is free software; you can redistribute it and/or > >> + * modify it under the terms of the GNU General Public License as > >> + * published by the Free Software Foundation; either version 2 of > >> + * the License, or (at your option) any later version. > >> + * > >> + * This program is distributed in the hope that it will be useful, > >> + * but WITHOUT ANY WARRANTY; without even the implied warranty of > >> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > >> + * GNU General Public License for more details. > >> + * > >> + * You should have received a copy of the GNU General Public License > >> + * along with this program; if not, write to the Free Software > >> + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, > >> + * MA 02110-1301, USA. > >> + */ > >> + > >> +#include<common.h> > >> +#include<asm/arch/sys_proto.h> > >> +#include<asm/arch/cpu.h> > >> +#include<asm/arch/emc.h> > >> + > >> +DECLARE_GLOBAL_DATA_PTR; > >> + > >> +static struct emc_t *emc = (struct emc_t *)EMC_BASE; > >> + > >> +int board_early_init_f(void) > >> +{ > >> + lpc32xx_uart_init(CONFIG_SYS_LPC32XX_UART); > >> + > >> + return 0; > >> +} > >> + > >> +int board_init(void) > >> +{ > >> + /* > >> + * It might be necessary to flush data cache, if U-boot is loaded > >> + * from kickstart bootloader, e.g. from S1L loader > >> + */ > >> + flush_cache(0, 0); > > > > You're flushing no area here ... also, shouldn't this go to CPU init code > > ? > > That's just a complete cache flush, from arch/arm/lib/cache.c size > argument is actually redundant. > > Basically this should go into low level init, but the board has a > kickstart bootloader, so generally no need to have low level init at all > for it.
What are you talking about ? This should go into CPU init then, right ? If you have crap IPL -- I suspect for all those CPUs of this series -- then this is common for all CPUs and should go into CPU init. M > > >> + > >> + /* adress of boot parameters */ > >> + gd->bd->bi_boot_params = CONFIG_ENV_ADDR; > >> + > >> +#ifdef CONFIG_SYS_FLASH_CFI > >> + /* Use 16-bit memory interface for NOR Flash */ > >> + emc->stat[0].config = EMC_STAT_CONFIG_PB | EMC_STAT_CONFIG_16BIT; > >> + > >> + /* Change the NOR timings to optimum value to get maximum bandwidth */ > >> + emc->stat[0].waitwen = EMC_STAT_WAITWEN(1); > >> + emc->stat[0].waitoen = EMC_STAT_WAITOEN(1); > >> + emc->stat[0].waitrd = EMC_STAT_WAITRD(12); > >> + emc->stat[0].waitpage = EMC_STAT_WAITPAGE(12); > >> + emc->stat[0].waitwr = EMC_STAT_WAITWR(5); > >> + emc->stat[0].waitturn = EMC_STAT_WAITTURN(2); > >> +#endif > >> + > >> + return 0; > >> +} > >> + > >> +int dram_init(void) > >> +{ > >> + gd->ram_size = get_ram_size((void *)CONFIG_SYS_SDRAM_BASE, > >> + CONFIG_SYS_SDRAM_SIZE); > >> + > >> + return 0; > >> +} > >> diff --git a/boards.cfg b/boards.cfg > >> index 0b32532..24a98fe 100644 > >> --- a/boards.cfg > >> +++ b/boards.cfg > >> @@ -176,6 +176,7 @@ omap730p2_cs0boot arm arm926ejs > >> omap730p2 ti omap omap730p2_cs3boot arm > >> arm926ejs omap730p2 ti omap omap730p2:CS3_BOOT > >> edminiv2 arm arm926ejs - > >> LaCie orion5x dkb arm arm926ejs - > >> > >> Marvell pantheon +devkit3250 arm > >> > >> arm926ejs devkit3250 timll lpc32xx versatileab > >> > >> arm arm926ejs versatile armltd > >> > >> versatile versatile:ARCH_VERSATILE_AB versatilepb arm > >> > >> arm926ejs versatile armltd versatile > >> > >> versatile:ARCH_VERSATILE_PB versatileqemu arm > >> arm926ejs versatile armltd versatile > >> versatile:ARCH_VERSATILE_QEMU,ARCH_VERSATILE_PB diff --git > >> a/include/configs/devkit3250.h b/include/configs/devkit3250.h new file > >> mode 100644 > >> index 0000000..360a041 > >> --- /dev/null > >> +++ b/include/configs/devkit3250.h > >> @@ -0,0 +1,121 @@ > >> +/* > >> + * Embest/Timll DevKit3250 board configuration file > >> + * > >> + * Copyright (C) 2011 Vladimir Zapolskiy<v...@mleia.com> > >> + * > >> + * This program is free software; you can redistribute it and/or > >> + * modify it under the terms of the GNU General Public License > >> + * as published by the Free Software Foundation; either version 2 > >> + * of the License, or (at your option) any later version. > >> + * > >> + * This program is distributed in the hope that it will be useful, > >> + * but WITHOUT ANY WARRANTY; without even the implied warranty of > >> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > >> + * GNU General Public License for more details. > >> + * > >> + * You should have received a copy of the GNU General Public License > >> + * along with this program; if not, write to the Free Software > >> + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, > >> + * MA 02110-1301, USA. > >> + */ > >> + > >> +#ifndef __CONFIG_DEVKIT3250_H__ > >> +#define __CONFIG_DEVKIT3250_H__ > >> + > >> +/* SoC and board defines */ > >> +#include<asm/sizes.h> > >> +#include<asm/arch/cpu.h> > >> + > >> +/* > >> + * Define DevKit3250 machine type by hand until it lands in mach-types > >> + */ > >> +#define MACH_TYPE_DEVKIT3250 3697 > >> +#define CONFIG_MACH_TYPE MACH_TYPE_DEVKIT3250 > >> + > >> +#define CONFIG_SYS_ICACHE_OFF > >> +#define CONFIG_SYS_DCACHE_OFF > >> +#define CONFIG_SKIP_LOWLEVEL_INIT > >> +#define CONFIG_BOARD_EARLY_INIT_F > >> + > >> +/* > >> + * Memory configurations > >> + */ > >> +#define CONFIG_NR_DRAM_BANKS 1 > >> +#define CONFIG_STACKSIZE SZ_32K > >> +#define CONFIG_SYS_MALLOC_LEN SZ_1M > >> +#define CONFIG_SYS_GBL_DATA_SIZE 128 > >> +#define CONFIG_SYS_SDRAM_BASE EMC_DYCS0_BASE > >> +#define CONFIG_SYS_SDRAM_SIZE SZ_64M > >> +#define CONFIG_SYS_MEMTEST_START CONFIG_SYS_SDRAM_BASE > >> +#define CONFIG_SYS_MEMTEST_END (CONFIG_SYS_TEXT_BASE - SZ_1M) > >> + > >> +#define CONFIG_SYS_TEXT_BASE 0x83FA0000 > >> +#define CONFIG_SYS_LOAD_ADDR (CONFIG_SYS_MEMTEST_START + SZ_32K) > >> + > >> +#define CONFIG_SYS_INIT_RAM_SIZE SZ_4K > >> +#define CONFIG_SYS_GBL_DATA_OFFSET (CONFIG_SYS_SDRAM_BASE + \ > >> + CONFIG_SYS_INIT_RAM_SIZE - \ > >> + GENERATED_GBL_DATA_SIZE) > >> +#define CONFIG_SYS_INIT_SP_ADDR CONFIG_SYS_GBL_DATA_OFFSET > >> + > >> +/* > >> + * Serial Driver > >> + */ > >> +#define CONFIG_SYS_LPC32XX_UART 2 /* UART2 */ > >> +#define CONFIG_BAUDRATE 115200 > >> + > >> +/* > >> + * NOR Flash > >> + */ > >> +#define CONFIG_CMD_FLASH > >> +#define CONFIG_SYS_MAX_FLASH_BANKS 1 > >> +#define CONFIG_SYS_MAX_FLASH_SECT 71 > >> +#define CONFIG_SYS_FLASH_BASE EMC_CS0_BASE > >> +#define CONFIG_SYS_FLASH_SIZE SZ_4M > >> +#define CONFIG_SYS_FLASH_CFI > >> + > >> +/* > >> + * U-Boot General Configurations > >> + */ > >> +#define CONFIG_SYS_LONGHELP > >> +#define CONFIG_SYS_PROMPT "=> " > >> +#define CONFIG_SYS_CBSIZE 1024 /* Console I/O buffer size > >> */ +#define CONFIG_SYS_PBSIZE \ > >> + (CONFIG_SYS_CBSIZE + sizeof(CONFIG_SYS_PROMPT) + 16) > >> +#define CONFIG_SYS_MAXARGS 16 > >> +#define CONFIG_SYS_BARGSIZE CONFIG_SYS_CBSIZE > >> + > >> +#define CONFIG_AUTO_COMPLETE > >> +#define CONFIG_CMDLINE_EDITING > >> +#define CONFIG_VERSION_VARIABLE > >> +#define CONFIG_DISPLAY_CPUINFO > >> +#define CONFIG_DOS_PARTITION > >> + > >> +#define CONFIG_ENV_IS_NOWHERE > >> +#define CONFIG_ENV_SIZE SZ_128K > >> +#define CONFIG_ENV_ADDR 0x80000100 > >> + > >> +/* > >> + * U-Boot Commands > >> + */ > >> +#include<config_cmd_default.h> > >> +#define CONFIG_CMD_CACHE > >> + > >> +/* > >> + * Boot Linux > >> + */ > >> +#define CONFIG_CMDLINE_TAG > >> +#define CONFIG_SETUP_MEMORY_TAGS > >> +#define CONFIG_ZERO_BOOTDELAY_CHECK > >> +#define CONFIG_BOOTDELAY 3 > >> + > >> +#define CONFIG_BOOTFILE "uImage" > >> +#define CONFIG_BOOTARGS "console=ttyS2,115200n8" > >> +#define CONFIG_LOADADDR 0x80008000 > >> + > >> +/* > >> + * SoC specific configuration > >> + */ > >> +#include<asm/arch/config.h> > >> + > >> +#endif /* __CONFIG_DEVKIT3250_H__*/ > > > > Otherwise ok > > Thanks for review. _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot