public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [U-Boot] [PATCH] Remove gap fill in srec object
@ 2008-08-22 16:35 Ricardo Ribalda Delgado
  2008-08-22 16:35 ` [U-Boot] [PATCH] ppc440: ml507: Add .gitignore Ricardo Ribalda Delgado
  2008-09-06 20:21 ` [U-Boot] [PATCH] Remove gap fill in srec object Wolfgang Denk
  0 siblings, 2 replies; 16+ messages in thread
From: Ricardo Ribalda Delgado @ 2008-08-22 16:35 UTC (permalink / raw)
  To: u-boot

Srec files do need gap fill: The load address is specified in the file.
On ppc, a common object consist on u-boot on the begining of the memory
and a jump and tlb setup on the last part of the memory (0xfffffffe).

If the gap is included, u-boot can produce a 4 Gigabyte object!, with no
more info that the srec.

On the other hand, it cant be avoided in the .bin object. It has no
information about memory location.

Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@uam.es>
---
 Makefile |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/Makefile b/Makefile
index 8c90dab..f02ab65 100644
--- a/Makefile
+++ b/Makefile
@@ -290,7 +290,7 @@ $(obj)u-boot.hex:	$(obj)u-boot
 		$(OBJCOPY) ${OBJCFLAGS} -O ihex $< $@
 
 $(obj)u-boot.srec:	$(obj)u-boot
-		$(OBJCOPY) ${OBJCFLAGS} -O srec $< $@
+		$(OBJCOPY) -O srec $< $@
 
 $(obj)u-boot.bin:	$(obj)u-boot
 		$(OBJCOPY) ${OBJCFLAGS} -O binary $< $@
-- 
1.5.6.3

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [U-Boot] [PATCH] ppc440: ml507: Add .gitignore
  2008-08-22 16:35 [U-Boot] [PATCH] Remove gap fill in srec object Ricardo Ribalda Delgado
@ 2008-08-22 16:35 ` Ricardo Ribalda Delgado
  2008-08-22 16:35   ` [U-Boot] [PATCH] ppc440: New board: Avnet Virtex5 FXT Evaluation Ricardo Ribalda Delgado
  2008-09-08 12:56   ` [U-Boot] [PATCH] ppc440: ml507: Add .gitignore Stefan Roese
  2008-09-06 20:21 ` [U-Boot] [PATCH] Remove gap fill in srec object Wolfgang Denk
  1 sibling, 2 replies; 16+ messages in thread
From: Ricardo Ribalda Delgado @ 2008-08-22 16:35 UTC (permalink / raw)
  To: u-boot


Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@uam.es>
---
 board/xilinx/ml507/.gitignore |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)
 create mode 100644 board/xilinx/ml507/.gitignore

diff --git a/board/xilinx/ml507/.gitignore b/board/xilinx/ml507/.gitignore
new file mode 100644
index 0000000..e3155c5
--- /dev/null
+++ b/board/xilinx/ml507/.gitignore
@@ -0,0 +1,2 @@
+/u-boot.lds
+/config.tmp
-- 
1.5.6.3

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [U-Boot] [PATCH] ppc440: New board: Avnet Virtex5 FXT Evaluation
  2008-08-22 16:35 ` [U-Boot] [PATCH] ppc440: ml507: Add .gitignore Ricardo Ribalda Delgado
@ 2008-08-22 16:35   ` Ricardo Ribalda Delgado
  2008-08-23 19:05     ` Michal Simek
  2008-09-08 12:56   ` [U-Boot] [PATCH] ppc440: ml507: Add .gitignore Stefan Roese
  1 sibling, 1 reply; 16+ messages in thread
From: Ricardo Ribalda Delgado @ 2008-08-22 16:35 UTC (permalink / raw)
  To: u-boot

Cheap board by Avnet for evaluating the Virtex5 FX technology.

This patch adds support for:
  - UartLite
  - 16MB Flash
  - 64MB RAM

Prior using U-boot in this board, read carefully the ERRATA by Avnet
to solve some memory initialization issues.

Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@uam.es>
---
 CREDITS                                |    2 +-
 MAINTAINERS                            |    1 +
 MAKEALL                                |    2 +
 Makefile                               |   12 +++
 board/avnet/v5fx30teval/.gitignore     |    2 +
 board/avnet/v5fx30teval/Makefile       |   58 +++++++++++++
 board/avnet/v5fx30teval/config.mk      |   27 ++++++
 board/avnet/v5fx30teval/init.S         |   58 +++++++++++++
 board/avnet/v5fx30teval/u-boot-ram.lds |  134 +++++++++++++++++++++++++++++
 board/avnet/v5fx30teval/u-boot-rom.lds |  144 ++++++++++++++++++++++++++++++++
 board/avnet/v5fx30teval/v5fx30teval.c  |   47 ++++++++++
 board/avnet/v5fx30teval/xparameters.h  |   36 ++++++++
 include/configs/v5fx30teval.h          |  121 +++++++++++++++++++++++++++
 13 files changed, 643 insertions(+), 1 deletions(-)
 create mode 100644 board/avnet/v5fx30teval/.gitignore
 create mode 100644 board/avnet/v5fx30teval/Makefile
 create mode 100644 board/avnet/v5fx30teval/config.mk
 create mode 100644 board/avnet/v5fx30teval/init.S
 create mode 100644 board/avnet/v5fx30teval/u-boot-ram.lds
 create mode 100644 board/avnet/v5fx30teval/u-boot-rom.lds
 create mode 100644 board/avnet/v5fx30teval/v5fx30teval.c
 create mode 100644 board/avnet/v5fx30teval/xparameters.h
 create mode 100644 include/configs/v5fx30teval.h

diff --git a/CREDITS b/CREDITS
index 4fe4e63..48be11b 100644
--- a/CREDITS
+++ b/CREDITS
@@ -405,7 +405,7 @@ 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
 W: http://www.ii.uam.es/~rribalda
 
 N: Stefan Roese
diff --git a/MAINTAINERS b/MAINTAINERS
index 31493c2..4a950f1 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -318,6 +318,7 @@ Daniel Poirot <dan.poirot@windriver.com>
 Ricardo Ribalda <ricardo.ribalda@uam.es>
 
 	ml507 		PPC440x5
+	v5fx30teval	PPC440x5
 
 Stefan Roese <sr@denx.de>
 
diff --git a/MAKEALL b/MAKEALL
index edfee90..a1c1957 100755
--- a/MAKEALL
+++ b/MAKEALL
@@ -231,6 +231,8 @@ LIST_4xx="		\
 	sequoia_nand	\
 	taihu		\
 	taishan		\
+	v5fx30teval	\
+	v5fx30teval_flash \
 	VOH405		\
 	VOM405		\
 	W7OLMC		\
diff --git a/Makefile b/Makefile
index f02ab65..7561eef 100644
--- a/Makefile
+++ b/Makefile
@@ -1456,6 +1456,18 @@ taihu_config:	unconfig
 taishan_config:	unconfig
 	@$(MKCONFIG) $(@:_config=) ppc ppc4xx taishan amcc
 
+v5fx30teval_flash_config:	unconfig
+	@mkdir -p $(obj)include $(obj)board/avnet/v5fx30teval
+	@cp $(obj)board/avnet/v5fx30teval/u-boot-rom.lds  $(obj)board/avnet/v5fx30teval/u-boot.lds
+	@echo "TEXT_BASE = 0xFF1C0000" > $(obj)board/avnet/v5fx30teval/config.tmp
+	@$(MKCONFIG) $(@:_flash_config=) ppc ppc4xx v5fx30teval avnet
+
+v5fx30teval_config:	unconfig
+	@mkdir -p $(obj)include $(obj)board/avnet/v5fx30teval
+	@cp $(obj)board/avnet/v5fx30teval/u-boot-ram.lds  $(obj)board/avnet/v5fx30teval/u-boot.lds
+	@$(MKCONFIG) $(@:_config=) ppc ppc4xx v5fx30teval avnet
+
+
 VOH405_config:	unconfig
 	@$(MKCONFIG) $(@:_config=) ppc ppc4xx voh405 esd
 
