public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [U-Boot] [PATCH] Olimex SAM9-L9260 board support
@ 2008-10-06 18:03 Cristian Birsan
  2008-10-06 18:43 ` Wolfgang Denk
  2008-10-31  7:05 ` Jean-Christophe PLAGNIOL-VILLARD
  0 siblings, 2 replies; 18+ messages in thread
From: Cristian Birsan @ 2008-10-06 18:03 UTC (permalink / raw)
  To: u-boot

Added support for the Olimex SAM9-L9260 development board.
This patch is based on u-boot v1.3.4.

Tested with data flash only (not with NAND).

Signed-off-by: Cristian Birsan <cristian.birsan@gmail.com>
---
  MAKEALL                            |    1 +
  Makefile                           |   21 ++--
  board/olimex/sam9l9260/Makefile    |   59 ++++++++
  board/olimex/sam9l9260/config.mk   |    1 +
  board/olimex/sam9l9260/led.c       |   64 +++++++++
  board/olimex/sam9l9260/nand.c      |   78 +++++++++++
  board/olimex/sam9l9260/partition.c |   39 ++++++
  board/olimex/sam9l9260/sam9l9260.c |  264 ++++++++++++++++++++++++++++++++++++
  drivers/mtd/nand/nand_ids.c        |    2 +
  include/configs/sam9l9260.h        |  212 +++++++++++++++++++++++++++++
  10 files changed, 732 insertions(+), 9 deletions(-)
  create mode 100644 board/olimex/sam9l9260/Makefile
  create mode 100644 board/olimex/sam9l9260/config.mk
  create mode 100644 board/olimex/sam9l9260/led.c
  create mode 100644 board/olimex/sam9l9260/nand.c
  create mode 100644 board/olimex/sam9l9260/partition.c
  create mode 100644 board/olimex/sam9l9260/sam9l9260.c
  create mode 100644 include/configs/sam9l9260.h

diff --git a/MAKEALL b/MAKEALL
index 9ccb9ac..0e2cb36 100755
--- a/MAKEALL
+++ b/MAKEALL
@@ -542,6 +542,7 @@ LIST_at91="		\
  	kb9202		\
  	mp2usb		\
  	m501sk		\
+	sam9l9260	\
  "

  #########################################################################
diff --git a/Makefile b/Makefile
index 7c13ce8..5b0acae 100644
--- a/Makefile
+++ b/Makefile
@@ -2487,15 +2487,6 @@ shannon_config	:	unconfig
  at91rm9200dk_config	:	unconfig
  	@$(MKCONFIG) $(@:_config=) arm arm920t at91rm9200dk atmel at91rm9200

-at91sam9261ek_config	:	unconfig
-	@$(MKCONFIG) $(@:_config=) arm arm926ejs at91sam9261ek atmel at91
-
-at91sam9263ek_config	:	unconfig
-	@$(MKCONFIG) $(@:_config=) arm arm926ejs at91sam9263ek atmel at91
-
-at91sam9rlek_config	:	unconfig
-	@$(MKCONFIG) $(@:_config=) arm arm926ejs at91sam9rlek atmel at91
-
  cmc_pu2_config	:	unconfig
  	@$(MKCONFIG) $(@:_config=) arm arm920t cmc_pu2 NULL at91rm9200

@@ -2521,6 +2512,18 @@ at91cap9adk_config	:	unconfig
  at91sam9260ek_config	:	unconfig
  	@$(MKCONFIG) $(@:_config=) arm arm926ejs at91sam9260ek atmel at91

+at91sam9261ek_config	:	unconfig
+	@$(MKCONFIG) $(@:_config=) arm arm926ejs at91sam9261ek atmel at91
+
+at91sam9263ek_config	:	unconfig
+	@$(MKCONFIG) $(@:_config=) arm arm926ejs at91sam9263ek atmel at91
+
+at91sam9rlek_config	:	unconfig
+	@$(MKCONFIG) $(@:_config=) arm arm926ejs at91sam9rlek atmel at91
+
+sam9l9260_config	:	unconfig
+	@$(MKCONFIG) $(@:_config=) arm arm926ejs sam9l9260 olimex at91
+
  ########################################################################
  ## ARM Integrator boards - see doc/README-integrator for more info.
  integratorap_config	\
