[U-Boot] [PATCH] ppc44x: RFC: Unification of virtex5 pp440 boards

Michal Simek monstr at seznam.cz
Tue Aug 26 14:15:37 CEST 2008


Hi Ricardo,

I looked at your patch.
your xparameters contain space before tab

macro XPAR_DDR2_SDRAM_MEM_BASEADDR is in generic file
board/xilinx/ppc440-generic/xilinx_ppc440_generic.c. This is not much generic
value. MB use XILINX_RAM_START for every memory. Software doesn't care if is
ddr2 or ddr or sdram - just memory. That was a reason why I did special bsp for
generation of xparameters.h.

avnet and ml507 folder contain only checkboard function with one puts. This is
not much for whole board. The name should be in xparameters.h and written in
generic platform.
I see simplier way just add
#define BOARD_NAME "Avnet bla bla" or for xilinx too. And small change in puts.


Why is xparameters.h in generic folder? You meant that is generic code - there
should be nothing specific like addresses are. (That's for your patches not for
generic solution which I have in my mind)

XPAR_SPI_0_NUM_TRANSFER_BITS, XPAR_IIC_EEPROM_BASEADDR and XPAR_SPI_0_BASEADDR
are not used anywhere. And maybe some others. (LL_TEMAC driver is not in U-BOOT
-> I have full version with fifo and sgdma in my repo but LLTEMAC_0_BASEADDR is
not used in U-BOOT yet)

Please compare both configs files - you can see changes which are board specific.
1. point to proper xparameters.h
2. ENV_OFFSET -> this could be generic
3. prompt -> the same situation as is checkboard function
4. flash size - cfi take cares about - not important
5. max flash sect - just choose one max value.
6. mtd relate things -> just generic name should be used -> physmap-flash.0: is
good with relation with Linux kernel and physmap driver. It helps you with
synchronization through command line.
7. Size of ram - xparameters.h
8. Stefan please correct me but I think that u-boot doesn't handle sector size
for storing variables. If no - This should be a small problem that boards have
different sect size -> this cause error with sector boundary. -> this should be
written in readme file.

And that's all. I haven't seen nothing why is this style oriented to board.

On the base what I see in your patch is. That you create board folder with one
important file which is xparameters.h for every board. This file contains max 10
important value which are hw desing specific and they are no relation with
board. They have only relation with hw design which you build and which you can
change as you want. There is nothing what solve real problem. IMHO this is too
little for adding any specific as new xilinx board is.

That's exactly what I wrote.
Use proper BSP not for generation linux parameters but u-boot specific and take
care about name. This solves a lot of problems which can come.

Your patch create generic platform which is fine and I agree that I should do it
for Microblaze too.

Just use bsp which will generate names which don't care about name in design.
This is done by u-boot.bsp which I did more than a year ago for microblaze
and if you don't want to use generic platform just fill the name in bsp (edk)
and point to u-boot tree and bsp will create folder with your xparameters.h and
some hooks in main Makefile.

#define XILINX_NAME       "board name"
#define XILINX_CLOCK_FREQ       100000000
#define XILINX_INTC_BASEADDR    0x41200000
#define XILINX_INTC_NUM_INTR_INPUTS     6
#define XILINX_UARTLITE_BASEADDR        0x40600000
#define XILINX_UARTLITE_BAUDRATE        115200
#define XILINX_FLASH_START      0x2c000000
#define XILINX_RAM_START        0x28000000
#define XILINX_RAM_SIZE 0x04000000
#define XILINX_EMACLITE_BASEADDR       0x40C00000

I understand that you are scared about using special bsp for u-boot and for
linux. But adding support to u-boot bsp should be easy and a create some month
ago special bsp called top which just create a wrapper on every useful bps and
run them.
In my case I only set top bsp which pass information to u-boot bsp, petalinux,
ecos, fdt and some others which I use for developing. Adding one more for older
ppc boards which can't handle fdt is easy.

I hope you understand me.

Thanks for your comments,
Michal



