[U-Boot-Users] [PATCH] ML507: New board support
Stefan Roese
sr at denx.de
Fri Jul 11 14:49:01 CEST 2008
On Friday 11 July 2008, Ricardo Ribalda Delgado wrote:
> -Suport for the Xilinx ML507 Development Board
Comments below...
> Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda at uam.es>
> ---
> Makefile | 3 +
You forgot to add youself to MAINTAINERS and the board to MAKEALL.
> board/xilinx/ml507/Makefile | 53 ++++++++++++
> board/xilinx/ml507/config.mk | 18 ++++
> board/xilinx/ml507/init.S | 45 +++++++++++
> board/xilinx/ml507/ml507.c | 57 +++++++++++++
> board/xilinx/ml507/u-boot.lds | 149
> +++++++++++++++++++++++++++++++++++ board/xilinx/ml507/u-boot.lds.debug |
> 136 ++++++++++++++++++++++++++++++++ board/xilinx/ml507/xparameters.h |
> 33 ++++++++
> include/configs/ml507.h | 108 +++++++++++++++++++++++++
> 9 files changed, 602 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/u-boot.lds.debug
> create mode 100644 board/xilinx/ml507/xparameters.h
> create mode 100644 include/configs/ml507.h
<snip>
> diff --git a/board/xilinx/ml507/ml507.c b/board/xilinx/ml507/ml507.c
> new file mode 100644
> index 0000000..27c87cc
> --- /dev/null
> +++ b/board/xilinx/ml507/ml507.c
> @@ -0,0 +1,57 @@
> +/*
> + (C) Copyright 2008
> + Ricado Ribalda-Universidad Autonoma de Madrid-ricardo.ribalda at 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)
> +{
> +
> + printf
> + ("ML507 Board ported by Ricardo Ribalda ricardo.ribalda at uam.es
> (http://qtec.com) \n"); + return (0);
Hmmm. Do you really need to print your name in the U-Boot log each time the
board boots? I wouldn't do this.
> +}
> +
> +phys_size_t initdram(int board_type)
> +{
> + return 256 * 1024 * 1024;
> +}
> +
> +int testdram(void)
> +{
> + printf("test: xxx MB - ok\n");
> +
> + return (0);
> +}
Remove testdram() please.
> +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..054661c
> --- /dev/null
> +++ b/board/xilinx/ml507/u-boot.lds
> @@ -0,0 +1,149 @@
> +/*
> + * (C) Copyright 2000
> + * Wolfgang Denk, DENX Software Engineering, wd at denx.de.
> + * Modified by: Ricardo Ribalda Delgado ricardo.ribalda<at>gmail.com
> ricardo.ribalda<at>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 :
> + {
> + /* WARNING - the following is hand-optimized to fit within */
> + /* the sector layout of our flash chips! XXX FIXME XXX */
> +/*
> + cpu/ppc4xx/start.o (.text)
> + board/xilinx/ml300/init.o (.text)
> + cpu/ppc4xx/kgdb.o (.text)
> + cpu/ppc4xx/traps.o (.text)
> + cpu/ppc4xx/interrupts.o (.text)
> + cpu/ppc4xx/4xx_uart.o (.text)
> + cpu/ppc4xx/cpu_init.o (.text)
> + cpu/ppc4xx/speed.o (.text)
> + cpu/ppc4xx/4xx_enet.o (.text)
> + common/dlmalloc.o (.text)
> + lib_generic/crc32.o (.text)
> + lib_ppc/extable.o (.text)
> + lib_generic/zlib.o (.text)
> +*/
> +/* . = env_offset;*/
> +/* common/environment.o(.text)*/
Remove those lines above that are commented out.
> + *(.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/u-boot.lds.debug
> b/board/xilinx/ml507/u-boot.lds.debug new file mode 100644
> index 0000000..0552994
> --- /dev/null
> +++ b/board/xilinx/ml507/u-boot.lds.debug
Do you really need this u-boot.lds.debug? If not please remove it.
> @@ -0,0 +1,136 @@
> +/*
> + * (C) Copyright 2000
> + * Wolfgang Denk, DENX Software Engineering, wd at 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_ARCH(powerpc)
> +/* 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 :
> + {
> + /* WARNING - the following is hand-optimized to fit within */
> + /* the sector layout of our flash chips! XXX FIXME XXX */
> +
> + mpc8xx/start.o (.text)
> + common/dlmalloc.o (.text)
> + lib_generic/vsprintf.o (.text)
> + lib_generic/crc32.o (.text)
> + lib_ppc/extable.o (.text)
> +
> + common/environment.o(.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: */
> + . = (. + 0x0FFF) & 0xFFFFF000;
> + _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(4096);
> + __init_begin = .;
> + .text.init : { *(.text.init) }
> + .data.init : { *(.data.init) }
> + . = ALIGN(4096);
> + __init_end = .;
> +
> + __bss_start = .;
> + .bss :
> + {
> + *(.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..ba47349
> --- /dev/null
> +++ b/board/xilinx/ml507/xparameters.h
> @@ -0,0 +1,33 @@
> +/*
> + (C) Copyright 2008
> + Ricado Ribalda-Universidad Autonoma de Madrid-ricardo.ribalda at 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 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_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..bf1a78e
> --- /dev/null
> +++ b/include/configs/ml507.h
> @@ -0,0 +1,108 @@
> +/*
> + (C) Copyright 2008
> + Ricado Ribalda, Universidad Autonoma de Madrid,
> ricardo.ribalda<at>uam.es , ricardo.ribalda<at>gmail.com + This work has
> been supported by: Q-Technology 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
> +
> +/*
> + * High Level Configuration Options
> + * (easy to change)
> + */
> +/*
> +#define DEBUG
> +#define ET_DEBUG
> +*/
> + /*CPU*/
> +#define CONFIG_XILINX_ML507 1
> +#define CONFIG_440_VIRTEX5 1
> +#define CONFIG_440 1
> +#define CONFIG_4xx 1
> +#include "../board/xilinx/ml507/xparameters.h"
> +/*Mem Map*/
> +#define CFG_SDRAM_BASE 0x0 /* _must_ be 0 */
> +#define CFG_MONITOR_BASE 0x04000000 /* Start of U-Boot */
> +#define CFG_MONITOR_LEN (192*1024)
> +#define CFG_MALLOC_LEN (128*1024) /* Reserved for malloc */
> +#define CFG_ISRAM_BASE XPAR_XPS_BRAM_IF_CNTLR_1_BASEADDR
> +/*Uart*/
> +#define CONFIG_XILINX_UARTLITE 1
> +#define CONFIG_BAUDRATE 9600
> +#define CFG_BAUDRATE_TABLE {9600}
Only one baudrate is supported?
> +#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
> +/*#define CFG_ENV_ADDR (CFG_MONITOR_BASE - CFG_ENV_SIZE)*/
> +/*#define CFG_ENV_ADDR 0x01000000*/
Remove the lines above that are commented out.
Please fix and resubmit.
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: office at denx.de
=====================================================================
More information about the U-Boot
mailing list