diff --git a/board/olimex/sam9l9260/Makefile b/board/olimex/sam9l9260/Makefile
new file mode 100644
index 0000000..8853b7c
--- /dev/null
+++ b/board/olimex/sam9l9260/Makefile
@@ -0,0 +1,59 @@
+#
+# (C) Copyright 2003-2008
+# Wolfgang Denk, DENX Software Engineering, wd at denx.de.
+#
+# (C) Copyright 2008
+#
+# Cristian Birsan <cristian.birsan@gmail.com> based on the work of
+# Stelian Pop <stelian.pop@leadtechdesign.com>
+# Lead Tech Design <www.leadtechdesign.com>
+#
+# See file CREDITS for list of people who contributed to this
+# project.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation; either version 2 of
+# the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+# MA 02111-1307 USA
+#
+
+include $(TOPDIR)/config.mk
+
+LIB	= $(obj)lib$(BOARD).a
+
+COBJS-y	+= sam9l9260.o
+COBJS-y	+= led.o
+COBJS-y	+= partition.o
+COBJS-$(CONFIG_CMD_NAND) += nand.o
+
+SRCS	:= $(SOBJS:.o=.S) $(COBJS-y:.o=.c)
+OBJS	:= $(addprefix $(obj),$(COBJS-y))
+SOBJS	:= $(addprefix $(obj),$(SOBJS))
+
+$(LIB):	$(obj).depend $(OBJS) $(SOBJS)
+	$(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+
+clean:
+	rm -f $(SOBJS) $(OBJS)
+
+distclean:	clean
+	rm -f $(LIB) core *.bak $(obj).depend
+
+#########################################################################
+
+# defines $(obj).depend target
+include $(SRCTREE)/rules.mk
+
+sinclude $(obj).depend
+
+#########################################################################
diff --git a/board/olimex/sam9l9260/config.mk b/board/olimex/sam9l9260/config.mk
new file mode 100644
index 0000000..ff2cfd1
--- /dev/null
+++ b/board/olimex/sam9l9260/config.mk
@@ -0,0 +1 @@
+TEXT_BASE = 0x23f00000
diff --git a/board/olimex/sam9l9260/led.c b/board/olimex/sam9l9260/led.c
new file mode 100644
index 0000000..ddc375f
--- /dev/null
+++ b/board/olimex/sam9l9260/led.c
@@ -0,0 +1,64 @@
+/*
+ * (C) Copyright 2007-2008
+ * Stelian Pop <stelian.pop@leadtechdesign.com>
+ * Lead Tech Design <www.leadtechdesign.com>
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+#include <common.h>
+#include <asm/arch/at91sam9260.h>
+#include <asm/arch/at91_pmc.h>
+#include <asm/arch/gpio.h>
+#include <asm/arch/io.h>
+
+#define	RED_LED		AT91_PIN_PA9	/* this is the power led */
+#define	GREEN_LED	AT91_PIN_PA6	/* this is the user led */
+
+void red_LED_on(void)
+{
+	at91_set_gpio_value(RED_LED, 1);
+}
+
+void red_LED_off(void)
+{
+	at91_set_gpio_value(RED_LED, 0);
+}
+
+void green_LED_on(void)
+{
+	at91_set_gpio_value(GREEN_LED, 0);
+}
+
+void green_LED_off(void)
+{
+	at91_set_gpio_value(GREEN_LED, 1);
+}
+
+void coloured_LED_init(void)
+{
+	/* Enable clock */
+	at91_sys_write(AT91_PMC_PCER, 1 << AT91SAM9260_ID_PIOA);
+
+	at91_set_gpio_output(RED_LED, 1);
+	at91_set_gpio_output(GREEN_LED, 1);
+
+	at91_set_gpio_value(RED_LED, 0);
+	at91_set_gpio_value(GREEN_LED, 1);
+}
diff --git a/board/olimex/sam9l9260/nand.c b/board/olimex/sam9l9260/nand.c
new file mode 100644
index 0000000..3d158e7
--- /dev/null
+++ b/board/olimex/sam9l9260/nand.c
@@ -0,0 +1,78 @@
+/*
+ * (C) Copyright 2007-2008
+ * Stelian Pop <stelian.pop@leadtechdesign.com>
+ * Lead Tech Design <www.leadtechdesign.com>
+ *
+ * (C) Copyright 2006 ATMEL Rousset, Lacressonniere Nicolas
+ *
+ * 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 <common.h>
+#include <asm/arch/at91sam9260.h>
+#include <asm/arch/gpio.h>
+#include <asm/arch/at91_pio.h>
+
+#include <nand.h>
+
+/*
+ *	hardware specific access to control-lines
+ */
+#define	MASK_ALE	(1 << 21)	/* our ALE is AD21 */
+#define	MASK_CLE	(1 << 22)	/* our CLE is AD22 */
+
+static void sam9l9260_nand_hwcontrol(struct mtd_info *mtd,
+					 int cmd, unsigned int ctrl)
+{
+	struct nand_chip *this = mtd->priv;
+
+	if (ctrl & NAND_CTRL_CHANGE) {
+		ulong IO_ADDR_W = (ulong) this->IO_ADDR_W;
+		IO_ADDR_W &= ~(MASK_ALE | MASK_CLE);
+
+		if (ctrl & NAND_CLE)
+			IO_ADDR_W |= MASK_CLE;
+		if (ctrl & NAND_ALE)
+			IO_ADDR_W |= MASK_ALE;
+
+		at91_set_gpio_value(AT91_PIN_PC14, !(ctrl & NAND_NCE));
+		this->IO_ADDR_W = (void *) IO_ADDR_W;
+	}
+
+	if (cmd != NAND_CMD_NONE)
+		writeb(cmd, this->IO_ADDR_W);
+}
+
+static int sam9l9260_nand_ready(struct mtd_info *mtd)
+{
+	return at91_get_gpio_value(AT91_PIN_PC13);
+}
+
+int board_nand_init(struct nand_chip *nand)
+{
+	nand->ecc.mode = NAND_ECC_SOFT;
+#ifdef CFG_NAND_DBW_16
+	nand->options = NAND_BUSWIDTH_16;
+#endif
+	nand->cmd_ctrl = sam9l9260_nand_hwcontrol;
+	nand->dev_ready = sam9l9260_nand_ready;
+	nand->chip_delay = 20;
+
+	return 0;
+}
diff --git a/board/olimex/sam9l9260/partition.c b/board/olimex/sam9l9260/partition.c
new file mode 100644
index 0000000..b29c29a
--- /dev/null
+++ b/board/olimex/sam9l9260/partition.c
@@ -0,0 +1,39 @@
+/*
+ * (C) Copyright 2008
+ * Ulf Samuelsson <ulf@atmel.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, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ */
+#include <common.h>
+#include <config.h>
+#include <asm/hardware.h>
+#include <dataflash.h>
+
+AT91S_DATAFLASH_INFO dataflash_info[CFG_MAX_DATAFLASH_BANKS];
+
+struct dataflash_addr cs[CFG_MAX_DATAFLASH_BANKS] = {
+	{CFG_DATAFLASH_LOGIC_ADDR_CS0, 0},	/* Logical adress, CS */
+	{CFG_DATAFLASH_LOGIC_ADDR_CS1, 1}
+};
+
+/*define the area offsets*/
+dataflash_protect_t area_list[NB_DATAFLASH_AREA] = {
+	{0x00000000, 0x000041FF, FLAG_PROTECT_SET,   0, "Bootstrap"},
+	{0x00004200, 0x000083FF, FLAG_PROTECT_CLEAR, 0, "Environment"},
+	{0x00008400, 0x00041FFF, FLAG_PROTECT_SET,   0, "U-Boot"},
+	{0x00042000, 0x0020FFFF, FLAG_PROTECT_CLEAR, 0,	"Kernel"},
+};
diff --git a/board/olimex/sam9l9260/sam9l9260.c b/board/olimex/sam9l9260/sam9l9260.c
new file mode 100644
index 0000000..15578d1
--- /dev/null
+++ b/board/olimex/sam9l9260/sam9l9260.c
@@ -0,0 +1,264 @@
+/*
+ * (C) Copyright 2007-2008
+ *
+ * Cristian Birsan <cristian.birsan@gmail.com> based on the work of
+ * Stelian Pop <stelian.pop@leadtechdesign.com>
+ * Lead Tech Design <www.leadtechdesign.com>
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+#include <common.h>
+#include <asm/arch/at91sam9260.h>
+#include <asm/arch/at91sam9260_matrix.h>
+#include <asm/arch/at91sam9_smc.h>
+#include <asm/arch/at91_pmc.h>
+#include <asm/arch/at91_rstc.h>
+#include <asm/arch/gpio.h>
+#include <asm/arch/io.h>
+#include <asm/arch/hardware.h>
+#if defined(CONFIG_RESET_PHY_R) && defined(CONFIG_MACB)
+#include <net.h>
+#endif
+#include <netdev.h>
+
+DECLARE_GLOBAL_DATA_PTR;
+
+/* ------------------------------------------------------------------------- */
+/*
+ * Miscelaneous platform dependent initialisations
+ */
+
+static void sam9l9260_serial_hw_init(void)
+{
+#ifdef CONFIG_USART0
+	at91_set_A_periph(AT91_PIN_PB4, 1);		/* TXD0 */
+	at91_set_A_periph(AT91_PIN_PB5, 0);		/* RXD0 */
+	at91_sys_write(AT91_PMC_PCER, 1 << AT91_ID_US0);
+#endif
+
+#ifdef CONFIG_USART1
+	at91_set_A_periph(AT91_PIN_PB6, 1);		/* TXD1 */
+	at91_set_A_periph(AT91_PIN_PB7, 0);		/* RXD1 */
+	at91_sys_write(AT91_PMC_PCER, 1 << AT91_ID_US1);
+#endif
+
+#ifdef CONFIG_USART2
+	at91_set_A_periph(AT91_PIN_PB8, 1);		/* TXD2 */
+	at91_set_A_periph(AT91_PIN_PB9, 0);		/* RXD2 */
+	at91_sys_write(AT91_PMC_PCER, 1 << AT91_ID_US2);
+#endif
+
+#ifdef CONFIG_USART3	/* DBGU */
+	at91_set_A_periph(AT91_PIN_PB14, 0);		/* DRXD */
+	at91_set_A_periph(AT91_PIN_PB15, 1);		/* DTXD */
+	at91_sys_write(AT91_PMC_PCER, 1 << AT91_ID_SYS);
+#endif
+}
+
+#ifdef CONFIG_CMD_NAND
+static void sam9l9260_nand_hw_init(void)
+{
+	unsigned long csa;
+
+	/* Enable CS3 */
+	csa = at91_sys_read(AT91_MATRIX_EBICSA);
+	at91_sys_write(AT91_MATRIX_EBICSA,
+		       csa | AT91_MATRIX_CS3A_SMC_SMARTMEDIA);
+
+	/* Configure SMC CS3 for NAND/SmartMedia */
+	at91_sys_write(AT91_SMC_SETUP(3),
+		       AT91_SMC_NWESETUP_(1) | AT91_SMC_NCS_WRSETUP_(0) |
+		       AT91_SMC_NRDSETUP_(1) | AT91_SMC_NCS_RDSETUP_(0));
+	at91_sys_write(AT91_SMC_PULSE(3),
+		       AT91_SMC_NWEPULSE_(3) | AT91_SMC_NCS_WRPULSE_(3) |
+		       AT91_SMC_NRDPULSE_(3) | AT91_SMC_NCS_RDPULSE_(3));
+	at91_sys_write(AT91_SMC_CYCLE(3),
+		       AT91_SMC_NWECYCLE_(5) | AT91_SMC_NRDCYCLE_(5));
+	at91_sys_write(AT91_SMC_MODE(3),
+		       AT91_SMC_READMODE | AT91_SMC_WRITEMODE |
+		       AT91_SMC_EXNWMODE_DISABLE |
+#ifdef CFG_NAND_DBW_16
+		       AT91_SMC_DBW_16 |
+#else /* CFG_NAND_DBW_8 */
+		       AT91_SMC_DBW_8 |
+#endif
+		       AT91_SMC_TDF_(2));
+
+	at91_sys_write(AT91_PMC_PCER, 1 << AT91SAM9260_ID_PIOC);
+
+	/* Configure RDY/BSY */
+	at91_set_gpio_input(AT91_PIN_PC13, 1);
+
+	/* Enable NandFlash */
+	at91_set_gpio_output(AT91_PIN_PC14, 1);
+}
+#endif
+
+#ifdef CONFIG_HAS_DATAFLASH
+static void sam9l9260_spi_hw_init(void)
+{
+	at91_set_A_periph(AT91_PIN_PA3, 0);	/* SPI0_NPCS0 */
+	at91_set_B_periph(AT91_PIN_PC11, 0);	/* SPI0_NPCS1 */
+
+	at91_set_A_periph(AT91_PIN_PA0, 0);	/* SPI0_MISO */
+	at91_set_A_periph(AT91_PIN_PA1, 0);	/* SPI0_MOSI */
+	at91_set_A_periph(AT91_PIN_PA2, 0);	/* SPI0_SPCK */
+
+	/* Enable clock */
+	at91_sys_write(AT91_PMC_PCER, 1 << AT91SAM9260_ID_SPI0);
+}
+#endif
+
+#ifdef CONFIG_MACB
+static void sam9l9260_macb_hw_init(void)
+{
+	/* Enable clock */
+	at91_sys_write(AT91_PMC_PCER, 1 << AT91SAM9260_ID_EMAC);
+
+	/*
+	 * Disable pull-up on:
+	 *	RXDV (PA17) => PHY normal mode (not Test mode)
+	 *	ERX0 (PA14) => PHY ADDR0
+	 *	ERX1 (PA15) => PHY ADDR1
+	 *	ERX2 (PA25) => PHY ADDR2
+	 *	ERX3 (PA26) => PHY ADDR3
+	 *	ECRS (PA28) => PHY ADDR4  => PHYADDR = 0x0
+	 *
+	 * PHY has internal pull-down
+	 */
+	writel(pin_to_mask(AT91_PIN_PA14) |
+	       pin_to_mask(AT91_PIN_PA15) |
+	       pin_to_mask(AT91_PIN_PA17) |
+	       pin_to_mask(AT91_PIN_PA25) |
+	       pin_to_mask(AT91_PIN_PA26) |
+	       pin_to_mask(AT91_PIN_PA28),
+	       pin_to_controller(AT91_PIN_PA0) + PIO_PUDR);
+
+	/* Need to reset PHY -> 500ms reset */
+	at91_sys_write(AT91_RSTC_MR, AT91_RSTC_KEY |
+				     (AT91_RSTC_ERSTL & (0x0D << 8)) |
+				     AT91_RSTC_URSTEN);
+
+	at91_sys_write(AT91_RSTC_CR, AT91_RSTC_KEY | AT91_RSTC_EXTRST);
+
+	/* Wait for end hardware reset */
+	while (!(at91_sys_read(AT91_RSTC_SR) & AT91_RSTC_NRSTL));
+
+	/* Restore NRST value */
+	at91_sys_write(AT91_RSTC_MR, AT91_RSTC_KEY |
+				     (AT91_RSTC_ERSTL & (0x0 << 8)) |
+				     AT91_RSTC_URSTEN);
+
+	/* Re-enable pull-up */
+	writel(pin_to_mask(AT91_PIN_PA14) |
+	       pin_to_mask(AT91_PIN_PA15) |
+	       pin_to_mask(AT91_PIN_PA17) |
+	       pin_to_mask(AT91_PIN_PA25) |
+	       pin_to_mask(AT91_PIN_PA26) |
+	       pin_to_mask(AT91_PIN_PA28),
+	       pin_to_controller(AT91_PIN_PA0) + PIO_PUER);
+
+	at91_set_A_periph(AT91_PIN_PA19, 0);	/* ETXCK_EREFCK */
+	at91_set_A_periph(AT91_PIN_PA17, 0);	/* ERXDV */
+	at91_set_A_periph(AT91_PIN_PA14, 0);	/* ERX0 */
+	at91_set_A_periph(AT91_PIN_PA15, 0);	/* ERX1 */
+	at91_set_A_periph(AT91_PIN_PA18, 0);	/* ERXER */
+	at91_set_A_periph(AT91_PIN_PA16, 0);	/* ETXEN */
+	at91_set_A_periph(AT91_PIN_PA12, 0);	/* ETX0 */
+	at91_set_A_periph(AT91_PIN_PA13, 0);	/* ETX1 */
+	at91_set_A_periph(AT91_PIN_PA21, 0);	/* EMDIO */
+	at91_set_A_periph(AT91_PIN_PA20, 0);	/* EMDC */
+
+#ifndef CONFIG_RMII
+	at91_set_B_periph(AT91_PIN_PA28, 0);	/* ECRS */
+	at91_set_B_periph(AT91_PIN_PA29, 0);	/* ECOL */
+	at91_set_B_periph(AT91_PIN_PA25, 0);	/* ERX2 */
+	at91_set_B_periph(AT91_PIN_PA26, 0);	/* ERX3 */
+	at91_set_B_periph(AT91_PIN_PA27, 0);	/* ERXCK */
+#if defined(CONFIG_SAM9L9260)
+	/*
+	 * use PA10, PA11 for ETX2, ETX3.
+	 * PA23 and PA24 are for TWI EEPROM
+	 */
+	at91_set_B_periph(AT91_PIN_PA10, 0);	/* ETX2 */
+	at91_set_B_periph(AT91_PIN_PA11, 0);	/* ETX3 */
+#else
+	at91_set_B_periph(AT91_PIN_PA23, 0);	/* ETX2 */
+	at91_set_B_periph(AT91_PIN_PA24, 0);	/* ETX3 */
+#endif
+	at91_set_B_periph(AT91_PIN_PA22, 0);	/* ETXER */
+#endif
+
+}
+#endif
+
+int board_init(void)
+{
+	/* Enable Ctrlc */
+	console_init_f();
+
+	/* arch number of SAM9-L9260-Board */
+	gd->bd->bi_arch_number = MACH_TYPE_SAM9_L9260;
+	/* adress of boot parameters */
+	gd->bd->bi_boot_params = PHYS_SDRAM + 0x100;
+
+	sam9l9260_serial_hw_init();
+#ifdef CONFIG_CMD_NAND
+	sam9l9260_nand_hw_init();
+#endif
+#ifdef CONFIG_HAS_DATAFLASH
+	sam9l9260_spi_hw_init();
+#endif
+#ifdef CONFIG_MACB
+	sam9l9260_macb_hw_init();
+#endif
+
+	return 0;
+}
+
+int dram_init(void)
+{
+	gd->bd->bi_dram[0].start = PHYS_SDRAM;
+	gd->bd->bi_dram[0].size = PHYS_SDRAM_SIZE;
+	return 0;
+}
+
+#ifdef CONFIG_RESET_PHY_R
+void reset_phy(void)
+{
+#ifdef CONFIG_MACB
+	/*
+	 * Initialize ethernet HW addr prior to starting Linux,
+	 * needed for nfsroot
+	 */
+	eth_init(gd->bd);
+#endif
+}
+#endif
+
+int board_eth_init(bd_t *bis)
+{
+	int rc = 0;
+#ifdef CONFIG_MACB
+	/* The default address for the KS8721BL PHY is 0x01 */
+	rc = macb_eth_initialize(0, (void *)AT91_BASE_EMAC, 0x01);
+#endif
+	return rc;
+}
diff --git a/drivers/mtd/nand/nand_ids.c b/drivers/mtd/nand/nand_ids.c
index 2ff75c9..ec2ac55 100644
--- a/drivers/mtd/nand/nand_ids.c
+++ b/drivers/mtd/nand/nand_ids.c
@@ -69,6 +69,8 @@ struct nand_flash_dev nand_flash_ids[] = {

  	{"NAND 256MiB 3,3V 8-bit",	0x71, 512, 256, 0x4000, 0},

+	{"NAND 512MiB 3,3V 8-bit",      0xDC, 512, 512, 0x4000, 0},
+
  	/*
  	 * These are the new chips with large page size. The pagesize and the
  	 * erasesize is determined from the extended id bytes
diff --git a/include/configs/sam9l9260.h b/include/configs/sam9l9260.h
new file mode 100644
index 0000000..90089b0
--- /dev/null
+++ b/include/configs/sam9l9260.h
@@ -0,0 +1,212 @@
+/*
+ * (C) Copyright 2007-2008
+ *
+ * Cristian Birsan <cristian.birsan@gmail.com> based on the work of
+ * Stelian Pop <stelian.pop@leadtechdesign.com>
+ * Lead Tech Design <www.leadtechdesign.com>
+ *
+ * Configuration settings for the SAM9-L9260 board.
+ *
+ * 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
+ */
+
+#ifndef __CONFIG_H
+#define __CONFIG_H
+
+/* Hostname */
+#define	CONFIG_HOSTNAME			sam9l9260
+
+/* ARM asynchronous clock */
+#define AT91_MAIN_CLOCK		198656000	/* from 18.432 MHz crystal */
+#define AT91_MASTER_CLOCK	99328000	/* peripheral = main / 2 */
+#define CFG_HZ			1000000		/* 1us resolution */
+
+#define AT91_SLOW_CLOCK		32768	/* slow clock */
+
+#define CONFIG_ARM926EJS	1	/* This is an ARM926EJS Core	*/
+#define CONFIG_AT91SAM9260	1	/* It's an Atmel AT91SAM9260 SoC*/
+#define CONFIG_SAM9L9260	1	/* on an SAM9-L9260 Board	*/
+#undef  CONFIG_USE_IRQ			/* we don't need IRQ/FIQ stuff	*/
+
+#define CONFIG_CMDLINE_TAG	1	/* enable passing of ATAGs	*/
+#define CONFIG_SETUP_MEMORY_TAGS 1
+#define CONFIG_INITRD_TAG	1
+
+#define CONFIG_SKIP_LOWLEVEL_INIT
+#define CONFIG_SKIP_RELOCATE_UBOOT
+
+/*
+ * Hardware drivers
+ */
+#define CONFIG_ATMEL_USART	1
+#undef  CONFIG_USART0
+#undef  CONFIG_USART1
+#undef  CONFIG_USART2
+#define CONFIG_USART3		1	/* USART 3 is DBGU */
+
+#define CONFIG_BOOTDELAY	3
+
+/*
+ * BOOTP options
+ */
+#define CONFIG_BOOTP_BOOTFILESIZE	1
+#define CONFIG_BOOTP_BOOTPATH		1
+#define CONFIG_BOOTP_GATEWAY		1
+#define CONFIG_BOOTP_HOSTNAME		1
+
+/*
+ * Command line configuration.
+ */
+#include <config_cmd_default.h>
+#undef CONFIG_CMD_BDI
+#undef CONFIG_CMD_IMI
+#undef CONFIG_CMD_AUTOSCRIPT
+#undef CONFIG_CMD_FPGA
+#undef CONFIG_CMD_LOADS
+#undef CONFIG_CMD_IMLS
+
+#define CONFIG_CMD_PING		1
+#define CONFIG_CMD_DHCP		1
+#define CONFIG_CMD_NAND		1
+#define CONFIG_CMD_USB		1
+
+/* SDRAM */
+#define CONFIG_NR_DRAM_BANKS		1
+#define PHYS_SDRAM			0x20000000
+#define PHYS_SDRAM_SIZE			0x04000000	/* 64 megs */
+
+/* DataFlash */
+#define CONFIG_HAS_DATAFLASH		1
+#define CFG_SPI_WRITE_TOUT		(5*CFG_HZ)
+#define CFG_MAX_DATAFLASH_BANKS		2
+#define CFG_DATAFLASH_LOGIC_ADDR_CS0	0xC0000000	/* CS0 */
+#define CFG_DATAFLASH_LOGIC_ADDR_CS1	0xD0000000	/* CS1 */
+#define AT91_SPI_CLK			15000000
+#define DATAFLASH_TCSS			(0x1a << 16)
+#define DATAFLASH_TCHS			(0x1 << 24)
+
+/* NAND flash */
+#define NAND_MAX_CHIPS			1
+#define CFG_MAX_NAND_DEVICE		1
+#define CFG_NAND_BASE			0x40000000
+#define CFG_NAND_DBW_8			1
+
+/* NOR flash - no real flash on this board */
+#define CFG_NO_FLASH			1
+
+/* Ethernet */
+#define CONFIG_MACB			1
+#undef  CONFIG_RMII			/* 1 */
+#define CONFIG_NET_MULTI		1
+#define CONFIG_NET_RETRY_COUNT		20
+#define CONFIG_RESET_PHY_R		1
+
+/* USB */
+#define CONFIG_USB_OHCI_NEW		1
+#define LITTLEENDIAN			1
+#define CONFIG_DOS_PARTITION		1
+#define CFG_USB_OHCI_CPU_INIT		1
+#define CFG_USB_OHCI_REGS_BASE		0x00500000	/* AT91SAM9260_UHP_BASE */
+#define CFG_USB_OHCI_SLOT_NAME		"at91sam9260"
+#define CFG_USB_OHCI_MAX_ROOT_PORTS	2
+#define CONFIG_USB_STORAGE		1
+
+/* File Systems*/
+#define CONFIG_CMD_FAT			1
+#define CONFIG_CMD_EXT2			1
+#define CONFIG_CMD_REISER		1
+
+#define CFG_LOAD_ADDR			0x22000000	/* load address */
+
+#define CFG_MEMTEST_START		PHYS_SDRAM
+#define CFG_MEMTEST_END			0x23e00000
+
+#undef CFG_USE_DATAFLASH_CS0
+#define CFG_USE_DATAFLASH_CS1		1
+#undef CFG_USE_NANDFLASH
+
+#ifdef CFG_USE_DATAFLASH_CS0
+
+/* bootstrap + u-boot + env + linux in dataflash on CS0 */
+#define CONFIG_ENV_IS_IN_DATAFLASH	1
+#define CFG_MONITOR_BASE	(CFG_DATAFLASH_LOGIC_ADDR_CS0 + 0x8400)
+#define CONFIG_ENV_OFFSET		0x4200
+#define CONFIG_ENV_ADDR		(CFG_DATAFLASH_LOGIC_ADDR_CS0 + CONFIG_ENV_OFFSET)
+#define CONFIG_ENV_SIZE		0x4200
+#define CONFIG_BOOTCOMMAND	"cp.b 0xC0042000 0x22000000 0x210000; bootm"
+#define CONFIG_BOOTARGS		"console=ttyS0,115200 "			\
+				"root=/dev/mtdblock0 "			\
+				"mtdparts=at91_nand:-(root) "		\
+				"rw rootfstype=jffs2"
+
+#elif CFG_USE_DATAFLASH_CS1
+
+/* bootstrap + u-boot + env + linux in dataflash on CS1 */
+#define CONFIG_ENV_IS_IN_DATAFLASH	1
+#define CFG_MONITOR_BASE	(CFG_DATAFLASH_LOGIC_ADDR_CS1 + 0x8400)
+#define CONFIG_ENV_OFFSET		0x4200
+#define CONFIG_ENV_ADDR		(CFG_DATAFLASH_LOGIC_ADDR_CS1 + CONFIG_ENV_OFFSET)
+#define CONFIG_ENV_SIZE		0x4200
+#define CONFIG_BOOTCOMMAND	"cp.b 0xD0042000 0x22000000 0x210000; bootm"
+#define CONFIG_BOOTARGS		"console=ttyS0,115200 "			\
+				"root=/dev/mtdblock0 "			\
+				"mtdparts=at91_nand:-(root) "		\
+				"rw rootfstype=jffs2"
+
+#else /* CFG_USE_NANDFLASH */
+
+/* bootstrap + u-boot + env + linux in nandflash */
+#define CONFIG_ENV_IS_IN_NAND	1
+#define CONFIG_ENV_OFFSET		0x60000
+#define CONFIG_ENV_OFFSET_REDUND	0x80000
+#define CONFIG_ENV_SIZE		0x20000		/* 1 sector = 128 kB */
+#define CONFIG_BOOTCOMMAND	"nand read 0x22000000 0xA0000 0x200000; bootm"
+#define CONFIG_BOOTARGS		"console=ttyS0,115200 "			\
+				"root=/dev/mtdblock5 "			\
+				"mtdparts=at91_nand:128k(bootstrap)ro,"	\
+				"256k(uboot)ro,128k(env1)ro,"		\
+				"128k(env2)ro,2M(linux),-(root) "	\
+				"rw rootfstype=jffs2"
+
+#endif
+
+#define CONFIG_BAUDRATE		115200
+#define CFG_BAUDRATE_TABLE	{115200 , 19200, 38400, 57600, 9600 }
+
+#define CFG_PROMPT		"U-Boot> "
+#define CFG_CBSIZE		256
+#define CFG_MAXARGS		16
+#define CFG_PBSIZE		(CFG_CBSIZE + sizeof(CFG_PROMPT) + 16)
+#define CFG_LONGHELP		1
+#define CONFIG_CMDLINE_EDITING	1
+
+#define ROUND(A, B)		(((A) + (B)) & ~((B) - 1))
+/*
+ * Size of malloc() pool
+ */
+#define CFG_MALLOC_LEN		ROUND(3 * CONFIG_ENV_SIZE + 128*1024, 0x1000)
+#define CFG_GBL_DATA_SIZE	128	/* 128 bytes for initial data */
+
+#define CONFIG_STACKSIZE	(32*1024)	/* regular stack */
+
+#ifdef CONFIG_USE_IRQ
+#error CONFIG_USE_IRQ not supported
+#endif
+
+#endif
-- 
1.5.5.1

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

* [U-Boot] [PATCH] Olimex SAM9-L9260 board support
  2008-10-06 18:03 [U-Boot] [PATCH] Olimex SAM9-L9260 board support Cristian Birsan
@ 2008-10-06 18:43 ` Wolfgang Denk
  2008-10-06 20:33   ` Cristian Birsan
  2008-10-31  7:05 ` Jean-Christophe PLAGNIOL-VILLARD
  1 sibling, 1 reply; 18+ messages in thread
From: Wolfgang Denk @ 2008-10-06 18:43 UTC (permalink / raw)
  To: u-boot

Dear Cristian Birsan,

> +#ifdef CONFIG_RESET_PHY_R
> +void reset_phy(void)
> +{
> +#ifdef CONFIG_MACB
> +	/*
> +	 * Initialize ethernet HW addr prior to starting Linux,
> +	 * needed for nfsroot
> +	 */
> +	eth_init(gd->bd);
> +#endif

Please do NOT  do  this.  It's  a  violation  of  the  U-Boot  design
principles,  which  clearly  say that only such periphereals that are
actually being used by U-Boot shall be initialized, and even if  they
are being used, these shall be deactivated after use.

Carelessly leaving ports or devices in an initialized stated has been
the source for problems too many times before.

Don't do that.

> +#define ROUND(A, B)		(((A) + (B)) & ~((B) - 1))

First I think that this is wrong (maybe you need "B-1" instead of "B"
in the first part?), second we already have DIV_ROUND_UP  defined  in
common.h so please use this.

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
A well-written program is its own heaven; a poorly-written program is
its own hell.             -- Geoffrey James, "The Tao of Programming"

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

* [U-Boot] [PATCH] Olimex SAM9-L9260 board support
  2008-10-06 18:43 ` Wolfgang Denk
@ 2008-10-06 20:33   ` Cristian Birsan
  2008-10-06 20:44     ` Wolfgang Denk
  0 siblings, 1 reply; 18+ messages in thread
From: Cristian Birsan @ 2008-10-06 20:33 UTC (permalink / raw)
  To: u-boot

Dear Wolfgang Denk,

Thank you for your quick response.

 >> +#ifdef CONFIG_RESET_PHY_R
 >> +void reset_phy(void)
 >> +{
 >> +#ifdef CONFIG_MACB
 >> +    /*
 >> +     * Initialize ethernet HW addr prior to starting Linux,
 >> +     * needed for nfsroot
 >> +     */
 >> +    eth_init(gd->bd);
 >> +#endif
 >
 > Please do NOT  do  this.  It's  a  violation  of  the  U-Boot  design
 > principles,  which  clearly  say that only such periphereals that are
 > actually being used by U-Boot shall be initialized, and even if  they
 > are being used, these shall be deactivated after use.
 >
 > Carelessly leaving ports or devices in an initialized stated has been
 > the source for problems too many times before.
 >
 > Don't do that.
 >

The above code section is used also in other ATMEL boards like
at91sam9260ek ( /board/atmel/at91sam9260ek/at91sam9260ek.c ),
at91sam9261ek, at91sam9263ek, at91sam9rlek. This is my
first patch sent to U-Boot and I used that code as reference.

The board that i have (SAM9-L9260 from Olimex ) is close to
AT91SAM9260EK from ATMEL.

How do you think i can do this the right way?

 >> +#define ROUND(A, B)        (((A) + (B)) & ~((B) - 1))
 >
 > First I think that this is wrong (maybe you need "B-1" instead of "B"
 > in the first part?), second we already have DIV_ROUND_UP  defined  in
 > common.h so please use this.

Thanks, good catch. I will fix this and submit a new patch.

Best regards,
Cristian Birsan

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

* [U-Boot] [PATCH] Olimex SAM9-L9260 board support
  2008-10-06 20:33   ` Cristian Birsan
@ 2008-10-06 20:44     ` Wolfgang Denk
  2008-10-07 16:35       ` Cristian Birsan
  0 siblings, 1 reply; 18+ messages in thread
From: Wolfgang Denk @ 2008-10-06 20:44 UTC (permalink / raw)
  To: u-boot

Dear Cristian Birsan,

In message <48EA7615.8090706@gmail.com> you wrote:
> 
>  > Carelessly leaving ports or devices in an initialized stated has been
>  > the source for problems too many times before.
>  >
>  > Don't do that.
> 
> The above code section is used also in other ATMEL boards like
> at91sam9260ek ( /board/atmel/at91sam9260ek/at91sam9260ek.c ),
> at91sam9261ek, at91sam9263ek, at91sam9rlek. This is my
> first patch sent to U-Boot and I used that code as reference.

So this problem escaped the review when that old code was added.

So we can only ask the baord maintainer and the AT91 custodian to take
care of the existing code and clean ipt up ASAP.

But we should not add more copies of that bad example.

> The board that i have (SAM9-L9260 from Olimex ) is close to
> AT91SAM9260EK from ATMEL.
> 
> How do you think i can do this the right way?

Well, the Right Thing (TM) would be to use a device tree to pass such
information to Linux, but that's a long way to go still.

In the mean time, other methods  should  be  used  to  pass  the  MAC
address information to the Linux network driver (I understand this is
all  what  needs  to  be  done, right?). In the simplest case, use an
"ethaddr=..." boot argument. [Make sure to read the ML archive before
you try to bring up this topic on the linux-arm  ML;  this  has  been
discussed in *length* before.]


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
Due to lack of disk space, this fortune database has been discontinued.

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

* [U-Boot] [PATCH] Olimex SAM9-L9260 board support
  2008-10-06 20:44     ` Wolfgang Denk
@ 2008-10-07 16:35       ` Cristian Birsan
  2008-10-07 18:37         ` Wolfgang Denk
  0 siblings, 1 reply; 18+ messages in thread
From: Cristian Birsan @ 2008-10-07 16:35 UTC (permalink / raw)
  To: u-boot

Dear Wolfgang Denk,

Regarding the following:

+#define ROUND(A, B)		(((A) + (B)) & ~((B) - 1))
+/*
+ * Size of malloc() pool
+ */
+#define CFG_MALLOC_LEN		ROUND(3 * CONFIG_ENV_SIZE + 128*1024, 0x1000)

I tried to include the common.h file in my configuration file but this
breaks u-boot compilation (it's
not safe to include common.h standalone) .I noticed that none of other
board configuration files
include common.h

If I replace the ROUND(A,B) macro with #define DIV_ROUND_UP(n,d) (((n)
+ (d) - 1) / (d))
macro when i try to make u-boot I obtain the following errors:

start.S: Assembler messages:
start.S:339: Error: invalid constant (802d) after fixup

It appears to me that the solution for the moment is to use the following fixed
macro:
	define ROUND(A, B)		(((A) + (B) -1) & ~((B) - 1))

Regarding the following:

>> +#ifdef CONFIG_RESET_PHY_R
>> +void reset_phy(void)
>> +{
>> +#ifdef CONFIG_MACB
>> +    /*
>> +     * Initialize ethernet HW addr prior to starting Linux,
>> +     * needed for nfsroot
>> +     */
>> +    eth_init(gd->bd);
>> +#endif
>
> Please do NOT  do  this.  It's  a  violation  of  the  U-Boot  design
> principles,  which  clearly  say that only such periphereals that are
> actually being used by U-Boot shall be initialized, and even if  they
> are being used, these shall be deactivated after use.

I removed the reset_phy() function and I do not use anymore CONFIG_RESET_PHY_R.
I use setenv ethaddr to configure the MAC address of the Ethernet controller.

Is it ok to resend the patch with the above changes ?

Best regards,
Cristian Birsan

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

* [U-Boot] [PATCH] Olimex SAM9-L9260 board support
  2008-10-07 16:35       ` Cristian Birsan
@ 2008-10-07 18:37         ` Wolfgang Denk
  2008-10-07 21:12           ` Cristian Birsan
  2008-10-07 22:05           ` Cristian Birsan
  0 siblings, 2 replies; 18+ messages in thread
From: Wolfgang Denk @ 2008-10-07 18:37 UTC (permalink / raw)
  To: u-boot

Dear Cristian,

In message <597eb9790810070935u7d1713eat496c0288f629c8a3@mail.gmail.com> you wrote:
> 
> I tried to include the common.h file in my configuration file but this
> breaks u-boot compilation (it's
> not safe to include common.h standalone) .I noticed that none of other

What do you mean by "include common.h standalone" ?

> board configuration files
> include common.h

Normally it's not needed, because all files where the board config
file will be used also include common.h.

> If I replace the ROUND(A,B) macro with #define DIV_ROUND_UP(n,d) (((n)
> + (d) - 1) / (d))
> macro when i try to make u-boot I obtain the following errors:
> 
> start.S: Assembler messages:
> start.S:339: Error: invalid constant (802d) after fixup