diff --git a/board/avnet/v5fx30teval/.gitignore b/board/avnet/v5fx30teval/.gitignore
new file mode 100644
index 0000000..e3155c5
--- /dev/null
+++ b/board/avnet/v5fx30teval/.gitignore
@@ -0,0 +1,2 @@
+/u-boot.lds
+/config.tmp
diff --git a/board/avnet/v5fx30teval/Makefile b/board/avnet/v5fx30teval/Makefile
new file mode 100644
index 0000000..7283704
--- /dev/null
+++ b/board/avnet/v5fx30teval/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	= $(BOARD).o
+
+SOBJS	= init.o
+
+SRCS	:= $(SOBJS:.o=.S) $(COBJS:.o=.c)
+OBJS	:= $(addprefix $(obj),$(COBJS))
+SOBJS	:= $(addprefix $(obj),$(SOBJS))
+
+$(LIB):	$(OBJS) $(SOBJS)
+	$(AR) $(ARFLAGS) $@ $^
+
+clean:
+	rm -f $(SOBJS) $(OBJS)
+
+distclean:	clean
+	rm -f $(LIB) core *.bak .depend
+
+#########################################################################
+
+# defines $(obj).depend target
+include $(SRCTREE)/rules.mk
+
+sinclude $(obj).depend
+
+#########################################################################
diff --git a/board/avnet/v5fx30teval/config.mk b/board/avnet/v5fx30teval/config.mk
new file mode 100644
index 0000000..38272b9
--- /dev/null
+++ b/board/avnet/v5fx30teval/config.mk
@@ -0,0 +1,27 @@
+#
+# (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 = 0x03000000
+endif
diff --git a/board/avnet/v5fx30teval/init.S b/board/avnet/v5fx30teval/init.S
new file mode 100644
index 0000000..c07ee83
--- /dev/null
+++ b/board/avnet/v5fx30teval/init.S
@@ -0,0 +1,58 @@
+/*
+ *  (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_XPS_SPI_0_BASEADDR
+	/* Net */
+tlbentry(XPAR_XPS_SPI_0_BASEADDR, SZ_64K, XPAR_XPS_SPI_0_BASEADDR, 0,
+	 AC_R | AC_W | SA_G | SA_I)
+#endif
+#ifdef XPAR_FLASH_MEM0_BASEADDR
+	/*Flash*/
+tlbentry(XPAR_FLASH_MEM0_BASEADDR, SZ_16M, XPAR_FLASH_MEM0_BASEADDR, 0,
+	 AC_R | AC_W | AC_X | SA_G | SA_I)
+#endif
+tlbtab_end
diff --git a/board/avnet/v5fx30teval/u-boot-ram.lds b/board/avnet/v5fx30teval/u-boot-ram.lds
new file mode 100644
index 0000000..2c98d27
--- /dev/null
+++ b/board/avnet/v5fx30teval/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/avnet/v5fx30teval/u-boot-rom.lds b/board/avnet/v5fx30teval/u-boot-rom.lds
new file mode 100644
index 0000000..d5da018
--- /dev/null
+++ b/board/avnet/v5fx30teval/u-boot-rom.lds
@@ -0,0 +1,144 @@
+/*
+ * (C) Copyright 2000-2004
+ * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+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/avnet/v5fx30teval/v5fx30teval.c b/board/avnet/v5fx30teval/v5fx30teval.c
new file mode 100644
index 0000000..55d301a
--- /dev/null
+++ b/board/avnet/v5fx30teval/v5fx30teval.c
@@ -0,0 +1,47 @@
+/*
+ * (C) Copyright 2008
+ * Ricado Ribalda-Universidad Autonoma de Madrid-ricardo.ribalda@uam.es
+ * This work has been supported by: QTechnology  http://qtec.com/
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include <config.h>
+#include <common.h>
+#include <asm/processor.h>
+
+int board_pre_init(void)
+{
+	return 0;
+}
+
+int checkboard(void)
+{
+	puts("Avnet Virtex5 FX30T Eval 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/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/include/configs/v5fx30teval.h b/include/configs/v5fx30teval.h
new file mode 100644
index 0000000..6cbaeb1
--- /dev/null
+++ b/include/configs/v5fx30teval.h
@@ -0,0 +1,121 @@
+/*
+ * (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
+/*
+#define DEBUG
+#define ET_DEBUG
+*/
+ /*CPU*/
+#define CONFIG_XILINX_ML507	1
+#define CONFIG_XILINX_440	1
+#define CONFIG_440		1
+#define CONFIG_4xx		1
+#include "../board/avnet/v5fx30teval/xparameters.h"
+
+/*Mem Map*/
+#define CFG_SDRAM_BASE		0x0
+#define CFG_SDRAM_SIZE_MB	64
+#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_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 CONFIG_BOOTDELAY	5		/* autoboot after 5 seconds     */
+#define CFG_LONGHELP				/* undef to save memory         */
+#define CFG_PROMPT		"v5fx30teval:/# "/* 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 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		(16*1024*1024)
+#define	CFG_FLASH_CFI		1
+#define	CFG_FLASH_CFI_DRIVER	1
+#define	CFG_FLASH_EMPTY_INFO	1
+#define	CFG_MAX_FLASH_BANKS	1
+#define	CFG_MAX_FLASH_SECT	131
+#define	CFG_FLASH_PROTECTION
+#define MTDIDS_DEFAULT		"nor0=v5fx30teval-flash"
+#define MTDPARTS_DEFAULT	"mtdparts=v5fx30teval-flash:-(user)"
+
+#endif						/* __CONFIG_H */
-- 
1.5.6.3

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [U-Boot] [PATCH] ppc440: New board: Avnet Virtex5 FXT Evaluation
  2008-08-22 16:35   ` [U-Boot] [PATCH] ppc440: New board: Avnet Virtex5 FXT Evaluation Ricardo Ribalda Delgado
@ 2008-08-23 19:05     ` Michal Simek
  2008-08-24  0:42       ` Ricardo Ribalda Delgado
  0 siblings, 1 reply; 16+ messages in thread
From: Michal Simek @ 2008-08-23 19:05 UTC (permalink / raw)
  To: u-boot

Hi Ricardo, Stefan and Wolfgang,

I looked at patches which Ricardo sent. It is really nice to see that someone
wants to add new xilinx boards to U-BOOT. But IMHO this is not the right way.
I think that one xilinx board with ppc405 and ppc440 is enough. This is FPGA you
can choose almost everything what you want to change. -> It is useless add new
board which has only different setting. It doesn't matter if is avnet or xilinx
board and they have different size of flash, ram or whatever.
I think that the right way is to have one generic platform and your xparameters
can direct it. With adding new board you see avnet board in board folder but
that's all. Setting is almost the same with ml507. Please do not extend U-BOOT
code with boards which do not add important change. I hope you understand what I
mean.

The next reason should be what is avnet reference design? (You can use some edk
version with ppc440 and there are some changes between version)

In Microblaze case you can see I add only two boards - one is with flash and
second without. I can do thousands design with different setting but this is not
 good solution.

Please do not add this board and do not start new way that every fpga board will
have own folder and config file. This only extend U-BOOT size and that's all. No
additional information.

My propose solution is to have one generic board (ml507 is ok) and improve ml507
config file for usage with others board. This is what wrote Wolfgang in emails
about ml507. Do not hardcode value in memory settings and other.

Best regards,
Michal




Ricardo Ribalda Delgado wrote:
> Cheap board by Avnet for evaluating the Virtex5 FX technology.
> 
> This patch adds support for:
>   - UartLite
>   - 16MB Flash
>   - 64MB RAM
> 
> Prior using U-boot in this board, read carefully the ERRATA by Avnet
> to solve some memory initialization issues.
> 
> Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@uam.es>
> ---
>  CREDITS                                |    2 +-
>  MAINTAINERS                            |    1 +
>  MAKEALL                                |    2 +
>  Makefile                               |   12 +++
>  board/avnet/v5fx30teval/.gitignore     |    2 +
>  board/avnet/v5fx30teval/Makefile       |   58 +++++++++++++
>  board/avnet/v5fx30teval/config.mk      |   27 ++++++
>  board/avnet/v5fx30teval/init.S         |   58 +++++++++++++
>  board/avnet/v5fx30teval/u-boot-ram.lds |  134 +++++++++++++++++++++++++++++
>  board/avnet/v5fx30teval/u-boot-rom.lds |  144 ++++++++++++++++++++++++++++++++
>  board/avnet/v5fx30teval/v5fx30teval.c  |   47 ++++++++++
>  board/avnet/v5fx30teval/xparameters.h  |   36 ++++++++
>  include/configs/v5fx30teval.h          |  121 +++++++++++++++++++++++++++
>  13 files changed, 643 insertions(+), 1 deletions(-)
>  create mode 100644 board/avnet/v5fx30teval/.gitignore
>  create mode 100644 board/avnet/v5fx30teval/Makefile
>  create mode 100644 board/avnet/v5fx30teval/config.mk
>  create mode 100644 board/avnet/v5fx30teval/init.S
>  create mode 100644 board/avnet/v5fx30teval/u-boot-ram.lds
>  create mode 100644 board/avnet/v5fx30teval/u-boot-rom.lds
>  create mode 100644 board/avnet/v5fx30teval/v5fx30teval.c
>  create mode 100644 board/avnet/v5fx30teval/xparameters.h
>  create mode 100644 include/configs/v5fx30teval.h
> 
> diff --git a/CREDITS b/CREDITS
> index 4fe4e63..48be11b 100644
> --- a/CREDITS
> +++ b/CREDITS
> @@ -405,7 +405,7 @@ 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
>  W: http://www.ii.uam.es/~rribalda
>  
>  N: Stefan Roese
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 31493c2..4a950f1 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -318,6 +318,7 @@ Daniel Poirot <dan.poirot@windriver.com>
>  Ricardo Ribalda <ricardo.ribalda@uam.es>
>  
>  	ml507 		PPC440x5
> +	v5fx30teval	PPC440x5
>  
>  Stefan Roese <sr@denx.de>
>  
> diff --git a/MAKEALL b/MAKEALL
> index edfee90..a1c1957 100755
> --- a/MAKEALL
> +++ b/MAKEALL
> @@ -231,6 +231,8 @@ LIST_4xx="		\
>  	sequoia_nand	\
>  	taihu		\
>  	taishan		\
> +	v5fx30teval	\
> +	v5fx30teval_flash \
>  	VOH405		\
>  	VOM405		\
>  	W7OLMC		\
> diff --git a/Makefile b/Makefile
> index f02ab65..7561eef 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -1456,6 +1456,18 @@ taihu_config:	unconfig
>  taishan_config:	unconfig
>  	@$(MKCONFIG) $(@:_config=) ppc ppc4xx taishan amcc
>  
> +v5fx30teval_flash_config:	unconfig
> +	@mkdir -p $(obj)include $(obj)board/avnet/v5fx30teval
> +	@cp $(obj)board/avnet/v5fx30teval/u-boot-rom.lds  $(obj)board/avnet/v5fx30teval/u-boot.lds
> +	@echo "TEXT_BASE = 0xFF1C0000" > $(obj)board/avnet/v5fx30teval/config.tmp
> +	@$(MKCONFIG) $(@:_flash_config=) ppc ppc4xx v5fx30teval avnet
> +
> +v5fx30teval_config:	unconfig
> +	@mkdir -p $(obj)include $(obj)board/avnet/v5fx30teval
> +	@cp $(obj)board/avnet/v5fx30teval/u-boot-ram.lds  $(obj)board/avnet/v5fx30teval/u-boot.lds
> +	@$(MKCONFIG) $(@:_config=) ppc ppc4xx v5fx30teval avnet
> +
> +
>  VOH405_config:	unconfig
>  	@$(MKCONFIG) $(@:_config=) ppc ppc4xx voh405 esd
>  
> diff --git a/board/avnet/v5fx30teval/.gitignore b/board/avnet/v5fx30teval/.gitignore
> new file mode 100644
> index 0000000..e3155c5
> --- /dev/null
> +++ b/board/avnet/v5fx30teval/.gitignore
> @@ -0,0 +1,2 @@
> +/u-boot.lds
> +/config.tmp
> diff --git a/board/avnet/v5fx30teval/Makefile b/board/avnet/v5fx30teval/Makefile
> new file mode 100644
> index 0000000..7283704
> --- /dev/null
> +++ b/board/avnet/v5fx30teval/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	= $(BOARD).o
> +
> +SOBJS	= init.o
> +
> +SRCS	:= $(SOBJS:.o=.S) $(COBJS:.o=.c)
> +OBJS	:= $(addprefix $(obj),$(COBJS))
> +SOBJS	:= $(addprefix $(obj),$(SOBJS))
> +
> +$(LIB):	$(OBJS) $(SOBJS)
> +	$(AR) $(ARFLAGS) $@ $^
> +
> +clean:
> +	rm -f $(SOBJS) $(OBJS)
> +
> +distclean:	clean
> +	rm -f $(LIB) core *.bak .depend
> +
> +#########################################################################
> +
> +# defines $(obj).depend target
> +include $(SRCTREE)/rules.mk
> +
> +sinclude $(obj).depend
> +
> +#########################################################################
> diff --git a/board/avnet/v5fx30teval/config.mk b/board/avnet/v5fx30teval/config.mk
> new file mode 100644
> index 0000000..38272b9
> --- /dev/null
> +++ b/board/avnet/v5fx30teval/config.mk
> @@ -0,0 +1,27 @@
> +#
> +# (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 = 0x03000000
> +endif
> diff --git a/board/avnet/v5fx30teval/init.S b/board/avnet/v5fx30teval/init.S
> new file mode 100644
> index 0000000..c07ee83
> --- /dev/null
> +++ b/board/avnet/v5fx30teval/init.S
> @@ -0,0 +1,58 @@
> +/*
> + *  (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_XPS_SPI_0_BASEADDR
> +	/* Net */
> +tlbentry(XPAR_XPS_SPI_0_BASEADDR, SZ_64K, XPAR_XPS_SPI_0_BASEADDR, 0,
> +	 AC_R | AC_W | SA_G | SA_I)
> +#endif
> +#ifdef XPAR_FLASH_MEM0_BASEADDR
> +	/*Flash*/
> +tlbentry(XPAR_FLASH_MEM0_BASEADDR, SZ_16M, XPAR_FLASH_MEM0_BASEADDR, 0,
> +	 AC_R | AC_W | AC_X | SA_G | SA_I)
> +#endif
> +tlbtab_end
> diff --git a/board/avnet/v5fx30teval/u-boot-ram.lds b/board/avnet/v5fx30teval/u-boot-ram.lds
> new file mode 100644
> index 0000000..2c98d27
> --- /dev/null
> +++ b/board/avnet/v5fx30teval/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/avnet/v5fx30teval/u-boot-rom.lds b/board/avnet/v5fx30teval/u-boot-rom.lds
> new file mode 100644
> index 0000000..d5da018
> --- /dev/null
> +++ b/board/avnet/v5fx30teval/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/avnet/v5fx30teval/v5fx30teval.c b/board/avnet/v5fx30teval/v5fx30teval.c
> new file mode 100644
> index 0000000..55d301a
> --- /dev/null
> +++ b/board/avnet/v5fx30teval/v5fx30teval.c
> @@ -0,0 +1,47 @@
> +/*
> + * (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)
> +{
> +	puts("Avnet Virtex5 FX30T Eval 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/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/include/configs/v5fx30teval.h b/include/configs/v5fx30teval.h
> new file mode 100644
> index 0000000..6cbaeb1
> --- /dev/null
> +++ b/include/configs/v5fx30teval.h
> @@ -0,0 +1,121 @@
> +/*
> + * (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
> +/*
> +#define DEBUG
> +#define ET_DEBUG
> +*/
> + /*CPU*/
> +#define CONFIG_XILINX_ML507	1
> +#define CONFIG_XILINX_440	1
> +#define CONFIG_440		1
> +#define CONFIG_4xx		1
> +#include "../board/avnet/v5fx30teval/xparameters.h"
> +
> +/*Mem Map*/
> +#define CFG_SDRAM_BASE		0x0
> +#define CFG_SDRAM_SIZE_MB	64
> +#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_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 CONFIG_BOOTDELAY	5		/* autoboot after 5 seconds     */
> +#define CFG_LONGHELP				/* undef to save memory         */
> +#define CFG_PROMPT		"v5fx30teval:/# "/* 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 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		(16*1024*1024)
> +#define	CFG_FLASH_CFI		1
> +#define	CFG_FLASH_CFI_DRIVER	1
> +#define	CFG_FLASH_EMPTY_INFO	1
> +#define	CFG_MAX_FLASH_BANKS	1
> +#define	CFG_MAX_FLASH_SECT	131
> +#define	CFG_FLASH_PROTECTION
> +#define MTDIDS_DEFAULT		"nor0=v5fx30teval-flash"
> +#define MTDPARTS_DEFAULT	"mtdparts=v5fx30teval-flash:-(user)"
> +
> +#endif						/* __CONFIG_H */

^ permalink raw reply	[flat|nested] 16+ messages in thread

* [U-Boot] [PATCH] ppc440: New board: Avnet Virtex5 FXT Evaluation
  2008-08-23 19:05     ` Michal Simek
