[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