So what does this source line look like in you version of the code?

802d = 0x802d = 32813 looks wrong to me. PLease check wht the code is
doing there. There might be a (hidden) bug somewhere.

> It appears to me that the solution for the moment is to use the following fixed
> macro:
> 	define ROUND(A, B)		(((A) + (B) -1) & ~((B) - 1))

Nevertheless check what your code in start.S is doing.

> I removed the reset_phy() function and I do not use anymore CONFIG_RESET_PHY_R.
> I use setenv ethaddr to configure the MAC address of the Ethernet controller.
> 
> Is it ok to resend the patch with the above changes ?

I think yes.

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
Be wiser than other people if you can, but do not tell them so.
                                       -- Philip Earl of Chesterfield

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

* [U-Boot] [PATCH] Olimex SAM9-L9260 board support
  2008-10-07 18:37         ` Wolfgang Denk
@ 2008-10-07 21:12           ` Cristian Birsan
  2008-10-07 22:05           ` Cristian Birsan
  1 sibling, 0 replies; 18+ messages in thread
From: Cristian Birsan @ 2008-10-07 21:12 UTC (permalink / raw)
  To: u-boot

Dear Wolfgang Denk,

> In message <597eb9790810070935u7d1713eat496c0288f629c8a3@mail.gmail.com> you wrote:
>> I tried to include the common.h file in my configuration file but this
>> breaks u-boot compilation (it's
>> not safe to include common.h standalone) .I noticed that none of other
> 
> What do you mean by "include common.h standalone" ?

Through include common.h standalone I mean:

#ifndef __CONFIG_H
#define __CONFIG_H

#include <common.h>
...rest of the file...

When I try to compile with the above include I obtain the following errors:

make[1]: Entering directory `/home/cristi/work/u-boot/u-boot-1.3.4/tools'
gcc -g -Wall -idirafter /home/cristi/work/u-boot/u-boot-1.3.4/include -idirafter /home/cristi/work/u-boot/u-boot-1.3.4/include2 -idirafter /home/cristi/work/u-boot/u-boot-1.3.4/include -DTEXT_BASE=0x23f00000 -DUSE_HOSTCC -O -c -o mkimage.o mkimage.c
In file included from /home/cristi/work/u-boot/u-boot-1.3.4/include/common.h:111,
                  from /home/cristi/work/u-boot/u-boot-1.3.4/include/configs/sam9l9260.h:32,
                  from /home/cristi/work/u-boot/u-boot-1.3.4/include/config.h:2,
                  from /home/cristi/work/u-boot/u-boot-1.3.4/include/command.h:30,
                  from /home/cristi/work/u-boot/u-boot-1.3.4/include/image.h:37,
                  from mkimage.c:26:
/home/cristi/work/u-boot/u-boot-1.3.4/include/flash.h:36: error: ?CFG_MAX_FLASH_SECT? undeclared here (not in a function)
In file included from /home/cristi/work/u-boot/u-boot-1.3.4/include/common.h:132,
                  from /home/cristi/work/u-boot/u-boot-1.3.4/include/configs/sam9l9260.h:32,
                  from /home/cristi/work/u-boot/u-boot-1.3.4/include/config.h:2,
                  from /home/cristi/work/u-boot/u-boot-1.3.4/include/command.h:30,
                  from /home/cristi/work/u-boot/u-boot-1.3.4/include/image.h:37,
                  from mkimage.c:26:
/home/cristi/work/u-boot/u-boot-1.3.4/include/asm/u-boot.h:50: error: ?CONFIG_NR_DRAM_BANKS? undeclared here (not in a function)
In file included from /home/cristi/work/u-boot/u-boot-1.3.4/include/configs/sam9l9260.h:32,
                  from /home/cristi/work/u-boot/u-boot-1.3.4/include/config.h:2,
                  from /home/cristi/work/u-boot/u-boot-1.3.4/include/command.h:30,
                  from /home/cristi/work/u-boot/u-boot-1.3.4/include/image.h:37,
                  from mkimage.c:26:
/home/cristi/work/u-boot/u-boot-1.3.4/include/common.h:207: error: expected ?=?, ?,?, ?;?, ?asm? or ?__attribute__? before ?initdram?
/home/cristi/work/u-boot/u-boot-1.3.4/include/common.h:209: error: expected ?)? before ?const?
/home/cristi/work/u-boot/u-boot-1.3.4/include/common.h:246: error: conflicting types for ?getenv?
/usr/include/stdlib.h:545: error: previous declaration of ?getenv? was here
/home/cristi/work/u-boot/u-boot-1.3.4/include/common.h:252: error: conflicting types for ?setenv?
/usr/include/stdlib.h:563: error: previous declaration of ?setenv? was here
/home/cristi/work/u-boot/u-boot-1.3.4/include/common.h:647: error: conflicting types for ?_IO_getc?
/usr/include/libio.h:458: error: previous declaration of ?_IO_getc? was here
In file included from /home/cristi/work/u-boot/u-boot-1.3.4/include/configs/sam9l9260.h:32,
                  from /home/cristi/work/u-boot/u-boot-1.3.4/include/config.h:2,
                  from /home/cristi/work/u-boot/u-boot-1.3.4/include/command.h:30,
                  from /home/cristi/work/u-boot/u-boot-1.3.4/include/image.h:37,
                  from mkimage.c:26:
/home/cristi/work/u-boot/u-boot-1.3.4/include/common.h:651:23: error: macro "putc" requires 2 arguments, but only 1 given
/home/cristi/work/u-boot/u-boot-1.3.4/include/common.h:651: error: ?putc? redeclared as different kind of symbol
/home/cristi/work/u-boot/u-boot-1.3.4/include/common.h:652: error: conflicting types for ?puts?
/home/cristi/work/u-boot/u-boot-1.3.4/include/common.h:653: error: conflicting types for ?printf?
/home/cristi/work/u-boot/u-boot-1.3.4/include/common.h:655: error: conflicting types for ?vprintf?
/home/cristi/work/u-boot/u-boot-1.3.4/include/common.h:671: error: conflicting types for ?fprintf?
/home/cristi/work/u-boot/u-boot-1.3.4/include/common.h:673: error: conflicting types for ?fputs?
/home/cristi/work/u-boot/u-boot-1.3.4/include/common.h:674: error: conflicting types for ?fputc?
/home/cristi/work/u-boot/u-boot-1.3.4/include/common.h:676: error: conflicting types for ?fgetc?
/usr/include/stdio.h:511: error: previous declaration of ?fgetc? was here
mkimage.c:34: error: conflicting types for ?crc32?
/home/cristi/work/u-boot/u-boot-1.3.4/include/common.h:625: error: previous declaration of ?crc32? was here
make[1]: *** [mkimage.o] Error 1
make[1]: Leaving directory `/home/cristi/work/u-boot/u-boot-1.3.4/tools'
make: *** [tools] Error 2

>> If I replace the ROUND(A,B) macro with #define DIV_ROUND_UP(n,d) (((n)
>> + (d) - 1) / (d))
>> macro when i try to make u-boot I obtain the following errors:
>>
>> start.S: Assembler messages:
>> start.S:339: Error: invalid constant (802d) after fixup

The code that generate the above error is

#define ROUND(A, B)		(((A) + (B) -1) / (B))
/*
  * Size of malloc() pool
  */
#define CFG_MALLOC_LEN		ROUND(3 * CONFIG_ENV_SIZE + 128*1024, 0x1000)
#define CFG_GBL_DATA_SIZE	128	/* 128 bytes for initial data */

#define CONFIG_STACKSIZE	(32*1024)	/* regular stack */

The error message is as follows:

make -C cpu/arm926ejs start.o
make[1]: Entering directory `/home/cristi/work/u-boot/u-boot-1.3.4/cpu/arm926ejs'
/opt/arm-2008q1/bin/arm-none-linux-gnueabi-gcc  -D__ASSEMBLY__ -g  -Os   -fno-strict-aliasing  -fno-common -ffixed-r8 -msoft-float  -D__KERNEL__ -DTEXT_BASE=0x23f00000 -I/home/cristi/work/u-boot/u-boot-1.3.4/include -fno-builtin -ffreestanding -nostdinc -isystem /opt/arm-2008q1/bin/../lib/gcc/arm-none-linux-gnueabi/4.2.3/include -pipe  -DCONFIG_ARM -D__ARM__ -march=armv4 -mabi=apcs-gnu -march=armv5te  -c -o start.o start.S
start.S: Assembler messages:
start.S:339: Error: invalid constant (802d) after fixup
start.S:340: Error: invalid constant (802d) after fixup
start.S:345: Error: invalid constant (802d) after fixup
start.S:346: Error: invalid constant (802d) after fixup
start.S:351: Error: invalid constant (802d) after fixup
start.S:352: Error: invalid constant (802d) after fixup
start.S:357: Error: invalid constant (802d) after fixup
start.S:358: Error: invalid constant (802d) after fixup
start.S:363: Error: invalid constant (802d) after fixup
start.S:364: Error: invalid constant (802d) after fixup
start.S:388: Error: invalid constant (802d) after fixup
start.S:389: Error: invalid constant (802d) after fixup
start.S:394: Error: invalid constant (802d) after fixup
start.S:395: Error: invalid constant (802d) after fixup
make[1]: *** [start.o] Error 1
make[1]: Leaving directory `/home/cristi/work/u-boot/u-boot-1.3.4/cpu/arm926ejs'
make: *** [cpu/arm926ejs/start.o] Error 2

The last line in which CFG_MALLOC_LEN is used in start.S is 313. All the errors are after that line and i can't find a reason.
The lines with asm instructions errors doesen't seem to be related to the CFG_MALLOC_LEN. I supose it is something related to preprocessor
	sub	r13, r13, #(CONFIG_STACKSIZE+CFG_MALLOC_LEN)

>>
>> Is it ok to resend the patch with the above changes ?
> 
> I think yes.

Here is my new patch. I changed also bootargs and bootcommand for DataFlash in the board configuration file.

[PATCH] Olimex SAM9-L9260 board support

Added support for the Olimex SAM9-L9260 development board.
This patch is based on u-boot v1.3.4.

Tested with DataFlash only (not with NAND).

Signed-off-by: Cristian Birsan <cristian.birsan@gmail.com>
---
  MAKEALL                            |    1 +
  Makefile                           |   21 ++--
  board/olimex/sam9l9260/Makefile    |   59 +++++++++
  board/olimex/sam9l9260/config.mk   |    1 +
  board/olimex/sam9l9260/led.c       |   64 +++++++++
  board/olimex/sam9l9260/nand.c      |   78 +++++++++++
  board/olimex/sam9l9260/partition.c |   39 ++++++
  board/olimex/sam9l9260/sam9l9260.c |  251 ++++++++++++++++++++++++++++++++++++
  drivers/mtd/nand/nand_ids.c        |    2 +
  include/configs/sam9l9260.h        |  213 ++++++++++++++++++++++++++++++
  10 files changed, 720 insertions(+), 9 deletions(-)
  create mode 100644 board/olimex/sam9l9260/Makefile
  create mode 100644 board/olimex/sam9l9260/config.mk
  create mode 100644 board/olimex/sam9l9260/led.c
  create mode 100644 board/olimex/sam9l9260/nand.c
  create mode 100644 board/olimex/sam9l9260/partition.c
  create mode 100644 board/olimex/sam9l9260/sam9l9260.c
  create mode 100644 include/configs/sam9l9260.h

diff --git a/MAKEALL b/MAKEALL
index 9ccb9ac..0e2cb36 100755
--- a/MAKEALL
+++ b/MAKEALL
@@ -542,6 +542,7 @@ LIST_at91="		\
  	kb9202		\
  	mp2usb		\
  	m501sk		\
+	sam9l9260	\
  "

  #########################################################################
diff --git a/Makefile b/Makefile
index 7c13ce8..5b0acae 100644
--- a/Makefile
+++ b/Makefile
@@ -2487,15 +2487,6 @@ shannon_config	:	unconfig
  at91rm9200dk_config	:	unconfig
  	@$(MKCONFIG) $(@:_config=) arm arm920t at91rm9200dk atmel at91rm9200

-at91sam9261ek_config	:	unconfig
-	@$(MKCONFIG) $(@:_config=) arm arm926ejs at91sam9261ek atmel at91
-
-at91sam9263ek_config	:	unconfig
-	@$(MKCONFIG) $(@:_config=) arm arm926ejs at91sam9263ek atmel at91
-
-at91sam9rlek_config	:	unconfig
-	@$(MKCONFIG) $(@:_config=) arm arm926ejs at91sam9rlek atmel at91
-
  cmc_pu2_config	:	unconfig
  	@$(MKCONFIG) $(@:_config=) arm arm920t cmc_pu2 NULL at91rm9200

@@ -2521,6 +2512,18 @@ at91cap9adk_config	:	unconfig
  at91sam9260ek_config	:	unconfig
  	@$(MKCONFIG) $(@:_config=) arm arm926ejs at91sam9260ek atmel at91

+at91sam9261ek_config	:	unconfig
+	@$(MKCONFIG) $(@:_config=) arm arm926ejs at91sam9261ek atmel at91
+
+at91sam9263ek_config	:	unconfig
+	@$(MKCONFIG) $(@:_config=) arm arm926ejs at91sam9263ek atmel at91
+
+at91sam9rlek_config	:	unconfig
+	@$(MKCONFIG) $(@:_config=) arm arm926ejs at91sam9rlek atmel at91
+
+sam9l9260_config	:	unconfig
+	@$(MKCONFIG) $(@:_config=) arm arm926ejs sam9l9260 olimex at91
+
  ########################################################################
  ## ARM Integrator boards - see doc/README-integrator for more info.
  integratorap_config	\
diff --git a/board/olimex/sam9l9260/Makefile b/board/olimex/sam9l9260/Makefile
new file mode 100644
index 0000000..8853b7c
--- /dev/null
+++ b/board/olimex/sam9l9260/Makefile
@@ -0,0 +1,59 @@
+#
+# (C) Copyright 2003-2008
+# Wolfgang Denk, DENX Software Engineering, wd at denx.de.
+#
+# (C) Copyright 2008
+#
+# Cristian Birsan <cristian.birsan@gmail.com> based on the work of
+# Stelian Pop <stelian.pop@leadtechdesign.com>
+# Lead Tech Design <www.leadtechdesign.com>
+#
+# See file CREDITS for list of people who contributed to this
+# project.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation; either version 2 of
+# the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+# MA 02111-1307 USA
+#
+
+include $(TOPDIR)/config.mk
+
+LIB	= $(obj)lib$(BOARD).a
+
+COBJS-y	+= sam9l9260.o
+COBJS-y	+= led.o
+COBJS-y	+= partition.o
+COBJS-$(CONFIG_CMD_NAND) += nand.o
+
+SRCS	:= $(SOBJS:.o=.S) $(COBJS-y:.o=.c)
+OBJS	:= $(addprefix $(obj),$(COBJS-y))
+SOBJS	:= $(addprefix $(obj),$(SOBJS))
+
+$(LIB):	$(obj).depend $(OBJS) $(SOBJS)
+	$(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+
+clean:
+	rm -f $(SOBJS) $(OBJS)
+
+distclean:	clean
+	rm -f $(LIB) core *.bak $(obj).depend
+
+#########################################################################
+
+# defines $(obj).depend target
+include $(SRCTREE)/rules.mk
+
+sinclude $(obj).depend
+
+#########################################################################
diff --git a/board/olimex/sam9l9260/config.mk b/board/olimex/sam9l9260/config.mk
new file mode 100644
index 0000000..ff2cfd1
--- /dev/null
+++ b/board/olimex/sam9l9260/config.mk
@@ -0,0 +1 @@
+TEXT_BASE = 0x23f00000
diff --git a/board/olimex/sam9l9260/led.c b/board/olimex/sam9l9260/led.c
new file mode 100644
index 0000000..ddc375f
--- /dev/null
+++ b/board/olimex/sam9l9260/led.c
@@ -0,0 +1,64 @@
+/*
+ * (C) Copyright 2007-2008
+ * Stelian Pop <stelian.pop@leadtechdesign.com>
+ * Lead Tech Design <www.leadtechdesign.com>
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+#include <common.h>
+#include <asm/arch/at91sam9260.h>
+#include <asm/arch/at91_pmc.h>
+#include <asm/arch/gpio.h>
+#include <asm/arch/io.h>
+
+#define	RED_LED		AT91_PIN_PA9	/* this is the power led */
+#define	GREEN_LED	AT91_PIN_PA6	/* this is the user led */
+
+void red_LED_on(void)
+{
+	at91_set_gpio_value(RED_LED, 1);
+}
+
+void red_LED_off(void)
+{
+	at91_set_gpio_value(RED_LED, 0);
+}
+
+void green_LED_on(void)
+{
+	at91_set_gpio_value(GREEN_LED, 0);
+}
+
+void green_LED_off(void)
+{
+	at91_set_gpio_value(GREEN_LED, 1);
+}
+
+void coloured_LED_init(void)
+{
+	/* Enable clock */
+	at91_sys_write(AT91_PMC_PCER, 1 << AT91SAM9260_ID_PIOA);
+
+	at91_set_gpio_output(RED_LED, 1);
+	at91_set_gpio_output(GREEN_LED, 1);
+
+	at91_set_gpio_value(RED_LED, 0);
+	at91_set_gpio_value(GREEN_LED, 1);
+}
diff --git a/board/olimex/sam9l9260/nand.c b/board/olimex/sam9l9260/nand.c
new file mode 100644
index 0000000..3d158e7
--- /dev/null
+++ b/board/olimex/sam9l9260/nand.c
@@ -0,0 +1,78 @@
+/*
+ * (C) Copyright 2007-2008
+ * Stelian Pop <stelian.pop@leadtechdesign.com>
+ * Lead Tech Design <www.leadtechdesign.com>
+ *
+ * (C) Copyright 2006 ATMEL Rousset, Lacressonniere Nicolas
+ *
+ * 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 <common.h>
+#include <asm/arch/at91sam9260.h>
+#include <asm/arch/gpio.h>
+#include <asm/arch/at91_pio.h>
+
+#include <nand.h>
+
+/*
+ *	hardware specific access to control-lines
+ */
+#define	MASK_ALE	(1 << 21)	/* our ALE is AD21 */
+#define	MASK_CLE	(1 << 22)	/* our CLE is AD22 */
+
+static void sam9l9260_nand_hwcontrol(struct mtd_info *mtd,
+					 int cmd, unsigned int ctrl)
+{
+	struct nand_chip *this = mtd->priv;
+
+	if (ctrl & NAND_CTRL_CHANGE) {
+		ulong IO_ADDR_W = (ulong) this->IO_ADDR_W;
+		IO_ADDR_W &= ~(MASK_ALE | MASK_CLE);
+
+		if (ctrl & NAND_CLE)
+			IO_ADDR_W |= MASK_CLE;
+		if (ctrl & NAND_ALE)
+			IO_ADDR_W |= MASK_ALE;
+
+		at91_set_gpio_value(AT91_PIN_PC14, !(ctrl & NAND_NCE));
+		this->IO_ADDR_W = (void *) IO_ADDR_W;
+	}
+
+	if (cmd != NAND_CMD_NONE)
+		writeb(cmd, this->IO_ADDR_W);
+}
+
+static int sam9l9260_nand_ready(struct mtd_info *mtd)
+{
+	return at91_get_gpio_value(AT91_PIN_PC13);
+}
+
+int board_nand_init(struct nand_chip *nand)
+{
+	nand->ecc.mode = NAND_ECC_SOFT;
+#ifdef CFG_NAND_DBW_16
+	nand->options = NAND_BUSWIDTH_16;
+#endif
+	nand->cmd_ctrl = sam9l9260_nand_hwcontrol;
+	nand->dev_ready = sam9l9260_nand_ready;
+	nand->chip_delay = 20;
+
+	return 0;
+}
diff --git a/board/olimex/sam9l9260/partition.c b/board/olimex/sam9l9260/partition.c
new file mode 100644
index 0000000..b29c29a
--- /dev/null
+++ b/board/olimex/sam9l9260/partition.c
@@ -0,0 +1,39 @@
+/*
+ * (C) Copyright 2008
+ * Ulf Samuelsson <ulf@atmel.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, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ */
+#include <common.h>
+#include <config.h>
+#include <asm/hardware.h>
+#include <dataflash.h>
+
+AT91S_DATAFLASH_INFO dataflash_info[CFG_MAX_DATAFLASH_BANKS];
+
+struct dataflash_addr cs[CFG_MAX_DATAFLASH_BANKS] = {
+	{CFG_DATAFLASH_LOGIC_ADDR_CS0, 0},	/* Logical adress, CS */
+	{CFG_DATAFLASH_LOGIC_ADDR_CS1, 1}
+};
+
+/*define the area offsets*/
+dataflash_protect_t area_list[NB_DATAFLASH_AREA] = {
+	{0x00000000, 0x000041FF, FLAG_PROTECT_SET,   0, "Bootstrap"},
+	{0x00004200, 0x000083FF, FLAG_PROTECT_CLEAR, 0, "Environment"},
+	{0x00008400, 0x00041FFF, FLAG_PROTECT_SET,   0, "U-Boot"},
+	{0x00042000, 0x0020FFFF, FLAG_PROTECT_CLEAR, 0,	"Kernel"},
+};
diff --git a/board/olimex/sam9l9260/sam9l9260.c b/board/olimex/sam9l9260/sam9l9260.c
new file mode 100644
index 0000000..bc6182d
--- /dev/null
+++ b/board/olimex/sam9l9260/sam9l9260.c
@@ -0,0 +1,251 @@
+/*
+ * (C) Copyright 2007-2008
+ *
+ * Cristian Birsan <cristian.birsan@gmail.com> based on the work of
+ * Stelian Pop <stelian.pop@leadtechdesign.com>
+ * Lead Tech Design <www.leadtechdesign.com>
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+#include <common.h>
+#include <asm/arch/at91sam9260.h>
+#include <asm/arch/at91sam9260_matrix.h>
+#include <asm/arch/at91sam9_smc.h>
+#include <asm/arch/at91_pmc.h>
+#include <asm/arch/at91_rstc.h>
+#include <asm/arch/gpio.h>
+#include <asm/arch/io.h>
+#include <asm/arch/hardware.h>
+#if defined(CONFIG_RESET_PHY_R) && defined(CONFIG_MACB)
+#include <net.h>
+#endif
+#include <netdev.h>
+
+DECLARE_GLOBAL_DATA_PTR;
+
+/* ------------------------------------------------------------------------- */
+/*
+ * Miscelaneous platform dependent initialisations
+ */
+
+static void sam9l9260_serial_hw_init(void)
+{
+#ifdef CONFIG_USART0
+	at91_set_A_periph(AT91_PIN_PB4, 1);		/* TXD0 */
+	at91_set_A_periph(AT91_PIN_PB5, 0);		/* RXD0 */
+	at91_sys_write(AT91_PMC_PCER, 1 << AT91_ID_US0);
+#endif
+
+#ifdef CONFIG_USART1
+	at91_set_A_periph(AT91_PIN_PB6, 1);		/* TXD1 */
+	at91_set_A_periph(AT91_PIN_PB7, 0);		/* RXD1 */
+	at91_sys_write(AT91_PMC_PCER, 1 << AT91_ID_US1);
+#endif
+
+#ifdef CONFIG_USART2
+	at91_set_A_periph(AT91_PIN_PB8, 1);		/* TXD2 */
+	at91_set_A_periph(AT91_PIN_PB9, 0);		/* RXD2 */
+	at91_sys_write(AT91_PMC_PCER, 1 << AT91_ID_US2);
+#endif
+
+#ifdef CONFIG_USART3	/* DBGU */
+	at91_set_A_periph(AT91_PIN_PB14, 0);		/* DRXD */
+	at91_set_A_periph(AT91_PIN_PB15, 1);		/* DTXD */
+	at91_sys_write(AT91_PMC_PCER, 1 << AT91_ID_SYS);
+#endif
+}
+
+#ifdef CONFIG_CMD_NAND
+static void sam9l9260_nand_hw_init(void)
+{
+	unsigned long csa;
+
+	/* Enable CS3 */
+	csa = at91_sys_read(AT91_MATRIX_EBICSA);
+	at91_sys_write(AT91_MATRIX_EBICSA,
+		       csa | AT91_MATRIX_CS3A_SMC_SMARTMEDIA);
+
+	/* Configure SMC CS3 for NAND/SmartMedia */
+	at91_sys_write(AT91_SMC_SETUP(3),
+		       AT91_SMC_NWESETUP_(1) | AT91_SMC_NCS_WRSETUP_(0) |
+		       AT91_SMC_NRDSETUP_(1) | AT91_SMC_NCS_RDSETUP_(0));
+	at91_sys_write(AT91_SMC_PULSE(3),
+		       AT91_SMC_NWEPULSE_(3) | AT91_SMC_NCS_WRPULSE_(3) |
+		       AT91_SMC_NRDPULSE_(3) | AT91_SMC_NCS_RDPULSE_(3));
+	at91_sys_write(AT91_SMC_CYCLE(3),
+		       AT91_SMC_NWECYCLE_(5) | AT91_SMC_NRDCYCLE_(5));
+	at91_sys_write(AT91_SMC_MODE(3),
+		       AT91_SMC_READMODE | AT91_SMC_WRITEMODE |
+		       AT91_SMC_EXNWMODE_DISABLE |
+#ifdef CFG_NAND_DBW_16
+		       AT91_SMC_DBW_16 |
+#else /* CFG_NAND_DBW_8 */
+		       AT91_SMC_DBW_8 |
+#endif
+		       AT91_SMC_TDF_(2));
+
+	at91_sys_write(AT91_PMC_PCER, 1 << AT91SAM9260_ID_PIOC);
+
+	/* Configure RDY/BSY */
+	at91_set_gpio_input(AT91_PIN_PC13, 1);
+
+	/* Enable NandFlash */
+	at91_set_gpio_output(AT91_PIN_PC14, 1);
+}
+#endif
+
+#ifdef CONFIG_HAS_DATAFLASH
+static void sam9l9260_spi_hw_init(void)
+{
+	at91_set_A_periph(AT91_PIN_PA3, 0);	/* SPI0_NPCS0 */
+	at91_set_B_periph(AT91_PIN_PC11, 0);	/* SPI0_NPCS1 */
+
+	at91_set_A_periph(AT91_PIN_PA0, 0);	/* SPI0_MISO */
+	at91_set_A_periph(AT91_PIN_PA1, 0);	/* SPI0_MOSI */
+	at91_set_A_periph(AT91_PIN_PA2, 0);	/* SPI0_SPCK */
+
+	/* Enable clock */
+	at91_sys_write(AT91_PMC_PCER, 1 << AT91SAM9260_ID_SPI0);
+}
+#endif
+
+#ifdef CONFIG_MACB
+static void sam9l9260_macb_hw_init(void)
+{
+	/* Enable clock */
+	at91_sys_write(AT91_PMC_PCER, 1 << AT91SAM9260_ID_EMAC);
+
+	/*
+	 * Disable pull-up on:
+	 *	RXDV (PA17) => PHY normal mode (not Test mode)
+	 *	ERX0 (PA14) => PHY ADDR0
+	 *	ERX1 (PA15) => PHY ADDR1
+	 *	ERX2 (PA25) => PHY ADDR2
+	 *	ERX3 (PA26) => PHY ADDR3
+	 *	ECRS (PA28) => PHY ADDR4  => PHYADDR = 0x0
+	 *
+	 * PHY has internal pull-down
+	 */
+	writel(pin_to_mask(AT91_PIN_PA14) |
+	       pin_to_mask(AT91_PIN_PA15) |
+	       pin_to_mask(AT91_PIN_PA17) |
+	       pin_to_mask(AT91_PIN_PA25) |
+	       pin_to_mask(AT91_PIN_PA26) |
+	       pin_to_mask(AT91_PIN_PA28),
+	       pin_to_controller(AT91_PIN_PA0) + PIO_PUDR);
+
+	/* Need to reset PHY -> 500ms reset */
+	at91_sys_write(AT91_RSTC_MR, AT91_RSTC_KEY |
+				     (AT91_RSTC_ERSTL & (0x0D << 8)) |
+				     AT91_RSTC_URSTEN);
+
+	at91_sys_write(AT91_RSTC_CR, AT91_RSTC_KEY | AT91_RSTC_EXTRST);
+
+	/* Wait for end hardware reset */
+	while (!(at91_sys_read(AT91_RSTC_SR) & AT91_RSTC_NRSTL));
+
+	/* Restore NRST value */
+	at91_sys_write(AT91_RSTC_MR, AT91_RSTC_KEY |
+				     (AT91_RSTC_ERSTL & (0x0 << 8)) |
+				     AT91_RSTC_URSTEN);
+
+	/* Re-enable pull-up */
+	writel(pin_to_mask(AT91_PIN_PA14) |
+	       pin_to_mask(AT91_PIN_PA15) |
+	       pin_to_mask(AT91_PIN_PA17) |
+	       pin_to_mask(AT91_PIN_PA25) |
+	       pin_to_mask(AT91_PIN_PA26) |
+	       pin_to_mask(AT91_PIN_PA28),
+	       pin_to_controller(AT91_PIN_PA0) + PIO_PUER);
+
+	at91_set_A_periph(AT91_PIN_PA19, 0);	/* ETXCK_EREFCK */
+	at91_set_A_periph(AT91_PIN_PA17, 0);	/* ERXDV */
+	at91_set_A_periph(AT91_PIN_PA14, 0);	/* ERX0 */
+	at91_set_A_periph(AT91_PIN_PA15, 0);	/* ERX1 */
+	at91_set_A_periph(AT91_PIN_PA18, 0);	/* ERXER */
+	at91_set_A_periph(AT91_PIN_PA16, 0);	/* ETXEN */
+	at91_set_A_periph(AT91_PIN_PA12, 0);	/* ETX0 */
+	at91_set_A_periph(AT91_PIN_PA13, 0);	/* ETX1 */
+	at91_set_A_periph(AT91_PIN_PA21, 0);	/* EMDIO */
+	at91_set_A_periph(AT91_PIN_PA20, 0);	/* EMDC */
+
+#ifndef CONFIG_RMII
+	at91_set_B_periph(AT91_PIN_PA28, 0);	/* ECRS */
+	at91_set_B_periph(AT91_PIN_PA29, 0);	/* ECOL */
+	at91_set_B_periph(AT91_PIN_PA25, 0);	/* ERX2 */
+	at91_set_B_periph(AT91_PIN_PA26, 0);	/* ERX3 */
+	at91_set_B_periph(AT91_PIN_PA27, 0);	/* ERXCK */
+#if defined(CONFIG_SAM9L9260)
+	/*
+	 * use PA10, PA11 for ETX2, ETX3.
+	 * PA23 and PA24 are for TWI EEPROM
+	 */
+	at91_set_B_periph(AT91_PIN_PA10, 0);	/* ETX2 */
+	at91_set_B_periph(AT91_PIN_PA11, 0);	/* ETX3 */
+#else
+	at91_set_B_periph(AT91_PIN_PA23, 0);	/* ETX2 */
+	at91_set_B_periph(AT91_PIN_PA24, 0);	/* ETX3 */
+#endif
+	at91_set_B_periph(AT91_PIN_PA22, 0);	/* ETXER */
+#endif
+
+}
+#endif
+
+int board_init(void)
+{
+	/* Enable Ctrlc */
+	console_init_f();
+
+	/* arch number of SAM9-L9260-Board */
+	gd->bd->bi_arch_number = MACH_TYPE_SAM9_L9260;
+	/* adress of boot parameters */
+	gd->bd->bi_boot_params = PHYS_SDRAM + 0x100;
+
+	sam9l9260_serial_hw_init();
+#ifdef CONFIG_CMD_NAND
+	sam9l9260_nand_hw_init();
+#endif
+#ifdef CONFIG_HAS_DATAFLASH
+	sam9l9260_spi_hw_init();
+#endif
+#ifdef CONFIG_MACB
+	sam9l9260_macb_hw_init();
+#endif
+
+	return 0;
+}
+
+int dram_init(void)
+{
+	gd->bd->bi_dram[0].start = PHYS_SDRAM;
+	gd->bd->bi_dram[0].size = PHYS_SDRAM_SIZE;
+	return 0;
+}
+
+int board_eth_init(bd_t *bis)
+{
+	int rc = 0;
+#ifdef CONFIG_MACB
+	/* The default address for the KS8721BL PHY is 0x01 */
+	rc = macb_eth_initialize(0, (void *)AT91_BASE_EMAC, 0x01);
+#endif
+	return rc;
+}
diff --git a/drivers/mtd/nand/nand_ids.c b/drivers/mtd/nand/nand_ids.c
index 2ff75c9..ec2ac55 100644
--- a/drivers/mtd/nand/nand_ids.c
+++ b/drivers/mtd/nand/nand_ids.c
@@ -69,6 +69,8 @@ struct nand_flash_dev nand_flash_ids[] = {

  	{"NAND 256MiB 3,3V 8-bit",	0x71, 512, 256, 0x4000, 0},

+	{"NAND 512MiB 3,3V 8-bit",      0xDC, 512, 512, 0x4000, 0},
+
  	/*
  	 * These are the new chips with large page size. The pagesize and the
  	 * erasesize is determined from the extended id bytes
diff --git a/include/configs/sam9l9260.h b/include/configs/sam9l9260.h
new file mode 100644
index 0000000..cc13af0
--- /dev/null
+++ b/include/configs/sam9l9260.h
@@ -0,0 +1,213 @@
+/*
+ * (C) Copyright 2007-2008
+ *
+ * Cristian Birsan <cristian.birsan@gmail.com> based on the work of
+ * Stelian Pop <stelian.pop@leadtechdesign.com>
+ * Lead Tech Design <www.leadtechdesign.com>
+ *
+ * Configuration settings for the SAM9-L9260 board.
+ *
+ * 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
+ */
+
+#ifndef __CONFIG_H
+#define __CONFIG_H
+
+/* Hostname */
+#define	CONFIG_HOSTNAME			sam9l9260
+
+/* ARM asynchronous clock */
+#define AT91_MAIN_CLOCK		198656000	/* from 18.432 MHz crystal */
+#define AT91_MASTER_CLOCK	99328000	/* peripheral = main / 2 */
+#define CFG_HZ			1000000		/* 1us resolution */
+
+#define AT91_SLOW_CLOCK		32768	/* slow clock */
+
+#define CONFIG_ARM926EJS	1	/* This is an ARM926EJS Core	*/
+#define CONFIG_AT91SAM9260	1	/* It's an Atmel AT91SAM9260 SoC*/
+#define CONFIG_SAM9L9260	1	/* on an SAM9-L9260 Board	*/
+#undef  CONFIG_USE_IRQ			/* we don't need IRQ/FIQ stuff	*/
+
+#define CONFIG_CMDLINE_TAG	1	/* enable passing of ATAGs	*/
+#define CONFIG_SETUP_MEMORY_TAGS 1
+#define CONFIG_INITRD_TAG	1
+
+#define CONFIG_SKIP_LOWLEVEL_INIT
+#define CONFIG_SKIP_RELOCATE_UBOOT
+
+/*
+ * Hardware drivers
+ */
+#define CONFIG_ATMEL_USART	1
+#undef  CONFIG_USART0
+#undef  CONFIG_USART1
+#undef  CONFIG_USART2
+#define CONFIG_USART3		1	/* USART 3 is DBGU */
+
+#define CONFIG_BOOTDELAY	3
+
+/*
+ * BOOTP options
+ */
+#define CONFIG_BOOTP_BOOTFILESIZE	1
+#define CONFIG_BOOTP_BOOTPATH		1
+#define CONFIG_BOOTP_GATEWAY		1
+#define CONFIG_BOOTP_HOSTNAME		1
+
+/*
+ * Command line configuration.
+ */
+#include <config_cmd_default.h>
+#undef CONFIG_CMD_BDI
+#undef CONFIG_CMD_IMI
+#undef CONFIG_CMD_AUTOSCRIPT
+#undef CONFIG_CMD_FPGA
+#undef CONFIG_CMD_LOADS
+#undef CONFIG_CMD_IMLS
+
+#define CONFIG_CMD_PING		1
+#define CONFIG_CMD_DHCP		1
+#define CONFIG_CMD_NAND		1
+#define CONFIG_CMD_USB		1
+
+/* SDRAM */
+#define CONFIG_NR_DRAM_BANKS		1
+#define PHYS_SDRAM			0x20000000
+#define PHYS_SDRAM_SIZE			0x04000000	/* 64 megs */
+
+/* DataFlash */
+#define CONFIG_HAS_DATAFLASH		1
+#define CFG_SPI_WRITE_TOUT		(5*CFG_HZ)
+#define CFG_MAX_DATAFLASH_BANKS		2
+#define CFG_DATAFLASH_LOGIC_ADDR_CS0	0xC0000000	/* CS0 */
+#define CFG_DATAFLASH_LOGIC_ADDR_CS1	0xD0000000	/* CS1 */
+#define AT91_SPI_CLK			15000000
+#define DATAFLASH_TCSS			(0x1a << 16)
+#define DATAFLASH_TCHS			(0x1 << 24)
+
+/* NAND flash */
+#define NAND_MAX_CHIPS			1
+#define CFG_MAX_NAND_DEVICE		1
+#define CFG_NAND_BASE			0x40000000
+#define CFG_NAND_DBW_8			1
+
+/* NOR flash - no real flash on this board */
+#define CFG_NO_FLASH			1
+
+/* Ethernet */
+#define CONFIG_MACB			1
+#undef  CONFIG_RMII			/* 1 */
+#define CONFIG_NET_MULTI		1
+#define CONFIG_NET_RETRY_COUNT		20
+
+/* USB */
+#define CONFIG_USB_OHCI_NEW		1
+#define LITTLEENDIAN			1
+#define CONFIG_DOS_PARTITION		1
+#define CFG_USB_OHCI_CPU_INIT		1
+#define CFG_USB_OHCI_REGS_BASE		0x00500000	/* AT91SAM9260_UHP_BASE */
+#define CFG_USB_OHCI_SLOT_NAME		"at91sam9260"
+#define CFG_USB_OHCI_MAX_ROOT_PORTS	2
+#define CONFIG_USB_STORAGE		1
+
+/* File Systems*/
+#define CONFIG_CMD_FAT			1
+#define CONFIG_CMD_EXT2			1
+#define CONFIG_CMD_REISER		1
+
+#define CFG_LOAD_ADDR			0x22000000	/* load address */
+
+#define CFG_MEMTEST_START		PHYS_SDRAM
+#define CFG_MEMTEST_END			0x23e00000
+
+#undef CFG_USE_DATAFLASH_CS0
+#define CFG_USE_DATAFLASH_CS1		1
+#undef CFG_USE_NANDFLASH
+
+#ifdef CFG_USE_DATAFLASH_CS0
+
+/* bootstrap + u-boot + env + linux in dataflash on CS0 */
+#define CONFIG_ENV_IS_IN_DATAFLASH	1
+#define CFG_MONITOR_BASE	(CFG_DATAFLASH_LOGIC_ADDR_CS0 + 0x8400)
+#define CONFIG_ENV_OFFSET		0x4200
+#define CONFIG_ENV_ADDR		(CFG_DATAFLASH_LOGIC_ADDR_CS0 + CONFIG_ENV_OFFSET)
+#define CONFIG_ENV_SIZE		0x4200
+#define CONFIG_BOOTCOMMAND	"cp.b 0xC0042000 0x22000000 0x1CE000; bootm"
+#define CONFIG_BOOTARGS		"mem=64M "				\
+				"console=ttyS0,115200 "			\
+				"root=/dev/mtdblock1 "			\
+				"noinitrd "				\
+				"rootfstype=jffs2"
+
+#elif CFG_USE_DATAFLASH_CS1
+
+/* bootstrap + u-boot + env + linux in dataflash on CS1 */
+#define CONFIG_ENV_IS_IN_DATAFLASH	1
+#define CFG_MONITOR_BASE	(CFG_DATAFLASH_LOGIC_ADDR_CS1 + 0x8400)
+#define CONFIG_ENV_OFFSET		0x4200
+#define CONFIG_ENV_ADDR		(CFG_DATAFLASH_LOGIC_ADDR_CS1 + CONFIG_ENV_OFFSET)
+#define CONFIG_ENV_SIZE		0x4200
+#define CONFIG_BOOTCOMMAND	"cp.b 0xD0042000 0x22000000 0x1CE000; bootm"
+#define CONFIG_BOOTARGS		"mem=64M "				\
+				"console=ttyS0,115200 "			\
+				"root=/dev/mtdblock1 "			\
+				"noinitrd "				\
+				"rootfstype=jffs2"
+
+#else /* CFG_USE_NANDFLASH */
+
+/* bootstrap + u-boot + env + linux in nandflash */
+#define CONFIG_ENV_IS_IN_NAND	1
+#define CONFIG_ENV_OFFSET		0x60000
+#define CONFIG_ENV_OFFSET_REDUND	0x80000
+#define CONFIG_ENV_SIZE		0x20000		/* 1 sector = 128 kB */
+#define CONFIG_BOOTCOMMAND	"nand read 0x22000000 0xA0000 0x200000; bootm"
+#define CONFIG_BOOTARGS		"console=ttyS0,115200 "			\
+				"root=/dev/mtdblock5 "			\
+				"mtdparts=at91_nand:128k(bootstrap)ro,"	\
+				"256k(uboot)ro,128k(env1)ro,"		\
+				"128k(env2)ro,2M(linux),-(root) "	\
+				"rw rootfstype=jffs2"
+
+#endif
+
+#define CONFIG_BAUDRATE		115200
+#define CFG_BAUDRATE_TABLE	{115200 , 19200, 38400, 57600, 9600 }
+
+#define CFG_PROMPT		"U-Boot> "
+#define CFG_CBSIZE		256
+#define CFG_MAXARGS		16
+#define CFG_PBSIZE		(CFG_CBSIZE + sizeof(CFG_PROMPT) + 16)
+#define CFG_LONGHELP		1
+#define CONFIG_CMDLINE_EDITING	1
+
+#define ROUND(A, B)		(((A) + (B) -1) & ~((B) - 1))
+/*
+ * Size of malloc() pool
+ */
+#define CFG_MALLOC_LEN		ROUND(3 * CONFIG_ENV_SIZE + 128*1024, 0x1000)
+#define CFG_GBL_DATA_SIZE	128	/* 128 bytes for initial data */
+
+#define CONFIG_STACKSIZE	(32*1024)	/* regular stack */
+
+#ifdef CONFIG_USE_IRQ
+#error CONFIG_USE_IRQ not supported
+#endif
+
+#endif
-- 
1.5.5.1

Best regards,
Cristian Birsan

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

* [U-Boot] [PATCH] Olimex SAM9-L9260 board support
  2008-10-07 18:37         ` Wolfgang Denk
  2008-10-07 21:12           ` Cristian Birsan
@ 2008-10-07 22:05           ` Cristian Birsan
  2008-10-07 22:55             ` Wolfgang Denk
  1 sibling, 1 reply; 18+ messages in thread
From: Cristian Birsan @ 2008-10-07 22:05 UTC (permalink / raw)
  To: u-boot

Dear all,

In the previous patch i removed the code from the section below.

 >> +#ifdef CONFIG_RESET_PHY_R
 >> +void reset_phy(void)
 >> +{
 >> +#ifdef CONFIG_MACB
 >> +    /*
 >> +     * Initialize ethernet HW addr prior to starting Linux,
 >> +     * needed for nfsroot
 >> +     */
 >> +    eth_init(gd->bd);
 >> +#endif
 >
 > Please do NOT  do  this.  It's  a  violation  of  the  U-Boot  design
 > principles,  which  clearly  say that only such periphereals that are
 > actually being used by U-Boot shall be initialized, and even if  they
 > are being used, these shall be deactivated after use.
 >
 > Carelessly leaving ports or devices in an initialized stated has been
 > the source for problems too many times before.
 >
 > Don't do that.

The u-boot works but when I try to use nfs as root filesystem i encounter the following issue:

.............
MACB_mii_bus: probed
eth0: Atmel MACB at 0xfffc4000 irq 21 (00:00:00:00:00:00)
eth0: attached PHY driver [KS8721BL] (mii_bus:phy_addr=ffffffff:01, irq=-1)
.............

 From previous messages i understand that the MAC is set to 00:00:00:00:00:00 which is bad.

IP-Config: Failed to open eth0

I used again setenv ethaddr 00:04:25:12:34:56 in u-boot. After saveenv and reboot i used md command to display the EMAC 0xFFFC4000 (named MACB in the driver )
registers

U-Boot> md 0xfff4c000
fff4c000: 00000000 00000000 00000000 00000000    ................
fff4c010: 00000000 00000000 00000000 00000000    ................
fff4c020: 00000000 00000000 00000000 00000000    ................
fff4c030: 00000000 00000000 00000000 00000000    ................
fff4c040: 00000000 00000000 00000000 00000000    ................
fff4c050: 00000000 00000000 00000000 00000000    ................
fff4c060: 00000000 00000000 00000000 00000000    ................
fff4c070: 00000000 00000000 00000000 00000000    ................
fff4c080: 00000000 00000000 00000000 00000000    ................
fff4c090: 00000000 00000000 00000000 00000000    ................
fff4c0a0: 00000000 00000000 00000000 00000000    ................
fff4c0b0: 00000000 00000000 00000000 00000000    ................
fff4c0c0: 00000000 00000000 00000000 00000000    ................
fff4c0d0: 00000000 00000000 00000000 00000000    ................
fff4c0e0: 00000000 00000000 00000000 00004000    ............. at ..
fff4c0f0: 53504932 20202020 00010154 00000190    2IPS    T.......

Offset 0x98 Specific Address 1 Bottom Register EMAC_SA1B Read-write
Offset 0x9C Specific Address 1 Top Register    EMAC_SA1T Read-write

The register EMAC_SA1T and EMAC_SA1B coresponding to top and bottom of the MAC address are 0

Nfs works only with the ugly code that was removed.

I'm spinning in a circle :(

Please send me any suggestion.

Best regards,
Cristian Birsan

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

* [U-Boot] [PATCH] Olimex SAM9-L9260 board support
  2008-10-07 22:05           ` Cristian Birsan