@ 2008-08-24  0:42       ` Ricardo Ribalda Delgado
  2008-08-24  9:49         ` Michal Simek
  0 siblings, 1 reply; 16+ messages in thread
From: Ricardo Ribalda Delgado @ 2008-08-24  0:42 UTC (permalink / raw)
  To: u-boot

Hello Michal

  I agree with you that the code of ml507 and other board with that
fpga will be almost the same, except external devices like ram, flash
type ethernet macs....

  But the same happens in other part of the code: many arm boards are
very similar between them, etc. In the other hand is very convenent
(and commercial) that u-boot support as many boards as possible,
support explicitily, not as part of a common board, think that the
boards are organized by vendor: User are not supported to know all the
manufactures "excentrities"

  I have been thinking a bit about this and I came with this idea
(please give me your comments):

  - Create a folder like: /board/xilinx/generic/ppc440
/board/xilinx/generic/ppc405 /board/xilinx/generic/microblace
  - Create one config for every previous generic board (nothing new until know)
  - Create one config file for every specific board that includes the
generic configuration for it class
  - Create folders like /board/xilinx/ml507 with the specific ml507
code (99,9999% this wont be needed)

   The generic configuration will take care of the xparameter file:
something like:

 #if XPAR_TEMAC
   #define CMD_NET_PING
#endif

Using this philosophy, there is no code replication, boards are
explicitly supported and future boards with rare features will be also
supported easily

    Any ideas/sugestion?


   Best regards

On Sat, Aug 23, 2008 at 15:05, Michal Simek <monstr@seznam.cz> wrote:
> Hi Ricardo, Stefan and Wolfgang,
>
> I looked at patches which Ricardo sent. It is really nice to see that someone
> wants to add new xilinx boards to U-BOOT. But IMHO this is not the right way.
> I think that one xilinx board with ppc405 and ppc440 is enough. This is FPGA you
> can choose almost everything what you want to change. -> It is useless add new
> board which has only different setting. It doesn't matter if is avnet or xilinx
> board and they have different size of flash, ram or whatever.
> I think that the right way is to have one generic platform and your xparameters
> can direct it. With adding new board you see avnet board in board folder but
> that's all. Setting is almost the same with ml507. Please do not extend U-BOOT
> code with boards which do not add important change. I hope you understand what I
> mean.
>
> The next reason should be what is avnet reference design? (You can use some edk
> version with ppc440 and there are some changes between version)
>
> In Microblaze case you can see I add only two boards - one is with flash and
> second without. I can do thousands design with different setting but this is not
>  good solution.
>
> Please do not add this board and do not start new way that every fpga board will
> have own folder and config file. This only extend U-BOOT size and that's all. No
> additional information.
>
> My propose solution is to have one generic board (ml507 is ok) and improve ml507
> config file for usage with others board. This is what wrote Wolfgang in emails
> about ml507. Do not hardcode value in memory settings and other.
>
> Best regards,
> Michal
>
>
>
>
> Ricardo Ribalda Delgado wrote:
>> Cheap board by Avnet for evaluating the Virtex5 FX technology.
>>
>> This patch adds support for:
>>   - UartLite
>>   - 16MB Flash
>>   - 64MB RAM
>>
>> Prior using U-boot in this board, read carefully the ERRATA by Avnet
>> to solve some memory initialization issues.
>>
>> Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@uam.es>
>> ---
>>  CREDITS                                |    2 +-
>>  MAINTAINERS                            |    1 +
>>  MAKEALL                                |    2 +
>>  Makefile                               |   12 +++
>>  board/avnet/v5fx30teval/.gitignore     |    2 +
>>  board/avnet/v5fx30teval/Makefile       |   58 +++++++++++++
>>  board/avnet/v5fx30teval/config.mk      |   27 ++++++
>>  board/avnet/v5fx30teval/init.S         |   58 +++++++++++++
>>  board/avnet/v5fx30teval/u-boot-ram.lds |  134 +++++++++++++++++++++++++++++
>>  board/avnet/v5fx30teval/u-boot-rom.lds |  144 ++++++++++++++++++++++++++++++++
>>  board/avnet/v5fx30teval/v5fx30teval.c  |   47 ++++++++++
>>  board/avnet/v5fx30teval/xparameters.h  |   36 ++++++++
>>  include/configs/v5fx30teval.h          |  121 +++++++++++++++++++++++++++
>>  13 files changed, 643 insertions(+), 1 deletions(-)
>>  create mode 100644 board/avnet/v5fx30teval/.gitignore
>>  create mode 100644 board/avnet/v5fx30teval/Makefile
>>  create mode 100644 board/avnet/v5fx30teval/config.mk
>>  create mode 100644 board/avnet/v5fx30teval/init.S
>>  create mode 100644 board/avnet/v5fx30teval/u-boot-ram.lds
>>  create mode 100644 board/avnet/v5fx30teval/u-boot-rom.lds
>>  create mode 100644 board/avnet/v5fx30teval/v5fx30teval.c
>>  create mode 100644 board/avnet/v5fx30teval/xparameters.h
>>  create mode 100644 include/configs/v5fx30teval.h
>>
>> diff --git a/CREDITS b/CREDITS
>> index 4fe4e63..48be11b 100644
>> --- a/CREDITS
>> +++ b/CREDITS
>> @@ -405,7 +405,7 @@ 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
>>  W: http://www.ii.uam.es/~rribalda
>>
>>  N: Stefan Roese
>> diff --git a/MAINTAINERS b/MAINTAINERS
>> index 31493c2..4a950f1 100644
>> --- a/MAINTAINERS
>> +++ b/MAINTAINERS
>> @@ -318,6 +318,7 @@ Daniel Poirot <dan.poirot@windriver.com>
>>  Ricardo Ribalda <ricardo.ribalda@uam.es>
>>
>>       ml507           PPC440x5
>> +     v5fx30teval     PPC440x5
>>
>>  Stefan Roese <sr@denx.de>
>>
>> diff --git a/MAKEALL b/MAKEALL
>> index edfee90..a1c1957 100755
>> --- a/MAKEALL
>> +++ b/MAKEALL
>> @@ -231,6 +231,8 @@ LIST_4xx="                \
>>       sequoia_nand    \
>>       taihu           \
>>       taishan         \
>> +     v5fx30teval     \
>> +     v5fx30teval_flash \
>>       VOH405          \
>>       VOM405          \
>>       W7OLMC          \
>> diff --git a/Makefile b/Makefile
>> index f02ab65..7561eef 100644
>> --- a/Makefile
>> +++ b/Makefile
>> @@ -1456,6 +1456,18 @@ taihu_config:  unconfig
>>  taishan_config:      unconfig
>>       @$(MKCONFIG) $(@:_config=) ppc ppc4xx taishan amcc
>>
>> +v5fx30teval_flash_config:    unconfig
>> +     @mkdir -p $(obj)include $(obj)board/avnet/v5fx30teval
>> +     @cp $(obj)board/avnet/v5fx30teval/u-boot-rom.lds  $(obj)board/avnet/v5fx30teval/u-boot.lds
>> +     @echo "TEXT_BASE = 0xFF1C0000" > $(obj)board/avnet/v5fx30teval/config.tmp
>> +     @$(MKCONFIG) $(@:_flash_config=) ppc ppc4xx v5fx30teval avnet
>> +
>> +v5fx30teval_config:  unconfig
>> +     @mkdir -p $(obj)include $(obj)board/avnet/v5fx30teval
>> +     @cp $(obj)board/avnet/v5fx30teval/u-boot-ram.lds  $(obj)board/avnet/v5fx30teval/u-boot.lds
>> +     @$(MKCONFIG) $(@:_config=) ppc ppc4xx v5fx30teval avnet
>> +
>> +
>>  VOH405_config:       unconfig
>>       @$(MKCONFIG) $(@:_config=) ppc ppc4xx voh405 esd
>>
>> diff --git a/board/avnet/v5fx30teval/.gitignore b/board/avnet/v5fx30teval/.gitignore
>> new file mode 100644
>> index 0000000..e3155c5
>> --- /dev/null
>> +++ b/board/avnet/v5fx30teval/.gitignore
>> @@ -0,0 +1,2 @@
>> +/u-boot.lds
>> +/config.tmp
>> diff --git a/board/avnet/v5fx30teval/Makefile b/board/avnet/v5fx30teval/Makefile
>> new file mode 100644
>> index 0000000..7283704
>> --- /dev/null
>> +++ b/board/avnet/v5fx30teval/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        = $(BOARD).o
>> +
>> +SOBJS        = init.o
>> +
>> +SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c)
>> +OBJS := $(addprefix $(obj),$(COBJS))
>> +SOBJS        := $(addprefix $(obj),$(SOBJS))
>> +
>> +$(LIB):      $(OBJS) $(SOBJS)
>> +     $(AR) $(ARFLAGS) $@ $^
>> +
>> +clean:
>> +     rm -f $(SOBJS) $(OBJS)
>> +
>> +distclean:   clean
>> +     rm -f $(LIB) core *.bak .depend
>> +
>> +#########################################################################
>> +
>> +# defines $(obj).depend target
>> +include $(SRCTREE)/rules.mk
>> +
>> +sinclude $(obj).depend
>> +
>> +#########################################################################
>> diff --git a/board/avnet/v5fx30teval/config.mk b/board/avnet/v5fx30teval/config.mk
>> new file mode 100644
>> index 0000000..38272b9
>> --- /dev/null
>> +++ b/board/avnet/v5fx30teval/config.mk
>> @@ -0,0 +1,27 @@
>> +#
>> +# (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 = 0x03000000
>> +endif
>> diff --git a/board/avnet/v5fx30teval/init.S b/board/avnet/v5fx30teval/init.S
>> new file mode 100644
>> index 0000000..c07ee83
>> --- /dev/null
>> +++ b/board/avnet/v5fx30teval/init.S
>> @@ -0,0 +1,58 @@
>> +/*
>> + *  (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_XPS_SPI_0_BASEADDR
>> +     /* Net */
>> +tlbentry(XPAR_XPS_SPI_0_BASEADDR, SZ_64K, XPAR_XPS_SPI_0_BASEADDR, 0,
>> +      AC_R | AC_W | SA_G | SA_I)
>> +#endif
>> +#ifdef XPAR_FLASH_MEM0_BASEADDR
>> +     /*Flash*/
>> +tlbentry(XPAR_FLASH_MEM0_BASEADDR, SZ_16M, XPAR_FLASH_MEM0_BASEADDR, 0,
>> +      AC_R | AC_W | AC_X | SA_G | SA_I)
>> +#endif
>> +tlbtab_end
>> diff --git a/board/avnet/v5fx30teval/u-boot-ram.lds b/board/avnet/v5fx30teval/u-boot-ram.lds
>> new file mode 100644
>> index 0000000..2c98d27
>> --- /dev/null
>> +++ b/board/avnet/v5fx30teval/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/avnet/v5fx30teval/u-boot-rom.lds b/board/avnet/v5fx30teval/u-boot-rom.lds
>> new file mode 100644
>> index 0000000..d5da018
>> --- /dev/null
>> +++ b/board/avnet/v5fx30teval/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/avnet/v5fx30teval/v5fx30teval.c b/board/avnet/v5fx30teval/v5fx30teval.c
>> new file mode 100644
>> index 0000000..55d301a
>> --- /dev/null
>> +++ b/board/avnet/v5fx30teval/v5fx30teval.c
>> @@ -0,0 +1,47 @@
>> +/*
>> + * (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)
>> +{
>> +     puts("Avnet Virtex5 FX30T Eval 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/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/include/configs/v5fx30teval.h b/include/configs/v5fx30teval.h
>> new file mode 100644
>> index 0000000..6cbaeb1
>> --- /dev/null
>> +++ b/include/configs/v5fx30teval.h
>> @@ -0,0 +1,121 @@
>> +/*
>> + * (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
>> +/*
>> +#define DEBUG
>> +#define ET_DEBUG
>> +*/
>> + /*CPU*/
>> +#define CONFIG_XILINX_ML507  1
>> +#define CONFIG_XILINX_440    1
>> +#define CONFIG_440           1
>> +#define CONFIG_4xx           1
>> +#include "../board/avnet/v5fx30teval/xparameters.h"
>> +
>> +/*Mem Map*/
>> +#define CFG_SDRAM_BASE               0x0
>> +#define CFG_SDRAM_SIZE_MB    64
>> +#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_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 CONFIG_BOOTDELAY     5               /* autoboot after 5 seconds     */
>> +#define CFG_LONGHELP                         /* undef to save memory         */
>> +#define CFG_PROMPT           "v5fx30teval:/# "/* 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 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          (16*1024*1024)
>> +#define      CFG_FLASH_CFI           1
>> +#define      CFG_FLASH_CFI_DRIVER    1
>> +#define      CFG_FLASH_EMPTY_INFO    1
>> +#define      CFG_MAX_FLASH_BANKS     1
>> +#define      CFG_MAX_FLASH_SECT      131
>> +#define      CFG_FLASH_PROTECTION
>> +#define MTDIDS_DEFAULT               "nor0=v5fx30teval-flash"
>> +#define MTDPARTS_DEFAULT     "mtdparts=v5fx30teval-flash:-(user)"
>> +
>> +#endif                                               /* __CONFIG_H */
>



