On Wednesday 16 July 2008, Ricardo Ribalda Delgado wrote: > Added Flash Support > > Signed-off-by: Ricardo Ribalda Delgado <[EMAIL PROTECTED]>
Please add a small board description in the commit text. > --- > CREDITS | 5 ++ > MAINTAINERS | 4 + > MAKEALL | 1 + > Makefile | 3 + > board/xilinx/ml507/Makefile | 58 +++++++++++++++++ > board/xilinx/ml507/config.mk | 24 +++++++ > board/xilinx/ml507/init.S | 47 ++++++++++++++ > board/xilinx/ml507/ml507.c | 46 +++++++++++++ > board/xilinx/ml507/u-boot.lds | 130 > ++++++++++++++++++++++++++++++++++++++ board/xilinx/ml507/xparameters.h | > 35 ++++++++++ > include/configs/ml507.h | 116 +++++++++++++++++++++++++++++++++ > 11 files changed, 469 insertions(+), 0 deletions(-) > create mode 100644 board/xilinx/ml507/Makefile > create mode 100644 board/xilinx/ml507/config.mk > create mode 100644 board/xilinx/ml507/init.S > create mode 100644 board/xilinx/ml507/ml507.c > create mode 100644 board/xilinx/ml507/u-boot.lds > create mode 100644 board/xilinx/ml507/xparameters.h > create mode 100644 include/configs/ml507.h > > diff --git a/CREDITS b/CREDITS > index 3b6e57d..06e78bf 100644 > --- a/CREDITS > +++ b/CREDITS > @@ -399,6 +399,11 @@ N: Stelian Pop > E: [EMAIL PROTECTED] > D: Atmel AT91CAP9ADK support > > +N: Ricardo Ribalda Delgado > +E: [EMAIL PROTECTED] > +D: PPC440x5 (Virtex5), ML507 Board, eeprom_simul, adt7460 > +W: http://www.ii.uam.es/~rribalda > + > N: Stefan Roese > E: [EMAIL PROTECTED] > D: AMCC PPC4xx Support > diff --git a/MAINTAINERS b/MAINTAINERS > index b667c8e..75b5b02 100644 > --- a/MAINTAINERS > +++ b/MAINTAINERS > @@ -311,6 +311,10 @@ Daniel Poirot <[EMAIL PROTECTED]> > sbc8240 MPC8240 > sbc405 PPC405GP > > +Ricardo Ribalda <[EMAIL PROTECTED]> > + > + ml507 PPC440x5 > + > Stefan Roese <[EMAIL PROTECTED]> > > P3M7448 MPC7448 > diff --git a/MAKEALL b/MAKEALL > index a256e9a..5463a58 100755 > --- a/MAKEALL > +++ b/MAKEALL > @@ -239,6 +239,7 @@ LIST_4xx=" \ > yosemite \ > yucca \ > zeus \ > + ml507 \ > " > > ######################################################################### > diff --git a/Makefile b/Makefile > index 10a3e06..40029e6 100644 > --- a/Makefile > +++ b/Makefile > @@ -1336,6 +1336,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 0000000..b9bd737 > --- /dev/null > +++ b/board/xilinx/ml507/Makefile > @@ -0,0 +1,58 @@ > +# > +# (C) Copyright 2000-2006 > +# Wolfgang Denk, DENX Software Engineering, [EMAIL PROTECTED] > +# > +# 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 0000000..35c52ad > --- /dev/null > +++ b/board/xilinx/ml507/config.mk > @@ -0,0 +1,24 @@ > +# > +# (C) Copyright 2000 > +# Wolfgang Denk, DENX Software Engineering, [EMAIL PROTECTED] > +# > +# 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 0000000..6510646 > --- /dev/null > +++ b/board/xilinx/ml507/init.S > @@ -0,0 +1,47 @@ > +/* > + * (C) Copyright 2008 > + * Ricado Ribalda-Universidad Autonoma de [EMAIL PROTECTED] > + * 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 0000000..6d78dd6 > --- /dev/null > +++ b/board/xilinx/ml507/ml507.c > @@ -0,0 +1,46 @@ > +/* > + * (C) Copyright 2008 > + * Ricado Ribalda-Universidad Autonoma de [EMAIL PROTECTED] > + * 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 256 * 1024 * 1024; > +} How about at least defining this SDRAM size in the board header and using it here: board_foo.h: #define CFG_MBYTES_SDRAM 256 board_foo.c return CFG_MBYTES_SDRAM << 20; > + > +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 0000000..ef2bdc3 > --- /dev/null > +++ b/board/xilinx/ml507/u-boot.lds > @@ -0,0 +1,130 @@ > +/* > + * (C) Copyright 2000 > + * Wolfgang Denk, DENX Software Engineering, [EMAIL PROTECTED] > + * 2008: > + * Modified by: Ricardo Ribalda Delgado [EMAIL PROTECTED] > + * > + * 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 0000000..8d938f9 > --- /dev/null > +++ b/board/xilinx/ml507/xparameters.h > @@ -0,0 +1,35 @@ > +/* > + * (C) Copyright 2008 > + * Ricado Ribalda-Universidad Autonoma de [EMAIL PROTECTED] > + * 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_RS232_UART_1_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 0000000..293ae65 > --- /dev/null > +++ b/include/configs/ml507.h > @@ -0,0 +1,116 @@ > +/* > + * (C) Copyright 2008 > + * Ricado Ribalda-Universidad Autonoma de [EMAIL PROTECTED] > + * 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_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 /* To use 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) Why do you need this define? Is it really used? > +#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 128 > +#define CFG_FLASH_PROTECTION > + > +#endif /* __CONFIG_H */ Best regards, Stefan ===================================================================== DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-0 Fax: +49-8142-66989-80 Email: [EMAIL PROTECTED] ===================================================================== ------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ U-Boot-Users mailing list U-Boot-Users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/u-boot-users