@ 2008-10-07 22:55             ` Wolfgang Denk
  2008-10-10 10:24               ` Cristian Birsan
  0 siblings, 1 reply; 18+ messages in thread
From: Wolfgang Denk @ 2008-10-07 22:55 UTC (permalink / raw)
  To: u-boot

Dear Cristian Birsan,

In message <48EBDD33.30001@gmail.com> you wrote:
> 
> I used again setenv ethaddr 00:04:25:12:34:56 in u-boot. After saveenv and reboot i used md command to display the EMAC 0xFFFC4000 (named MACB in the driver )
> registers

setenv affects only the U-Boot environment variables. It doe snot
program any device registers for you.

And PLEASE: restrict your line length to 70 characters or less.

> Nfs works only with the ugly code that was removed.
> 
> I'm spinning in a circle :(

Please read the previous postings, and the FAQ.

> Please send me any suggestion.

Fix your Linux driver to pick up the MAC address from some convenient
place; using a kernel boot argument is one option, using  the  device
tree  is  another one. The former is less effort, the latter is more,
but would earn you a lot of credits :-)

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
It may be that your whole purpose in life is simply  to  serve  as  a
warning to others.

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

* [U-Boot] [PATCH] Olimex SAM9-L9260 board support
  2008-10-07 22:55             ` Wolfgang Denk
@ 2008-10-10 10:24               ` Cristian Birsan
  2008-10-30 23:41                 ` Cristian Birsan
  0 siblings, 1 reply; 18+ messages in thread
From: Cristian Birsan @ 2008-10-10 10:24 UTC (permalink / raw)
  To: u-boot

Dear Wolfgang Denk,

On Wed, Oct 8, 2008 at 1:55 AM, Wolfgang Denk <wd@denx.de> wrote:

> setenv affects only the U-Boot environment variables. It doe snot
> program any device registers for you.
>
> And PLEASE: restrict your line length to 70 characters or less.
>
>> Nfs works only with the ugly code that was removed.
>>
>> I'm spinning in a circle :(
>
> Please read the previous postings, and the FAQ.

I read the arm-linux mailing lists and I saw similar discussions
there. Now it's clear to me that u-boot shouldn't initialize the EMAC
(MACB) registers with the MAC address. In the newer kernel releases (
2.6.26 or newer ) there is a fix for the MACB driver and it can be
used for boards that do not store their MAC address in a nonvolatile
memory like an EEPROM.

Thank you for your time and quick response to questions.

Please consider the u-boot patch from the previous post for the next
merge window.

Best regards,

Cristian Birsan

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

* [U-Boot] [PATCH] Olimex SAM9-L9260 board support
  2008-10-10 10:24               ` Cristian Birsan