Ricardo Ribalda Delgado wrote:
> This patch provides an unificated way of handling ppc440 boards.
> 
> It unificates 3 different things:
> 
> 1) Source code
> A new board called ppc440-generic has been created. This board includes
> a generic tlb initialization (Maps the whole memory into virtual) and
> defines board_pre_init, checkboard, initdram and get_sys_info weakly,
> so, they can be replaced by specific functions.
> 
> If a new board needs to redefine any of the previous functions
> (specific initialization) it can create a new directory with the
> specific initializations needed. (see the example ml507 board).
> 
> 2) Configuration file
> Common configurations are located under configs/xilinx-ppc440.h, this
> header file interpretes the xparameters file generated by EDK and
> configurates u-boot in correspondence. Example: if there is a Temac,
> allows CMD_CONFIG_NET
> Specific configuration are located under specific configuration file.
> (see the example ml507 board)
> 
> 3) Makefile
> Some work has been done in order to not duplicate work in the Main
> Makefile. Please see the attached code.
> 
> In order to support new boards they can be implemented in the next way:
> 
> a) Simple Generic Board  (90% of the time)
> Using EDK generates a new xparameters.h file, replace
> ppc440-generic/xparameters.h  and run make xilinx-ppc440-generic_config
> && make
> 
> b) Simple Boards with special u-boot parameters (9 % of the time)
> Create a new file under configs for it (use ml507.h as example) and
> change your paramaters. Create a new Makefile paragraph and compile
> 
> c) Complex boards (1% of the time)
> Create a new folder for the board, like the ml507
> 
> Waiting for your comments
> 
> Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda at uam.es>
> ---
>  CREDITS                                            |    3 +-
>  MAINTAINERS                                        |    2 +
>  MAKEALL                                            |    4 +
>  Makefile                                           |   58 +++++++--
>  board/avnet/v5fx30teval/.gitignore                 |    3 +
>  board/avnet/v5fx30teval/Makefile                   |   27 ++++
>  board/avnet/v5fx30teval/v5fx30teval.c              |   28 ++++
>  board/avnet/v5fx30teval/xparameters.h              |   36 +++++
>  board/xilinx/ml507/.gitignore                      |    3 +
>  board/xilinx/ml507/Makefile                        |   41 +-----
>  board/xilinx/ml507/config.mk                       |   27 ----
>  board/xilinx/ml507/init.S                          |   53 -------
>  board/xilinx/ml507/ml507.c                         |   21 +---
>  board/xilinx/ml507/u-boot-ram.lds                  |  134 ------------------
>  board/xilinx/ml507/u-boot-rom.lds                  |  144 --------------------
>  board/xilinx/ppc440-generic/.gitignore             |    3 +
>  board/xilinx/ppc440-generic/Makefile               |   58 ++++++++
>  board/xilinx/ppc440-generic/init.S                 |   45 ++++++
>  board/xilinx/ppc440-generic/u-boot-ram.lds         |  134 ++++++++++++++++++
>  board/xilinx/ppc440-generic/u-boot-rom.lds         |  144 ++++++++++++++++++++
>  .../xilinx/ppc440-generic/xilinx_ppc440_generic.c  |   51 +++++++
>  board/xilinx/ppc440-generic/xparameters.h          |   37 +++++
>  include/configs/ml507.h                            |   87 +-----------
>  include/configs/v5fx30teval.h                      |   49 +++++++
>  include/configs/xilinx-ppc440-generic.h            |   49 +++++++
>  include/configs/xilinx-ppc440.h                    |  106 ++++++++++++++
>  26 files changed, 842 insertions(+), 505 deletions(-)
>  create mode 100644 board/avnet/v5fx30teval/.gitignore
>  create mode 100644 board/avnet/v5fx30teval/Makefile
>  create mode 100644 board/avnet/v5fx30teval/v5fx30teval.c
>  create mode 100644 board/avnet/v5fx30teval/xparameters.h
>  create mode 100644 board/xilinx/ml507/.gitignore
>  delete mode 100644 board/xilinx/ml507/config.mk
>  delete mode 100644 board/xilinx/ml507/init.S
>  delete mode 100644 board/xilinx/ml507/u-boot-ram.lds
>  delete mode 100644 board/xilinx/ml507/u-boot-rom.lds
>  create mode 100644 board/xilinx/ppc440-generic/.gitignore
>  create mode 100644 board/xilinx/ppc440-generic/Makefile
>  create mode 100644 board/xilinx/ppc440-generic/init.S
>  create mode 100644 board/xilinx/ppc440-generic/u-boot-ram.lds
>  create mode 100644 board/xilinx/ppc440-generic/u-boot-rom.lds
>  create mode 100644 board/xilinx/ppc440-generic/xilinx_ppc440_generic.c
>  create mode 100644 board/xilinx/ppc440-generic/xparameters.h
>  create mode 100644 include/configs/v5fx30teval.h
>  create mode 100644 include/configs/xilinx-ppc440-generic.h
>  create mode 100644 include/configs/xilinx-ppc440.h
> 
> diff --git a/CREDITS b/CREDITS
> index 4fe4e63..3767322 100644
> --- a/CREDITS
> +++ b/CREDITS
> @@ -405,7 +405,8 @@ D: Atmel AT91CAP9ADK support
>  
>  N: Ricardo Ribalda Delgado
>  E: ricardo.ribalda at uam.es
> -D: PPC440x5 (Virtex5), ML507 Board, eeprom_simul, adt7460
> +D: PPC440x5 (Virtex5), ML507 Board, eeprom_simul, adt7460, v5fx30teval
> +D: Virtex ppc440 generic architecture
>  W: http://www.ii.uam.es/~rribalda
>  
>  N: Stefan Roese
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 31493c2..47220e2 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -318,6 +318,8 @@ Daniel Poirot <dan.poirot at windriver.com>
>  Ricardo Ribalda <ricardo.ribalda at uam.es>
>  
>  	ml507 		PPC440x5
> +	v5fx30teval	PPC440x5
> +	xilinx-pp440-generic	PPC440x5
>  
>  Stefan Roese <sr at denx.de>
>  
> diff --git a/MAKEALL b/MAKEALL
> index edfee90..6aa1723 100755
> --- a/MAKEALL
> +++ b/MAKEALL
> @@ -231,12 +231,16 @@ LIST_4xx="		\
>  	sequoia_nand	\
>  	taihu		\
>  	taishan		\
> +	v5fx30teval	\
> +	v5fx30teval_flash \
>  	VOH405		\
>  	VOM405		\
>  	W7OLMC		\
>  	W7OLMG		\
>  	walnut		\
>  	WUH405		\
> +	xilinx-ppc440-generic \
> +	xilinx-ppc440-generic_flash \
>  	XPEDITE1K	\
>  	yellowstone	\
>  	yosemite	\
> diff --git a/Makefile b/Makefile
> index 8c90dab..74c9560 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -1351,16 +1351,19 @@ ML2_config:	unconfig
>  ml300_config:	unconfig
>  	@$(MKCONFIG) $(@:_config=) ppc ppc4xx ml300 xilinx
>  
> -ml507_flash_config:	unconfig
> -	@mkdir -p $(obj)include $(obj)board/xilinx/ml507
> -	@cp $(obj)board/xilinx/ml507/u-boot-rom.lds  $(obj)board/xilinx/ml507/u-boot.lds
> -	@echo "TEXT_BASE = 0xFE360000" > $(obj)board/xilinx/ml507/config.tmp
> -	@$(MKCONFIG) $(@:_flash_config=) ppc ppc4xx ml507 xilinx
> -
> -ml507_config:	unconfig
> -	@mkdir -p $(obj)include $(obj)board/xilinx/ml507
> -	@cp $(obj)board/xilinx/ml507/u-boot-ram.lds  $(obj)board/xilinx/ml507/u-boot.lds
> -	@$(MKCONFIG) $(@:_config=) ppc ppc4xx ml507 xilinx
> +ml507_flash_config:
> +	BOARD_DIR=$(obj)board/xilinx/ml507 \
> +	TEXT_BASE=0xFE360000 \
> +	LINK_SCRIPT=$(obj)board/xilinx/ppc440-generic/u-boot-rom.lds \
> +	CONFIG_SCRIPT="ml507 ppc ppc4xx ml507 xilinx" \
> +	$(MAKE) xilinx_ppc440
> +
> +ml507_config:
> +	BOARD_DIR=$(obj)board/xilinx/ml507 \
> +	TEXT_BASE=0x04000000 \
> +	LINK_SCRIPT=$(obj)board/xilinx/ppc440-generic/u-boot-ram.lds \
> +	CONFIG_SCRIPT="ml507 ppc ppc4xx ml507 xilinx" \
> +	$(MAKE) xilinx_ppc440
>  
>  ocotea_config:	unconfig
>  	@$(MKCONFIG) $(@:_config=) ppc ppc4xx ocotea amcc
> @@ -1456,6 +1459,20 @@ taihu_config:	unconfig
>  taishan_config:	unconfig
>  	@$(MKCONFIG) $(@:_config=) ppc ppc4xx taishan amcc
>  
> +v5fx30teval_config:
> +	BOARD_DIR=$(obj)board/avnet/v5fx30teval \
> +	TEXT_BASE=0xFF1C0000 \
> +	LINK_SCRIPT=$(obj)board/xilinx/ppc440-generic/u-boot-rom.lds \
> +	CONFIG_SCRIPT="v5fx30teval ppc ppc4xx v5fx30teval avnet" \
> +	$(MAKE) xilinx_ppc440
> +
> +v5fx30teval_flash_config:
> +	BOARD_DIR=$(obj)board/avnet/v5fx30teval \
> +	TEXT_BASE=0x03000000 \
> +	LINK_SCRIPT=$(obj)board/xilinx/ppc440-generic/u-boot-ram.lds \
> +	CONFIG_SCRIPT="v5fx30teval ppc ppc4xx v5fx30teval avnet" \
> +	$(MAKE) xilinx_ppc440
> +
>  VOH405_config:	unconfig
>  	@$(MKCONFIG) $(@:_config=) ppc ppc4xx voh405 esd
>  
> @@ -1474,6 +1491,27 @@ sycamore_config: unconfig
>  WUH405_config:	unconfig
>  	@$(MKCONFIG) $(@:_config=) ppc ppc4xx wuh405 esd
>  
> +xilinx-ppc440-generic_flash_config:
> +	BOARD_DIR=$(obj)board/xilinx/ppc440-generic \
> +	TEXT_BASE=0xFE360000 \
> +	LINK_SCRIPT=$(obj)board/xilinx/ppc440-generic/u-boot-ram.lds \
> +	CONFIG_SCRIPT="xilinx-ppc440-generic ppc ppc4xx ppc440-generic xilinx" \
> +	$(MAKE) xilinx_ppc440
> +
> +xilinx-ppc440-generic_config:
> +	BOARD_DIR=$(obj)board/xilinx/ppc440-generic \
> +	TEXT_BASE=0x04000000 \
> +	LINK_SCRIPT=$(obj)board/xilinx/ppc440-generic/u-boot-ram.lds \
> +	CONFIG_SCRIPT="xilinx-ppc440-generic ppc ppc4xx ppc440-generic xilinx" \
> +	$(MAKE) xilinx_ppc440
> +
> +xilinx_ppc440: unconfig
> +	@mkdir -p $(obj)include $(BOARD_DIR)
> +	@cp $(LINK_SCRIPT) $(BOARD_DIR)/u-boot.lds
> +	@echo "TEXT_BASE = 0xFE360000" > $(BOARD_DIR)/config.mk
> +	@$(MKCONFIG) $(CONFIG_SCRIPT)
> +
> +
>  XPEDITE1K_config:	unconfig
>  	@$(MKCONFIG) $(@:_config=) ppc ppc4xx xpedite1k
>  
> diff --git a/board/avnet/v5fx30teval/.gitignore b/board/avnet/v5fx30teval/.gitignore
> new file mode 100644
> index 0000000..06ac9c1
> --- /dev/null
> +++ b/board/avnet/v5fx30teval/.gitignore
> @@ -0,0 +1,3 @@
> +/u-boot.lds
> +/config.tmp
> +/config.mk
> diff --git a/board/avnet/v5fx30teval/Makefile b/board/avnet/v5fx30teval/Makefile
> new file mode 100644
> index 0000000..de23f29
> --- /dev/null
> +++ b/board/avnet/v5fx30teval/Makefile
> @@ -0,0 +1,27 @@
> +#
> +# (C) Copyright 2008
> +# Ricardo Ribalda,Universidad Autonoma de Madrid, ricardo.ribalda at uam.es
> +# This work has been supported by: Qtechnology http://qtec.com/
> +#
> +# 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
> +#
> +
> +COBJS	+= $(BOARD).o
> +
> +include $(SRCTREE)/board/xilinx/ppc440-generic/Makefile
> diff --git a/board/avnet/v5fx30teval/v5fx30teval.c b/board/avnet/v5fx30teval/v5fx30teval.c
> new file mode 100644
> index 0000000..14a1d5d
> --- /dev/null
> +++ b/board/avnet/v5fx30teval/v5fx30teval.c
> @@ -0,0 +1,28 @@
> +/*
> + * (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 checkboard(void)
> +{
> +	puts("Avnet Virtex 5 FX30 Evaluation Board\n");
> +	return 0;
> +}
> diff --git a/board/avnet/v5fx30teval/xparameters.h b/board/avnet/v5fx30teval/xparameters.h
> new file mode 100644
> index 0000000..4d60a25
> --- /dev/null
> +++ b/board/avnet/v5fx30teval/xparameters.h
> @@ -0,0 +1,36 @@
> +/*
> + * (C) Copyright 2008
> + * Ricado Ribalda-Universidad Autonoma de Madrid-ricardo.ribalda at uam.es
> + * This work has been supported by: QTechnology  http://qtec.com/
> + * based on xparameters.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_LLTEMAC_0_BASEADDR 	0x81C00000
> +#define XPAR_UARTLITE_0_BASEADDR 	0x84000000
> +#define XPAR_SPI_0_BASEADDR		0x83400000
> +#define XPAR_FLASH_MEM0_BASEADDR 	0xFF000000
> +#define XPAR_PLB_CLOCK_FREQ_HZ 		100000000
> +#define XPAR_CORE_CLOCK_FREQ_HZ 	400000000
> +#define XPAR_INTC_MAX_NUM_INTR_INPUTS 	13
> +#define XPAR_UARTLITE_0_BAUDRATE	9600
> +#define XPAR_SPI_0_NUM_TRANSFER_BITS	8
> +
> +#endif
> diff --git a/board/xilinx/ml507/.gitignore b/board/xilinx/ml507/.gitignore
> new file mode 100644
> index 0000000..06ac9c1
> --- /dev/null
> +++ b/board/xilinx/ml507/.gitignore
> @@ -0,0 +1,3 @@
> +/u-boot.lds
> +/config.tmp
> +/config.mk
> diff --git a/board/xilinx/ml507/Makefile b/board/xilinx/ml507/Makefile
> index 7283704..de23f29 100644
> --- a/board/xilinx/ml507/Makefile
> +++ b/board/xilinx/ml507/Makefile
> @@ -1,6 +1,7 @@
>  #
> -# (C) Copyright 2000-2006
> -# Wolfgang Denk, DENX Software Engineering, wd at denx.de.
> +# (C) Copyright 2008
> +# Ricardo Ribalda,Universidad Autonoma de Madrid, ricardo.ribalda at uam.es
> +# This work has been supported by: Qtechnology http://qtec.com/
>  #
>  # See file CREDITS for list of people who contributed to this
>  # project.
> @@ -21,38 +22,6 @@
>  # MA 02111-1307 USA
>  #
>  
> -include $(TOPDIR)/config.mk
> -ifneq ($(OBJTREE),$(SRCTREE))
> -endif
> +COBJS	+= $(BOARD).o
>  
> -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
> -
> -#########################################################################
> +include $(SRCTREE)/board/xilinx/ppc440-generic/Makefile
> diff --git a/board/xilinx/ml507/config.mk b/board/xilinx/ml507/config.mk
> deleted file mode 100644
> index e827e8a..0000000
> --- a/board/xilinx/ml507/config.mk
> +++ /dev/null
> @@ -1,27 +0,0 @@
> -#
> -# (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
> -#
> -sinclude $(OBJTREE)/board/$(BOARDDIR)/config.tmp
> -
> -ifndef TEXT_BASE
> -TEXT_BASE = 0x04000000
> -endif
> diff --git a/board/xilinx/ml507/init.S b/board/xilinx/ml507/init.S
> deleted file mode 100644
> index 3228a65..0000000
> --- a/board/xilinx/ml507/init.S
> +++ /dev/null
> @@ -1,53 +0,0 @@
> -/*
> - *  (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 <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)
> -#ifdef XPAR_IIC_EEPROM_BASEADDR
> -	/* I2C */
> -tlbentry(XPAR_IIC_EEPROM_BASEADDR, SZ_64K, XPAR_IIC_EEPROM_BASEADDR, 0,
> -	 AC_R | AC_W | SA_G | SA_I)
> -#endif
> -#ifdef XPAR_LLTEMAC_0_BASEADDR
> -	/* Net */
> -tlbentry(XPAR_LLTEMAC_0_BASEADDR, SZ_64K, XPAR_LLTEMAC_0_BASEADDR, 0,
> -	 AC_R | AC_W | SA_G | SA_I)
> -#endif
> -#ifdef XPAR_FLASH_MEM0_BASEADDR
> -	/*Flash*/
> -tlbentry(XPAR_FLASH_MEM0_BASEADDR, SZ_256M, XPAR_FLASH_MEM0_BASEADDR, 0,
> -	 AC_R | AC_W | AC_X | SA_G | SA_I)
> -#endif
> -tlbtab_end
> diff --git a/board/xilinx/ml507/ml507.c b/board/xilinx/ml507/ml507.c
> index d499303..f9789cf 100644
> --- a/board/xilinx/ml507/ml507.c
> +++ b/board/xilinx/ml507/ml507.c
> @@ -20,28 +20,9 @@
>  #include <common.h>
>  #include <asm/processor.h>
>  
> -int board_pre_init(void)
> -{
> -	return 0;
> -}
>  
>  int checkboard(void)
>  {
> -	puts("ML507 Board\n");
> +	puts("Xilinx ML507 Board\n");
>  	return 0;
>  }
> -
> -phys_size_t initdram(int board_type)
> -{
> -	return get_ram_size(XPAR_DDR2_SDRAM_MEM_BASEADDR,
> -			    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-ram.lds b/board/xilinx/ml507/u-boot-ram.lds
> deleted file mode 100644
> index 2c98d27..0000000
> --- a/board/xilinx/ml507/u-boot-ram.lds
> +++ /dev/null
> @@ -1,134 +0,0 @@
> -/*
> - * (C) Copyright 2000-2004
> - * 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)
> -ENTRY(_start_440)
> -
> -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	*/
> -
> -
> -    *(.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)
> -  }
> -
> -  ppcenv_assert = ASSERT(. < 0xFFFFB000, ".bss section too big, overlaps .ppcenv section. Please update your confguration: CFG_MONITOR_BASE, CFG_MONITOR_LEN and TEXT_BASE may need to be modified.");
> -
> -  _end = . ;
> -  PROVIDE (end = .);
> -}
> diff --git a/board/xilinx/ml507/u-boot-rom.lds b/board/xilinx/ml507/u-boot-rom.lds
> deleted file mode 100644
> index d5da018..0000000
> --- a/board/xilinx/ml507/u-boot-rom.lds
> +++ /dev/null
> @@ -1,144 +0,0 @@
> -/*
> - * (C) Copyright 2000-2004
> - * 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)
> -ENTRY(_start_440)
> -
> -SECTIONS
> -{
> -  .resetvec 0xFFFFFFFC :
> -  {
> -    *(.resetvec)
> -  } = 0xffff
> -
> -  .bootpg 0xFFFFF000 :
> -  {
> -    cpu/ppc4xx/start.o	(.bootpg)
> -  } = 0xffff
> -
> -  /* 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	*/
> -
> -
> -    *(.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)
> -  }
> -
> -  ppcenv_assert = ASSERT(. < 0xFFFFB000, ".bss section too big, overlaps .ppcenv section. Please update your confguration: CFG_MONITOR_BASE, CFG_MONITOR_LEN and TEXT_BASE may need to be modified.");
> -
> -  _end = . ;
> -  PROVIDE (end = .);
> -}
> diff --git a/board/xilinx/ppc440-generic/.gitignore b/board/xilinx/ppc440-generic/.gitignore
> new file mode 100644
> index 0000000..06ac9c1
> --- /dev/null
> +++ b/board/xilinx/ppc440-generic/.gitignore
> @@ -0,0 +1,3 @@
> +/u-boot.lds
> +/config.tmp
> +/config.mk
> diff --git a/board/xilinx/ppc440-generic/Makefile b/board/xilinx/ppc440-generic/Makefile
> new file mode 100644
> index 0000000..887ce87
> --- /dev/null
> +++ b/board/xilinx/ppc440-generic/Makefile
> @@ -0,0 +1,58 @@
> +#
> +# (C) Copyright 2000-2006
> +# 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
> +#
> +
> +include $(TOPDIR)/config.mk
> +ifneq ($(OBJTREE),$(SRCTREE))
> +endif
> +
> +INCS		:=
> +CFLAGS		+= $(INCS)
> +HOST_CFLAGS	+= $(INCS)
> +
> +LIB	= $(obj)lib$(BOARD).a
> +
> +COBJS	+= $(SRCTREE)/board/xilinx/ppc440-generic/xilinx_ppc440_generic.o
> +
> +SOBJS	+= $(SRCTREE)/board/xilinx/ppc440-generic/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/ppc440-generic/init.S b/board/xilinx/ppc440-generic/init.S
> new file mode 100644
> index 0000000..1409467
> --- /dev/null
> +++ b/board/xilinx/ppc440-generic/init.S
> @@ -0,0 +1,45 @@
> +/*
> + *  (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 <ppc_asm.tmpl>
> +#include <config.h>
> +#include <asm-ppc/mmu.h>
> +
> +.section .bootpg,"ax"
> +.globl tlbtab
> +
> +tlbtab:
> +tlbtab_start
> +tlbentry(0x00000000, SZ_256M, 0x00000000, 0, AC_R | AC_W | AC_X | SA_G | SA_I)
> +tlbentry(0x10000000, SZ_256M, 0x10000000, 0, AC_R | AC_W | AC_X | SA_G | SA_I)
> +tlbentry(0x20000000, SZ_256M, 0x20000000, 0, AC_R | AC_W | AC_X | SA_G | SA_I)
> +tlbentry(0x30000000, SZ_256M, 0x30000000, 0, AC_R | AC_W | AC_X | SA_G | SA_I)
> +tlbentry(0x40000000, SZ_256M, 0x40000000, 0, AC_R | AC_W | AC_X | SA_G | SA_I)
> +tlbentry(0x50000000, SZ_256M, 0x50000000, 0, AC_R | AC_W | AC_X | SA_G | SA_I)
> +tlbentry(0x60000000, SZ_256M, 0x60000000, 0, AC_R | AC_W | AC_X | SA_G | SA_I)
> +tlbentry(0x70000000, SZ_256M, 0x70000000, 0, AC_R | AC_W | AC_X | SA_G | SA_I)
> +tlbentry(0x80000000, SZ_256M, 0x80000000, 0, AC_R | AC_W | AC_X | SA_G | SA_I)
> +tlbentry(0x90000000, SZ_256M, 0x90000000, 0, AC_R | AC_W | AC_X | SA_G | SA_I)
> +tlbentry(0xa0000000, SZ_256M, 0xa0000000, 0, AC_R | AC_W | AC_X | SA_G | SA_I)
> +tlbentry(0xb0000000, SZ_256M, 0xb0000000, 0, AC_R | AC_W | AC_X | SA_G | SA_I)
> +tlbentry(0xc0000000, SZ_256M, 0xc0000000, 0, AC_R | AC_W | AC_X | SA_G | SA_I)
> +tlbentry(0xd0000000, SZ_256M, 0xd0000000, 0, AC_R | AC_W | AC_X | SA_G | SA_I)
> +tlbentry(0xe0000000, SZ_256M, 0xe0000000, 0, AC_R | AC_W | AC_X | SA_G | SA_I)
> +tlbentry(0xf0000000, SZ_256M, 0xf0000000, 0, AC_R | AC_W | AC_X | SA_G | SA_I)
> +tlbtab_end
> diff --git a/board/xilinx/ppc440-generic/u-boot-ram.lds b/board/xilinx/ppc440-generic/u-boot-ram.lds
> new file mode 100644
> index 0000000..2c98d27
> --- /dev/null
> +++ b/board/xilinx/ppc440-generic/u-boot-ram.lds
> @@ -0,0 +1,134 @@
> +/*
> + * (C) Copyright 2000-2004
> + * 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)
> +ENTRY(_start_440)
> +
> +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	*/
> +
> +
> +    *(.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)
> +  }
> +
> +  ppcenv_assert = ASSERT(. < 0xFFFFB000, ".bss section too big, overlaps .ppcenv section. Please update your confguration: CFG_MONITOR_BASE, CFG_MONITOR_LEN and TEXT_BASE may need to be modified.");
> +
> +  _end = . ;
> +  PROVIDE (end = .);
> +}
> diff --git a/board/xilinx/ppc440-generic/u-boot-rom.lds b/board/xilinx/ppc440-generic/u-boot-rom.lds
> new file mode 100644
> index 0000000..d5da018
> --- /dev/null
> +++ b/board/xilinx/ppc440-generic/u-boot-rom.lds
> @@ -0,0 +1,144 @@
> +/*
> + * (C) Copyright 2000-2004
> + * 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)
> +ENTRY(_start_440)
> +
> +SECTIONS
> +{
> +  .resetvec 0xFFFFFFFC :
> +  {
> +    *(.resetvec)
> +  } = 0xffff
> +
> +  .bootpg 0xFFFFF000 :
> +  {
> +    cpu/ppc4xx/start.o	(.bootpg)
> +  } = 0xffff
> +
> +  /* 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	*/
> +
> +
> +    *(.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)
> +  }
> +
> +  ppcenv_assert = ASSERT(. < 0xFFFFB000, ".bss section too big, overlaps .ppcenv section. Please update your confguration: CFG_MONITOR_BASE, CFG_MONITOR_LEN and TEXT_BASE may need to be modified.");
> +
> +  _end = . ;
> +  PROVIDE (end = .);
> +}
> diff --git a/board/xilinx/ppc440-generic/xilinx_ppc440_generic.c b/board/xilinx/ppc440-generic/xilinx_ppc440_generic.c
> new file mode 100644
> index 0000000..db683d4
> --- /dev/null
> +++ b/board/xilinx/ppc440-generic/xilinx_ppc440_generic.c
> @@ -0,0 +1,51 @@
> +/*
> + * (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 board_pre_init(void) __attribute__((weak, alias("__board_pre_init")));
> +
> +int __checkboard(void)
> +{
> +	puts("Xilinx PPC440 Generic Board\n");
> +	return 0;
> +}
> +int checkboard(void) __attribute__((weak, alias("__checkboard")));
> +
> +phys_size_t __initdram(int board_type)
> +{
> +	return get_ram_size(XPAR_DDR2_SDRAM_MEM_BASEADDR,
> +			    CFG_SDRAM_SIZE_MB * 1024 * 1024);
> +}
> +phys_size_t initdram(int) __attribute__((weak, alias("__initdram")));
> +
> +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;
> +}
> +void get_sys_info(sys_info_t *) __attribute__((weak, alias("__get_sys_info")));
> diff --git a/board/xilinx/ppc440-generic/xparameters.h b/board/xilinx/ppc440-generic/xparameters.h
> new file mode 100644
> index 0000000..bda5826
> --- /dev/null
> +++ b/board/xilinx/ppc440-generic/xparameters.h
> @@ -0,0 +1,37 @@
> +/*
> + * (C) Copyright 2008
> + * Ricado Ribalda-Universidad Autonoma de Madrid-ricardo.ribalda at 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_IIC_EEPROM_BASEADDR 	0x81600000
> +#define XPAR_INTC_0_BASEADDR 		0x81800000
> +#define XPAR_LLTEMAC_0_BASEADDR 	0x81C00000
> +#define XPAR_UARTLITE_0_BASEADDR 	0x84000000
> +#define XPAR_SPI_0_BASEADDR		0x83400000
> +#define XPAR_FLASH_MEM0_BASEADDR 	0xFE000000
> +#define XPAR_PLB_CLOCK_FREQ_HZ 		100000000
> +#define XPAR_CORE_CLOCK_FREQ_HZ 	400000000
> +#define XPAR_INTC_MAX_NUM_INTR_INPUTS 	13
> +#define XPAR_UARTLITE_0_BAUDRATE	9600
> +#define XPAR_SPI_0_NUM_TRANSFER_BITS	8
> +
> +#endif
> diff --git a/include/configs/ml507.h b/include/configs/ml507.h
> index f8cd499..0d528ab 100644
> --- a/include/configs/ml507.h
> +++ b/include/configs/ml507.h
> @@ -17,106 +17,33 @@
>  
>  #ifndef __CONFIG_H
>  #define __CONFIG_H
> -/*
> -#define DEBUG
> -#define ET_DEBUG
> -*/
> - /*CPU*/
> -#define CONFIG_XILINX_ML507	1
> -#define CONFIG_XILINX_440	1
> +
> +/*CPU*/
>  #define CONFIG_440		1
> -#define CONFIG_4xx		1
> +#define CONFIG_XILINX_ML507	1
>  #include "../board/xilinx/ml507/xparameters.h"
>  
>  /*Mem Map*/
> -#define CFG_SDRAM_BASE		0x0
>  #define CFG_SDRAM_SIZE_MB	256
> -#define CFG_MONITOR_BASE	TEXT_BASE
> -#define CFG_MONITOR_LEN		( 192 * 1024 )
> -#define CFG_MALLOC_LEN		( CFG_ENV_SIZE + 128 * 1024 )
> -
> -/*Uart*/
> -#define CONFIG_XILINX_UARTLITE
> -#define CONFIG_BAUDRATE		XPAR_UARTLITE_0_BAUDRATE
> -#define CFG_BAUDRATE_TABLE	{ XPAR_UARTLITE_0_BAUDRATE }
> -#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
> -#define CONFIG_CMD_JFFS2
> -#define CONFIG_JFFS2_CMDLINE
> -#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_IN_FLASH
> +#define	CFG_ENV_IS_IN_FLASH	1
>  #define	CFG_ENV_SIZE		0x20000
>  #define	CFG_ENV_SECT_SIZE	0x20000
>  #define CFG_ENV_OFFSET 		0x340000
>  #define CFG_ENV_ADDR 		(XPAR_FLASH_MEM0_BASEADDR+CFG_ENV_OFFSET)
>  
>  /*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	0x00400000	/* memtest works on           */
> -#define CFG_MEMTEST_END		0x00C00000	/* 4 ... 12 MB in DRAM        */
> -#define CFG_LOAD_ADDR		0x00400000	/* 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 CFG_PROMPT		"ml507:/# "	/* Monitor Command Prompt       */
>  #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	XPAR_CORE_CLOCK_FREQ_HZ
> -
>  /*Flash*/
> -#define	CFG_FLASH_BASE		XPAR_FLASH_MEM0_BASEADDR
>  #define	CFG_FLASH_SIZE		(32*1024*1024)
> -#define	CFG_FLASH_CFI		1
> -#define	CONFIG_FLASH_CFI_DRIVER	1
> -#define	CFG_FLASH_EMPTY_INFO	1
> -#define	CFG_MAX_FLASH_BANKS	1
>  #define	CFG_MAX_FLASH_SECT	259
> -#define	CFG_FLASH_PROTECTION
>  #define MTDIDS_DEFAULT		"nor0=ml507-flash"
>  #define MTDPARTS_DEFAULT	"mtdparts=ml507-flash:-(user)"
>  
> +/*Generic Configs*/
> +#include <configs/xilinx-ppc440.h>
>  
>  #endif						/* __CONFIG_H */
> diff --git a/include/configs/v5fx30teval.h b/include/configs/v5fx30teval.h
> new file mode 100644
> index 0000000..314841a
> --- /dev/null
> +++ b/include/configs/v5fx30teval.h
> @@ -0,0 +1,49 @@
> +/*
> + * (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 __CONFIG_H
> +#define __CONFIG_H
> +
> +/*CPU*/
> +#define CONFIG_440		1
> +#define CONFIG_XILINX_ML507	1
> +#include "../board/avnet/v5fx30teval/xparameters.h"
> +
> +/*Mem Map*/
> +#define CFG_SDRAM_SIZE_MB	64
> +
> +/*Env*/
> +#define	CFG_ENV_IS_IN_FLASH	1
> +#define	CFG_ENV_SIZE		0x20000
> +#define	CFG_ENV_SECT_SIZE	0x20000
> +#define CFG_ENV_OFFSET 		0x1A0000
> +#define CFG_ENV_ADDR 		(XPAR_FLASH_MEM0_BASEADDR+CFG_ENV_OFFSET)
> +
> +/*Misc*/
> +#define CFG_PROMPT		"v5fx30t:/# "	/* Monitor Command Prompt       */
> +#define CONFIG_PREBOOT		"echo U-Boot is up and runnining;"
> +
> +/*Flash*/
> +#define	CFG_FLASH_SIZE		(16*1024*1024)
> +#define	CFG_MAX_FLASH_SECT	131
> +#define MTDIDS_DEFAULT		"nor0=v5fx30t-flash"
> +#define MTDPARTS_DEFAULT	"mtdparts=v5fx30t-flash:-(user)"
> +
> +/*Generic Configs*/
> +#include <configs/xilinx-ppc440.h>
> +
> +#endif						/* __CONFIG_H */
> diff --git a/include/configs/xilinx-ppc440-generic.h b/include/configs/xilinx-ppc440-generic.h
> new file mode 100644
> index 0000000..f08f322
> --- /dev/null
> +++ b/include/configs/xilinx-ppc440-generic.h
> @@ -0,0 +1,49 @@
> +/*
> + * (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 __CONFIG_H
> +#define __CONFIG_H
> +
> +/*CPU*/
> +#define CONFIG_440			1
> +#define CONFIG_XILINX_PPC440_GENERIC	1
> +#include "../board/xilinx/ppc440-generic/xparameters.h"
> +
> +/*Mem Map*/
> +#define CFG_SDRAM_SIZE_MB	256
> +
> +/*Env*/
> +#define	CFG_ENV_IS_IN_FLASH	1
> +#define	CFG_ENV_SIZE		0x20000
> +#define	CFG_ENV_SECT_SIZE	0x20000
> +#define CFG_ENV_OFFSET 		0x340000
> +#define CFG_ENV_ADDR 		(XPAR_FLASH_MEM0_BASEADDR+CFG_ENV_OFFSET)
> +
> +/*Misc*/
> +#define CFG_PROMPT		"board:/# "	/* Monitor Command Prompt       */
> +#define CONFIG_PREBOOT		"echo U-Boot is up and runnining;"
> +
> +/*Flash*/
> +#define	CFG_FLASH_SIZE		(32*1024*1024)
> +#define	CFG_MAX_FLASH_SECT	259
> +#define MTDIDS_DEFAULT		"nor0=ml507-flash"
> +#define MTDPARTS_DEFAULT	"mtdparts=ml507-flash:-(user)"
> +
> +/*Generic Configs*/
> +#include <configs/xilinx-ppc440.h>
> +
> +#endif						/* __CONFIG_H */
> diff --git a/include/configs/xilinx-ppc440.h b/include/configs/xilinx-ppc440.h
> new file mode 100644
> index 0000000..89f70b1
> --- /dev/null
> +++ b/include/configs/xilinx-ppc440.h
> @@ -0,0 +1,106 @@
> +/*
> + * (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 __CONFIG_GEN_H
> +#define __CONFIG_GEN_H
> +/*
> +#define DEBUG
> +#define ET_DEBUG
> +*/
> + /*CPU*/
> +#define CONFIG_XILINX_440	1
> +#define CONFIG_440		1
> +#define CONFIG_4xx		1
> +
> +/*Mem Map*/
> +#define CFG_SDRAM_BASE		0x0
> +#define CFG_MONITOR_BASE	TEXT_BASE
> +#define CFG_MONITOR_LEN		( 192 * 1024 )
> +#define CFG_MALLOC_LEN		( CFG_ENV_SIZE + 128 * 1024 )
> +
> +/*Uart*/
> +#define CONFIG_XILINX_UARTLITE
> +#define CONFIG_BAUDRATE		XPAR_UARTLITE_0_BAUDRATE
> +#define CFG_BAUDRATE_TABLE	{ XPAR_UARTLITE_0_BAUDRATE }
> +#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
> +#define CONFIG_CMD_JFFS2
> +#define CONFIG_JFFS2_CMDLINE
> +#undef CONFIG_CMD_SPI
> +#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
> +
> +/*Misc*/
> +#define CONFIG_BOOTDELAY	5		/* autoboot after 5 seconds     */
> +#define CFG_LONGHELP				/* undef to save memory         */
> +#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	0x00400000	/* memtest works on           */
> +#define CFG_MEMTEST_END		0x00C00000	/* 4 ... 12 MB in DRAM        */
> +#define CFG_LOAD_ADDR		0x00400000	/* 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 */
> +
> +/*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	XPAR_CORE_CLOCK_FREQ_HZ
> +
> +/*Flash*/
> +#define	CFG_FLASH_BASE		XPAR_FLASH_MEM0_BASEADDR
> +#define	CFG_FLASH_CFI		1
> +#define	CONFIG_FLASH_CFI_DRIVER	1
> +#define	CFG_FLASH_EMPTY_INFO	1
> +#define	CFG_MAX_FLASH_BANKS	1
> +#define	CFG_FLASH_PROTECTION
> +
> +#endif						/* __CONFIG_H */


More information about the U-Boot mailing list