diff options
Diffstat (limited to 'board/davinci/da8xxevm')
| -rw-r--r-- | board/davinci/da8xxevm/da850evm.c | 4 | ||||
| -rw-r--r-- | board/davinci/da8xxevm/hawkboard.c | 23 | ||||
| -rw-r--r-- | board/davinci/da8xxevm/hawkboard_nand_spl.c | 115 | ||||
| -rw-r--r-- | board/davinci/da8xxevm/u-boot-spl-da850evm.lds (renamed from board/davinci/da8xxevm/u-boot-spl.lds) | 0 | ||||
| -rw-r--r-- | board/davinci/da8xxevm/u-boot-spl-hawk.lds | 81 | 
5 files changed, 107 insertions, 116 deletions
| diff --git a/board/davinci/da8xxevm/da850evm.c b/board/davinci/da8xxevm/da850evm.c index 9bd3e7146..34ef53df2 100644 --- a/board/davinci/da8xxevm/da850evm.c +++ b/board/davinci/da8xxevm/da850evm.c @@ -137,7 +137,7 @@ const struct pinmux_resource pinmuxes[] = {  const int pinmuxes_size = ARRAY_SIZE(pinmuxes); -static const struct lpsc_resource lpsc[] = { +const struct lpsc_resource lpsc[] = {  	{ DAVINCI_LPSC_AEMIF },	/* NAND, NOR */  	{ DAVINCI_LPSC_SPI1 },	/* Serial Flash */  	{ DAVINCI_LPSC_EMAC },	/* image download */ @@ -145,6 +145,8 @@ static const struct lpsc_resource lpsc[] = {  	{ DAVINCI_LPSC_GPIO },  }; +const int lpsc_size = ARRAY_SIZE(lpsc); +  #ifndef CONFIG_DA850_EVM_MAX_CPU_CLK  #define CONFIG_DA850_EVM_MAX_CPU_CLK	300000000  #endif diff --git a/board/davinci/da8xxevm/hawkboard.c b/board/davinci/da8xxevm/hawkboard.c index 9d4e238bf..b6942589f 100644 --- a/board/davinci/da8xxevm/hawkboard.c +++ b/board/davinci/da8xxevm/hawkboard.c @@ -27,10 +27,33 @@  #include <asm/arch/hardware.h>  #include <asm/io.h>  #include <asm/arch/davinci_misc.h> +#include <asm/arch/pinmux_defs.h>  #include <ns16550.h>  DECLARE_GLOBAL_DATA_PTR; +const struct pinmux_resource pinmuxes[] = { +	PINMUX_ITEM(emac_pins_mii), +	PINMUX_ITEM(emac_pins_mdio), +	PINMUX_ITEM(emifa_pins_cs3), +	PINMUX_ITEM(emifa_pins_cs4), +	PINMUX_ITEM(emifa_pins_nand), +	PINMUX_ITEM(uart2_pins_txrx), +	PINMUX_ITEM(uart2_pins_rtscts), +}; + +const int pinmuxes_size = ARRAY_SIZE(pinmuxes); + +const struct lpsc_resource lpsc[] = { +	{ DAVINCI_LPSC_AEMIF },	/* NAND, NOR */ +	{ DAVINCI_LPSC_SPI1 },	/* Serial Flash */ +	{ DAVINCI_LPSC_EMAC },	/* image download */ +	{ DAVINCI_LPSC_UART2 },	/* console */ +	{ DAVINCI_LPSC_GPIO }, +}; + +const int lpsc_size = ARRAY_SIZE(lpsc); +  int board_init(void)  {  	/* arch number of the board */ diff --git a/board/davinci/da8xxevm/hawkboard_nand_spl.c b/board/davinci/da8xxevm/hawkboard_nand_spl.c deleted file mode 100644 index df97963f6..000000000 --- a/board/davinci/da8xxevm/hawkboard_nand_spl.c +++ /dev/null @@ -1,115 +0,0 @@ -/* - * Modified for Hawkboard - Syed Mohammed Khasim <khasim@beagleboard.org> - * - * Copyright (C) 2008 Sekhar Nori, Texas Instruments, Inc.  <nsekhar@ti.com> - * Copyright (C) 2007 Sergey Kubushyn <ksi@koi8.net> - * Copyright (C) 2004 Texas Instruments. - * - * ---------------------------------------------------------------------------- - * 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., 675 Mass Ave, Cambridge, MA 02139, USA. - * ---------------------------------------------------------------------------- - */ - -#include <common.h> -#include <asm/errno.h> -#include <asm/arch/hardware.h> -#include <asm/io.h> -#include <asm/arch/davinci_misc.h> -#include <asm/arch/pinmux_defs.h> -#include <ns16550.h> -#include <nand.h> - -DECLARE_GLOBAL_DATA_PTR; - -static const struct pinmux_resource pinmuxes[] = { -	PINMUX_ITEM(emac_pins_mii), -	PINMUX_ITEM(emac_pins_mdio), -	PINMUX_ITEM(emifa_pins_cs3), -	PINMUX_ITEM(emifa_pins_cs4), -	PINMUX_ITEM(emifa_pins_nand), -	PINMUX_ITEM(uart2_pins_txrx), -	PINMUX_ITEM(uart2_pins_rtscts), -}; - -static const struct lpsc_resource lpsc[] = { -	{ DAVINCI_LPSC_AEMIF },	/* NAND, NOR */ -	{ DAVINCI_LPSC_SPI1 },	/* Serial Flash */ -	{ DAVINCI_LPSC_EMAC },	/* image download */ -	{ DAVINCI_LPSC_UART2 },	/* console */ -	{ DAVINCI_LPSC_GPIO }, -}; - -void board_init_f(ulong bootflag) -{ -	/* -	 * Kick Registers need to be set to allow access to Pin Mux registers -	 */ -	writel(DV_SYSCFG_KICK0_UNLOCK, &davinci_syscfg_regs->kick0); -	writel(DV_SYSCFG_KICK1_UNLOCK, &davinci_syscfg_regs->kick1); - -	/* setup the SUSPSRC for ARM to control emulation suspend */ -	writel(readl(&davinci_syscfg_regs->suspsrc) & -	       ~(DAVINCI_SYSCFG_SUSPSRC_EMAC | DAVINCI_SYSCFG_SUSPSRC_I2C | -		 DAVINCI_SYSCFG_SUSPSRC_SPI1 | DAVINCI_SYSCFG_SUSPSRC_TIMER0 | -		 DAVINCI_SYSCFG_SUSPSRC_UART2), &davinci_syscfg_regs->suspsrc); - -	/* Power on required peripherals -	 * ARM does not have acess by default to PSC0 and PSC1 -	 * assuming here that the DSP bootloader has set the IOPU -	 * such that PSC access is available to ARM -	 */ -	da8xx_configure_lpsc_items(lpsc, ARRAY_SIZE(lpsc)); - -	/* configure pinmux settings */ -	davinci_configure_pin_mux_items(pinmuxes, -					ARRAY_SIZE(pinmuxes)); - -	writel(readl(&davinci_uart2_ctrl_regs->pwremu_mgmt) | -	       (DAVINCI_UART_PWREMU_MGMT_FREE) | -	       (DAVINCI_UART_PWREMU_MGMT_URRST) | -	       (DAVINCI_UART_PWREMU_MGMT_UTRST), -	       &davinci_uart2_ctrl_regs->pwremu_mgmt); - -	NS16550_init((NS16550_t)(DAVINCI_UART2_BASE), -			CONFIG_SYS_NS16550_CLK / 16 / CONFIG_BAUDRATE); - -	puts("Nand boot...\n"); - -	nand_boot(); -} - -void puts(const char *str) -{ -	while (*str) -		putc(*str++); -} - -void putc(char c) -{ -	if (gd->flags & GD_FLG_SILENT) -		return; - -	if (c == '\n') -		NS16550_putc((NS16550_t)(DAVINCI_UART2_BASE), '\r'); - -	NS16550_putc((NS16550_t)(DAVINCI_UART2_BASE), c); -} - -void hang(void) -{ -	puts("### ERROR ### Please RESET the board ###\n"); -	for (;;) -		; -} diff --git a/board/davinci/da8xxevm/u-boot-spl.lds b/board/davinci/da8xxevm/u-boot-spl-da850evm.lds index 6f6e065a9..6f6e065a9 100644 --- a/board/davinci/da8xxevm/u-boot-spl.lds +++ b/board/davinci/da8xxevm/u-boot-spl-da850evm.lds diff --git a/board/davinci/da8xxevm/u-boot-spl-hawk.lds b/board/davinci/da8xxevm/u-boot-spl-hawk.lds new file mode 100644 index 000000000..b3a41afc4 --- /dev/null +++ b/board/davinci/da8xxevm/u-boot-spl-hawk.lds @@ -0,0 +1,81 @@ +/* + * (C) Copyright 2002 + * Gary Jennejohn, DENX Software Engineering, <garyj@denx.de> + * + * (C) Copyright 2008 + * Guennadi Liakhovetki, DENX Software Engineering, <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., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + */ + +OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm") +OUTPUT_ARCH(arm) +ENTRY(_start) +SECTIONS +{ +	. = 0xc1080000; + +	. = ALIGN(4); +	.text      : +	{ +	  arch/arm/cpu/arm926ejs/start.o		(.text) +	  arch/arm/cpu/arm926ejs/davinci/libdavinci.o	(.text) +	  drivers/mtd/nand/libnand.o			(.text) + +	  *(.text*) +	} + +	. = ALIGN(4); +	.rodata : { *(.rodata) } + +	. = ALIGN(4); +	.data : { +		*(.data) +	__datarel_start = .; +		*(.data.rel) +	__datarelrolocal_start = .; +		*(.data.rel.ro.local) +	__datarellocal_start = .; +		*(.data.rel.local) +	__datarelro_start = .; +		*(.data.rel.ro) +	} + +	. = ALIGN(4); +	__rel_dyn_start = .; +	__rel_dyn_end = .; +	__dynsym_start = .; + +	__got_start = .; +	. = ALIGN(4); +	.got : { *(.got) } + +	__got_end = .; + +	.bss : +	{ +		. = ALIGN(4); +		__bss_start = .; +		*(.bss*) +		. = ALIGN(4); +		__bss_end__ = .; +	} + +	_end = .; +} |