@ 2008-10-30 23:41                 ` Cristian Birsan
  2008-10-31  7:00                   ` Jean-Christophe PLAGNIOL-VILLARD
  0 siblings, 1 reply; 18+ messages in thread
From: Cristian Birsan @ 2008-10-30 23:41 UTC (permalink / raw)
  To: u-boot

Dear Wolfgang Denk,

I have submitted a few weeks ago a patch for Olimex SAM9-L9260 (similar to AT91SAM9260-EK board from Atmel).

Is is possible to include that patch in the new version of u-boot ?

If it's needed I can resend a new patch for the u-boot v2008.10

Please let me know what should I do next.

Best regards,

Cristian

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

* [U-Boot] [PATCH] Olimex SAM9-L9260 board support
  2008-10-30 23:41                 ` Cristian Birsan
@ 2008-10-31  7:00                   ` Jean-Christophe PLAGNIOL-VILLARD
  0 siblings, 0 replies; 18+ messages in thread
From: Jean-Christophe PLAGNIOL-VILLARD @ 2008-10-31  7:00 UTC (permalink / raw)
  To: u-boot

On 01:41 Fri 31 Oct     , Cristian Birsan wrote:
> Dear Wolfgang Denk,
>
> I have submitted a few weeks ago a patch for Olimex SAM9-L9260 (similar to AT91SAM9260-EK board from Atmel).
>
> Is is possible to include that patch in the new version of u-boot ?
>
> If it's needed I can resend a new patch for the u-boot v2008.10
>
> Please let me know what should I do next.
please do

Best Regards,
J.

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

* [U-Boot] [PATCH] Olimex SAM9-L9260 board support
  2008-10-06 18:03 [U-Boot] [PATCH] Olimex SAM9-L9260 board support Cristian Birsan
  2008-10-06 18:43 ` Wolfgang Denk
@ 2008-10-31  7:05 ` Jean-Christophe PLAGNIOL-VILLARD
  2008-10-31  8:23   ` Jean-Christophe PLAGNIOL-VILLARD
  2008-11-01 12:49   ` Cristian Birsan
  1 sibling, 2 replies; 18+ messages in thread
From: Jean-Christophe PLAGNIOL-VILLARD @ 2008-10-31  7:05 UTC (permalink / raw)
  To: u-boot