-- 
Ricardo Ribalda
http://www.eps.uam.es/~rribalda/

^ permalink raw reply	[flat|nested] 16+ messages in thread

* [U-Boot] [PATCH] ppc440: New board: Avnet Virtex5 FXT Evaluation
  2008-08-24  0:42       ` Ricardo Ribalda Delgado
@ 2008-08-24  9:49         ` Michal Simek
  2008-08-25  8:09           ` Stefan Roese
  0 siblings, 1 reply; 16+ messages in thread
From: Michal Simek @ 2008-08-24  9:49 UTC (permalink / raw)
  To: u-boot

Hi Ricardo,

> Hello Michal
> 
>   I agree with you that the code of ml507 and other board with that
> fpga will be almost the same, except external devices like ram, flash
> type ethernet macs....

Yes, simple ifdef CONFIG_XILINX_LL_TEMAC in config file is sufficient.

>   But the same happens in other part of the code: many arm boards are
> very similar between them, etc.

Yes, but FPGA is different case. Arm boards can't be change by user to much as
you can change FPGA boards. First u-boot compilation on this board will run.

> In the other hand is very convenent
> (and commercial) that u-boot support as many boards as possible,
> support explicitily, not as part of a common board, think that the
> boards are organized by vendor: User are not supported to know all the
> manufactures "excentrities"

Please Wolfgang for some comments but IMHO this is not the point support a lot
of boards as is possible. I think that the point is support important boards in
every category and every new board should add any information to U-BOOT. If the
manufacturer has the board with name (arm, ppc) and this board is distributed
and known by this name it is good reason to add this board to U-BOOT. For
example all freescale boards are good example. A lot of company just copy their
hw design - change some minor parameters and do it as proprietary board.

> 
>   I have been thinking a bit about this and I came with this idea
> (please give me your comments):
> 
>   - Create a folder like: /board/xilinx/generic/ppc440
> /board/xilinx/generic/ppc405 /board/xilinx/generic/microblace

board/xilinx/ppc440 and ... is sufficient. Just renaming folder should be
sufficient.

For microblaze case -> xilinx/m401 -> xilinx/microblaze
For ppc405 -> xilinx/ml300 -> xilinx/ppc405
For ppc440 -> xilinx/ml507 -> xilinx/ppc440

And remove others folder in xilinx directory.

>   - Create one config for every previous generic board (nothing new until know)
ok. And rename config files too.

>   - Create one config file for every specific board that includes the
> generic configuration for it class

No. I think that one generic config file is sufficient. Because if you are able
to compile and run U-BOOT with using generic config on every board with MB,
ppc405, ppc440 (of course with specific config files for every platform), you
know that your work is functional. You can use it on every board based on your
generic board.
I do the same for Microblaze - I use some platform and tens design (every design
is different) but everything is based on generic design. My U-BOOT bsp can
handle a lot of peripherals and generate proper parameters for every board and I
see that my generic config file cover all possibilities which can come. If this
generic file failed I see that something is wrong there and it is the right time
to fix it.

My approach is just rename folder to generic style as you suggested. And write
one simple readme file where you can write step by step manual how to configure
u-boot and then ml507 ,reference design from xilinx page - edk version was
tested and works. Avnet virtex5fxt tested, etc...
I think this is solution.

>   - Create folders like /board/xilinx/ml507 with the specific ml507
> code (99,9999% this wont be needed)

no.

>    The generic configuration will take care of the xparameter file:
> something like:
> 
>  #if XPAR_TEMAC
>    #define CMD_NET_PING
> #endif

the same style as is used in Microblaze config file - look at ml401 or xupv2p
config files.

> Using this philosophy, there is no code replication, boards are
> explicitly supported and future boards with rare features will be also
> supported easily
> 
>     Any ideas/sugestion?

I see code duplication in main Makefile. This Makefile is long and I haven't
seen why we should this file do longer then is. As I wrote one generic board is
enough with two choices as you add for ml507 - w/flash and wo/flash choices.
The next information which is useless is in a lot of xparameters files in u-boot.

What does it happen in this case that newbie buy a new board? Newbie look at
manufacturer pages and look at demo which is in box. Starting to play with linux
 (or whatever) and find that needs a bootloader. Look at google and find u-boot.
In your case newbie find supported board and see that his board is on the list
or not.

if (is on list) {
Newbie straightaway download u-boot and compile it for their platform and I
think in 98% first attempt to load u-boot failed because he did small change in
his design. Newbie will not happy and start to send email that u-boot doesn't
work for his platform and the name is the same as is in u-boot
} else {
if(not lazy) {
look at similar board and try to find if is possible to change current board and
run u-boot on the board
} else {
Look at google and try to find out if someone run u-boot on his board and some
cases he started to write his own bootloader.
}
}

In generic case. Find that U-BOOT support generic boards. Every newbie know what
word generic means. Find maybe in doc folder his case or will see warning
message that on this file in doc folder is described that only change
xparameters file is enought for run u-boot on his platform. Simple step by step
manual.
He do some steps (I think 3 step should be enough) and load u-boot to his
platform and run it. And if generic file cover most of possibilities u-boot will
 run.
And then just look how to add his own platform to u-boot and in his private repo
will do folder with names which he choose.



Best regards,
Michal


>    Best regards
> 
> On Sat, Aug 23, 2008 at 15:05, Michal Simek <monstr@seznam.cz> wrote:
>> Hi Ricardo, Stefan and Wolfgang,
>>
>> I looked at patches which Ricardo sent. It is really nice to see that someone
>> wants to add new xilinx boards to U-BOOT. But IMHO this is not the right way.
>> I think that one xilinx board with ppc405 and ppc440 is enough. This is FPGA you
>> can choose almost everything what you want to change. -> It is useless add new
>> board which has only different setting. It doesn't matter if is avnet or xilinx
>> board and they have different size of flash, ram or whatever.
>> I think that the right way is to have one generic platform and your xparameters
>> can direct it. With adding new board you see avnet board in board folder but
>> that's all. Setting is almost the same with ml507. Please do not extend U-BOOT
>> code with boards which do not add important change. I hope you understand what I
>> mean.
>>
>> The next reason should be what is avnet reference design? (You can use some edk
>> version with ppc440 and there are some changes between version)
>>
>> In Microblaze case you can see I add only two boards - one is with flash and
>> second without. I can do thousands design with different setting but this is not
>>  good solution.
>>
>> Please do not add this board and do not start new way that every fpga board will
>> have own folder and config file. This only extend U-BOOT size and that's all. No
>> additional information.
>>
>> My propose solution is to have one generic board (ml507 is ok) and improve ml507
>> config file for usage with others board. This is what wrote Wolfgang in emails
>> about ml507. Do not hardcode value in memory settings and other.
>>
>> Best regards,
>> Michal
>>
>>
>>
>>
>> Ricardo Ribalda Delgado wrote:
>>> Cheap board by Avnet for evaluating the Virtex5 FX technology.
>>>
>>> This patch adds support for:
>>>   - UartLite
>>>   - 16MB Flash
>>>   - 64MB RAM
>>>
>>> Prior using U-boot in this board, read carefully the ERRATA by Avnet
>>> to solve some memory initialization issues.
>>>
>>> Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@uam.es>
>>> ---
>>>  CREDITS                                |    2 +-
>>>  MAINTAINERS                            |    1 +
>>>  MAKEALL                                |    2 +
>>>  Makefile                               |   12 +++
>>>  board/avnet/v5fx30teval/.gitignore     |    2 +
>>>  board/avnet/v5fx30teval/Makefile       |   58 +++++++++++++
>>>  board/avnet/v5fx30teval/config.mk      |   27 ++++++
>>>  board/avnet/v5fx30teval/init.S         |   58 +++++++++++++
>>>  board/avnet/v5fx30teval/u-boot-ram.lds |  134 +++++++++++++++++++++++++++++
>>>  board/avnet/v5fx30teval/u-boot-rom.lds |  144 ++++++++++++++++++++++++++++++++
>>>  board/avnet/v5fx30teval/v5fx30teval.c  |   47 ++++++++++
>>>  board/avnet/v5fx30teval/xparameters.h  |   36 ++++++++
>>>  include/configs/v5fx30teval.h          |  121 +++++++++++++++++++++++++++
>>>  13 files changed, 643 insertions(+), 1 deletions(-)
>>>  create mode 100644 board/avnet/v5fx30teval/.gitignore
>>>  create mode 100644 board/avnet/v5fx30teval/Makefile
>>>  create mode 100644 board/avnet/v5fx30teval/config.mk
>>>  create mode 100644 board/avnet/v5fx30teval/init.S
>>>  create mode 100644 board/avnet/v5fx30teval/u-boot-ram.lds
>>>  create mode 100644 board/avnet/v5fx30teval/u-boot-rom.lds
>>>  create mode 100644 board/avnet/v5fx30teval/v5fx30teval.c
>>>  create mode 100644 board/avnet/v5fx30teval/xparameters.h
>>>  create mode 100644 include/configs/v5fx30teval.h
>>>
>>> diff --git a/CREDITS b/CREDITS
>>> index 4fe4e63..48be11b 100644
>>> --- a/CREDITS
>>> +++ b/CREDITS
>>> @@ -405,7 +405,7 @@ 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
>>>  W: http://www.ii.uam.es/~rribalda
>>>
>>>  N: Stefan Roese
>>> diff --git a/MAINTAINERS b/MAINTAINERS
>>> index 31493c2..4a950f1 100644
>>> --- a/MAINTAINERS
>>> +++ b/MAINTAINERS
>>> @@ -318,6 +318,7 @@ Daniel Poirot <dan.poirot@windriver.com>
>>>  Ricardo Ribalda <ricardo.ribalda@uam.es>
>>>
>>>       ml507           PPC440x5
>>> +     v5fx30teval     PPC440x5
>>>
>>>  Stefan Roese <sr@denx.de>
>>>
>>> diff --git a/MAKEALL b/MAKEALL
>>> index edfee90..a1c1957 100755
>>> --- a/MAKEALL
>>> +++ b/MAKEALL
>>> @@ -231,6 +231,8 @@ LIST_4xx="                \
>>>       sequoia_nand    \
>>>       taihu           \
>>>       taishan         \
>>> +     v5fx30teval     \
>>> +     v5fx30teval_flash \
>>>       VOH405          \
>>>       VOM405          \
>>>       W7OLMC          \
>>> diff --git a/Makefile b/Makefile
>>> index f02ab65..7561eef 100644
>>> --- a/Makefile
>>> +++ b/Makefile
>>> @@ -1456,6 +1456,18 @@ taihu_config:  unconfig
>>>  taishan_config:      unconfig
>>>       @$(MKCONFIG) $(@:_config=) ppc ppc4xx taishan amcc
>>>
>>> +v5fx30teval_flash_config:    unconfig
>>> +     @mkdir -p $(obj)include $(obj)board/avnet/v5fx30teval
>>> +     @cp $(obj)board/avnet/v5fx30teval/u-boot-rom.lds  $(obj)board/avnet/v5fx30teval/u-boot.lds
>>> +     @echo "TEXT_BASE = 0xFF1C0000" > $(obj)board/avnet/v5fx30teval/config.tmp
>>> +     @$(MKCONFIG) $(@:_flash_config=) ppc ppc4xx v5fx30teval avnet
>>> +
>>> +v5fx30teval_config:  unconfig
>>> +     @mkdir -p $(obj)include $(obj)board/avnet/v5fx30teval
>>> +     @cp $(obj)board/avnet/v5fx30teval/u-boot-ram.lds  $(obj)board/avnet/v5fx30teval/u-boot.lds
>>> +     @$(MKCONFIG) $(@:_config=) ppc ppc4xx v5fx30teval avnet
>>> +
>>> +
>>>  VOH405_config:       unconfig
>>>       @$(MKCONFIG) $(@:_config=) ppc ppc4xx voh405 esd
>>>
>>> diff --git a/board/avnet/v5fx30teval/.gitignore b/board/avnet/v5fx30teval/.gitignore
>>> new file mode 100644
>>> index 0000000..e3155c5
>>> --- /dev/null
>>> +++ b/board/avnet/v5fx30teval/.gitignore
>>> @@ -0,0 +1,2 @@
>>> +/u-boot.lds
>>> +/config.tmp
>>> diff --git a/board/avnet/v5fx30teval/Makefile b/board/avnet/v5fx30teval/Makefile
>>> new file mode 100644
>>> index 0000000..7283704
>>> --- /dev/null
>>> +++ b/board/avnet/v5fx30teval/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        = $(BOARD).o
>>> +
>>> +SOBJS        = init.o
>>> +
>>> +SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c)
>>> +OBJS := $(addprefix $(obj),$(COBJS))
>>> +SOBJS        := $(addprefix $(obj),$(SOBJS))
>>> +
>>> +$(LIB):      $(OBJS) $(SOBJS)
>>> +     $(AR) $(ARFLAGS) $@ $^
>>> +
>>> +clean:
>>> +     rm -f $(SOBJS) $(OBJS)
>>> +
>>> +distclean:   clean
>>> +     rm -f $(LIB) core *.bak .depend
>>> +
>>> +#########################################################################
>>> +
>>> +# defines $(obj).depend target
>>> +include $(SRCTREE)/rules.mk
>>> +
>>> +sinclude $(obj).depend
>>> +
>>> +#########################################################################
>>> diff --git a/board/avnet/v5fx30teval/config.mk b/board/avnet/v5fx30teval/config.mk
>>> new file mode 100644
>>> index 0000000..38272b9
>>> --- /dev/null
>>> +++ b/board/avnet/v5fx30teval/config.mk
>>> @@ -0,0 +1,27 @@
>>> +#
>>> +# (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 = 0x03000000
>>> +endif
>>> diff --git a/board/avnet/v5fx30teval/init.S b/board/avnet/v5fx30teval/init.S
>>> new file mode 100644
>>> index 0000000..c07ee83
>>> --- /dev/null
>>> +++ b/board/avnet/v5fx30teval/init.S
>>> @@ -0,0 +1,58 @@
>>> +/*
>>> + *  (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_XPS_SPI_0_BASEADDR
>>> +     /* Net */
>>> +tlbentry(XPAR_XPS_SPI_0_BASEADDR, SZ_64K, XPAR_XPS_SPI_0_BASEADDR, 0,
>>> +      AC_R | AC_W | SA_G | SA_I)
>>> +#endif
>>> +#ifdef XPAR_FLASH_MEM0_BASEADDR
>>> +     /*Flash*/
>>> +tlbentry(XPAR_FLASH_MEM0_BASEADDR, SZ_16M, XPAR_FLASH_MEM0_BASEADDR, 0,
>>> +      AC_R | AC_W | AC_X | SA_G | SA_I)
>>> +#endif
>>> +tlbtab_end
>>> diff --git a/board/avnet/v5fx30teval/u-boot-ram.lds b/board/avnet/v5fx30teval/u-boot-ram.lds
>>> new file mode 100644
>>> index 0000000..2c98d27
>>> --- /dev/null
>>> +++ b/board/avnet/v5fx30teval/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/avnet/v5fx30teval/u-boot-rom.lds b/board/avnet/v5fx30teval/u-boot-rom.lds
>>> new file mode 100644
>>> index 0000000..d5da018
>>> --- /dev/null
>>> +++ b/board/avnet/v5fx30teval/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/avnet/v5fx30teval/v5fx30teval.c b/board/avnet/v5fx30teval/v5fx30teval.c
>>> new file mode 100644
>>> index 0000000..55d301a
>>> --- /dev/null
>>> +++ b/board/avnet/v5fx30teval/v5fx30teval.c
>>> @@ -0,0 +1,47 @@
>>> +/*
>>> + * (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)
>>> +{
>>> +     puts("Avnet Virtex5 FX30T Eval 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/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/include/configs/v5fx30teval.h b/include/configs/v5fx30teval.h
>>> new file mode 100644
>>> index 0000000..6cbaeb1
>>> --- /dev/null
>>> +++ b/include/configs/v5fx30teval.h
>>> @@ -0,0 +1,121 @@
>>> +/*
>>> + * (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
>>> +/*
>>> +#define DEBUG
>>> +#define ET_DEBUG
>>> +*/
>>> + /*CPU*/
>>> +#define CONFIG_XILINX_ML507  1
>>> +#define CONFIG_XILINX_440    1
>>> +#define CONFIG_440           1
>>> +#define CONFIG_4xx           1
>>> +#include "../board/avnet/v5fx30teval/xparameters.h"
>>> +
>>> +/*Mem Map*/
>>> +#define CFG_SDRAM_BASE               0x0
>>> +#define CFG_SDRAM_SIZE_MB    64
>>> +#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_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 CONFIG_BOOTDELAY     5               /* autoboot after 5 seconds     */
>>> +#define CFG_LONGHELP                         /* undef to save memory         */
>>> +#define CFG_PROMPT           "v5fx30teval:/# "/* 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 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          (16*1024*1024)
>>> +#define      CFG_FLASH_CFI           1
>>> +#define      CFG_FLASH_CFI_DRIVER    1
>>> +#define      CFG_FLASH_EMPTY_INFO    1
>>> +#define      CFG_MAX_FLASH_BANKS     1
>>> +#define      CFG_MAX_FLASH_SECT      131
>>> +#define      CFG_FLASH_PROTECTION
>>> +#define MTDIDS_DEFAULT               "nor0=v5fx30teval-flash"
>>> +#define MTDPARTS_DEFAULT     "mtdparts=v5fx30teval-flash:-(user)"
>>> +
>>> +#endif                                               /* __CONFIG_H */
> 
> 
> 

^ permalink raw reply	[flat|nested] 16+ messages in thread

* [U-Boot] [PATCH] ppc440: New board: Avnet Virtex5 FXT Evaluation
  2008-08-24  9:49         ` Michal Simek
