From mboxrd@z Thu Jan 1 00:00:00 1970 From: Vladimir Zapolskiy Date: Thu, 12 Jan 2012 09:33:32 +0200 Subject: [U-Boot] [PATCH 3/3 v4] devkit3250: add Timll DevKit3250 board initial support In-Reply-To: <201201120053.06127.marek.vasut@gmail.com> References: <1326323570-9394-1-git-send-email-vz@mleia.com> <1326323570-9394-4-git-send-email-vz@mleia.com> <201201120053.06127.marek.vasut@gmail.com> Message-ID: <4F0E8CCC.30803@mleia.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On 12.01.2012 01:53, 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 >> Cc: Albert ARIBAUD >> Cc: Wolfgang Denk >> --- >> Changes from v3 to v4: >> * removed dcache flushing from board_init() >> * tabs instead of spaces in board config file >> >> 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 | 65 +++++++++++++++++++ >> boards.cfg | 1 + >> include/configs/devkit3250.h | 121 >> +++++++++++++++++++++++++++++++++++ 5 files changed, 235 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 >> >> hawkboard ARM926EJS (OMAP-L138) >> >> +Vladimir Zapolskiy >> + >> + 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 >> +# 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..877cd60 >> --- /dev/null >> +++ b/board/timll/devkit3250/devkit3250.c >> @@ -0,0 +1,65 @@ >> +/* >> + * 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) >> +{ >> + /* adress of boot parameters */ >> + gd->bd->bi_boot_params = CONFIG_ENV_ADDR; > > This is LINUX'S BOOTARGS !! > Good point, env is "nowhere", but certainly here is the wrong macro. >> + >> +#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..d805cfd >> --- /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 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 >> +#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 >> + >> +/* >> + * Include SoC specific configuration >> + */ >> +#include >> + >> +#endif /* __CONFIG_DEVKIT3250_H__*/ -- With best wishes, Vladimir