On 21:03 Mon 06 Oct     , Cristian Birsan wrote:
> Added support for the Olimex SAM9-L9260 development board.
> This patch is based on u-boot v1.3.4.
> 
> Tested with data flash only (not with NAND).
> 
> Signed-off-by: Cristian Birsan <cristian.birsan@gmail.com>
> ---
>   MAKEALL                            |    1 +
>   Makefile                           |   21 ++--
>   board/olimex/sam9l9260/Makefile    |   59 ++++++++
>   board/olimex/sam9l9260/config.mk   |    1 +
>   board/olimex/sam9l9260/led.c       |   64 +++++++++
>   board/olimex/sam9l9260/nand.c      |   78 +++++++++++
>   board/olimex/sam9l9260/partition.c |   39 ++++++
>   board/olimex/sam9l9260/sam9l9260.c |  264 ++++++++++++++++++++++++++++++++++++
>   drivers/mtd/nand/nand_ids.c        |    2 +
>   include/configs/sam9l9260.h        |  212 +++++++++++++++++++++++++++++
>   10 files changed, 732 insertions(+), 9 deletions(-)
>   create mode 100644 board/olimex/sam9l9260/Makefile
>   create mode 100644 board/olimex/sam9l9260/config.mk
>   create mode 100644 board/olimex/sam9l9260/led.c
>   create mode 100644 board/olimex/sam9l9260/nand.c
>   create mode 100644 board/olimex/sam9l9260/partition.c
>   create mode 100644 board/olimex/sam9l9260/sam9l9260.c
>   create mode 100644 include/configs/sam9l9260.h
> 
> diff --git a/MAKEALL b/MAKEALL
> index 9ccb9ac..0e2cb36 100755
> --- a/MAKEALL
> +++ b/MAKEALL
> @@ -542,6 +542,7 @@ LIST_at91="		\
>   	kb9202		\
>   	mp2usb		\
>   	m501sk		\
> +	sam9l9260	\
>   "
> 
>   #########################################################################
> diff --git a/Makefile b/Makefile
> index 7c13ce8..5b0acae 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -2487,15 +2487,6 @@ shannon_config	:	unconfig
>   at91rm9200dk_config	:	unconfig
>   	@$(MKCONFIG) $(@:_config=) arm arm920t at91rm9200dk atmel at91rm9200
> 
> -at91sam9261ek_config	:	unconfig
> -	@$(MKCONFIG) $(@:_config=) arm arm926ejs at91sam9261ek atmel at91
> -
> -at91sam9263ek_config	:	unconfig
> -	@$(MKCONFIG) $(@:_config=) arm arm926ejs at91sam9263ek atmel at91
> -
> -at91sam9rlek_config	:	unconfig
> -	@$(MKCONFIG) $(@:_config=) arm arm926ejs at91sam9rlek atmel at91
> -
>   cmc_pu2_config	:	unconfig
>   	@$(MKCONFIG) $(@:_config=) arm arm920t cmc_pu2 NULL at91rm9200
> 
> @@ -2521,6 +2512,18 @@ at91cap9adk_config	:	unconfig
>   at91sam9260ek_config	:	unconfig
>   	@$(MKCONFIG) $(@:_config=) arm arm926ejs at91sam9260ek atmel at91
> 
> +at91sam9261ek_config	:	unconfig
> +	@$(MKCONFIG) $(@:_config=) arm arm926ejs at91sam9261ek atmel at91
> +
> +at91sam9263ek_config	:	unconfig
> +	@$(MKCONFIG) $(@:_config=) arm arm926ejs at91sam9263ek atmel at91
> +
> +at91sam9rlek_config	:	unconfig
> +	@$(MKCONFIG) $(@:_config=) arm arm926ejs at91sam9rlek atmel at91
> +
> +sam9l9260_config	:	unconfig
> +	@$(MKCONFIG) $(@:_config=) arm arm926ejs sam9l9260 olimex at91
> +
why do you touch other at91 config?
>   ########################################################################
>   ## ARM Integrator boards - see doc/README-integrator for more info.
>   integratorap_config	\
> diff --git a/board/olimex/sam9l9260/Makefile b/board/olimex/sam9l9260/Makefile
> new file mode 100644
> index 0000000..8853b7c
> --- /dev/null
> +++ b/board/olimex/sam9l9260/Makefile
> @@ -0,0 +1,59 @@
> +#
> +# (C) Copyright 2003-2008
> +# Wolfgang Denk, DENX Software Engineering, wd at denx.de.
> +#
> +# (C) Copyright 2008
> +#
> +# Cristian Birsan <cristian.birsan@gmail.com> based on the work of
> +# Stelian Pop <stelian.pop@leadtechdesign.com>
> +# Lead Tech Design <www.leadtechdesign.com>
> +#
> +# See file CREDITS for list of people who contributed to this
> +# project.
> +#
> +# This program is free software; you can redistribute it and/or
> +# modify it under the terms of the GNU General Public License as
> +# published by the Free Software Foundation; either version 2 of
> +# the License, or (at your option) any later version.
> +#
> +# This program is distributed in the hope that it will be useful,
> +# but WITHOUT ANY WARRANTY; without even the implied warranty of
> +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> +# GNU General Public License for more details.
> +#
> +# You should have received a copy of the GNU General Public License
> +# along with this program; if not, write to the Free Software
> +# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
> +# MA 02111-1307 USA
> +#
> +
> +include $(TOPDIR)/config.mk
> +
> +LIB	= $(obj)lib$(BOARD).a
> +
> +COBJS-y	+= sam9l9260.o
> +COBJS-y	+= led.o
> +COBJS-y	+= partition.o
> +COBJS-$(CONFIG_CMD_NAND) += nand.o
> +
> +SRCS	:= $(SOBJS:.o=.S) $(COBJS-y:.o=.c)
> +OBJS	:= $(addprefix $(obj),$(COBJS-y))
> +SOBJS	:= $(addprefix $(obj),$(SOBJS))
> +
> +$(LIB):	$(obj).depend $(OBJS) $(SOBJS)
> +	$(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
> +
> +clean:
> +	rm -f $(SOBJS) $(OBJS)
> +
> +distclean:	clean
> +	rm -f $(LIB) core *.bak $(obj).depend
> +
> +#########################################################################
> +
> +# defines $(obj).depend target
> +include $(SRCTREE)/rules.mk
> +
> +sinclude $(obj).depend
> +
> +#########################################################################
> diff --git a/board/olimex/sam9l9260/config.mk b/board/olimex/sam9l9260/config.mk
> new file mode 100644
> +
> +	return 0;
> +}
> diff --git a/board/olimex/sam9l9260/partition.c b/board/olimex/sam9l9260/partition.c
> new file mode 100644
> index 0000000..b29c29a
> --- /dev/null
> +++ b/board/olimex/sam9l9260/partition.c
> @@ -0,0 +1,39 @@
> +/*
> + * (C) Copyright 2008
> + * Ulf Samuelsson <ulf@atmel.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, write to the Free Software
> + * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
> + * MA 02111-1307 USA
> + *
> + */
> +#include <common.h>
> +#include <config.h>
> +#include <asm/hardware.h>
> +#include <dataflash.h>
> +
> +AT91S_DATAFLASH_INFO dataflash_info[CFG_MAX_DATAFLASH_BANKS];
> +
> +struct dataflash_addr cs[CFG_MAX_DATAFLASH_BANKS] = {
> +	{CFG_DATAFLASH_LOGIC_ADDR_CS0, 0},	/* Logical adress, CS */
> +	{CFG_DATAFLASH_LOGIC_ADDR_CS1, 1}
> +};
> +
> +/*define the area offsets*/
> +dataflash_protect_t area_list[NB_DATAFLASH_AREA] = {
> +	{0x00000000, 0x000041FF, FLAG_PROTECT_SET,   0, "Bootstrap"},
                                                  ^^^
whitespace please fix
> +	{0x00004200, 0x000083FF, FLAG_PROTECT_CLEAR, 0, "Environment"},
> +	{0x00008400, 0x00041FFF, FLAG_PROTECT_SET,   0, "U-Boot"},
                                                  ^^^
whitespace please fix
> +	{0x00042000, 0x0020FFFF, FLAG_PROTECT_CLEAR, 0,	"Kernel"},
> +};
> diff --git a/board/olimex/sam9l9260/sam9l9260.c b/board/olimex/sam9l9260/sam9l9260.c
> new file mode 100644
> index 0000000..15578d1
> --- /dev/null
> +++ b/board/olimex/sam9l9260/sam9l9260.c
> @@ -0,0 +1,264 @@
> +/*
> + * (C) Copyright 2007-2008
> + *
> + * Cristian Birsan <cristian.birsan@gmail.com> based on the work of
> + * Stelian Pop <stelian.pop@leadtechdesign.com>
> + * Lead Tech Design <www.leadtechdesign.com>
> + *
> + * See file CREDITS for list of people who contributed to this
> + * project.
> + *
> + * This program is free software; you can redistribute it and/or
> + * modify it under the terms of the GNU General Public License as
> + * published by the Free Software Foundation; either version 2 of
> + * the License, or (at your option) any later version.
> + *
> + * This program is distributed in the hope that it will be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> + * GNU General Public License for more details.
> + *
> + * You should have received a copy of the GNU General Public License
> + * along with this program; if not, write to the Free Software
> + * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
> + * MA 02111-1307 USA
> + */
> +
> +#include <common.h>
> +#include <asm/arch/at91sam9260.h>
> +#include <asm/arch/at91sam9260_matrix.h>
> +#include <asm/arch/at91sam9_smc.h>
> +#include <asm/arch/at91_pmc.h>
> +#include <asm/arch/at91_rstc.h>
> +#include <asm/arch/gpio.h>
> +#include <asm/arch/io.h>
> +#include <asm/arch/hardware.h>
> +#if defined(CONFIG_RESET_PHY_R) && defined(CONFIG_MACB)
> +
> +	return 0;
> +}
> +
> +int dram_init(void)
> +{
> +	gd->bd->bi_dram[0].start = PHYS_SDRAM;
> +	gd->bd->bi_dram[0].size = PHYS_SDRAM_SIZE;
> +	return 0;
> +}
> +
> +#ifdef CONFIG_RESET_PHY_R
> +void reset_phy(void)
> +{
> +#ifdef CONFIG_MACB
> +	/*
> +	 * Initialize ethernet HW addr prior to starting Linux,
> +	 * needed for nfsroot
> +	 */
> +	eth_init(gd->bd);
> +#endif
> +}
> +#endif
> +
> +int board_eth_init(bd_t *bis)
> +{
> +	int rc = 0;
> +#ifdef CONFIG_MACB
> +	/* The default address for the KS8721BL PHY is 0x01 */
> +	rc = macb_eth_initialize(0, (void *)AT91_BASE_EMAC, 0x01);
> +#endif
> +	return rc;
> +}
> diff --git a/drivers/mtd/nand/nand_ids.c b/drivers/mtd/nand/nand_ids.c
> index 2ff75c9..ec2ac55 100644
> --- a/drivers/mtd/nand/nand_ids.c
> +++ b/drivers/mtd/nand/nand_ids.c
> @@ -69,6 +69,8 @@ struct nand_flash_dev nand_flash_ids[] = {
> 
>   	{"NAND 256MiB 3,3V 8-bit",	0x71, 512, 256, 0x4000, 0},
> 
> +	{"NAND 512MiB 3,3V 8-bit",      0xDC, 512, 512, 0x4000, 0},
                                  ^^^
whitespace please fix
> +
>   	/*
>   	 * These are the new chips with large page size. The pagesize and the
>   	 * erasesize is determined from the extended id bytes
> diff --git a/include/configs/sam9l9260.h b/include/configs/sam9l9260.h
> new file mode 100644
> index 0000000..90089b0
> --- /dev/null
> +++ b/include/configs/sam9l9260.h
> @@ -0,0 +1,212 @@
> +/*
> + * (C) Copyright 2007-2008
> + *
> + * Cristian Birsan <cristian.birsan@gmail.com> based on the work of
> + * Stelian Pop <stelian.pop@leadtechdesign.com>
> + * Lead Tech Design <www.leadtechdesign.com>
> + *
> + * Configuration settings for the SAM9-L9260 board.
> + *
> + * 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
> + */
> +
> +#ifndef __CONFIG_H
> +#define __CONFIG_H
> +
> +/* Hostname */
> +#define	CONFIG_HOSTNAME			sam9l9260
> +
> +/* ARM asynchronous clock */
> +#define AT91_MAIN_CLOCK		198656000	/* from 18.432 MHz crystal */
> +#define AT91_MASTER_CLOCK	99328000	/* peripheral = main / 2 */
> +#define CFG_HZ			1000000		/* 1us resolution */
please update to CONFIG_SYS_

Note that I've plan and announce that I'll generate a common code for
at91sam9260 and other to reduce duplicate code.

Best Regards,
J.

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

* [U-Boot] [PATCH] Olimex SAM9-L9260 board support
  2008-10-31  7:05 ` Jean-Christophe PLAGNIOL-VILLARD
@ 2008-10-31  8:23   ` Jean-Christophe PLAGNIOL-VILLARD
  2008-10-31  8:48     ` Wolfgang Denk
  2008-11-01 12:49   ` Cristian Birsan
  1 sibling, 1 reply; 18+ messages in thread
From: Jean-Christophe PLAGNIOL-VILLARD @ 2008-10-31  8:23 UTC (permalink / raw)
  To: u-boot

On 08:05 Fri 31 Oct     , Jean-Christophe PLAGNIOL-VILLARD wrote:
> On 21:03 Mon 06 Oct     , Cristian Birsan wrote:
> > Added support for the Olimex SAM9-L9260 development board.
> > This patch is based on u-boot v1.3.4.
> > 
> > Tested with data flash only (not with NAND).
> > 
> > Signed-off-by: Cristian Birsan <cristian.birsan@gmail.com>
> > ---
> >   MAKEALL                            |    1 +
> >   Makefile                           |   21 ++--
> >   board/olimex/sam9l9260/Makefile    |   59 ++++++++
> >   board/olimex/sam9l9260/config.mk   |    1 +
> >   board/olimex/sam9l9260/led.c       |   64 +++++++++
> >   board/olimex/sam9l9260/nand.c      |   78 +++++++++++
> >   board/olimex/sam9l9260/partition.c |   39 ++++++
> >   board/olimex/sam9l9260/sam9l9260.c |  264 ++++++++++++++++++++++++++++++++++++
> >   drivers/mtd/nand/nand_ids.c        |    2 +
> >   include/configs/sam9l9260.h        |  212 +++++++++++++++++++++++++++++
> >   10 files changed, 732 insertions(+), 9 deletions(-)
> >   create mode 100644 board/olimex/sam9l9260/Makefile
> >   create mode 100644 board/olimex/sam9l9260/config.mk
> >   create mode 100644 board/olimex/sam9l9260/led.c
> >   create mode 100644 board/olimex/sam9l9260/nand.c
> >   create mode 100644 board/olimex/sam9l9260/partition.c
> >   create mode 100644 board/olimex/sam9l9260/sam9l9260.c
> >   create mode 100644 include/configs/sam9l9260.h
> > 
I've forget one think please add an entry to the MAINTAINER file

Best Regards,
J.

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

* [U-Boot] [PATCH] Olimex SAM9-L9260 board support
  2008-10-31  8:23   ` Jean-Christophe PLAGNIOL-VILLARD
@ 2008-10-31  8:48     ` Wolfgang Denk
  2008-10-31  9:05       ` Jean-Christophe PLAGNIOL-VILLARD
  0 siblings, 1 reply; 18+ messages in thread
From: Wolfgang Denk @ 2008-10-31  8:48 UTC (permalink / raw)
  To: u-boot

Dear Cristian

In message <20081031082313.GE23324@game.jcrosoft.org> Jean-Christophe wrote:
>
> I've forget one think please add an entry to the MAINTAINER file

This can be done by sending an additional patch - no need to resubmit
all the stuff.

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
A committee is a life form with six or more legs and no brain.
                              -- Lazarus Long, "Time Enough For Love"

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

* [U-Boot] [PATCH] Olimex SAM9-L9260 board support
  2008-10-31  8:48     ` Wolfgang Denk
@ 2008-10-31  9:05       ` Jean-Christophe PLAGNIOL-VILLARD
  0 siblings, 0 replies; 18+ messages in thread
From: Jean-Christophe PLAGNIOL-VILLARD @ 2008-10-31  9:05 UTC (permalink / raw)
  To: u-boot

On 09:48 Fri 31 Oct     , Wolfgang Denk wrote:
> Dear Cristian
> 
> In message <20081031082313.GE23324@game.jcrosoft.org> Jean-Christophe wrote:
> >
> > I've forget one think please add an entry to the MAINTAINER file
> 
> This can be done by sending an additional patch - no need to resubmit
> all the stuff.
Yes but the patch need to be rebased so If the author can do it a the time it
will nice

Best Regards,
J.

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

* [U-Boot] [PATCH] Olimex SAM9-L9260 board support
  2008-10-31  7:05 ` Jean-Christophe PLAGNIOL-VILLARD
  2008-10-31  8:23   ` Jean-Christophe PLAGNIOL-VILLARD
@ 2008-11-01 12:49   ` Cristian Birsan
  2008-11-01 13:19     ` Jean-Christophe PLAGNIOL-VILLARD
  1 sibling, 1 reply; 18+ messages in thread
From: Cristian Birsan @ 2008-11-01 12:49 UTC (permalink / raw)
  To: u-boot

Dear Jean-Christophe PLAGNIOL-VILLARD,

I will remove all unnecessary white spaces from the previous patch. I
have now a patch version for u-boot u-boot v2008.10

> >   "
> > 
> >   #########################################################################
> > diff --git a/Makefile b/Makefile
> > index 7c13ce8..5b0acae 100644
> > --- a/Makefile
> > +++ b/Makefile
> > @@ -2487,15 +2487,6 @@ shannon_config	:	unconfig
> >   at91rm9200dk_config	:	unconfig
> >   	@$(MKCONFIG) $(@:_config=) arm arm920t at91rm9200dk atmel at91rm9200
> > 
> > -at91sam9261ek_config	:	unconfig
> > -	@$(MKCONFIG) $(@:_config=) arm arm926ejs at91sam9261ek atmel at91
> > -
> > -at91sam9263ek_config	:	unconfig
> > -	@$(MKCONFIG) $(@:_config=) arm arm926ejs at91sam9263ek atmel at91
> > -
> > -at91sam9rlek_config	:	unconfig
> > -	@$(MKCONFIG) $(@:_config=) arm arm926ejs at91sam9rlek atmel at91
> > -
> >   cmc_pu2_config	:	unconfig
> >   	@$(MKCONFIG) $(@:_config=) arm arm920t cmc_pu2 NULL at91rm9200
> > 
> > @@ -2521,6 +2512,18 @@ at91cap9adk_config	:	unconfig
> >   at91sam9260ek_config	:	unconfig
> >   	@$(MKCONFIG) $(@:_config=) arm arm926ejs at91sam9260ek atmel at91
> > 
> > +at91sam9261ek_config	:	unconfig
> > +	@$(MKCONFIG) $(@:_config=) arm arm926ejs at91sam9261ek atmel at91
> > +
> > +at91sam9263ek_config	:	unconfig
> > +	@$(MKCONFIG) $(@:_config=) arm arm926ejs at91sam9263ek atmel at91
> > +
> > +at91sam9rlek_config	:	unconfig
> > +	@$(MKCONFIG) $(@:_config=) arm arm926ejs at91sam9rlek atmel at91
> > +
> > +sam9l9260_config	:	unconfig
> > +	@$(MKCONFIG) $(@:_config=) arm arm926ejs sam9l9260 olimex at91
> > +
> why do you touch other at91 config?

I touched other configs because i tried to put correctly boards with
arm920t and arm926ejs in their sections. I belive that at91sam9261ek
at91sam9263ek should be placed in the arm926ejs core section. Please
correct me if i'm wrong.

> > +#ifndef __CONFIG_H
> > +#define __CONFIG_H
> > +
> > +/* Hostname */
> > +#define	CONFIG_HOSTNAME			sam9l9260
> > +
> > +/* ARM asynchronous clock */
> > +#define AT91_MAIN_CLOCK		198656000	/* from 18.432 MHz crystal */
> > +#define AT91_MASTER_CLOCK	99328000	/* peripheral = main / 2 */
> > +#define CFG_HZ			1000000		/* 1us resolution */
> please update to CONFIG_SYS_

> Note that I've plan and announce that I'll generate a common code for
> at91sam9260 and other to reduce duplicate code.

I can change CFG_HZ to CONFIG_SYS_HZ but that macro is used
in /cpu/arm926ejs/at91/timer.c. If I change the macro from timer.c I
should update all at91 configurations but I can test only on Olimex
(at91sam9260) board. I do not know if it's safe to modify other
configurations without appropriate testing.

Regards,
Cristian

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

* [U-Boot] [PATCH] Olimex SAM9-L9260 board support
  2008-11-01 12:49   ` Cristian Birsan
@ 2008-11-01 13:19     ` Jean-Christophe PLAGNIOL-VILLARD
  0 siblings, 0 replies; 18+ messages in thread
From: Jean-Christophe PLAGNIOL-VILLARD @ 2008-11-01 13:19 UTC (permalink / raw)
  To: u-boot

On 14:49 Sat 01 Nov     , Cristian Birsan wrote:
> Dear Jean-Christophe PLAGNIOL-VILLARD,
> 
> I will remove all unnecessary white spaces from the previous patch. I
> have now a patch version for u-boot u-boot v2008.10
> 
> > >   "
> > > 
> > >   #########################################################################
> > > diff --git a/Makefile b/Makefile
> > > index 7c13ce8..5b0acae 100644
> > > --- a/Makefile
> > > +++ b/Makefile
> > > @@ -2487,15 +2487,6 @@ shannon_config	:	unconfig
> > >   at91rm9200dk_config	:	unconfig
> > >   	@$(MKCONFIG) $(@:_config=) arm arm920t at91rm9200dk atmel at91rm9200
> > > 
> > > -at91sam9261ek_config	:	unconfig
> > > -	@$(MKCONFIG) $(@:_config=) arm arm926ejs at91sam9261ek atmel at91
> > > -
> > > -at91sam9263ek_config	:	unconfig
> > > -	@$(MKCONFIG) $(@:_config=) arm arm926ejs at91sam9263ek atmel at91
> > > -
> > > -at91sam9rlek_config	:	unconfig
> > > -	@$(MKCONFIG) $(@:_config=) arm arm926ejs at91sam9rlek atmel at91
> > > -
> > >   cmc_pu2_config	:	unconfig
> > >   	@$(MKCONFIG) $(@:_config=) arm arm920t cmc_pu2 NULL at91rm9200
> > > 
> > > @@ -2521,6 +2512,18 @@ at91cap9adk_config	:	unconfig
> > >   at91sam9260ek_config	:	unconfig
> > >   	@$(MKCONFIG) $(@:_config=) arm arm926ejs at91sam9260ek atmel at91
> > > 
> > > +at91sam9261ek_config	:	unconfig
> > > +	@$(MKCONFIG) $(@:_config=) arm arm926ejs at91sam9261ek atmel at91
> > > +
> > > +at91sam9263ek_config	:	unconfig
> > > +	@$(MKCONFIG) $(@:_config=) arm arm926ejs at91sam9263ek atmel at91
> > > +
> > > +at91sam9rlek_config	:	unconfig
> > > +	@$(MKCONFIG) $(@:_config=) arm arm926ejs at91sam9rlek atmel at91
> > > +
> > > +sam9l9260_config	:	unconfig
> > > +	@$(MKCONFIG) $(@:_config=) arm arm926ejs sam9l9260 olimex at91
> > > +
> > why do you touch other at91 config?
> 
> I touched other configs because i tried to put correctly boards with
> arm920t and arm926ejs in their sections. I belive that at91sam9261ek
> at91sam9263ek should be placed in the arm926ejs core section. Please
> correct me if i'm wrong.
> 
It's supposed to be done in an other patch which I've post btw
> > > +#ifndef __CONFIG_H
> > > +#define __CONFIG_H
> > > +
> > > +/* Hostname */
> > > +#define	CONFIG_HOSTNAME			sam9l9260
> > > +
> > > +/* ARM asynchronous clock */
> > > +#define AT91_MAIN_CLOCK		198656000	/* from 18.432 MHz crystal */
> > > +#define AT91_MASTER_CLOCK	99328000	/* peripheral = main / 2 */
> > > +#define CFG_HZ			1000000		/* 1us resolution */
> > please update to CONFIG_SYS_
> 
> > Note that I've plan and announce that I'll generate a common code for
> > at91sam9260 and other to reduce duplicate code.
> 
> I can change CFG_HZ to CONFIG_SYS_HZ but that macro is used
> in /cpu/arm926ejs/at91/timer.c. If I change the macro from timer.c I
> should update all at91 configurations but I can test only on Olimex
> (at91sam9260) board. I do not know if it's safe to modify other
> configurations without appropriate testing.
I've merge it at the same time of all CFG_

Best Regards,
J.

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

end of thread, other threads:[~2008-11-01 13:19 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-10-06 18:03 [U-Boot] [PATCH] Olimex SAM9-L9260 board support Cristian Birsan
2008-10-06 18:43 ` Wolfgang Denk
2008-10-06 20:33   ` Cristian Birsan
2008-10-06 20:44     ` Wolfgang Denk
2008-10-07 16:35       ` Cristian Birsan
2008-10-07 18:37         ` Wolfgang Denk
2008-10-07 21:12           ` Cristian Birsan
2008-10-07 22:05           ` Cristian Birsan
2008-10-07 22:55             ` Wolfgang Denk
2008-10-10 10:24               ` Cristian Birsan
2008-10-30 23:41                 ` Cristian Birsan
2008-10-31  7:00                   ` Jean-Christophe PLAGNIOL-VILLARD
2008-10-31  7:05 ` Jean-Christophe PLAGNIOL-VILLARD
2008-10-31  8:23   ` Jean-Christophe PLAGNIOL-VILLARD
2008-10-31  8:48     ` Wolfgang Denk
2008-10-31  9:05       ` Jean-Christophe PLAGNIOL-VILLARD
2008-11-01 12:49   ` Cristian Birsan
2008-11-01 13:19     ` Jean-Christophe PLAGNIOL-VILLARD

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