@ 2008-08-25  8:09           ` Stefan Roese
  2008-08-25  9:33             ` Michal Simek
  0 siblings, 1 reply; 16+ messages in thread
From: Stefan Roese @ 2008-08-25  8:09 UTC (permalink / raw)
  To: u-boot

Hi Michal, Hi Ricardo,

On Sunday 24 August 2008, Michal Simek wrote:
> >   I agree with you that the code of ml507 and other board with that
> > fpga will be almost the same, except external devices like ram, flash
> > type ethernet macs....
>
> Yes, simple ifdef CONFIG_XILINX_LL_TEMAC in config file is sufficient.
>
> >   But the same happens in other part of the code: many arm boards are
> > very similar between them, etc.
>
> Yes, but FPGA is different case. Arm boards can't be change by user to much
> as you can change FPGA boards. First u-boot compilation on this board will
> run.

I'm not so sure if those FPGA based boards are this different from 
the "standard" boards with SoC's, like PPC's ARM's etc (please correct me if 
I'm wrong). You will most likely also have board specific implementation 
differences like:

- different SDRAM configuration (non-SPD vs. SPD)
- different PHY's and PHY addresses
- different FLASH configuration that can't be handled with one CFI
  option set
- etc..

So it makes perfact sense for me to "allow" multiple board ports in the 
official U-Boot repository for the Virtex 440 for example. Again, please 
correct me if I am wrong here.

> > In the other hand is very convenent
> > (and commercial) that u-boot support as many boards as possible,
> > support explicitily, not as part of a common board, think that the
> > boards are organized by vendor: User are not supported to know all the
> > manufactures "excentrities"
>
> Please Wolfgang for some comments but IMHO this is not the point support a
> lot of boards as is possible. I think that the point is support important
> boards in every category and every new board should add any information to
> U-BOOT.

I think all boards should a right to be included in the official U-Boot 
repository. Of course code duplication should be avoided if possible.

> If the manufacturer has the board with name (arm, ppc) and this 
> board is distributed and known by this name it is good reason to add this
> board to U-BOOT. For example all freescale boards are good example. A lot
> of company just copy their hw design - change some minor parameters and do
> it as proprietary board.
>
> >   I have been thinking a bit about this and I came with this idea
> > (please give me your comments):
> >
> >   - Create a folder like: /board/xilinx/generic/ppc440
> > /board/xilinx/generic/ppc405 /board/xilinx/generic/microblace
>
> board/xilinx/ppc440 and ... is sufficient. Just renaming folder should be
> sufficient.
>
> For microblaze case -> xilinx/m401 -> xilinx/microblaze
> For ppc405 -> xilinx/ml300 -> xilinx/ppc405
> For ppc440 -> xilinx/ml507 -> xilinx/ppc440

ACK.

> And remove others folder in xilinx directory.
>
> >   - Create one config for every previous generic board (nothing new until
> > know)
>
> ok. And rename config files too.
>
> >   - Create one config file for every specific board that includes the
> > generic configuration for it class

Yes. I like this idea. We already have this for AMCC with amcc-common.h.

> No. I think that one generic config file is sufficient.

I disagree here (see above).

> Because if you are 
> able to compile and run U-BOOT with using generic config on every board
> with MB, ppc405, ppc440 (of course with specific config files for every
> platform), you know that your work is functional. You can use it on every
> board based on your generic board.
> I do the same for Microblaze - I use some platform and tens design (every
> design is different) but everything is based on generic design. My U-BOOT
> bsp can handle a lot of peripherals and generate proper parameters for
> every board and I see that my generic config file cover all possibilities
> which can come. If this generic file failed I see that something is wrong
> there and it is the right time to fix it.

One generic U-Boot config header for all possible board variants? This sounds 
too good to be true. But how do you handle those cases I stated above? You 
will need at least different config options. And then you have to use 
multiple #ifdef's in the generic config header. I prefer the approach from 
Ricardo here.

> My approach is just rename folder to generic style as you suggested. And
> write one simple readme file where you can write step by step manual how to
> configure u-boot and then ml507 ,reference design from xilinx page - edk
> version was tested and works. Avnet virtex5fxt tested, etc...
> I think this is solution.
>
> >   - Create folders like /board/xilinx/ml507 with the specific ml507
> > code (99,9999% this wont be needed)
>
> no.

Again, I'm with Ricardo here.

> >    The generic configuration will take care of the xparameter file:
> > something like:
> >
> >  #if XPAR_TEMAC
> >    #define CMD_NET_PING
> > #endif
>
> the same style as is used in Microblaze config file - look at ml401 or
> xupv2p config files.
>
> > Using this philosophy, there is no code replication, boards are
> > explicitly supported and future boards with rare features will be also
> > supported easily
> >
> >     Any ideas/sugestion?

I like this idea.

> I see code duplication in main Makefile. This Makefile is long and I
> haven't seen why we should this file do longer then is.

I don't think this is a real problem.

Again, I think Ricardo's approach with the common board directory is a good 
idea. And I still think that we should add as many boards as possible to the 
official repository. There are already too many boards using U-Boot which are 
*not* available here and that's a shame from my point of view.

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
=====================================================================

^ permalink raw reply	[flat|nested] 16+ messages in thread

