From mboxrd@z Thu Jan 1 00:00:00 1970 From: Igor Grinberg Date: Tue, 15 Nov 2011 08:42:25 +0200 Subject: [U-Boot] [PATCH 2/3 v2] devkit3250: add Timll DevKit3250 board initial support In-Reply-To: <1321292596-4631-3-git-send-email-vz@mleia.com> References: <1321292596-4631-1-git-send-email-vz@mleia.com> <1321292596-4631-3-git-send-email-vz@mleia.com> Message-ID: <4EC209D1.2010001@compulab.co.il> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hi Vladimir, On 11/14/11 19:43, Vladimir Zapolskiy 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 > --- > Changes from v1 to v2: > * corrected address in GPLv2+ licence header in files I think you should remove the address part completely, because next time it changes, will you be around to fix it? I know that there are many files already with address, but to make a big change it is better to start it from small - say all new coming patches. > * removed clean and distclean targets from board makefile > * do not set machine id explicitly, if CONFIG_MACH_TYPE is defined > * minor indentation cleanups > > board/timll/devkit3250/Makefile | 44 +++++++++++++ > board/timll/devkit3250/devkit3250.c | 71 ++++++++++++++++++++ > boards.cfg | 3 +- > include/configs/devkit3250.h | 121 +++++++++++++++++++++++++++++++++++ > 4 files changed, 238 insertions(+), 1 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/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 > +# Copyright (C) 2008, Guennadi Liakhovetski > +# > +# 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 > + * > + * 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 > +#include > +#include > +#include > + > +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); > + > + /* 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 cf6e67c..8bf6870 100644 > --- a/boards.cfg > +++ b/boards.cfg > @@ -162,7 +162,8 @@ nhk8815 arm arm926ejs nhk8815 st > nhk8815_onenand arm arm926ejs nhk8815 st nomadik nhk8815:BOOT_ONENAND > omap5912osk arm arm926ejs - ti omap > edminiv2 arm arm926ejs - LaCie orion5x > -dkb arm arm926ejs - Marvell pantheon > +dkb arm arm926ejs - Marvell pantheon > +devkit3250 arm arm926ejs devkit3250 timll lpc32xx > integratorap_cm946es arm arm946es integrator armltd - integratorap:CM946ES > integratorcp_cm946es arm arm946es integrator armltd - integratorcp:CM946ES > ca9x4_ct_vxp arm armv7 vexpress armltd > 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 > + * > + * 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 > +#include > + > +/* > + * 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 0x82FA0000 > +#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 5 /* UART5 */ > +#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 > +#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 > + > +#endif /* __CONFIG_DEVKIT3250_H__*/ -- Regards, Igor.