diff options
| author | Vladimir Zapolskiy <vz@mleia.com> | 2012-04-19 04:33:10 +0000 | 
|---|---|---|
| committer | Albert ARIBAUD <albert.u.boot@aribaud.net> | 2012-05-15 08:31:22 +0200 | 
| commit | 463ec1caa3cb9401da8f788fc7d4eee08a5f0edc (patch) | |
| tree | 79a2eac678605275b1e58966aa5510afdd3bcf4d | |
| parent | cc35fdbc4d5b5ba85cae2568453957a62c3f1e4a (diff) | |
| download | olio-uboot-2014.01-463ec1caa3cb9401da8f788fc7d4eee08a5f0edc.tar.xz olio-uboot-2014.01-463ec1caa3cb9401da8f788fc7d4eee08a5f0edc.zip | |
devkit3250: add Timll DevKit3250 board initial support
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 <vz@mleia.com>
Cc: Albert ARIBAUD <albert.u.boot@aribaud.net>
Acked-by: Marek Vasut <marek.vasut@gmail.com>
| -rw-r--r-- | MAINTAINERS | 4 | ||||
| -rw-r--r-- | board/timll/devkit3250/Makefile | 44 | ||||
| -rw-r--r-- | board/timll/devkit3250/devkit3250.c | 65 | ||||
| -rw-r--r-- | boards.cfg | 1 | ||||
| -rw-r--r-- | include/configs/devkit3250.h | 117 | 
5 files changed, 231 insertions, 0 deletions
| diff --git a/MAINTAINERS b/MAINTAINERS index e2441d8d3..4ede19bef 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -932,6 +932,10 @@ Sughosh Ganu <urwithsughosh@gmail.com>  	hawkboard	ARM926EJS (OMAP-L138) +Vladimir Zapolskiy <vz@mleia.com> + +	devkit3250	lpc32xx +  -------------------------------------------------------------------------  Unknown / orphaned boards: diff --git a/board/timll/devkit3250/Makefile b/board/timll/devkit3250/Makefile new file mode 100644 index 000000000..ea7827c80 --- /dev/null +++ b/board/timll/devkit3250/Makefile @@ -0,0 +1,44 @@ +# +# Copyright (C) 2011 by Vladimir Zapolskiy <vz@mleia.com> +# Copyright (C) 2008, Guennadi Liakhovetski <lg@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 000000000..6b0ec80fc --- /dev/null +++ b/board/timll/devkit3250/devkit3250.c @@ -0,0 +1,65 @@ +/* + * Embest/Timll DevKit3250 board support + * + * Copyright (C) 2011 Vladimir Zapolskiy <vz@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_regs *emc = (struct emc_regs *)EMC_BASE; + +int board_early_init_f(void) +{ +	lpc32xx_uart_init(CONFIG_SYS_LPC32XX_UART); + +	return 0; +} + +int board_init(void) +{ +	/* adress of boot parameters */ +	gd->bd->bi_boot_params  = CONFIG_SYS_SDRAM_BASE + 0x100; + +#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 5f328b586..9460c3857 100644 --- a/boards.cfg +++ b/boards.cfg @@ -154,6 +154,7 @@ openrd_ultimate              arm         arm926ejs   openrd              Marvell  rd6281a                      arm         arm926ejs   -                   Marvell        kirkwood  sheevaplug                   arm         arm926ejs   -                   Marvell        kirkwood  dockstar                     arm         arm926ejs   -                   Seagate        kirkwood +devkit3250                   arm         arm926ejs   devkit3250          timll          lpc32xx  jadecpu                      arm         arm926ejs   jadecpu             syteco         mb86r0x  mx25pdk                      arm         arm926ejs   mx25pdk             freescale      mx25		mx25pdk:IMX_CONFIG=board/freescale/mx25pdk/imximage.cfg  tx25                         arm         arm926ejs   tx25                karo           mx25 diff --git a/include/configs/devkit3250.h b/include/configs/devkit3250.h new file mode 100644 index 000000000..9f15ffb0f --- /dev/null +++ b/include/configs/devkit3250.h @@ -0,0 +1,117 @@ +/* + * Embest/Timll DevKit3250 board configuration file + * + * Copyright (C) 2011 Vladimir Zapolskiy <vz@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_TEXT_BASE		0x83FA0000 +#define CONFIG_SYS_MEMTEST_START	(CONFIG_SYS_SDRAM_BASE + SZ_32K) +#define CONFIG_SYS_MEMTEST_END		(CONFIG_SYS_TEXT_BASE - SZ_1M) + +#define CONFIG_SYS_LOAD_ADDR		(CONFIG_SYS_SDRAM_BASE + SZ_32K) + +#define CONFIG_SYS_INIT_SP_ADDR		(CONFIG_SYS_SDRAM_BASE + SZ_4K \ +					 - GENERATED_GBL_DATA_SIZE) + +/* + * 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 +#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 + +/* + * 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 + +/* + * Include SoC specific configuration + */ +#include <asm/arch/config.h> + +#endif  /* __CONFIG_DEVKIT3250_H__*/ |