* [U-Boot] [PATCH] ppc440: New board: Avnet Virtex5 FXT Evaluation
  2008-08-25  8:09           ` Stefan Roese
@ 2008-08-25  9:33             ` Michal Simek
  2008-08-25 12:28               ` Ricardo Ribalda Delgado
  0 siblings, 1 reply; 16+ messages in thread
From: Michal Simek @ 2008-08-25  9:33 UTC (permalink / raw)
  To: u-boot

Hi Stefan,

> Hi Michal, Hi Ricardo,
> 
> On Sunday 24 August 2008, Michal Simek wrote:
>>>   I agree with you that the code of ml507 and other board with that
>>> fpga will be almost the same, except external devices like ram, flash
>>> type ethernet macs....
>> Yes, simple ifdef CONFIG_XILINX_LL_TEMAC in config file is sufficient.
>>
>>>   But the same happens in other part of the code: many arm boards are
>>> very similar between them, etc.
>> Yes, but FPGA is different case. Arm boards can't be change by user to much
>> as you can change FPGA boards. First u-boot compilation on this board will
>> run.
> 
> I'm not so sure if those FPGA based boards are this different from 
> the "standard" boards with SoC's, like PPC's ARM's etc (please correct me if 
> I'm wrong). You will most likely also have board specific implementation 
> differences like:
> 
> - different SDRAM configuration (non-SPD vs. SPD)

I am not MPMC (memory controller) expert but I think for 98% of board you choose
type of memory which is used by board. Size of memory it's up to you. Just
compile and will work. SPD is not use to much as is in others board. Not any
other setting is used. Baseaddress and size is enough.

> - different PHY's and PHY addresses

Yes. This should be a small problem in case you use ip core with phy handling.
For example i think ml507 has not different routing with ml505 and there are
some phy and You can change some modes too. More comment below.

> - different FLASH configuration that can't be handled with one CFI
>   option set

Flash options are set when you do bitstream - timing and others. Software site
is transparent just use CFI. You need only baseaddress.

> - etc..
> So it makes perfact sense for me to "allow" multiple board ports in the 
> official U-Boot repository for the Virtex 440 for example. Again, please 
> correct me if I am wrong here.

I think that in this state which we have - only two ethernet cores are in U-BOOT
and one of them is ancient and use by older boards and emaclite doesn't care
about phy, it is not right time to care about phy. Phy lib is not in U-BOOT but
for example in Yoshio ll_temac driver is use phy detection. In case when we will
have phy lib (Ben has it in his to do list) we can use phy detection and I think
 it will work. In more compicated board is possible to directly specify phy
number. In generator not in u-boot config.

>>> In the other hand is very convenent
>>> (and commercial) that u-boot support as many boards as possible,
>>> support explicitily, not as part of a common board, think that the
>>> boards are organized by vendor: User are not supported to know all the
>>> manufactures "excentrities"
>> Please Wolfgang for some comments but IMHO this is not the point support a
>> lot of boards as is possible. I think that the point is support important
>> boards in every category and every new board should add any information to
>> U-BOOT.
> 
> I think all boards should a right to be included in the official U-Boot 
> repository. Of course code duplication should be avoided if possible.

yes.

>> If the manufacturer has the board with name (arm, ppc) and this 
>> board is distributed and known by this name it is good reason to add this
>> board to U-BOOT. For example all freescale boards are good example. A lot
>> of company just copy their hw design - change some minor parameters and do
>> it as proprietary board.
>>
>>>   I have been thinking a bit about this and I came with this idea
>>> (please give me your comments):
>>>
>>>   - Create a folder like: /board/xilinx/generic/ppc440
>>> /board/xilinx/generic/ppc405 /board/xilinx/generic/microblace
>> board/xilinx/ppc440 and ... is sufficient. Just renaming folder should be
>> sufficient.
>>
>> For microblaze case -> xilinx/m401 -> xilinx/microblaze
>> For ppc405 -> xilinx/ml300 -> xilinx/ppc405
>> For ppc440 -> xilinx/ml507 -> xilinx/ppc440
> 
> ACK.

ok.
>> And remove others folder in xilinx directory.
>>
>>>   - Create one config for every previous generic board (nothing new until
>>> know)
>> ok. And rename config files too.
>>
>>>   - Create one config file for every specific board that includes the
>>> generic configuration for it class
> 
> Yes. I like this idea. We already have this for AMCC with amcc-common.h.
> 
>> No. I think that one generic config file is sufficient.
> 
> I disagree here (see above).

[snip]
> 
>> Because if you are 
>> able to compile and run U-BOOT with using generic config on every board
>> with MB, ppc405, ppc440 (of course with specific config files for every
>> platform), you know that your work is functional. You can use it on every
>> board based on your generic board.
>> I do the same for Microblaze - I use some platform and tens design (every
>> design is different) but everything is based on generic design. My U-BOOT
>> bsp can handle a lot of peripherals and generate proper parameters for
>> every board and I see that my generic config file cover all possibilities
>> which can come. If this generic file failed I see that something is wrong
>> there and it is the right time to fix it.
> 
> One generic U-Boot config header for all possible board variants? This sounds 
> too good to be true. But how do you handle those cases I stated above? You 
> will need at least different config options. And then you have to use 
> multiple #ifdef's in the generic config header. I prefer the approach from 
> Ricardo here.

Look above. All differences should be handled by BSP and in Microblaze case they
are. Just run BSP in edk which you have to use for you hardware building and
then copy one file to U-BOOT.

>> My approach is just rename folder to generic style as you suggested. And
>> write one simple readme file where you can write step by step manual how to
>> configure u-boot and then ml507 ,reference design from xilinx page - edk
>> version was tested and works. Avnet virtex5fxt tested, etc...
>> I think this is solution.
>>
>>>   - Create folders like /board/xilinx/ml507 with the specific ml507
>>> code (99,9999% this wont be needed)
>> no.
> 
> Again, I'm with Ricardo here.

[snip]

>>>    The generic configuration will take care of the xparameter file:
>>> something like:
>>>
>>>  #if XPAR_TEMAC
>>>    #define CMD_NET_PING
>>> #endif
>> the same style as is used in Microblaze config file - look at ml401 or
>> xupv2p config files.
>>
>>> Using this philosophy, there is no code replication, boards are
>>> explicitly supported and future boards with rare features will be also
>>> supported easily
>>>
>>>     Any ideas/sugestion?
> 
> I like this idea.

ok

>> I see code duplication in main Makefile. This Makefile is long and I
>> haven't seen why we should this file do longer then is.
> 
> I don't think this is a real problem.
> 
> Again, I think Ricardo's approach with the common board directory is a good 
> idea. And I still think that we should add as many boards as possible to the 
> official repository. There are already too many boards using U-Boot which are 
> *not* available here and that's a shame from my point of view.

I agree with you that U-BOOT runs on many boards and in many case is shame that
they are not in U-BOOT repo but the question is if the information value from
this board add any information to U-BOOT code. Many of these boards are
proprietary boards. Others then use generic platform and hw developers just
change phy or use switch on board. I agree that if someone use for example new
Vitesse switch and there is difficult initialization is a big shame that this
board is not in U-BOOT repo. But I think that others "boring" board with just
change size of memory, flash and others minor things should be out of u-boot.

FPGA cpu are different. You have to use EDK for creating your design. You have
one board and you can do in Microblaze case almost everything (ppc board has
more limitation) and you can have tens (thousands) designs which are
interesting. That what I want to see that what is reference design. Of course
you can't add more memory which is on development board and others thing but in
every case you do your design yourself you have to use any generator for extract
parameters from your design. That is what Ricardo, I and other use because we
have to. Xparameters is that file. (You can see it in xilinx folder). You have
to generate this file and values in this file describe design in detail (not
every possible choices are covered).

I use for Microblaze generator which I had and I haven't found any problem which
should not be covered by bsp directly from EDK. Microblaze community use a lot
Petalinux. There is ancient U-BOOT version and there is used only one file for
every board which are in full distribution. This is really what people use and
they just compile one generic board.

IMHO if this approach works on microblaze that this approach should work on
ppc440 too.

You can look at ml401 and xupv2p config file. There is big overlap just because
one board hasn't flash memory but in ml401 is handled both. I have improved
configs in my repo which I used with some others feature and they are not in
U-BOOT mainline because of time.

Thanks for your comments,
Michal


> 
> 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
> =====================================================================
> 

^ permalink raw reply	[flat|nested] 16+ messages in thread

* [U-Boot] [PATCH] ppc440: New board: Avnet Virtex5 FXT Evaluation
  2008-08-25  9:33             ` Michal Simek
