diff options
| author | Ricardo Ribalda Delgado <ricardo.ribalda@uam.es> | 2008-07-17 12:47:09 +0200 | 
|---|---|---|
| committer | Stefan Roese <sr@denx.de> | 2008-07-18 12:31:17 +0200 | 
| commit | 086511fc96a8a9bb56e5e19a3d84c40f4dba80cc (patch) | |
| tree | 6d92e4e0c8b37ac282a601f8b9e5467425bb0628 | |
| parent | d865fd09809a3a18669f35f970781820af40e4de (diff) | |
| download | olio-uboot-2014.01-086511fc96a8a9bb56e5e19a3d84c40f4dba80cc.tar.xz olio-uboot-2014.01-086511fc96a8a9bb56e5e19a3d84c40f4dba80cc.zip | |
ppc4xx: ML507 Board Support
The Xilinx ML507 Board is a Virtex 5 prototyping board that includes,
	among others:
	-Virtex 5 FX FPGA (With a ppc440x5 in it)
	-256MB of SDRAM2
	-32MB of Flash
	-I2C Eeprom
	-System ACE chip
	-Serial ATA connectors
	-RS232 Level Conversors
	-Ethernet Transceiver
This patch gives support to a standard design produced by EDK for this
board: ppc440, uartlite, xilinx_int and flash
- Includes Changes propossed by Stefan Roese and Michal Simek
Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@uam.es>
Acked-by: Stefan Roese <sr@denx.de>
| -rw-r--r-- | CREDITS | 5 | ||||
| -rw-r--r-- | MAINTAINERS | 4 | ||||
| -rwxr-xr-x | MAKEALL | 1 | ||||
| -rw-r--r-- | Makefile | 3 | ||||
| -rw-r--r-- | board/xilinx/ml507/Makefile | 58 | ||||
| -rw-r--r-- | board/xilinx/ml507/config.mk | 24 | ||||
| -rw-r--r-- | board/xilinx/ml507/init.S | 47 | ||||
| -rw-r--r-- | board/xilinx/ml507/ml507.c | 46 | ||||
| -rw-r--r-- | board/xilinx/ml507/u-boot.lds | 130 | ||||
| -rw-r--r-- | board/xilinx/ml507/xparameters.h | 34 | ||||
| -rw-r--r-- | include/configs/ml507.h | 116 | 
11 files changed, 468 insertions, 0 deletions
| @@ -399,6 +399,11 @@ N: Stelian Pop  E: stelian.pop@leadtechdesign.com  D: Atmel AT91CAP9ADK support +N: Ricardo Ribalda Delgado +E: ricardo.ribalda@uam.es +D: PPC440x5 (Virtex5), ML507 Board, eeprom_simul, adt7460 +W: http://www.ii.uam.es/~rribalda +  N: Stefan Roese  E: sr@denx.de  D: AMCC PPC4xx Support diff --git a/MAINTAINERS b/MAINTAINERS index b170111e8..58e9aa8c2 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -311,6 +311,10 @@ Daniel Poirot <dan.poirot@windriver.com>  	sbc8240		MPC8240  	sbc405		PPC405GP +Ricardo Ribalda <ricardo.ribalda@uam.es> + +	ml507 		PPC440x5 +  Stefan Roese <sr@denx.de>  	P3M7448		MPC7448 @@ -209,6 +209,7 @@ LIST_4xx="		\  	MIP405T		\  	ML2		\  	ml300		\ +	ml507		\  	ocotea		\  	OCRTC		\  	ORSG		\ @@ -1349,6 +1349,9 @@ ML2_config:	unconfig  ml300_config:	unconfig  	@$(MKCONFIG) $(@:_config=) ppc ppc4xx ml300 xilinx +ml507_config:	unconfig +	@$(MKCONFIG) $(@:_config=) ppc ppc4xx ml507 xilinx +  ocotea_config:	unconfig  	@$(MKCONFIG) $(@:_config=) ppc ppc4xx ocotea amcc diff --git a/board/xilinx/ml507/Makefile b/board/xilinx/ml507/Makefile new file mode 100644 index 000000000..72837048a --- /dev/null +++ b/board/xilinx/ml507/Makefile @@ -0,0 +1,58 @@ +# +# (C) Copyright 2000-2006 +# Wolfgang Denk, DENX Software Engineering, wd@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 +# + +include $(TOPDIR)/config.mk +ifneq ($(OBJTREE),$(SRCTREE)) +endif + +INCS		:= +CFLAGS		+= $(INCS) +HOST_CFLAGS	+= $(INCS) + +LIB	= $(obj)lib$(BOARD).a + +COBJS	= $(BOARD).o + +SOBJS	= init.o + +SRCS	:= $(SOBJS:.o=.S) $(COBJS:.o=.c) +OBJS	:= $(addprefix $(obj),$(COBJS)) +SOBJS	:= $(addprefix $(obj),$(SOBJS)) + +$(LIB):	$(OBJS) $(SOBJS) +	$(AR) $(ARFLAGS) $@ $^ + +clean: +	rm -f $(SOBJS) $(OBJS) + +distclean:	clean +	rm -f $(LIB) core *.bak .depend + +######################################################################### + +# defines $(obj).depend target +include $(SRCTREE)/rules.mk + +sinclude $(obj).depend + +######################################################################### diff --git a/board/xilinx/ml507/config.mk b/board/xilinx/ml507/config.mk new file mode 100644 index 000000000..35c52ad7f --- /dev/null +++ b/board/xilinx/ml507/config.mk @@ -0,0 +1,24 @@ +# +# (C) Copyright 2000 +# Wolfgang Denk, DENX Software Engineering, wd@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 +# + +TEXT_BASE = 0x04000000 diff --git a/board/xilinx/ml507/init.S b/board/xilinx/ml507/init.S new file mode 100644 index 000000000..f54d92933 --- /dev/null +++ b/board/xilinx/ml507/init.S @@ -0,0 +1,47 @@ +/* + *  (C) Copyright 2008 + *  Ricado Ribalda-Universidad Autonoma de Madrid-ricardo.ribalda@uam.es + *  This work has been supported by: QTechnology  http://qtec.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, see <http://www.gnu.org/licenses/>. +*/ + +#include <ppc_asm.tmpl> +#include <config.h> +#include <asm-ppc/mmu.h> + +.section .bootpg,"ax" +.globl tlbtab + +tlbtab: +tlbtab_start +	/* SDRAM */ +tlbentry(XPAR_DDR2_SDRAM_MEM_BASEADDR, SZ_256M, CFG_SDRAM_BASE, 0, +	 AC_R | AC_W | AC_X | SA_G | SA_I) +	/* UART */ +tlbentry(XPAR_UARTLITE_0_BASEADDR, SZ_64K, XPAR_UARTLITE_0_BASEADDR, 0, +	 AC_R | AC_W | SA_G | SA_I) +	/* PIC */ +tlbentry(XPAR_INTC_0_BASEADDR, SZ_64K, XPAR_INTC_0_BASEADDR, 0, +	 AC_R | AC_W | SA_G | SA_I) +	/* I2C */ +tlbentry(XPAR_IIC_EEPROM_BASEADDR, SZ_64K, XPAR_IIC_EEPROM_BASEADDR, 0, +	 AC_R | AC_W | SA_G | SA_I) +	/* Net */ +tlbentry(XPAR_LLTEMAC_0_BASEADDR, SZ_64K, XPAR_LLTEMAC_0_BASEADDR, 0, +	 AC_R | AC_W | SA_G | SA_I) +	/*Flash*/ +tlbentry(XPAR_FLASH_MEM0_BASEADDR, SZ_256M, XPAR_FLASH_MEM0_BASEADDR, 0, +	AC_R | AC_W | SA_G | SA_I) +tlbtab_end diff --git a/board/xilinx/ml507/ml507.c b/board/xilinx/ml507/ml507.c new file mode 100644 index 000000000..e95d2af65 --- /dev/null +++ b/board/xilinx/ml507/ml507.c @@ -0,0 +1,46 @@ +/* + * (C) Copyright 2008 + * Ricado Ribalda-Universidad Autonoma de Madrid-ricardo.ribalda@uam.es + * This work has been supported by: QTechnology  http://qtec.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, see <http://www.gnu.org/licenses/>. +*/ + +#include <config.h> +#include <common.h> +#include <asm/processor.h> + +int board_pre_init(void) +{ +	return 0; +} + +int checkboard(void) +{ +	puts ("ML507 Board\n"); +	return 0; +} + +phys_size_t initdram(int board_type) +{ +	return CFG_SDRAM_SIZE_MB * 1024 * 1024; +} + +void get_sys_info(sys_info_t * sysInfo) +{ +	sysInfo->freqProcessor = XPAR_CORE_CLOCK_FREQ_HZ; +	sysInfo->freqPLB = XPAR_PLB_CLOCK_FREQ_HZ; +	sysInfo->freqPCI = 0; + +	return; +} diff --git a/board/xilinx/ml507/u-boot.lds b/board/xilinx/ml507/u-boot.lds new file mode 100644 index 000000000..ef2bdc306 --- /dev/null +++ b/board/xilinx/ml507/u-boot.lds @@ -0,0 +1,130 @@ +/* + * (C) Copyright 2000 + * Wolfgang Denk, DENX Software Engineering, wd@denx.de. + * 2008: + * Modified by: Ricardo Ribalda Delgado ricardo.ribalda@uam.es + * + * 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_ARCH(powerpc) +ENTRY(_start_440) +/* Do we need any of these for elf? +   __DYNAMIC = 0;    */ +SECTIONS +{ +  /* Read-only sections, merged into text segment: */ +  . = + SIZEOF_HEADERS; +  .interp : { *(.interp) } +  .hash          : { *(.hash)		} +  .dynsym        : { *(.dynsym)		} +  .dynstr        : { *(.dynstr)		} +  .rel.text      : { *(.rel.text)		} +  .rela.text     : { *(.rela.text)	} +  .rel.data      : { *(.rel.data)		} +  .rela.data     : { *(.rela.data)	} +  .rel.rodata    : { *(.rel.rodata)	} +  .rela.rodata   : { *(.rela.rodata)	} +  .rel.got       : { *(.rel.got)		} +  .rela.got      : { *(.rela.got)		} +  .rel.ctors     : { *(.rel.ctors)	} +  .rela.ctors    : { *(.rela.ctors)	} +  .rel.dtors     : { *(.rel.dtors)	} +  .rela.dtors    : { *(.rela.dtors)	} +  .rel.bss       : { *(.rel.bss)		} +  .rela.bss      : { *(.rela.bss)		} +  .rel.plt       : { *(.rel.plt)		} +  .rela.plt      : { *(.rela.plt)		} +  .init          : { *(.init)	} +  .plt : { *(.plt) } +  .text      : +  { +    *(.text) +    *(.fixup) +    *(.got1) +  } +  _etext = .; +  PROVIDE (etext = .); +  .rodata    : +  { +    *(.rodata) +    *(.rodata1) +    *(.rodata.str1.4) +    *(.eh_frame) +  } +  .fini      : { *(.fini)    } =0 +  .ctors     : { *(.ctors)   } +  .dtors     : { *(.dtors)   } + +  /* Read-write section, merged into data segment: */ +  . = (. + 0x00FF) & 0xFFFFFF00; +  _erotext = .; +  PROVIDE (erotext = .); +  .reloc   : +  { +    *(.got) +    _GOT2_TABLE_ = .; +    *(.got2) +    _FIXUP_TABLE_ = .; +    *(.fixup) +  } +  __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >>2; +  __fixup_entries = (. - _FIXUP_TABLE_)>>2; + +  .data    : +  { +    *(.data) +    *(.data1) +    *(.sdata) +    *(.sdata2) +    *(.dynamic) +    CONSTRUCTORS +  } +  _edata  =  .; +  PROVIDE (edata = .); + +  . = .; +  __u_boot_cmd_start = .; +  .u_boot_cmd : { *(.u_boot_cmd) } +  __u_boot_cmd_end = .; + + +  . = .; +  __start___ex_table = .; +  __ex_table : { *(__ex_table) } +  __stop___ex_table = .; + +  . = ALIGN(256); +  __init_begin = .; +  .text.init : { *(.text.init) } +  .data.init : { *(.data.init) } +  . = ALIGN(256); +  __init_end = .; + +  __bss_start = .; +  .bss (NOLOAD)       : +  { +   *(.sbss) *(.scommon) +   *(.dynbss) +   *(.bss) +   *(COMMON) +  } +  _end = . ; +  PROVIDE (end = .); +} diff --git a/board/xilinx/ml507/xparameters.h b/board/xilinx/ml507/xparameters.h new file mode 100644 index 000000000..1542e8458 --- /dev/null +++ b/board/xilinx/ml507/xparameters.h @@ -0,0 +1,34 @@ +/* + * (C) Copyright 2008 + * Ricado Ribalda-Universidad Autonoma de Madrid-ricardo.ribalda@uam.es + * This work has been supported by: QTechnology  http://qtec.com/ + * based on xparameters-ml507.h by Xilinx + * + * 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, see <http://www.gnu.org/licenses/>. +*/ + +#ifndef XPARAMETER_H +#define XPARAMETER_H + +#define XPAR_DDR2_SDRAM_MEM_BASEADDR 	0x00000000 +#define XPAR_INTC_0_BASEADDR 		0x81800000 +#define XPAR_UARTLITE_0_BASEADDR 	0x84000000 +#define XPAR_IIC_EEPROM_BASEADDR 	0x81600000 +#define XPAR_LLTEMAC_0_BASEADDR 	0x81c00000 +#define XPAR_FLASH_MEM0_BASEADDR 	0xFC000000 +#define XPAR_PLB_CLOCK_FREQ_HZ 		100000000 +#define XPAR_CORE_CLOCK_FREQ_HZ 	400000000 +#define XPAR_INTC_MAX_NUM_INTR_INPUTS 	13 + +#endif diff --git a/include/configs/ml507.h b/include/configs/ml507.h new file mode 100644 index 000000000..94518a46b --- /dev/null +++ b/include/configs/ml507.h @@ -0,0 +1,116 @@ +/* + * (C) Copyright 2008 + *  Ricado Ribalda-Universidad Autonoma de Madrid-ricardo.ribalda@uam.es + *  This work has been supported by: QTechnology  http://qtec.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, see <http://www.gnu.org/licenses/>. +*/ + +#ifndef __CONFIG_H +#define __CONFIG_H +/* +#define DEBUG +#define ET_DEBUG +*/ + /*CPU*/ +#define CONFIG_XILINX_ML507	1 +#define CONFIG_XILINX_440	1 +#define CONFIG_440		1 +#define CONFIG_4xx		1 +#include "../board/xilinx/ml507/xparameters.h" + +/*Mem Map*/ +#define CFG_SDRAM_BASE		0x0 +#define CFG_SDRAM_SIZE_MB	256 +#define CFG_MONITOR_BASE	0x04000000 +#define CFG_MONITOR_LEN		( 192 * 1024 ) +#define CFG_MALLOC_LEN		( 128 * 1024 ) +#define CFG_ISRAM_BASE		XPAR_XPS_BRAM_IF_CNTLR_1_BASEADDR + +/*Uart*/ +#define CONFIG_XILINX_UARTLITE +#define CONFIG_BAUDRATE		9600 +#define CFG_BAUDRATE_TABLE	{9600} +#define CONFIG_SERIAL_BASE	XPAR_UARTLITE_0_BASEADDR + +/*Cmd*/ +#include <config_cmd_default.h> +#define CONFIG_CMD_ASKENV +#define CONFIG_CMD_CACHE +#define CONFIG_CMD_DIAG +#define CONFIG_CMD_ELF +#define CONFIG_CMD_IRQ +#define CONFIG_CMD_REGINFO +#undef CONFIG_CMD_I2C +#undef CONFIG_CMD_DTT +#undef CONFIG_CMD_NET +#undef CONFIG_CMD_PING +#undef CONFIG_CMD_DHCP +#undef CONFIG_CMD_EEPROM +#undef CONFIG_CMD_IMLS + +/*Env*/ +#define	CFG_ENV_IS_NOWHERE +#define	CFG_ENV_SIZE		0x200 +#define CFG_ENV_OFFSET 		0x100 + +/*Misc*/ +#define CONFIG_BOOTDELAY	5		/* autoboot after 5 seconds     */ +#define CFG_LONGHELP				/* undef to save memory         */ +#define CFG_PROMPT		"board:/# "	/* Monitor Command Prompt       */ +#if defined(CONFIG_CMD_KGDB) +#define CFG_CBSIZE		1024		/* Console I/O Buffer Size      */ +#else +#define CFG_CBSIZE		256		/* Console I/O Buffer Size      */ +#endif +#define CFG_PBSIZE		( CFG_CBSIZE + sizeof( CFG_PROMPT ) + 16 ) +#define CFG_MAXARGS		16		/* max number of command args   */ +#define CFG_BARGSIZE		CFG_CBSIZE	/* Boot Argument Buffer Size */ +#define CFG_MEMTEST_START	0x0400000	/* memtest works on           */ +#define CFG_MEMTEST_END		0x0C00000	/* 4 ... 12 MB in DRAM        */ +#define CFG_LOAD_ADDR		0x400000	/* default load address       */ +#define CFG_EXTBDINFO		1		/* Extended board_into (bd_t) */ +#define CFG_HZ			1000		/* decrementer freq: 1 ms ticks */ +#define CONFIG_CMDLINE_EDITING			/* add command line history     */ +#define CONFIG_AUTO_COMPLETE			/* add autocompletion support   */ +#define CONFIG_LOOPW				/* enable loopw command         */ +#define CONFIG_MX_CYCLIC			/* enable mdc/mwc commands      */ +#define CONFIG_ZERO_BOOTDELAY_CHECK		/* check for keypress on bootdelay==0 */ +#define CONFIG_VERSION_VARIABLE			/* include version env variable */ +#define CFG_CONSOLE_INFO_QUIET			/* don't print console @ startup */ +#define CFG_HUSH_PARSER				/* Use the HUSH parser          */ +#define	CFG_PROMPT_HUSH_PS2	"> " +#define CONFIG_LOADS_ECHO			/* echo on for serial download  */ +#define CFG_LOADS_BAUD_CHANGE			/* allow baudrate change        */ +#define CFG_BOOTMAPSZ		( 8 << 20 )	/* Initial Memory map for Linux */ +#define CONFIG_PREBOOT		"echo U-Boot is up and runnining;" + +/*Stack*/ +#define CFG_INIT_RAM_ADDR	0x800000	/* Initial RAM address    */ +#define CFG_INIT_RAM_END	0x2000		/* End of used area in RAM  */ +#define CFG_GBL_DATA_SIZE	128		/* num bytes initial data   */ +#define CFG_GBL_DATA_OFFSET	( CFG_INIT_RAM_END - CFG_GBL_DATA_SIZE ) +#define CFG_INIT_SP_OFFSET	CFG_GBL_DATA_OFFSET +/*Speed*/ +#define CONFIG_SYS_CLK_FREQ	400000000 + +/*Flash*/ +#define	CFG_FLASH_BASE		XPAR_FLASH_MEM0_BASEADDR +#define	CFG_FLASH_SIZE		(32*1024*1024) +#define	CFG_FLASH_CFI		1 +#define	CFG_FLASH_CFI_DRIVER	1 +#define	CFG_FLASH_EMPTY_INFO	1 +#define	CFG_MAX_FLASH_BANKS	1 +#define	CFG_MAX_FLASH_SECT	( CFG_FLASH_SIZE / ( 64 * 1024 ) ) +#define	CFG_FLASH_PROTECTION + +#endif						/* __CONFIG_H */ |