@ 2008-08-25 12:28               ` Ricardo Ribalda Delgado
  2008-08-25 12:35                 ` Ricardo Ribalda Delgado
  2008-08-25 13:37                 ` Michal Simek
  0 siblings, 2 replies; 16+ messages in thread
From: Ricardo Ribalda Delgado @ 2008-08-25 12:28 UTC (permalink / raw)
  To: u-boot

Hello Stefan and Michal


 If you want I can prepare a patch with the idea that I proposed on my
previous mail, just to have something to start discussing about.
Please consider the patch as it is: something real to discuss about:
not a "real" patch
  I hope I have something today after.

                    Regards

On Mon, Aug 25, 2008 at 05:33, Michal Simek <monstr@seznam.cz> wrote:
> Hi Stefan,
>
>> Hi Michal, Hi Ricardo,
>>
>> On Sunday 24 August 2008, Michal Simek wrote:
>>>>   I agree with you that the code of ml507 and other board with that
>>>> fpga will be almost the same, except external devices like ram, flash
>>>> type ethernet macs....
>>> Yes, simple ifdef CONFIG_XILINX_LL_TEMAC in config file is sufficient.
>>>
>>>>   But the same happens in other part of the code: many arm boards are
>>>> very similar between them, etc.
>>> Yes, but FPGA is different case. Arm boards can't be change by user to much
>>> as you can change FPGA boards. First u-boot compilation on this board will
>>> run.
>>
>> I'm not so sure if those FPGA based boards are this different from
>> the "standard" boards with SoC's, like PPC's ARM's etc (please correct me if
>> I'm wrong). You will most likely also have board specific implementation
>> differences like:
>>
>> - different SDRAM configuration (non-SPD vs. SPD)
>
> I am not MPMC (memory controller) expert but I think for 98% of board you choose
> type of memory which is used by board. Size of memory it's up to you. Just
> compile and will work. SPD is not use to much as is in others board. Not any
> other setting is used. Baseaddress and size is enough.
>
>> - different PHY's and PHY addresses
>
> Yes. This should be a small problem in case you use ip core with phy handling.
> For example i think ml507 has not different routing with ml505 and there are
> some phy and You can change some modes too. More comment below.
>
>> - different FLASH configuration that can't be handled with one CFI
>>   option set
>
> Flash options are set when you do bitstream - timing and others. Software site
> is transparent just use CFI. You need only baseaddress.
>
>> - etc..
>> So it makes perfact sense for me to "allow" multiple board ports in the
>> official U-Boot repository for the Virtex 440 for example. Again, please
>> correct me if I am wrong here.
>
> I think that in this state which we have - only two ethernet cores are in U-BOOT
> and one of them is ancient and use by older boards and emaclite doesn't care
> about phy, it is not right time to care about phy. Phy lib is not in U-BOOT but
> for example in Yoshio ll_temac driver is use phy detection. In case when we will
> have phy lib (Ben has it in his to do list) we can use phy detection and I think
>  it will work. In more compicated board is possible to directly specify phy
> number. In generator not in u-boot config.
>
>>>> In the other hand is very convenent
>>>> (and commercial) that u-boot support as many boards as possible,
>>>> support explicitily, not as part of a common board, think that the
>>>> boards are organized by vendor: User are not supported to know all the
>>>> manufactures "excentrities"
>>> Please Wolfgang for some comments but IMHO this is not the point support a
>>> lot of boards as is possible. I think that the point is support important
>>> boards in every category and every new board should add any information to
>>> U-BOOT.
>>
>> I think all boards should a right to be included in the official U-Boot
>> repository. Of course code duplication should be avoided if possible.
>
> yes.
>
>>> If the manufacturer has the board with name (arm, ppc) and this
>>> board is distributed and known by this name it is good reason to add this
>>> board to U-BOOT. For example all freescale boards are good example. A lot
>>> of company just copy their hw design - change some minor parameters and do
>>> it as proprietary board.
>>>
>>>>   I have been thinking a bit about this and I came with this idea
>>>> (please give me your comments):
>>>>
>>>>   - Create a folder like: /board/xilinx/generic/ppc440
>>>> /board/xilinx/generic/ppc405 /board/xilinx/generic/microblace
>>> board/xilinx/ppc440 and ... is sufficient. Just renaming folder should be
>>> sufficient.
>>>
>>> For microblaze case -> xilinx/m401 -> xilinx/microblaze
>>> For ppc405 -> xilinx/ml300 -> xilinx/ppc405
>>> For ppc440 -> xilinx/ml507 -> xilinx/ppc440
>>
>> ACK.
>
> ok.
>>> And remove others folder in xilinx directory.
>>>
>>>>   - Create one config for every previous generic board (nothing new until
>>>> know)
>>> ok. And rename config files too.
>>>
>>>>   - Create one config file for every specific board that includes the
>>>> generic configuration for it class
>>
>> Yes. I like this idea. We already have this for AMCC with amcc-common.h.
>>
>>> No. I think that one generic config file is sufficient.
>>
>> I disagree here (see above).
>
> [snip]
>>
>>> Because if you are
>>> able to compile and run U-BOOT with using generic config on every board
>>> with MB, ppc405, ppc440 (of course with specific config files for every
>>> platform), you know that your work is functional. You can use it on every
>>> board based on your generic board.
>>> I do the same for Microblaze - I use some platform and tens design (every
>>> design is different) but everything is based on generic design. My U-BOOT
>>> bsp can handle a lot of peripherals and generate proper parameters for
>>> every board and I see that my generic config file cover all possibilities
>>> which can come. If this generic file failed I see that something is wrong
>>> there and it is the right time to fix it.
>>
>> One generic U-Boot config header for all possible board variants? This sounds
>> too good to be true. But how do you handle those cases I stated above? You
>> will need at least different config options. And then you have to use
>> multiple #ifdef's in the generic config header. I prefer the approach from
>> Ricardo here.
>
> Look above. All differences should be handled by BSP and in Microblaze case they
> are. Just run BSP in edk which you have to use for you hardware building and
> then copy one file to U-BOOT.
>
>>> My approach is just rename folder to generic style as you suggested. And
>>> write one simple readme file where you can write step by step manual how to
>>> configure u-boot and then ml507 ,reference design from xilinx page - edk
>>> version was tested and works. Avnet virtex5fxt tested, etc...
>>> I think this is solution.
>>>
>>>>   - Create folders like /board/xilinx/ml507 with the specific ml507
>>>> code (99,9999% this wont be needed)
>>> no.
>>
>> Again, I'm with Ricardo here.
>
> [snip]
>
>>>>    The generic configuration will take care of the xparameter file:
>>>> something like:
>>>>
>>>>  #if XPAR_TEMAC
>>>>    #define CMD_NET_PING
>>>> #endif
>>> the same style as is used in Microblaze config file - look at ml401 or
>>> xupv2p config files.
>>>
>>>> Using this philosophy, there is no code replication, boards are
>>>> explicitly supported and future boards with rare features will be also
>>>> supported easily
>>>>
>>>>     Any ideas/sugestion?
>>
>> I like this idea.
>
> ok
>
>>> I see code duplication in main Makefile. This Makefile is long and I
>>> haven't seen why we should this file do longer then is.
>>
>> I don't think this is a real problem.
>>
>> Again, I think Ricardo's approach with the common board directory is a good
>> idea. And I still think that we should add as many boards as possible to the
>> official repository. There are already too many boards using U-Boot which are
>> *not* available here and that's a shame from my point of view.
>
> I agree with you that U-BOOT runs on many boards and in many case is shame that
> they are not in U-BOOT repo but the question is if the information value from
> this board add any information to U-BOOT code. Many of these boards are
> proprietary boards. Others then use generic platform and hw developers just
> change phy or use switch on board. I agree that if someone use for example new
> Vitesse switch and there is difficult initialization is a big shame that this
> board is not in U-BOOT repo. But I think that others "boring" board with just
> change size of memory, flash and others minor things should be out of u-boot.
>
> FPGA cpu are different. You have to use EDK for creating your design. You have
> one board and you can do in Microblaze case almost everything (ppc board has
> more limitation) and you can have tens (thousands) designs which are
> interesting. That what I want to see that what is reference design. Of course
> you can't add more memory which is on development board and others thing but in
> every case you do your design yourself you have to use any generator for extract
> parameters from your design. That is what Ricardo, I and other use because we
> have to. Xparameters is that file. (You can see it in xilinx folder). You have
> to generate this file and values in this file describe design in detail (not
> every possible choices are covered).
>
> I use for Microblaze generator which I had and I haven't found any problem which
> should not be covered by bsp directly from EDK. Microblaze community use a lot
> Petalinux. There is ancient U-BOOT version and there is used only one file for
> every board which are in full distribution. This is really what people use and
> they just compile one generic board.
>
> IMHO if this approach works on microblaze that this approach should work on
> ppc440 too.
>
> You can look at ml401 and xupv2p config file. There is big overlap just because
> one board hasn't flash memory but in ml401 is handled both. I have improved
> configs in my repo which I used with some others feature and they are not in
> U-BOOT mainline because of time.
>
> Thanks for your comments,
> Michal
>
>
>>
>> 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
>> =====================================================================
>>
>



-- 
Ricardo Ribalda
http://www.eps.uam.es/~rribalda/

^ permalink raw reply	[flat|nested] 16+ messages in thread

* [U-Boot] [PATCH] ppc440: New board: Avnet Virtex5 FXT Evaluation
  2008-08-25 12:28               ` Ricardo Ribalda Delgado
@ 2008-08-25 12:35                 ` Ricardo Ribalda Delgado
  2008-08-25 13:36                   ` Michal Simek
  2008-08-25 13:37                 ` Michal Simek
  1 sibling, 1 reply; 16+ messages in thread
From: Ricardo Ribalda Delgado @ 2008-08-25 12:35 UTC (permalink / raw)
  To: u-boot

Hello Again

 Michal, on xilinx boards almost everything can be handled by
edk+xparameters, but in other boards this is not true. Last month I
was working on a board that had a weird watchdog and a memory that
needed to handled by a propietary IP, in this case, we need a board
directory because the generic board should not support it: otherwise
the generic board will have many defiles like #ifdef
STRANGE_BOARD_USED_ONCE :)

  Waiting for your comments.



-- 
Ricardo Ribalda
http://www.eps.uam.es/~rribalda/

^ permalink raw reply	[flat|nested] 16+ messages in thread

* [U-Boot] [PATCH] ppc440: New board: Avnet Virtex5 FXT Evaluation
  2008-08-25 12:35                 ` Ricardo Ribalda Delgado
@ 2008-08-25 13:36                   ` Michal Simek
  0 siblings, 0 replies; 16+ messages in thread
From: Michal Simek @ 2008-08-25 13:36 UTC (permalink / raw)
  To: u-boot


Hi,

> Hello Again
> 
>  Michal, on xilinx boards almost everything can be handled by
> edk+xparameters, but in other boards this is not true. Last month I
> was working on a board that had a weird watchdog and a memory that
> needed to handled by a propietary IP, in this case, we need a board
> directory because the generic board should not support it: otherwise
> the generic board will have many defiles like #ifdef
> STRANGE_BOARD_USED_ONCE :)

I know that I wrote that not every possible choices are covered but you wrote
that you use proprietary IP.
Yes, we will need board directory for proprietary solution. Look at my first
email I wrote about. Of course if you do your project you should create some
directories only for you.
But I think we don't need special folder for reference design and board.

Your STRANGE_BOARD_USED_ONCE choice is due to you use something strange which
should not go to mainline U-BOOT. I don't like strange things. If is something
strange you have to find out why. Just writing strange is more stranger for
others which will read your code.

Please add more choices which you need in your config.

Memory,
flash,
iic,
spi,
watchdog,
dtc,
maybe gpio - but this is not important
dcr reading,
systemace,
ethernet controllers,
uarts

I see maybe 20 ifdef choices not more right now. Please correct me if I am wrong.

Michal


>   Waiting for your comments.
> 
> 
> 

^ permalink raw reply	[flat|nested] 16+ messages in thread

* [U-Boot] [PATCH] ppc440: New board: Avnet Virtex5 FXT Evaluation
  2008-08-25 12:28               ` Ricardo Ribalda Delgado
  2008-08-25 12:35                 ` Ricardo Ribalda Delgado
@ 2008-08-25 13:37                 ` Michal Simek
  1 sibling, 0 replies; 16+ messages in thread
From: Michal Simek @ 2008-08-25 13:37 UTC (permalink / raw)
  To: u-boot

Yes, I agree.

M


> Hello Stefan and Michal
> 
> 
>  If you want I can prepare a patch with the idea that I proposed on my
> previous mail, just to have something to start discussing about.
> Please consider the patch as it is: something real to discuss about:
> not a "real" patch
>   I hope I have something today after.
> 
>                     Regards
> 
> On Mon, Aug 25, 2008 at 05:33, Michal Simek <monstr@seznam.cz> wrote:
>> Hi Stefan,
>>
>>> Hi Michal, Hi Ricardo,
>>>
>>> On Sunday 24 August 2008, Michal Simek wrote:
>>>>>   I agree with you that the code of ml507 and other board with that
>>>>> fpga will be almost the same, except external devices like ram, flash
>>>>> type ethernet macs....
>>>> Yes, simple ifdef CONFIG_XILINX_LL_TEMAC in config file is sufficient.
>>>>
>>>>>   But the same happens in other part of the code: many arm boards are
>>>>> very similar between them, etc.
>>>> Yes, but FPGA is different case. Arm boards can't be change by user to much
>>>> as you can change FPGA boards. First u-boot compilation on this board will
>>>> run.
>>> I'm not so sure if those FPGA based boards are this different from
>>> the "standard" boards with SoC's, like PPC's ARM's etc (please correct me if
>>> I'm wrong). You will most likely also have board specific implementation
>>> differences like:
>>>
>>> - different SDRAM configuration (non-SPD vs. SPD)
>> I am not MPMC (memory controller) expert but I think for 98% of board you choose
>> type of memory which is used by board. Size of memory it's up to you. Just
>> compile and will work. SPD is not use to much as is in others board. Not any
>> other setting is used. Baseaddress and size is enough.
>>
>>> - different PHY's and PHY addresses
>> Yes. This should be a small problem in case you use ip core with phy handling.
>> For example i think ml507 has not different routing with ml505 and there are
>> some phy and You can change some modes too. More comment below.
>>
>>> - different FLASH configuration that can't be handled with one CFI
>>>   option set
>> Flash options are set when you do bitstream - timing and others. Software site
>> is transparent just use CFI. You need only baseaddress.
>>
>>> - etc..
>>> So it makes perfact sense for me to "allow" multiple board ports in the
>>> official U-Boot repository for the Virtex 440 for example. Again, please
>>> correct me if I am wrong here.
>> I think that in this state which we have - only two ethernet cores are in U-BOOT
>> and one of them is ancient and use by older boards and emaclite doesn't care
>> about phy, it is not right time to care about phy. Phy lib is not in U-BOOT but
>> for example in Yoshio ll_temac driver is use phy detection. In case when we will
>> have phy lib (Ben has it in his to do list) we can use phy detection and I think
>>  it will work. In more compicated board is possible to directly specify phy
>> number. In generator not in u-boot config.
>>
>>>>> In the other hand is very convenent
>>>>> (and commercial) that u-boot support as many boards as possible,
>>>>> support explicitily, not as part of a common board, think that the
>>>>> boards are organized by vendor: User are not supported to know all the
>>>>> manufactures "excentrities"
>>>> Please Wolfgang for some comments but IMHO this is not the point support a
>>>> lot of boards as is possible. I think that the point is support important
>>>> boards in every category and every new board should add any information to
>>>> U-BOOT.
>>> I think all boards should a right to be included in the official U-Boot
>>> repository. Of course code duplication should be avoided if possible.
>> yes.
>>
>>>> If the manufacturer has the board with name (arm, ppc) and this
>>>> board is distributed and known by this name it is good reason to add this
>>>> board to U-BOOT. For example all freescale boards are good example. A lot
>>>> of company just copy their hw design - change some minor parameters and do
>>>> it as proprietary board.
>>>>
>>>>>   I have been thinking a bit about this and I came with this idea
>>>>> (please give me your comments):
>>>>>
>>>>>   - Create a folder like: /board/xilinx/generic/ppc440
>>>>> /board/xilinx/generic/ppc405 /board/xilinx/generic/microblace
>>>> board/xilinx/ppc440 and ... is sufficient. Just renaming folder should be
>>>> sufficient.
>>>>
>>>> For microblaze case -> xilinx/m401 -> xilinx/microblaze
>>>> For ppc405 -> xilinx/ml300 -> xilinx/ppc405
>>>> For ppc440 -> xilinx/ml507 -> xilinx/ppc440
>>> ACK.
>> ok.
>>>> And remove others folder in xilinx directory.
>>>>
>>>>>   - Create one config for every previous generic board (nothing new until
>>>>> know)
>>>> ok. And rename config files too.
>>>>
>>>>>   - Create one config file for every specific board that includes the
>>>>> generic configuration for it class
>>> Yes. I like this idea. We already have this for AMCC with amcc-common.h.
>>>
>>>> No. I think that one generic config file is sufficient.
>>> I disagree here (see above).
>> [snip]
>>>> Because if you are
>>>> able to compile and run U-BOOT with using generic config on every board
>>>> with MB, ppc405, ppc440 (of course with specific config files for every
>>>> platform), you know that your work is functional. You can use it on every
>>>> board based on your generic board.
>>>> I do the same for Microblaze - I use some platform and tens design (every
>>>> design is different) but everything is based on generic design. My U-BOOT
>>>> bsp can handle a lot of peripherals and generate proper parameters for
>>>> every board and I see that my generic config file cover all possibilities
>>>> which can come. If this generic file failed I see that something is wrong
>>>> there and it is the right time to fix it.
>>> One generic U-Boot config header for all possible board variants? This sounds
>>> too good to be true. But how do you handle those cases I stated above? You
>>> will need at least different config options. And then you have to use
>>> multiple #ifdef's in the generic config header. I prefer the approach from
>>> Ricardo here.
>> Look above. All differences should be handled by BSP and in Microblaze case they
>> are. Just run BSP in edk which you have to use for you hardware building and
>> then copy one file to U-BOOT.
>>
>>>> My approach is just rename folder to generic style as you suggested. And
>>>> write one simple readme file where you can write step by step manual how to
>>>> configure u-boot and then ml507 ,reference design from xilinx page - edk
>>>> version was tested and works. Avnet virtex5fxt tested, etc...
>>>> I think this is solution.
>>>>
>>>>>   - Create folders like /board/xilinx/ml507 with the specific ml507
>>>>> code (99,9999% this wont be needed)
>>>> no.
>>> Again, I'm with Ricardo here.
>> [snip]
>>
>>>>>    The generic configuration will take care of the xparameter file:
>>>>> something like:
>>>>>
>>>>>  #if XPAR_TEMAC
>>>>>    #define CMD_NET_PING
>>>>> #endif
>>>> the same style as is used in Microblaze config file - look at ml401 or
>>>> xupv2p config files.
>>>>
>>>>> Using this philosophy, there is no code replication, boards are
>>>>> explicitly supported and future boards with rare features will be also
>>>>> supported easily
>>>>>
>>>>>     Any ideas/sugestion?
>>> I like this idea.
>> ok
>>
>>>> I see code duplication in main Makefile. This Makefile is long and I
>>>> haven't seen why we should this file do longer then is.
>>> I don't think this is a real problem.
>>>
>>> Again, I think Ricardo's approach with the common board directory is a good
>>> idea. And I still think that we should add as many boards as possible to the
>>> official repository. There are already too many boards using U-Boot which are
>>> *not* available here and that's a shame from my point of view.
>> I agree with you that U-BOOT runs on many boards and in many case is shame that
>> they are not in U-BOOT repo but the question is if the information value from
>> this board add any information to U-BOOT code. Many of these boards are
>> proprietary boards. Others then use generic platform and hw developers just
>> change phy or use switch on board. I agree that if someone use for example new
>> Vitesse switch and there is difficult initialization is a big shame that this
>> board is not in U-BOOT repo. But I think that others "boring" board with just
>> change size of memory, flash and others minor things should be out of u-boot.
>>
>> FPGA cpu are different. You have to use EDK for creating your design. You have
>> one board and you can do in Microblaze case almost everything (ppc board has
>> more limitation) and you can have tens (thousands) designs which are
>> interesting. That what I want to see that what is reference design. Of course
>> you can't add more memory which is on development board and others thing but in
>> every case you do your design yourself you have to use any generator for extract
>> parameters from your design. That is what Ricardo, I and other use because we
>> have to. Xparameters is that file. (You can see it in xilinx folder). You have
>> to generate this file and values in this file describe design in detail (not
>> every possible choices are covered).
>>
>> I use for Microblaze generator which I had and I haven't found any problem which
>> should not be covered by bsp directly from EDK. Microblaze community use a lot
>> Petalinux. There is ancient U-BOOT version and there is used only one file for
>> every board which are in full distribution. This is really what people use and
>> they just compile one generic board.
>>
>> IMHO if this approach works on microblaze that this approach should work on
>> ppc440 too.
>>
>> You can look at ml401 and xupv2p config file. There is big overlap just because
>> one board hasn't flash memory but in ml401 is handled both. I have improved
>> configs in my repo which I used with some others feature and they are not in
>> U-BOOT mainline because of time.
>>
>> Thanks for your comments,
>> Michal
>>
>>
>>> 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
>>> =====================================================================
>>>
> 
> 
> 

^ permalink raw reply	[flat|nested] 16+ messages in thread

* [U-Boot] [PATCH] Remove gap fill in srec object
  2008-08-22 16:35 [U-Boot] [PATCH] Remove gap fill in srec object Ricardo Ribalda Delgado
  2008-08-22 16:35 ` [U-Boot] [PATCH] ppc440: ml507: Add .gitignore Ricardo Ribalda Delgado
@ 2008-09-06 20:21 ` Wolfgang Denk
  2008-09-07 21:10   ` Ricardo Ribalda Delgado
  1 sibling, 1 reply; 16+ messages in thread
From: Wolfgang Denk @ 2008-09-06 20:21 UTC (permalink / raw)
  To: u-boot

Dear Ricardo Ribalda Delgado,

In message <1219422944-17293-1-git-send-email-ricardo.ribalda@uam.es> you wrote:
> Srec files do need gap fill: The load address is specified in the file.

I guess you mean "do *not* need gap fill" ?

> On ppc, a common object consist on u-boot on the begining of the memory
> and a jump and tlb setup on the last part of the memory (0xfffffffe).

This is not correct. The U-Boot image does not occupy any low  memory
- low memory is reserved for RAM, while the U-Boot image is stored in
ROM.  ROM  is typically mapped in high memory, often close to the end
of the physical address space.

> If the gap is included, u-boot can produce a 4 Gigabyte object!, with no
> more info that the srec.

Incorrect again. The U-Boot image never exceeds the physical size of
the ROM. Typically the U-Boot image size is well below 256 KiB, with
few systems (which include graphics support and other complex stuff)
going up to 512 KiB.

> On the other hand, it cant be avoided in the .bin object. It has no
> information about memory location.
> 
> Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@uam.es>

I think your patch makes sense and could be applied, but the commit
message is too incorrect. Please fix this and resubmit.

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
Those who hate and fight must stop themselves -- otherwise it is  not
stopped.
	-- Spock, "Day of the Dove", stardate unknown

^ permalink raw reply	[flat|nested] 16+ messages in thread

* [U-Boot] [PATCH] Remove gap fill in srec object
  2008-09-06 20:21 ` [U-Boot] [PATCH] Remove gap fill in srec object Wolfgang Denk
@ 2008-09-07 21:10   ` Ricardo Ribalda Delgado
  0 siblings, 0 replies; 16+ messages in thread
From: Ricardo Ribalda Delgado @ 2008-09-07 21:10 UTC (permalink / raw)
  To: u-boot

Hello Wolfgang

>> Srec files do need gap fill: The load address is specified in the file.
>
> I guess you mean "do *not* need gap fill" ?
You are completely right.

>
>> On ppc, a common object consist on u-boot on the begining of the memory
>> and a jump and tlb setup on the last part of the memory (0xfffffffe).
>
> This is not correct. The U-Boot image does not occupy any low  memory
> - low memory is reserved for RAM, while the U-Boot image is stored in
> ROM.  ROM  is typically mapped in high memory, often close to the end
> of the physical address space.
>
This is not true 100%. I have a design with this memory map:

0-128 MB -> RAM

128-192 MB-> ROM

Last 32 KB BRAM (initialized ram)

It is not a typical design, but it is possible. In this case u-boot
will be located in the last bram and in the rom, with gap fill U-biit
srec will be huge.
Again: It is not a typical design!

> I think your patch makes sense and could be applied, but the commit
> message is too incorrect. Please fix this and resubmit.

OK, I think it have no sense to discuss the commit message. New patch
is in your inbox


                 Best regards

>
> Best regards,
>
> Wolfgang Denk
>
> --
> DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
> HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
> Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
> Those who hate and fight must stop themselves -- otherwise it is  not
> stopped.
>        -- Spock, "Day of the Dove", stardate unknown
>



-- 
Ricardo Ribalda
http://www.eps.uam.es/~rribalda/

^ permalink raw reply	[flat|nested] 16+ messages in thread

* [U-Boot] [PATCH] ppc440: ml507: Add .gitignore
  2008-08-22 16:35 ` [U-Boot] [PATCH] ppc440: ml507: Add .gitignore Ricardo Ribalda Delgado
  2008-08-22 16:35   ` [U-Boot] [PATCH] ppc440: New board: Avnet Virtex5 FXT Evaluation Ricardo Ribalda Delgado
@ 2008-09-08 12:56   ` Stefan Roese
  2008-09-08 13:10     ` Ricardo Ribalda Delgado
  1 sibling, 1 reply; 16+ messages in thread
From: Stefan Roese @ 2008-09-08 12:56 UTC (permalink / raw)
  To: u-boot

On Friday 22 August 2008, Ricardo Ribalda Delgado wrote:
> Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@uam.es>

Does not apply anymore. Please rebase against current u-boot-ppc4xx repository 
and resubmit.

Thanks.

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
=====================================================================

^ permalink raw reply	[flat|nested] 16+ messages in thread

* [U-Boot] [PATCH] ppc440: ml507: Add .gitignore
  2008-09-08 12:56   ` [U-Boot] [PATCH] ppc440: ml507: Add .gitignore Stefan Roese
@ 2008-09-08 13:10     ` Ricardo Ribalda Delgado
  0 siblings, 0 replies; 16+ messages in thread
From: Ricardo Ribalda Delgado @ 2008-09-08 13:10 UTC (permalink / raw)
  To: u-boot

Hello Stefan

You can forget about this patch.

With the commit e07f4a8033b6270b8103049adb6456f660ff4a89 it is not again needed


     Best regards

On Mon, Sep 8, 2008 at 08:56, Stefan Roese <sr@denx.de> wrote:
> On Friday 22 August 2008, Ricardo Ribalda Delgado wrote:
>> Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@uam.es>
>
> Does not apply anymore. Please rebase against current u-boot-ppc4xx repository
> and resubmit.
>
> Thanks.
>
> 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
> =====================================================================
>



-- 
Ricardo Ribalda
http://www.eps.uam.es/~rribalda/

^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2008-09-08 13:10 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-08-22 16:35 [U-Boot] [PATCH] Remove gap fill in srec object Ricardo Ribalda Delgado
2008-08-22 16:35 ` [U-Boot] [PATCH] ppc440: ml507: Add .gitignore Ricardo Ribalda Delgado
2008-08-22 16:35   ` [U-Boot] [PATCH] ppc440: New board: Avnet Virtex5 FXT Evaluation Ricardo Ribalda Delgado
2008-08-23 19:05     ` Michal Simek
2008-08-24  0:42       ` Ricardo Ribalda Delgado
2008-08-24  9:49         ` Michal Simek
2008-08-25  8:09           ` Stefan Roese
2008-08-25  9:33             ` Michal Simek
2008-08-25 12:28               ` Ricardo Ribalda Delgado
2008-08-25 12:35                 ` Ricardo Ribalda Delgado
2008-08-25 13:36                   ` Michal Simek
2008-08-25 13:37                 ` Michal Simek
2008-09-08 12:56   ` [U-Boot] [PATCH] ppc440: ml507: Add .gitignore Stefan Roese
2008-09-08 13:10     ` Ricardo Ribalda Delgado
2008-09-06 20:21 ` [U-Boot] [PATCH] Remove gap fill in srec object Wolfgang Denk
2008-09-07 21:10   ` Ricardo Ribalda Delgado

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox