All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] Support for Calao USB A9263 board based on AT91SAM9263 CPU
@ 2009-07-01 12:07 Thomas Petazzoni
  2009-07-08 21:42 ` Jean-Christophe PLAGNIOL-VILLARD
  2009-07-22 15:30 ` Thomas Petazzoni
  0 siblings, 2 replies; 20+ messages in thread
From: Thomas Petazzoni @ 2009-07-01 12:07 UTC (permalink / raw)
  To: u-boot

Hello,

Here is a patch that adds the support for the Calao USB A9263 board.
This is my first board support contribution to U-Boot, so don't
hesitate to comment and suggest improvements.

Thanks,

Thomas

---

Support for the Calao USB A9263 board

The Calao USB A9263 board is a board manufactured and sold by Calao
Systems <http://www.calao-systems.com>. Its components are very
similar to the AT91SAM9263EK board, so its configuration is based on
the configuration of this board. There are however some differences:
different clocks, no LCD, etc.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>

 MAKEALL                     |    1 
 Makefile                    |    3 
 board/usb-a9263/Makefile    |   56 +++++++++++++
 board/usb-a9263/config.mk   |    1 
 board/usb-a9263/led.c       |   44 ++++++++++
 board/usb-a9263/partition.c |   37 ++++++++
 board/usb-a9263/usb-a9263.c |  189 ++++++++++++++++++++++++++++++++++++++++++++
 include/configs/usb-a9263.h |  188 +++++++++++++++++++++++++++++++++++++++++++
 8 files changed, 519 insertions(+)

diff --git a/MAKEALL b/MAKEALL
index f4599d6..6581427 100755
--- a/MAKEALL
+++ b/MAKEALL
@@ -590,6 +590,7 @@ LIST_at91="		\
 	mp2usb		\
 	m501sk		\
 	pm9263		\
+	usb-a9263	\
 "
 
 #########################################################################
diff --git a/Makefile b/Makefile
index bcc81c9..176885f 100644
--- a/Makefile
+++ b/Makefile
@@ -2785,6 +2785,9 @@ at91sam9rlek_config	:	unconfig
 pm9263_config	:	unconfig
 	@$(MKCONFIG) $(@:_config=) arm arm926ejs pm9263 ronetix at91
 
+usb_a9263_config	:	unconfig
+	$(MKCONFIG) -a usb-a9263 arm arm926ejs usb-a9263 NULL at91
+
 ########################################################################
 ## ARM Integrator boards - see doc/README-integrator for more info.
 integratorap_config	\
diff --git a/board/usb-a9263/Makefile b/board/usb-a9263/Makefile
new file mode 100644
index 0000000..18325e0
--- /dev/null
+++ b/board/usb-a9263/Makefile
@@ -0,0 +1,56 @@
+#
+# (C) Copyright 2003-2008
+# Wolfgang Denk, DENX Software Engineering, wd at denx.de.
+#
+# (C) Copyright 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 $(TOPDIR)/config.mk
+
+LIB	= $(obj)lib$(BOARD).a
+
+COBJS-y += usb-a9263.o
+COBJS-y += led.o
+COBJS-$(CONFIG_HAS_DATAFLASH) += partition.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/usb-a9263/config.mk b/board/usb-a9263/config.mk
new file mode 100644
index 0000000..ff2cfd1
--- /dev/null
+++ b/board/usb-a9263/config.mk
@@ -0,0 +1 @@
+TEXT_BASE = 0x23f00000
diff --git a/board/usb-a9263/led.c b/board/usb-a9263/led.c
new file mode 100644
index 0000000..82c5388
--- /dev/null
+++ b/board/usb-a9263/led.c
@@ -0,0 +1,44 @@
+/*
+ * (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/at91sam9263.h>
+#include <asm/arch/at91_pmc.h>
+#include <asm/arch/gpio.h>
+#include <asm/arch/io.h>
+
+void coloured_LED_init(void)
+{
+	/* Enable clock */
+	at91_sys_write(AT91_PMC_PCER, 1 << AT91SAM9263_ID_PIOB |
+				      1 << AT91SAM9263_ID_PIOCDE);
+
+	at91_set_gpio_output(CONFIG_RED_LED, 1);
+	at91_set_gpio_output(CONFIG_GREEN_LED, 1);
+	at91_set_gpio_output(CONFIG_YELLOW_LED, 1);
+
+	at91_set_gpio_value(CONFIG_RED_LED, 0);
+	at91_set_gpio_value(CONFIG_GREEN_LED, 1);
+	at91_set_gpio_value(CONFIG_YELLOW_LED, 1);
+}
diff --git a/board/usb-a9263/partition.c b/board/usb-a9263/partition.c
new file mode 100644
index 0000000..94ec265
--- /dev/null
+++ b/board/usb-a9263/partition.c
@@ -0,0 +1,37 @@
+/*
+ * (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[CONFIG_SYS_MAX_DATAFLASH_BANKS];
+
+struct dataflash_addr cs[CONFIG_SYS_MAX_DATAFLASH_BANKS] = {
+	{CONFIG_SYS_DATAFLASH_LOGIC_ADDR_CS0, 0},	/* Logical adress, CS */
+};
+
+/*define the area offsets*/
+dataflash_protect_t area_list[NB_DATAFLASH_AREA] = {
+	{0x00000000, 0x00001FFF, FLAG_PROTECT_SET,   0, "Bootstrap"},
+	{0x00002000, 0x00003FFF, FLAG_PROTECT_CLEAR, 0, "Environment"},
+	{0x00004000, 0xFFFFFFFF, FLAG_PROTECT_SET,   0, "U-Boot"},
+};
diff --git a/board/usb-a9263/usb-a9263.c b/board/usb-a9263/usb-a9263.c
new file mode 100644
index 0000000..0f00e82
--- /dev/null
+++ b/board/usb-a9263/usb-a9263.c
@@ -0,0 +1,189 @@
+/*
+ * (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/sizes.h>
+#include <asm/arch/at91sam9263.h>
+#include <asm/arch/at91sam9263_matrix.h>
+#include <asm/arch/at91sam9_smc.h>
+#include <asm/arch/at91_common.h>
+#include <asm/arch/at91_pmc.h>
+#include <asm/arch/at91_rstc.h>
+#include <asm/arch/clk.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
+ */
+
+#ifdef CONFIG_CMD_NAND
+static void usb_a9263_nand_hw_init(void)
+{
+	unsigned long csa;
+
+	/* Enable CS3 */
+	csa = at91_sys_read(AT91_MATRIX_EBI0CSA);
+	at91_sys_write(AT91_MATRIX_EBI0CSA,
+		       csa | AT91_MATRIX_EBI0_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 CONFIG_SYS_NAND_DBW_16
+		       AT91_SMC_DBW_16 |
+#else /* CONFIG_SYS_NAND_DBW_8 */
+		       AT91_SMC_DBW_8 |
+#endif
+		       AT91_SMC_TDF_(2));
+
+	at91_sys_write(AT91_PMC_PCER, 1 << AT91SAM9263_ID_PIOA |
+				      1 << AT91SAM9263_ID_PIOCDE);
+
+	/* Configure RDY/BSY */
+	at91_set_gpio_input(CONFIG_SYS_NAND_READY_PIN, 1);
+
+	/* Enable NandFlash */
+	at91_set_gpio_output(CONFIG_SYS_NAND_ENABLE_PIN, 1);
+}
+#endif
+
+#ifdef CONFIG_MACB
+static void usb_a9263_macb_hw_init(void)
+{
+	/* Enable clock */
+	at91_sys_write(AT91_PMC_PCER, 1 << AT91SAM9263_ID_EMAC);
+
+	/*
+	 * Disable pull-up on:
+	 *	RXDV (PC25) => PHY normal mode (not Test mode)
+	 * 	ERX0 (PE25) => PHY ADDR0
+	 *	ERX1 (PE26) => PHY ADDR1 => PHYADDR = 0x0
+	 *
+	 * PHY has internal pull-down
+	 */
+	writel(pin_to_mask(AT91_PIN_PC25),
+	       pin_to_controller(AT91_PIN_PC0) + PIO_PUDR);
+	writel(pin_to_mask(AT91_PIN_PE25) |
+	       pin_to_mask(AT91_PIN_PE26),
+	       pin_to_controller(AT91_PIN_PE0) + 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_PC25),
+	       pin_to_controller(AT91_PIN_PC0) + PIO_PUER);
+	writel(pin_to_mask(AT91_PIN_PE25) |
+	       pin_to_mask(AT91_PIN_PE26),
+	       pin_to_controller(AT91_PIN_PE0) + PIO_PUER);
+
+	at91_macb_hw_init();
+}
+#endif
+
+int board_init(void)
+{
+	/* Enable Ctrlc */
+	console_init_f();
+
+	/* arch number of USB-A9263-Board */
+	gd->bd->bi_arch_number = MACH_TYPE_USB_A9263;
+	/* adress of boot parameters */
+	gd->bd->bi_boot_params = PHYS_SDRAM + 0x100;
+
+	at91_serial_hw_init();
+#ifdef CONFIG_CMD_NAND
+	usb_a9263_nand_hw_init();
+#endif
+#ifdef CONFIG_HAS_DATAFLASH
+	at91_set_gpio_output(AT91_PIN_PE20, 1);	/* select spi0 clock */
+	at91_spi0_hw_init(1 << 0);
+#endif
+#ifdef CONFIG_MACB
+	usb_a9263_macb_hw_init();
+#endif
+#ifdef CONFIG_USB_OHCI_NEW
+	at91_uhp_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
+	rc = macb_eth_initialize(0, (void *)AT91SAM9263_BASE_EMAC, 0x00);
+#endif
+	return rc;
+}
diff --git a/include/configs/usb-a9263.h b/include/configs/usb-a9263.h
new file mode 100644
index 0000000..6bf6c8f
--- /dev/null
+++ b/include/configs/usb-a9263.h
@@ -0,0 +1,188 @@
+/*
+ * (C) Copyright 2007-2008
+ * Stelian Pop <stelian.pop@leadtechdesign.com>
+ * Lead Tech Design <www.leadtechdesign.com>
+ * Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+ *
+ * Configuration settings for the Calao USB-A9263 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
+
+/* ARM asynchronous clock */
+#define AT91_CPU_NAME		"AT91SAM9263"
+#define AT91_MAIN_CLOCK		12000000	/* 12 MHz crystal */
+#define CONFIG_SYS_HZ		1000
+
+#define CONFIG_ARM926EJS	1	/* This is an ARM926EJS Core	*/
+#define CONFIG_AT91SAM9263	1	/* It's an Atmel AT91SAM9263 SoC*/
+#define CONFIG_CALAO_USB_A9263	1	/* on an Calao USB A 9263 Board	*/
+#define CONFIG_ARCH_CPU_INIT
+#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 */
+
+/* LCD */
+#undef CONFIG_LCD
+
+/* LED */
+#define CONFIG_AT91_LED
+#define	CONFIG_RED_LED		AT91_PIN_PB7	/* this is the power led */
+#define	CONFIG_GREEN_LED	AT91_PIN_PB8	/* this is the user1 led */
+#define	CONFIG_YELLOW_LED	AT91_PIN_PC29	/* this is the user2 led */
+
+#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_FPGA
+#undef CONFIG_CMD_IMI
+#undef CONFIG_CMD_IMLS
+#undef CONFIG_CMD_LOADS
+#undef CONFIG_CMD_SOURCE
+
+#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_ATMEL_DATAFLASH_SPI
+#define CONFIG_HAS_DATAFLASH		1
+#define CONFIG_SYS_SPI_WRITE_TOUT		(5*CONFIG_SYS_HZ)
+#define CONFIG_SYS_MAX_DATAFLASH_BANKS		1
+#define CONFIG_SYS_DATAFLASH_LOGIC_ADDR_CS0	0xC0000000	/* CS0 */
+#define AT91_SPI_CLK			8000000
+#define DATAFLASH_TCSS			(0x1c << 16)
+#define DATAFLASH_TCHS			(0x1 << 24)
+
+/* no NOR flash */
+#define CONFIG_SYS_NO_FLASH			1
+
+/* NAND flash */
+#ifdef CONFIG_CMD_NAND
+#define CONFIG_NAND_ATMEL
+#define CONFIG_SYS_MAX_NAND_DEVICE		1
+#define CONFIG_SYS_NAND_BASE			0x40000000
+#define CONFIG_SYS_NAND_DBW_8			1
+/* our ALE is AD21 */
+#define CONFIG_SYS_NAND_MASK_ALE		(1 << 21)
+/* our CLE is AD22 */
+#define CONFIG_SYS_NAND_MASK_CLE		(1 << 22)
+#define CONFIG_SYS_NAND_ENABLE_PIN		AT91_PIN_PD15
+#define CONFIG_SYS_NAND_READY_PIN		AT91_PIN_PA22
+#endif
+
+/* Ethernet */
+#define CONFIG_MACB			1
+#define CONFIG_RMII			1
+#define CONFIG_NET_MULTI		1
+#define CONFIG_NET_RETRY_COUNT		20
+#define CONFIG_RESET_PHY_R		1
+#define CONFIG_MACB_SEARCH_PHY  1
+#define CONFIG_ETHADDR          00:0D:00:0D:00:AB
+
+/* USB */
+#define CONFIG_USB_ATMEL
+#define CONFIG_USB_OHCI_NEW		1
+#define CONFIG_DOS_PARTITION		1
+#define CONFIG_SYS_USB_OHCI_CPU_INIT		1
+#define CONFIG_SYS_USB_OHCI_REGS_BASE		0x00a00000	/* AT91SAM9263_UHP_BASE */
+#define CONFIG_SYS_USB_OHCI_SLOT_NAME		"at91sam9263"
+#define CONFIG_SYS_USB_OHCI_MAX_ROOT_PORTS	2
+#define CONFIG_USB_STORAGE		1
+#define CONFIG_CMD_FAT			1
+
+#define CONFIG_SYS_LOAD_ADDR			0x22000000	/* load address */
+
+#define CONFIG_SYS_MEMTEST_START		PHYS_SDRAM
+#define CONFIG_SYS_MEMTEST_END			0x23e00000
+
+/* bootstrap + u-boot + env in dataflash on CS0 */
+#define CONFIG_ENV_IS_IN_DATAFLASH	1
+#define CONFIG_SYS_MONITOR_BASE	(CONFIG_SYS_DATAFLASH_LOGIC_ADDR_CS0)
+#define CONFIG_ENV_OFFSET		0x2000
+#define CONFIG_ENV_ADDR		(CONFIG_SYS_DATAFLASH_LOGIC_ADDR_CS0 + CONFIG_ENV_OFFSET)
+#define CONFIG_ENV_SIZE		0x2000
+#define CONFIG_BOOTCOMMAND	"nboot 21000000 0"
+#define CONFIG_BOOTARGS		"console=ttyS0,115200 " \
+				"root=/dev/mtdblock1 " \
+				"mtdparts=atmel_nand:2m(kernel)ro,-(root) "\
+				"rw rootfstype=jffs2"
+
+#define CONFIG_BAUDRATE		115200
+#define CONFIG_SYS_BAUDRATE_TABLE	{115200 , 19200, 38400, 57600, 9600 }
+
+#define CONFIG_SYS_PROMPT		"U-Boot> "
+#define CONFIG_SYS_CBSIZE		256
+#define CONFIG_SYS_MAXARGS		16
+#define CONFIG_SYS_PBSIZE		(CONFIG_SYS_CBSIZE + sizeof(CONFIG_SYS_PROMPT) + 16)
+#define CONFIG_SYS_LONGHELP		1
+#define CONFIG_CMDLINE_EDITING	1
+#define CONFIG_AUTO_COMPLETE
+#define CONFIG_SYS_HUSH_PARSER
+#define CONFIG_SYS_PROMPT_HUSH_PS2	"> "
+
+#define ROUND(A, B)		(((A) + (B)) & ~((B) - 1))
+/*
+ * Size of malloc() pool
+ */
+#define CONFIG_SYS_MALLOC_LEN		ROUND(3 * CONFIG_ENV_SIZE + 128*1024, 0x1000)
+#define CONFIG_SYS_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


-- 
Thomas Petazzoni, Free Electrons
Kernel, drivers and embedded Linux development,
consulting, training and support.
http://free-electrons.com

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

* [U-Boot] Support for Calao USB A9263 board based on AT91SAM9263 CPU
  2009-07-01 12:07 [U-Boot] Support for Calao USB A9263 board based on AT91SAM9263 CPU Thomas Petazzoni
@ 2009-07-08 21:42 ` Jean-Christophe PLAGNIOL-VILLARD
  2009-07-15 14:35   ` Thomas Petazzoni
  2009-07-22 15:30 ` Thomas Petazzoni
  1 sibling, 1 reply; 20+ messages in thread
From: Jean-Christophe PLAGNIOL-VILLARD @ 2009-07-08 21:42 UTC (permalink / raw)
  To: u-boot

On 14:07 Wed 01 Jul     , Thomas Petazzoni wrote:
> Hello,
> 
> Here is a patch that adds the support for the Calao USB A9263 board.
> This is my first board support contribution to U-Boot, so don't
> hesitate to comment and suggest improvements.
> 
> Thanks,
> 
> Thomas
this need to move after ---
> 
> ---
and this before
> Support for the Calao USB A9263 board
> 
> The Calao USB A9263 board is a board manufactured and sold by Calao
> Systems <http://www.calao-systems.com>. Its components are very
> similar to the AT91SAM9263EK board, so its configuration is based on
> the configuration of this board. There are however some differences:
> different clocks, no LCD, etc.
> 
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
> 
>  MAKEALL                     |    1 
>  Makefile                    |    3 
>  board/usb-a9263/Makefile    |   56 +++++++++++++
>  board/usb-a9263/config.mk   |    1 
>  board/usb-a9263/led.c       |   44 ++++++++++
>  board/usb-a9263/partition.c |   37 ++++++++
>  board/usb-a9263/usb-a9263.c |  189 ++++++++++++++++++++++++++++++++++++++++++++
>  include/configs/usb-a9263.h |  188 +++++++++++++++++++++++++++++++++++++++++++
>  8 files changed, 519 insertions(+)
> 

> +
> +#ifdef CONFIG_MACB
> +static void usb_a9263_macb_hw_init(void)
> +{
> +	/* Enable clock */
> +	at91_sys_write(AT91_PMC_PCER, 1 << AT91SAM9263_ID_EMAC);
> +
> +	/*
> +	 * Disable pull-up on:
> +	 *	RXDV (PC25) => PHY normal mode (not Test mode)
> +	 * 	ERX0 (PE25) => PHY ADDR0
> +	 *	ERX1 (PE26) => PHY ADDR1 => PHYADDR = 0x0
> +	 *
> +	 * PHY has internal pull-down
> +	 */
> +	writel(pin_to_mask(AT91_PIN_PC25),
> +	       pin_to_controller(AT91_PIN_PC0) + PIO_PUDR);
> +	writel(pin_to_mask(AT91_PIN_PE25) |
> +	       pin_to_mask(AT91_PIN_PE26),
> +	       pin_to_controller(AT91_PIN_PE0) + 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);
> +
please check recent Sedji fix for this
at91sam9260/9263: add back up for the rst(reset controller).
> +	/* Re-enable pull-up */
> +	writel(pin_to_mask(AT91_PIN_PC25),
> +	       pin_to_controller(AT91_PIN_PC0) + PIO_PUER);
> +	writel(pin_to_mask(AT91_PIN_PE25) |
> +	       pin_to_mask(AT91_PIN_PE26),
> +	       pin_to_controller(AT91_PIN_PE0) + PIO_PUER);
> +
> +	at91_macb_hw_init();
> +}
> +#endif
> +
<snip>
>> --- /dev/null
> +++ b/include/configs/usb-a9263.h
> @@ -0,0 +1,188 @@
> +/*
> + * (C) Copyright 2007-2008
> + * Stelian Pop <stelian.pop@leadtechdesign.com>
> + * Lead Tech Design <www.leadtechdesign.com>
> + * Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
> + *
> + * Configuration settings for the Calao USB-A9263 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
> +
> +/* ARM asynchronous clock */
> +#define AT91_CPU_NAME		"AT91SAM9263"
no-need please remove
> +#define AT91_MAIN_CLOCK		12000000	/* 12 MHz crystal */
> +#define CONFIG_SYS_HZ		1000
> +
> +#define CONFIG_ARM926EJS	1	/* This is an ARM926EJS Core	*/
> +#define CONFIG_AT91SAM9263	1	/* It's an Atmel AT91SAM9263 SoC*/
> +#define CONFIG_CALAO_USB_A9263	1	/* on an Calao USB A 9263 Board	*/
> +#define CONFIG_ARCH_CPU_INIT
> +#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 */
> +
> +/* LCD */
> +#undef CONFIG_LCD
> +
> +/* LED */
> +#define CONFIG_AT91_LED
> +#define	CONFIG_RED_LED		AT91_PIN_PB7	/* this is the power led */
> +#define	CONFIG_GREEN_LED	AT91_PIN_PB8	/* this is the user1 led */
> +#define	CONFIG_YELLOW_LED	AT91_PIN_PC29	/* this is the user2 led */
> +
> +#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_FPGA
> +#undef CONFIG_CMD_IMI
> +#undef CONFIG_CMD_IMLS
> +#undef CONFIG_CMD_LOADS
> +#undef CONFIG_CMD_SOURCE
> +
> +#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_ATMEL_DATAFLASH_SPI
> +#define CONFIG_HAS_DATAFLASH		1
> +#define CONFIG_SYS_SPI_WRITE_TOUT		(5*CONFIG_SYS_HZ)
> +#define CONFIG_SYS_MAX_DATAFLASH_BANKS		1
> +#define CONFIG_SYS_DATAFLASH_LOGIC_ADDR_CS0	0xC0000000	/* CS0 */
> +#define AT91_SPI_CLK			8000000
> +#define DATAFLASH_TCSS			(0x1c << 16)
> +#define DATAFLASH_TCHS			(0x1 << 24)
> +
> +/* no NOR flash */
> +#define CONFIG_SYS_NO_FLASH			1
> +
> +/* NAND flash */
> +#ifdef CONFIG_CMD_NAND
> +#define CONFIG_NAND_ATMEL
> +#define CONFIG_SYS_MAX_NAND_DEVICE		1
> +#define CONFIG_SYS_NAND_BASE			0x40000000
> +#define CONFIG_SYS_NAND_DBW_8			1
> +/* our ALE is AD21 */
> +#define CONFIG_SYS_NAND_MASK_ALE		(1 << 21)
> +/* our CLE is AD22 */
> +#define CONFIG_SYS_NAND_MASK_CLE		(1 << 22)
> +#define CONFIG_SYS_NAND_ENABLE_PIN		AT91_PIN_PD15
> +#define CONFIG_SYS_NAND_READY_PIN		AT91_PIN_PA22
> +#endif
> +
> +/* Ethernet */
> +#define CONFIG_MACB			1
> +#define CONFIG_RMII			1
> +#define CONFIG_NET_MULTI		1
> +#define CONFIG_NET_RETRY_COUNT		20
> +#define CONFIG_RESET_PHY_R		1
> +#define CONFIG_MACB_SEARCH_PHY  1
whitespace please fix
> +#define CONFIG_ETHADDR          00:0D:00:0D:00:AB
please remove
> +
Best Regards,
J.

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

* [U-Boot] Support for Calao USB A9263 board based on AT91SAM9263 CPU
  2009-07-08 21:42 ` Jean-Christophe PLAGNIOL-VILLARD
@ 2009-07-15 14:35   ` Thomas Petazzoni
  2009-07-15 14:51     ` Peter Tyser
  2009-07-17 19:41     ` Wolfgang Denk
  0 siblings, 2 replies; 20+ messages in thread
From: Thomas Petazzoni @ 2009-07-15 14:35 UTC (permalink / raw)
  To: u-boot

Support for the Calao USB A9263 board
 
The Calao USB A9263 board is a board manufactured and sold by Calao
Systems <http://www.calao-systems.com>. Its components are very
similar to the AT91SAM9263EK board, so its configuration is based on
the configuration of this board. There are however some differences:
different clocks, no LCD, etc.
 
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>

---

Changes from previous version:

 * Take into account comments from Jean-Christophe Plagniol-Villard
   (whitespace issues, integration of MABC RST fix, removal of MAC
   address setting in board configuration file)

 * Moved board-specific code from board/usb-a9263/ to
   board/calao/usb-a9263/, since support for other boards from Calao
   will follow shortly.

 * Rebased and re-tested with latest U-Boot git.

Thanks for the review and feedback!

 MAKEALL                           |    1 
 Makefile                          |    3 
 board/calao/usb-a9263/Makefile    |   56 ++++++++
 board/calao/usb-a9263/config.mk   |    1 
 board/calao/usb-a9263/led.c       |   44 ++++++
 board/calao/usb-a9263/partition.c |   37 +++++
 board/calao/usb-a9263/usb-a9263.c |  193 ++++++++++++++++++++++++++++
 include/configs/usb-a9263.h       |  186 ++++++++++++++++++++++++++
 8 files changed, 521 insertions(+)

diff --git a/MAKEALL b/MAKEALL
index 020ff73..452d09a 100755
--- a/MAKEALL
+++ b/MAKEALL
@@ -599,6 +599,7 @@ LIST_at91="			\
 	m501sk			\
 	pm9261			\
 	pm9263			\
+	usb9263			\
 "
 
 #########################################################################
diff --git a/Makefile b/Makefile
index 090e645..244b8b1 100644
--- a/Makefile
+++ b/Makefile
@@ -2847,6 +2847,9 @@ at91sam9g45ekes_config	:	unconfig
 pm9263_config	:	unconfig
 	@$(MKCONFIG) $(@:_config=) arm arm926ejs pm9263 ronetix at91
 
+usb_a9263_config	:	unconfig
+	$(MKCONFIG) -a usb-a9263 arm arm926ejs usb-a9263 calao at91
+
 ########################################################################
 ## ARM Integrator boards - see doc/README-integrator for more info.
 integratorap_config	\
diff --git a/board/calao/usb-a9263/Makefile b/board/calao/usb-a9263/Makefile
new file mode 100644
index 0000000..18325e0
--- /dev/null
+++ b/board/calao/usb-a9263/Makefile
@@ -0,0 +1,56 @@
+#
+# (C) Copyright 2003-2008
+# Wolfgang Denk, DENX Software Engineering, wd at denx.de.
+#
+# (C) Copyright 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 $(TOPDIR)/config.mk
+
+LIB	= $(obj)lib$(BOARD).a
+
+COBJS-y += usb-a9263.o
+COBJS-y += led.o
+COBJS-$(CONFIG_HAS_DATAFLASH) += partition.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/calao/usb-a9263/config.mk b/board/calao/usb-a9263/config.mk
new file mode 100644
index 0000000..ff2cfd1
--- /dev/null
+++ b/board/calao/usb-a9263/config.mk
@@ -0,0 +1 @@
+TEXT_BASE = 0x23f00000
diff --git a/board/calao/usb-a9263/led.c b/board/calao/usb-a9263/led.c
new file mode 100644
index 0000000..82c5388
--- /dev/null
+++ b/board/calao/usb-a9263/led.c
@@ -0,0 +1,44 @@
+/*
+ * (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/at91sam9263.h>
+#include <asm/arch/at91_pmc.h>
+#include <asm/arch/gpio.h>
+#include <asm/arch/io.h>
+
+void coloured_LED_init(void)
+{
+	/* Enable clock */
+	at91_sys_write(AT91_PMC_PCER, 1 << AT91SAM9263_ID_PIOB |
+				      1 << AT91SAM9263_ID_PIOCDE);
+
+	at91_set_gpio_output(CONFIG_RED_LED, 1);
+	at91_set_gpio_output(CONFIG_GREEN_LED, 1);
+	at91_set_gpio_output(CONFIG_YELLOW_LED, 1);
+
+	at91_set_gpio_value(CONFIG_RED_LED, 0);
+	at91_set_gpio_value(CONFIG_GREEN_LED, 1);
+	at91_set_gpio_value(CONFIG_YELLOW_LED, 1);
+}
diff --git a/board/calao/usb-a9263/partition.c b/board/calao/usb-a9263/partition.c
new file mode 100644
index 0000000..94ec265
--- /dev/null
+++ b/board/calao/usb-a9263/partition.c
@@ -0,0 +1,37 @@
+/*
+ * (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[CONFIG_SYS_MAX_DATAFLASH_BANKS];
+
+struct dataflash_addr cs[CONFIG_SYS_MAX_DATAFLASH_BANKS] = {
+	{CONFIG_SYS_DATAFLASH_LOGIC_ADDR_CS0, 0},	/* Logical adress, CS */
+};
+
+/*define the area offsets*/
+dataflash_protect_t area_list[NB_DATAFLASH_AREA] = {
+	{0x00000000, 0x00001FFF, FLAG_PROTECT_SET,   0, "Bootstrap"},
+	{0x00002000, 0x00003FFF, FLAG_PROTECT_CLEAR, 0, "Environment"},
+	{0x00004000, 0xFFFFFFFF, FLAG_PROTECT_SET,   0, "U-Boot"},
+};
diff --git a/board/calao/usb-a9263/usb-a9263.c b/board/calao/usb-a9263/usb-a9263.c
new file mode 100644
index 0000000..bf6b87e
--- /dev/null
+++ b/board/calao/usb-a9263/usb-a9263.c
@@ -0,0 +1,193 @@
+/*
+ * (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/sizes.h>
+#include <asm/arch/at91sam9263.h>
+#include <asm/arch/at91sam9263_matrix.h>
+#include <asm/arch/at91sam9_smc.h>
+#include <asm/arch/at91_common.h>
+#include <asm/arch/at91_pmc.h>
+#include <asm/arch/at91_rstc.h>
+#include <asm/arch/clk.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
+ */
+
+#ifdef CONFIG_CMD_NAND
+static void usb_a9263_nand_hw_init(void)
+{
+	unsigned long csa;
+
+	/* Enable CS3 */
+	csa = at91_sys_read(AT91_MATRIX_EBI0CSA);
+	at91_sys_write(AT91_MATRIX_EBI0CSA,
+		       csa | AT91_MATRIX_EBI0_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 CONFIG_SYS_NAND_DBW_16
+		       AT91_SMC_DBW_16 |
+#else /* CONFIG_SYS_NAND_DBW_8 */
+		       AT91_SMC_DBW_8 |
+#endif
+		       AT91_SMC_TDF_(2));
+
+	at91_sys_write(AT91_PMC_PCER, 1 << AT91SAM9263_ID_PIOA |
+				      1 << AT91SAM9263_ID_PIOCDE);
+
+	/* Configure RDY/BSY */
+	at91_set_gpio_input(CONFIG_SYS_NAND_READY_PIN, 1);
+
+	/* Enable NandFlash */
+	at91_set_gpio_output(CONFIG_SYS_NAND_ENABLE_PIN, 1);
+}
+#endif
+
+#ifdef CONFIG_MACB
+static void usb_a9263_macb_hw_init(void)
+{
+	unsigned long rstc;
+
+	/* Enable clock */
+	at91_sys_write(AT91_PMC_PCER, 1 << AT91SAM9263_ID_EMAC);
+
+	/*
+	 * Disable pull-up on:
+	 *	RXDV (PC25) => PHY normal mode (not Test mode)
+	 * 	ERX0 (PE25) => PHY ADDR0
+	 *	ERX1 (PE26) => PHY ADDR1 => PHYADDR = 0x0
+	 *
+	 * PHY has internal pull-down
+	 */
+	writel(pin_to_mask(AT91_PIN_PC25),
+	       pin_to_controller(AT91_PIN_PC0) + PIO_PUDR);
+	writel(pin_to_mask(AT91_PIN_PE25) |
+	       pin_to_mask(AT91_PIN_PE26),
+	       pin_to_controller(AT91_PIN_PE0) + PIO_PUDR);
+
+	rstc = at91_sys_read(AT91_RSTC_MR) & AT91_RSTC_ERSTL;
+
+	/* 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 |
+				     (rstc) |
+				     AT91_RSTC_URSTEN);
+
+	/* Re-enable pull-up */
+	writel(pin_to_mask(AT91_PIN_PC25),
+	       pin_to_controller(AT91_PIN_PC0) + PIO_PUER);
+	writel(pin_to_mask(AT91_PIN_PE25) |
+	       pin_to_mask(AT91_PIN_PE26),
+	       pin_to_controller(AT91_PIN_PE0) + PIO_PUER);
+
+	at91_macb_hw_init();
+}
+#endif
+
+int board_init(void)
+{
+	/* Enable Ctrlc */
+	console_init_f();
+
+	/* arch number of USB-A9263-Board */
+	gd->bd->bi_arch_number = MACH_TYPE_USB_A9263;
+	/* adress of boot parameters */
+	gd->bd->bi_boot_params = PHYS_SDRAM + 0x100;
+
+	at91_serial_hw_init();
+#ifdef CONFIG_CMD_NAND
+	usb_a9263_nand_hw_init();
+#endif
+#ifdef CONFIG_HAS_DATAFLASH
+	at91_set_gpio_output(AT91_PIN_PE20, 1);	/* select spi0 clock */
+	at91_spi0_hw_init(1 << 0);
+#endif
+#ifdef CONFIG_MACB
+	usb_a9263_macb_hw_init();
+#endif
+#ifdef CONFIG_USB_OHCI_NEW
+	at91_uhp_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
+	rc = macb_eth_initialize(0, (void *)AT91SAM9263_BASE_EMAC, 0x00);
+#endif
+	return rc;
+}
diff --git a/include/configs/usb-a9263.h b/include/configs/usb-a9263.h
new file mode 100644
index 0000000..b670f5f
--- /dev/null
+++ b/include/configs/usb-a9263.h
@@ -0,0 +1,186 @@
+/*
+ * (C) Copyright 2007-2008
+ * Stelian Pop <stelian.pop@leadtechdesign.com>
+ * Lead Tech Design <www.leadtechdesign.com>
+ * Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+ *
+ * Configuration settings for the Calao USB-A9263 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
+
+/* ARM asynchronous clock */
+#define AT91_MAIN_CLOCK		12000000	/* 12 MHz crystal */
+#define CONFIG_SYS_HZ		1000
+
+#define CONFIG_ARM926EJS	1	/* This is an ARM926EJS Core	*/
+#define CONFIG_AT91SAM9263	1	/* It's an Atmel AT91SAM9263 SoC*/
+#define CONFIG_CALAO_USB_A9263	1	/* on an Calao USB A 9263 Board	*/
+#define CONFIG_ARCH_CPU_INIT
+#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 */
+
+/* LCD */
+#undef CONFIG_LCD
+
+/* LED */
+#define CONFIG_AT91_LED
+#define	CONFIG_RED_LED		AT91_PIN_PB7	/* this is the power led */
+#define	CONFIG_GREEN_LED	AT91_PIN_PB8	/* this is the user1 led */
+#define	CONFIG_YELLOW_LED	AT91_PIN_PC29	/* this is the user2 led */
+
+#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_FPGA
+#undef CONFIG_CMD_IMI
+#undef CONFIG_CMD_IMLS
+#undef CONFIG_CMD_LOADS
+#undef CONFIG_CMD_SOURCE
+
+#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_ATMEL_DATAFLASH_SPI
+#define CONFIG_HAS_DATAFLASH		1
+#define CONFIG_SYS_SPI_WRITE_TOUT		(5*CONFIG_SYS_HZ)
+#define CONFIG_SYS_MAX_DATAFLASH_BANKS		1
+#define CONFIG_SYS_DATAFLASH_LOGIC_ADDR_CS0	0xC0000000	/* CS0 */
+#define AT91_SPI_CLK			8000000
+#define DATAFLASH_TCSS			(0x1c << 16)
+#define DATAFLASH_TCHS			(0x1 << 24)
+
+/* no NOR flash */
+#define CONFIG_SYS_NO_FLASH			1
+
+/* NAND flash */
+#ifdef CONFIG_CMD_NAND
+#define CONFIG_NAND_ATMEL
+#define CONFIG_SYS_MAX_NAND_DEVICE		1
+#define CONFIG_SYS_NAND_BASE			0x40000000
+#define CONFIG_SYS_NAND_DBW_8			1
+/* our ALE is AD21 */
+#define CONFIG_SYS_NAND_MASK_ALE		(1 << 21)
+/* our CLE is AD22 */
+#define CONFIG_SYS_NAND_MASK_CLE		(1 << 22)
+#define CONFIG_SYS_NAND_ENABLE_PIN		AT91_PIN_PD15
+#define CONFIG_SYS_NAND_READY_PIN		AT91_PIN_PA22
+#endif
+
+/* Ethernet */
+#define CONFIG_MACB			1
+#define CONFIG_RMII			1
+#define CONFIG_NET_MULTI		1
+#define CONFIG_NET_RETRY_COUNT		20
+#define CONFIG_RESET_PHY_R		1
+#define CONFIG_MACB_SEARCH_PHY		1
+
+/* USB */
+#define CONFIG_USB_ATMEL
+#define CONFIG_USB_OHCI_NEW		1
+#define CONFIG_DOS_PARTITION		1
+#define CONFIG_SYS_USB_OHCI_CPU_INIT		1
+#define CONFIG_SYS_USB_OHCI_REGS_BASE		0x00a00000	/* AT91SAM9263_UHP_BASE */
+#define CONFIG_SYS_USB_OHCI_SLOT_NAME		"at91sam9263"
+#define CONFIG_SYS_USB_OHCI_MAX_ROOT_PORTS	2
+#define CONFIG_USB_STORAGE		1
+#define CONFIG_CMD_FAT			1
+
+#define CONFIG_SYS_LOAD_ADDR			0x22000000	/* load address */
+
+#define CONFIG_SYS_MEMTEST_START		PHYS_SDRAM
+#define CONFIG_SYS_MEMTEST_END			0x23e00000
+
+/* bootstrap + u-boot + env in dataflash on CS0 */
+#define CONFIG_ENV_IS_IN_DATAFLASH	1
+#define CONFIG_SYS_MONITOR_BASE	(CONFIG_SYS_DATAFLASH_LOGIC_ADDR_CS0)
+#define CONFIG_ENV_OFFSET		0x2000
+#define CONFIG_ENV_ADDR		(CONFIG_SYS_DATAFLASH_LOGIC_ADDR_CS0 + CONFIG_ENV_OFFSET)
+#define CONFIG_ENV_SIZE		0x2000
+#define CONFIG_BOOTCOMMAND	"nboot 21000000 0"
+#define CONFIG_BOOTARGS		"console=ttyS0,115200 " \
+				"root=/dev/mtdblock1 " \
+				"mtdparts=atmel_nand:2m(kernel)ro,-(root) "\
+				"rw rootfstype=jffs2"
+
+#define CONFIG_BAUDRATE		115200
+#define CONFIG_SYS_BAUDRATE_TABLE	{115200 , 19200, 38400, 57600, 9600 }
+
+#define CONFIG_SYS_PROMPT		"U-Boot> "
+#define CONFIG_SYS_CBSIZE		256
+#define CONFIG_SYS_MAXARGS		16
+#define CONFIG_SYS_PBSIZE		(CONFIG_SYS_CBSIZE + sizeof(CONFIG_SYS_PROMPT) + 16)
+#define CONFIG_SYS_LONGHELP		1
+#define CONFIG_CMDLINE_EDITING	1
+#define CONFIG_AUTO_COMPLETE
+#define CONFIG_SYS_HUSH_PARSER
+#define CONFIG_SYS_PROMPT_HUSH_PS2	"> "
+
+#define ROUND(A, B)		(((A) + (B)) & ~((B) - 1))
+/*
+ * Size of malloc() pool
+ */
+#define CONFIG_SYS_MALLOC_LEN		ROUND(3 * CONFIG_ENV_SIZE + 128*1024, 0x1000)
+#define CONFIG_SYS_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



-- 
Thomas Petazzoni, Free Electrons
Kernel, drivers and embedded Linux development,
consulting, training and support.
http://free-electrons.com

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

* [U-Boot] Support for Calao USB A9263 board based on AT91SAM9263 CPU
  2009-07-15 14:35   ` Thomas Petazzoni
@ 2009-07-15 14:51     ` Peter Tyser
  2009-07-16 11:39       ` Thomas Petazzoni
  2009-07-17 19:41     ` Wolfgang Denk
  1 sibling, 1 reply; 20+ messages in thread
From: Peter Tyser @ 2009-07-15 14:51 UTC (permalink / raw)
  To: u-boot

On Wed, 2009-07-15 at 16:35 +0200, Thomas Petazzoni wrote:
> Support for the Calao USB A9263 board

You can get rid of the line above.  It is nearly identical to the patch
subject and doesn't add any useful info.

<snip>

> 
>  MAKEALL                           |    1 
>  Makefile                          |    3 

You should add an entry to MAINTAINERS

<snip>

> +/* LED */
> +#define CONFIG_AT91_LED
> +#define	CONFIG_RED_LED		AT91_PIN_PB7	/* this is the power led */
> +#define	CONFIG_GREEN_LED	AT91_PIN_PB8	/* this is the user1 led */
> +#define	CONFIG_YELLOW_LED	AT91_PIN_PC29	/* this is the user2 led */

Funky indentation.

<snip>

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

I'd try and use the round functions already in include/common.h if
possible.  Maybe its not possible if this file is included prior to
common.h though, I'm not sure.

Best,
Peter

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

* [U-Boot] Support for Calao USB A9263 board based on AT91SAM9263 CPU
  2009-07-15 14:51     ` Peter Tyser
@ 2009-07-16 11:39       ` Thomas Petazzoni
  2009-07-16 14:52         ` Peter Tyser
  0 siblings, 1 reply; 20+ messages in thread
From: Thomas Petazzoni @ 2009-07-16 11:39 UTC (permalink / raw)
  To: u-boot

Le Wed, 15 Jul 2009 09:51:27 -0500,
Peter Tyser <ptyser@xes-inc.com> a ?crit :

> You can get rid of the line above.  It is nearly identical to the
> patch subject and doesn't add any useful info.

Ok.

> >  MAKEALL                           |    1 
> >  Makefile                          |    3 
> 
> You should add an entry to MAINTAINERS

Done.

> > +/* LED */
> > +#define CONFIG_AT91_LED
> > +#define	CONFIG_RED_LED
> > AT91_PIN_PB7	/* this is the power led */ +#define
> > CONFIG_GREEN_LED	AT91_PIN_PB8	/* this is the user1
> > led */ +#define	CONFIG_YELLOW_LED
> > AT91_PIN_PC29	/* this is the user2 led */
> 
> Funky indentation.

Fixed.

> > +#define ROUND(A, B)		(((A) + (B)) & ~((B) - 1))
> 
> I'd try and use the round functions already in include/common.h if
> possible.  Maybe its not possible if this file is included prior to
> common.h though, I'm not sure.

Not sure about this one. All at91 boards do it this way, so if a fix
needs to be done, I'd suggest to make it separatly. Is this ok ?

Below is an updated version of the patch. Not sure it's the right way
to resend it, though.

Thanks for the review!

Thomas

The Calao USB A9263 board is a board manufactured and sold by Calao
Systems <http://www.calao-systems.com>. Its components are very
similar to the AT91SAM9263EK board, so its configuration is based on
the configuration of this board. There are however some differences:
different clocks, no LCD, etc.
 
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>

 MAINTAINERS                       |    4 
 MAKEALL                           |    1 
 Makefile                          |    3 
 board/calao/usb-a9263/Makefile    |   56 ++++++++
 board/calao/usb-a9263/config.mk   |    1 
 board/calao/usb-a9263/led.c       |   44 ++++++
 board/calao/usb-a9263/partition.c |   37 +++++
 board/calao/usb-a9263/usb-a9263.c |  193 ++++++++++++++++++++++++++++
 include/configs/usb-a9263.h       |  186 ++++++++++++++++++++++++++
 9 files changed, 525 insertions(+)

diff --git a/MAINTAINERS b/MAINTAINERS
index 575a7ec..5c37647 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -624,6 +624,10 @@ Peter Pearse <peter.pearse@arm.com>
 	versatile	ARM926EJ-S
 	versatile	ARM926EJ-S
 
+Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+	usb-a9263	ARM926EJS (AT91SAM9263 SoC)
+
 Dave Peverley <dpeverley@mpc-data.co.uk>
 
 	omap730p2	ARM926EJS
diff --git a/MAKEALL b/MAKEALL
index 020ff73..452d09a 100755
--- a/MAKEALL
+++ b/MAKEALL
@@ -599,6 +599,7 @@ LIST_at91="			\
 	m501sk			\
 	pm9261			\
 	pm9263			\
+	usb9263			\
 "
 
 #########################################################################
diff --git a/Makefile b/Makefile
index 090e645..244b8b1 100644
--- a/Makefile
+++ b/Makefile
@@ -2847,6 +2847,9 @@ at91sam9g45ekes_config	:	unconfig
 pm9263_config	:	unconfig
 	@$(MKCONFIG) $(@:_config=) arm arm926ejs pm9263 ronetix at91
 
+usb_a9263_config	:	unconfig
+	$(MKCONFIG) -a usb-a9263 arm arm926ejs usb-a9263 calao at91
+
 ########################################################################
 ## ARM Integrator boards - see doc/README-integrator for more info.
 integratorap_config	\
diff --git a/board/calao/usb-a9263/Makefile b/board/calao/usb-a9263/Makefile
new file mode 100644
index 0000000..18325e0
--- /dev/null
+++ b/board/calao/usb-a9263/Makefile
@@ -0,0 +1,56 @@
+#
+# (C) Copyright 2003-2008
+# Wolfgang Denk, DENX Software Engineering, wd at denx.de.
+#
+# (C) Copyright 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 $(TOPDIR)/config.mk
+
+LIB	= $(obj)lib$(BOARD).a
+
+COBJS-y += usb-a9263.o
+COBJS-y += led.o
+COBJS-$(CONFIG_HAS_DATAFLASH) += partition.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/calao/usb-a9263/config.mk b/board/calao/usb-a9263/config.mk
new file mode 100644
index 0000000..ff2cfd1
--- /dev/null
+++ b/board/calao/usb-a9263/config.mk
@@ -0,0 +1 @@
+TEXT_BASE = 0x23f00000
diff --git a/board/calao/usb-a9263/led.c b/board/calao/usb-a9263/led.c
new file mode 100644
index 0000000..82c5388
--- /dev/null
+++ b/board/calao/usb-a9263/led.c
@@ -0,0 +1,44 @@
+/*
+ * (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/at91sam9263.h>
+#include <asm/arch/at91_pmc.h>
+#include <asm/arch/gpio.h>
+#include <asm/arch/io.h>
+
+void coloured_LED_init(void)
+{
+	/* Enable clock */
+	at91_sys_write(AT91_PMC_PCER, 1 << AT91SAM9263_ID_PIOB |
+				      1 << AT91SAM9263_ID_PIOCDE);
+
+	at91_set_gpio_output(CONFIG_RED_LED, 1);
+	at91_set_gpio_output(CONFIG_GREEN_LED, 1);
+	at91_set_gpio_output(CONFIG_YELLOW_LED, 1);
+
+	at91_set_gpio_value(CONFIG_RED_LED, 0);
+	at91_set_gpio_value(CONFIG_GREEN_LED, 1);
+	at91_set_gpio_value(CONFIG_YELLOW_LED, 1);
+}
diff --git a/board/calao/usb-a9263/partition.c b/board/calao/usb-a9263/partition.c
new file mode 100644
index 0000000..94ec265
--- /dev/null
+++ b/board/calao/usb-a9263/partition.c
@@ -0,0 +1,37 @@
+/*
+ * (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[CONFIG_SYS_MAX_DATAFLASH_BANKS];
+
+struct dataflash_addr cs[CONFIG_SYS_MAX_DATAFLASH_BANKS] = {
+	{CONFIG_SYS_DATAFLASH_LOGIC_ADDR_CS0, 0},	/* Logical adress, CS */
+};
+
+/*define the area offsets*/
+dataflash_protect_t area_list[NB_DATAFLASH_AREA] = {
+	{0x00000000, 0x00001FFF, FLAG_PROTECT_SET,   0, "Bootstrap"},
+	{0x00002000, 0x00003FFF, FLAG_PROTECT_CLEAR, 0, "Environment"},
+	{0x00004000, 0xFFFFFFFF, FLAG_PROTECT_SET,   0, "U-Boot"},
+};
diff --git a/board/calao/usb-a9263/usb-a9263.c b/board/calao/usb-a9263/usb-a9263.c
new file mode 100644
index 0000000..bf6b87e
--- /dev/null
+++ b/board/calao/usb-a9263/usb-a9263.c
@@ -0,0 +1,193 @@
+/*
+ * (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/sizes.h>
+#include <asm/arch/at91sam9263.h>
+#include <asm/arch/at91sam9263_matrix.h>
+#include <asm/arch/at91sam9_smc.h>
+#include <asm/arch/at91_common.h>
+#include <asm/arch/at91_pmc.h>
+#include <asm/arch/at91_rstc.h>
+#include <asm/arch/clk.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
+ */
+
+#ifdef CONFIG_CMD_NAND
+static void usb_a9263_nand_hw_init(void)
+{
+	unsigned long csa;
+
+	/* Enable CS3 */
+	csa = at91_sys_read(AT91_MATRIX_EBI0CSA);
+	at91_sys_write(AT91_MATRIX_EBI0CSA,
+		       csa | AT91_MATRIX_EBI0_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 CONFIG_SYS_NAND_DBW_16
+		       AT91_SMC_DBW_16 |
+#else /* CONFIG_SYS_NAND_DBW_8 */
+		       AT91_SMC_DBW_8 |
+#endif
+		       AT91_SMC_TDF_(2));
+
+	at91_sys_write(AT91_PMC_PCER, 1 << AT91SAM9263_ID_PIOA |
+				      1 << AT91SAM9263_ID_PIOCDE);
+
+	/* Configure RDY/BSY */
+	at91_set_gpio_input(CONFIG_SYS_NAND_READY_PIN, 1);
+
+	/* Enable NandFlash */
+	at91_set_gpio_output(CONFIG_SYS_NAND_ENABLE_PIN, 1);
+}
+#endif
+
+#ifdef CONFIG_MACB
+static void usb_a9263_macb_hw_init(void)
+{
+	unsigned long rstc;
+
+	/* Enable clock */
+	at91_sys_write(AT91_PMC_PCER, 1 << AT91SAM9263_ID_EMAC);
+
+	/*
+	 * Disable pull-up on:
+	 *	RXDV (PC25) => PHY normal mode (not Test mode)
+	 * 	ERX0 (PE25) => PHY ADDR0
+	 *	ERX1 (PE26) => PHY ADDR1 => PHYADDR = 0x0
+	 *
+	 * PHY has internal pull-down
+	 */
+	writel(pin_to_mask(AT91_PIN_PC25),
+	       pin_to_controller(AT91_PIN_PC0) + PIO_PUDR);
+	writel(pin_to_mask(AT91_PIN_PE25) |
+	       pin_to_mask(AT91_PIN_PE26),
+	       pin_to_controller(AT91_PIN_PE0) + PIO_PUDR);
+
+	rstc = at91_sys_read(AT91_RSTC_MR) & AT91_RSTC_ERSTL;
+
+	/* 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 |
+				     (rstc) |
+				     AT91_RSTC_URSTEN);
+
+	/* Re-enable pull-up */
+	writel(pin_to_mask(AT91_PIN_PC25),
+	       pin_to_controller(AT91_PIN_PC0) + PIO_PUER);
+	writel(pin_to_mask(AT91_PIN_PE25) |
+	       pin_to_mask(AT91_PIN_PE26),
+	       pin_to_controller(AT91_PIN_PE0) + PIO_PUER);
+
+	at91_macb_hw_init();
+}
+#endif
+
+int board_init(void)
+{
+	/* Enable Ctrlc */
+	console_init_f();
+
+	/* arch number of USB-A9263-Board */
+	gd->bd->bi_arch_number = MACH_TYPE_USB_A9263;
+	/* adress of boot parameters */
+	gd->bd->bi_boot_params = PHYS_SDRAM + 0x100;
+
+	at91_serial_hw_init();
+#ifdef CONFIG_CMD_NAND
+	usb_a9263_nand_hw_init();
+#endif
+#ifdef CONFIG_HAS_DATAFLASH
+	at91_set_gpio_output(AT91_PIN_PE20, 1);	/* select spi0 clock */
+	at91_spi0_hw_init(1 << 0);
+#endif
+#ifdef CONFIG_MACB
+	usb_a9263_macb_hw_init();
+#endif
+#ifdef CONFIG_USB_OHCI_NEW
+	at91_uhp_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
+	rc = macb_eth_initialize(0, (void *)AT91SAM9263_BASE_EMAC, 0x00);
+#endif
+	return rc;
+}
diff --git a/include/configs/usb-a9263.h b/include/configs/usb-a9263.h
new file mode 100644
index 0000000..fe479b2
--- /dev/null
+++ b/include/configs/usb-a9263.h
@@ -0,0 +1,186 @@
+/*
+ * (C) Copyright 2007-2008
+ * Stelian Pop <stelian.pop@leadtechdesign.com>
+ * Lead Tech Design <www.leadtechdesign.com>
+ * Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+ *
+ * Configuration settings for the Calao USB-A9263 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
+
+/* ARM asynchronous clock */
+#define AT91_MAIN_CLOCK		12000000	/* 12 MHz crystal */
+#define CONFIG_SYS_HZ		1000
+
+#define CONFIG_ARM926EJS	1	/* This is an ARM926EJS Core	*/
+#define CONFIG_AT91SAM9263	1	/* It's an Atmel AT91SAM9263 SoC*/
+#define CONFIG_CALAO_USB_A9263	1	/* on an Calao USB A 9263 Board	*/
+#define CONFIG_ARCH_CPU_INIT
+#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 */
+
+/* LCD */
+#undef CONFIG_LCD
+
+/* LED */
+#define CONFIG_AT91_LED
+#define CONFIG_RED_LED		AT91_PIN_PB7	/* this is the power led */
+#define CONFIG_GREEN_LED	AT91_PIN_PB8	/* this is the user1 led */
+#define CONFIG_YELLOW_LED	AT91_PIN_PC29	/* this is the user2 led */
+
+#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_FPGA
+#undef CONFIG_CMD_IMI
+#undef CONFIG_CMD_IMLS
+#undef CONFIG_CMD_LOADS
+#undef CONFIG_CMD_SOURCE
+
+#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_ATMEL_DATAFLASH_SPI
+#define CONFIG_HAS_DATAFLASH		1
+#define CONFIG_SYS_SPI_WRITE_TOUT		(5*CONFIG_SYS_HZ)
+#define CONFIG_SYS_MAX_DATAFLASH_BANKS		1
+#define CONFIG_SYS_DATAFLASH_LOGIC_ADDR_CS0	0xC0000000	/* CS0 */
+#define AT91_SPI_CLK			8000000
+#define DATAFLASH_TCSS			(0x1c << 16)
+#define DATAFLASH_TCHS			(0x1 << 24)
+
+/* no NOR flash */
+#define CONFIG_SYS_NO_FLASH			1
+
+/* NAND flash */
+#ifdef CONFIG_CMD_NAND
+#define CONFIG_NAND_ATMEL
+#define CONFIG_SYS_MAX_NAND_DEVICE		1
+#define CONFIG_SYS_NAND_BASE			0x40000000
+#define CONFIG_SYS_NAND_DBW_8			1
+/* our ALE is AD21 */
+#define CONFIG_SYS_NAND_MASK_ALE		(1 << 21)
+/* our CLE is AD22 */
+#define CONFIG_SYS_NAND_MASK_CLE		(1 << 22)
+#define CONFIG_SYS_NAND_ENABLE_PIN		AT91_PIN_PD15
+#define CONFIG_SYS_NAND_READY_PIN		AT91_PIN_PA22
+#endif
+
+/* Ethernet */
+#define CONFIG_MACB			1
+#define CONFIG_RMII			1
+#define CONFIG_NET_MULTI		1
+#define CONFIG_NET_RETRY_COUNT		20
+#define CONFIG_RESET_PHY_R		1
+#define CONFIG_MACB_SEARCH_PHY		1
+
+/* USB */
+#define CONFIG_USB_ATMEL
+#define CONFIG_USB_OHCI_NEW		1
+#define CONFIG_DOS_PARTITION		1
+#define CONFIG_SYS_USB_OHCI_CPU_INIT		1
+#define CONFIG_SYS_USB_OHCI_REGS_BASE		0x00a00000	/* AT91SAM9263_UHP_BASE */
+#define CONFIG_SYS_USB_OHCI_SLOT_NAME		"at91sam9263"
+#define CONFIG_SYS_USB_OHCI_MAX_ROOT_PORTS	2
+#define CONFIG_USB_STORAGE		1
+#define CONFIG_CMD_FAT			1
+
+#define CONFIG_SYS_LOAD_ADDR			0x22000000	/* load address */
+
+#define CONFIG_SYS_MEMTEST_START		PHYS_SDRAM
+#define CONFIG_SYS_MEMTEST_END			0x23e00000
+
+/* bootstrap + u-boot + env in dataflash on CS0 */
+#define CONFIG_ENV_IS_IN_DATAFLASH	1
+#define CONFIG_SYS_MONITOR_BASE	(CONFIG_SYS_DATAFLASH_LOGIC_ADDR_CS0)
+#define CONFIG_ENV_OFFSET		0x2000
+#define CONFIG_ENV_ADDR		(CONFIG_SYS_DATAFLASH_LOGIC_ADDR_CS0 + CONFIG_ENV_OFFSET)
+#define CONFIG_ENV_SIZE		0x2000
+#define CONFIG_BOOTCOMMAND	"nboot 21000000 0"
+#define CONFIG_BOOTARGS		"console=ttyS0,115200 " \
+				"root=/dev/mtdblock1 " \
+				"mtdparts=atmel_nand:2m(kernel)ro,-(root) "\
+				"rw rootfstype=jffs2"
+
+#define CONFIG_BAUDRATE		115200
+#define CONFIG_SYS_BAUDRATE_TABLE	{115200 , 19200, 38400, 57600, 9600 }
+
+#define CONFIG_SYS_PROMPT		"U-Boot> "
+#define CONFIG_SYS_CBSIZE		256
+#define CONFIG_SYS_MAXARGS		16
+#define CONFIG_SYS_PBSIZE		(CONFIG_SYS_CBSIZE + sizeof(CONFIG_SYS_PROMPT) + 16)
+#define CONFIG_SYS_LONGHELP		1
+#define CONFIG_CMDLINE_EDITING	1
+#define CONFIG_AUTO_COMPLETE
+#define CONFIG_SYS_HUSH_PARSER
+#define CONFIG_SYS_PROMPT_HUSH_PS2	"> "
+
+#define ROUND(A, B)		(((A) + (B)) & ~((B) - 1))
+/*
+ * Size of malloc() pool
+ */
+#define CONFIG_SYS_MALLOC_LEN		ROUND(3 * CONFIG_ENV_SIZE + 128*1024, 0x1000)
+#define CONFIG_SYS_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


-- 
Thomas Petazzoni, Free Electrons
Kernel, drivers and embedded Linux development,
consulting, training and support.
http://free-electrons.com

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

* [U-Boot] Support for Calao USB A9263 board based on AT91SAM9263 CPU
  2009-07-16 11:39       ` Thomas Petazzoni
@ 2009-07-16 14:52         ` Peter Tyser
  2009-07-20 15:40           ` Thomas Petazzoni
  0 siblings, 1 reply; 20+ messages in thread
From: Peter Tyser @ 2009-07-16 14:52 UTC (permalink / raw)
  To: u-boot

Hi Thomas,

> > > +#define ROUND(A, B)		(((A) + (B)) & ~((B) - 1))
> > 
> > I'd try and use the round functions already in include/common.h if
> > possible.  Maybe its not possible if this file is included prior to
> > common.h though, I'm not sure.
> 
> Not sure about this one. All at91 boards do it this way, so if a fix
> needs to be done, I'd suggest to make it separatly. Is this ok ?

I don't have the final say here, I'm just giving my opinion.  If it was
possible to clean up, the best way in my would be to fix your board (ie
this patch), then send a separate follow-up patch fixing other boards.
I don't think its too big of a deal either way.

> Below is an updated version of the patch. Not sure it's the right way
> to resend it, though.

Not quite the right way.  As is, all your comments above would go into
U-Boot's changelog, which you don't want.  You should either send your
patch and comments in separate emails, or put any comments you don't
want in the changelog below the --- mentioned below.

> The Calao USB A9263 board is a board manufactured and sold by Calao
> Systems <http://www.calao-systems.com>. Its components are very
> similar to the AT91SAM9263EK board, so its configuration is based on
> the configuration of this board. There are however some differences:
> different clocks, no LCD, etc.
>  
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>

You need to add a '---' line here.  Anything from the --- to the first
diff below are only comments and will be discarded when your patch is
applied.

>  MAINTAINERS                       |    4 
>  MAKEALL                           |    1 
>  Makefile                          |    3 
>  board/calao/usb-a9263/Makefile    |   56 ++++++++
>  board/calao/usb-a9263/config.mk   |    1 
>  board/calao/usb-a9263/led.c       |   44 ++++++
>  board/calao/usb-a9263/partition.c |   37 +++++
>  board/calao/usb-a9263/usb-a9263.c |  193 ++++++++++++++++++++++++++++
>  include/configs/usb-a9263.h       |  186 ++++++++++++++++++++++++++
>  9 files changed, 525 insertions(+)
> 
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 575a7ec..5c37647 100644
> --- a/MAINTAINERS

<snip>

> +#########################################################################
> diff --git a/board/calao/usb-a9263/config.mk b/board/calao/usb-a9263/config.mk
> new file mode 100644
> index 0000000..ff2cfd1
> --- /dev/null
> +++ b/board/calao/usb-a9263/config.mk
> @@ -0,0 +1 @@
> +TEXT_BASE = 0x23f00000

You should add a copyright header of some sort to config.mk.

Best,
Peter

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

* [U-Boot] Support for Calao USB A9263 board based on AT91SAM9263 CPU
  2009-07-15 14:35   ` Thomas Petazzoni
  2009-07-15 14:51     ` Peter Tyser
@ 2009-07-17 19:41     ` Wolfgang Denk
  2009-07-20 15:42       ` Thomas Petazzoni
  1 sibling, 1 reply; 20+ messages in thread
From: Wolfgang Denk @ 2009-07-17 19:41 UTC (permalink / raw)
  To: u-boot

Dear Thomas Petazzoni,

In message <20090715163557.08b58415@surf> you wrote:
> Support for the Calao USB A9263 board
>  
> The Calao USB A9263 board is a board manufactured and sold by Calao
> Systems <http://www.calao-systems.com>. Its components are very
> similar to the AT91SAM9263EK board, so its configuration is based on
> the configuration of this board. There are however some differences:
> different clocks, no LCD, etc.
>  
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
> 
> ---
...
>  MAKEALL                           |    1 
>  Makefile                          |    3 
>  board/calao/usb-a9263/Makefile    |   56 ++++++++
>  board/calao/usb-a9263/config.mk   |    1 
>  board/calao/usb-a9263/led.c       |   44 ++++++
>  board/calao/usb-a9263/partition.c |   37 +++++
>  board/calao/usb-a9263/usb-a9263.c |  193 ++++++++++++++++++++++++++++
>  include/configs/usb-a9263.h       |  186 ++++++++++++++++++++++++++
>  8 files changed, 521 insertions(+)

Entries to maintainers is missing.

> +int dram_init(void)
> +{
> +	gd->bd->bi_dram[0].start = PHYS_SDRAM;
> +	gd->bd->bi_dram[0].size = PHYS_SDRAM_SIZE;
> +	return 0;
> +}

Any specific reason for not using autosizing and testing via
get_ram_size() ?

> diff --git a/include/configs/usb-a9263.h b/include/configs/usb-a9263.h
> new file mode 100644
> index 0000000..b670f5f
> --- /dev/null
> +++ b/include/configs/usb-a9263.h
...
> +/* bootstrap + u-boot + env in dataflash on CS0 */
> +#define CONFIG_ENV_IS_IN_DATAFLASH	1
> +#define CONFIG_SYS_MONITOR_BASE	(CONFIG_SYS_DATAFLASH_LOGIC_ADDR_CS0)
> +#define CONFIG_ENV_OFFSET		0x2000
> +#define CONFIG_ENV_ADDR		(CONFIG_SYS_DATAFLASH_LOGIC_ADDR_CS0 + CONFIG_ENV_OFFSET)

Line too long. Please fix globally.


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
[Doctors and Bartenders], We both get the same two kinds of customers
-- the living and the dying.
	-- Dr. Boyce, "The Menagerie" ("The Cage"), stardate unknown

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

* [U-Boot] Support for Calao USB A9263 board based on AT91SAM9263 CPU
  2009-07-16 14:52         ` Peter Tyser
@ 2009-07-20 15:40           ` Thomas Petazzoni
  2009-07-20 15:51             ` Peter Tyser
  0 siblings, 1 reply; 20+ messages in thread
From: Thomas Petazzoni @ 2009-07-20 15:40 UTC (permalink / raw)
  To: u-boot

Le Thu, 16 Jul 2009 09:52:43 -0500,
Peter Tyser <ptyser@xes-inc.com> a ?crit :

> I don't have the final say here, I'm just giving my opinion.  If it
> was possible to clean up, the best way in my would be to fix your
> board (ie this patch), then send a separate follow-up patch fixing
> other boards. I don't think its too big of a deal either way.

Including <common.h> in a include/configs/ configuration file doesn't
seem to work, unfortunately.

> > +#########################################################################
> > diff --git a/board/calao/usb-a9263/config.mk
> > b/board/calao/usb-a9263/config.mk new file mode 100644
> > index 0000000..ff2cfd1
> > --- /dev/null
> > +++ b/board/calao/usb-a9263/config.mk
> > @@ -0,0 +1 @@
> > +TEXT_BASE = 0x23f00000
> 
> You should add a copyright header of some sort to config.mk.

In a one-line file, which just contains a factual definition ?

Thanks!

Thomas
-- 
Thomas Petazzoni, Free Electrons
Kernel, drivers and embedded Linux development,
consulting, training and support.
http://free-electrons.com

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

* [U-Boot] Support for Calao USB A9263 board based on AT91SAM9263 CPU
  2009-07-17 19:41     ` Wolfgang Denk
@ 2009-07-20 15:42       ` Thomas Petazzoni
  2009-07-20 21:11         ` Wolfgang Denk
  0 siblings, 1 reply; 20+ messages in thread
From: Thomas Petazzoni @ 2009-07-20 15:42 UTC (permalink / raw)
  To: u-boot

Le Fri, 17 Jul 2009 21:41:43 +0200,
Wolfgang Denk <wd@denx.de> a ?crit :

> Entries to maintainers is missing.

Yes, it was missing in the initial version of my patch, but further
versions got it added, thanks to other people review.

> > +int dram_init(void)
> > +{
> > +	gd->bd->bi_dram[0].start = PHYS_SDRAM;
> > +	gd->bd->bi_dram[0].size = PHYS_SDRAM_SIZE;
> > +	return 0;
> > +}
> 
> Any specific reason for not using autosizing and testing via
> get_ram_size() ?

The initial reason is that the code for this board is taken from the
Atmel boards code, which doesn't use get_ram_size(). However, my board
has a fixed RAM size, so in that case, is it still useful to use
get_ram_size() ?

> Line too long. Please fix globally.

Thanks, will do.

Thomas
-- 
Thomas Petazzoni, Free Electrons
Kernel, drivers and embedded Linux development,
consulting, training and support.
http://free-electrons.com

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

* [U-Boot] Support for Calao USB A9263 board based on AT91SAM9263 CPU
  2009-07-20 15:40           ` Thomas Petazzoni
@ 2009-07-20 15:51             ` Peter Tyser
  0 siblings, 0 replies; 20+ messages in thread
From: Peter Tyser @ 2009-07-20 15:51 UTC (permalink / raw)
  To: u-boot

On Mon, 2009-07-20 at 17:40 +0200, Thomas Petazzoni wrote:
> Le Thu, 16 Jul 2009 09:52:43 -0500,
> Peter Tyser <ptyser@xes-inc.com> a ?crit :
> 
> > I don't have the final say here, I'm just giving my opinion.  If it
> > was possible to clean up, the best way in my would be to fix your
> > board (ie this patch), then send a separate follow-up patch fixing
> > other boards. I don't think its too big of a deal either way.
> 
> Including <common.h> in a include/configs/ configuration file doesn't
> seem to work, unfortunately.

There might be other ways, eg it looks like Wolfgang addressed the issue
in this patch:
http://www.mail-archive.com/u-boot at lists.denx.de/msg17937.html

Does that patch work for you?  I'm assuming it will go in the next
U-Boot release.

> 
> > > +#########################################################################
> > > diff --git a/board/calao/usb-a9263/config.mk
> > > b/board/calao/usb-a9263/config.mk new file mode 100644
> > > index 0000000..ff2cfd1
> > > --- /dev/null
> > > +++ b/board/calao/usb-a9263/config.mk
> > > @@ -0,0 +1 @@
> > > +TEXT_BASE = 0x23f00000
> > 
> > You should add a copyright header of some sort to config.mk.
> 
> In a one-line file, which just contains a factual definition ?

In my opinion yes.  A copyright will explicitly say how the file may be
used, trivial as it may be.  Check out doc/feature-removal-schedule.txt:

What:	GPL cleanup
When:	August 2009
Why:	Over time, a couple of files have sneaked in into the U-Boot
	source code that are either missing a valid GPL license
	header or that carry a license that is incompatible with the
	GPL.
	Such files shall be removed from the U-Boot source tree.
	See
http://www.denx.de/wiki/pub/U-Boot/TaskGplCleanup/u-boot-1.1.2-files
	for an old and probably incomplete list of such files.

You're free to use whatever license you'd like, as long as its GPL
compatible.  There's no harm in adding a license header, right?

Best,
Peter

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

* [U-Boot] Support for Calao USB A9263 board based on AT91SAM9263 CPU
  2009-07-20 15:42       ` Thomas Petazzoni
@ 2009-07-20 21:11         ` Wolfgang Denk
  0 siblings, 0 replies; 20+ messages in thread
From: Wolfgang Denk @ 2009-07-20 21:11 UTC (permalink / raw)
  To: u-boot

Dear Thomas Petazzoni,

In message <20090720174220.1800dcaa@surf> you wrote:
>
> > Any specific reason for not using autosizing and testing via
> > get_ram_size() ?
> 
> The initial reason is that the code for this board is taken from the
> Atmel boards code, which doesn't use get_ram_size(). However, my board
> has a fixed RAM size, so in that case, is it still useful to use
> get_ram_size() ?

Yes, it is still useful, as it will for example  detect  most  memory
errors and as such broken (or dying) hardware.

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
Often it is fatal to live too long.                          - Racine

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

* [U-Boot] Support for Calao USB A9263 board based on AT91SAM9263 CPU
  2009-07-01 12:07 [U-Boot] Support for Calao USB A9263 board based on AT91SAM9263 CPU Thomas Petazzoni
  2009-07-08 21:42 ` Jean-Christophe PLAGNIOL-VILLARD
@ 2009-07-22 15:30 ` Thomas Petazzoni
  2009-07-22 15:57   ` Peter Tyser
  2009-07-23 22:35   ` Jean-Christophe PLAGNIOL-VILLARD
  1 sibling, 2 replies; 20+ messages in thread
From: Thomas Petazzoni @ 2009-07-22 15:30 UTC (permalink / raw)
  To: u-boot

The Calao USB A9263 board is a board manufactured and sold by Calao
Systems <http://www.calao-systems.com>. Its components are very
similar to the AT91SAM9263EK board, so its configuration is based on
the configuration of this board. There are however some differences:
different clocks, no LCD, etc.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>

---

This new version includes the following changes :

 * Copyright header on config.mk, by suggestion of Peter Tyser

 * Updated copyright informations in all new files

 * Use get_ram_size(), as suggested by Wolfgang Denk

 * Do some cleanup of useless comments, re-indent definitions to avoid
   long lines, etc.

 * Add entry to MAINTAINERS

I'm still including the definition of ROUND() in the board
configuration file, since Wolfgang's patch has yet been merged to the
Git tree (and I don't think sending a patch that doesn't compile
against the current Git tree is useful).

 MAINTAINERS                       |    4 
 MAKEALL                           |    1 
 Makefile                          |    3 
 board/calao/usb-a9263/Makefile    |   58 +++++++++++
 board/calao/usb-a9263/config.mk   |   24 ++++
 board/calao/usb-a9263/partition.c |   38 +++++++
 board/calao/usb-a9263/usb-a9263.c |  194 ++++++++++++++++++++++++++++++++++++++
 include/configs/usb-a9263.h       |  185 ++++++++++++++++++++++++++++++++++++
 8 files changed, 507 insertions(+)

diff --git a/MAINTAINERS b/MAINTAINERS
index 575a7ec..5c37647 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -624,6 +624,10 @@ Peter Pearse <peter.pearse@arm.com>
 	versatile	ARM926EJ-S
 	versatile	ARM926EJ-S
 
+Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+	usb-a9263	ARM926EJS (AT91SAM9263 SoC)
+
 Dave Peverley <dpeverley@mpc-data.co.uk>
 
 	omap730p2	ARM926EJS
diff --git a/MAKEALL b/MAKEALL
index 020ff73..452d09a 100755
--- a/MAKEALL
+++ b/MAKEALL
@@ -599,6 +599,7 @@ LIST_at91="			\
 	m501sk			\
 	pm9261			\
 	pm9263			\
+	usb9263			\
 "
 
 #########################################################################
diff --git a/Makefile b/Makefile
index 4fe3232..e484204 100644
--- a/Makefile
+++ b/Makefile
@@ -2807,6 +2807,9 @@ at91sam9g45ekes_config	:	unconfig
 pm9263_config	:	unconfig
 	@$(MKCONFIG) $(@:_config=) arm arm926ejs pm9263 ronetix at91
 
+usb_a9263_config	:	unconfig
+	$(MKCONFIG) -a usb-a9263 arm arm926ejs usb-a9263 calao at91
+
 ########################################################################
 ## ARM Integrator boards - see doc/README-integrator for more info.
 integratorap_config	\
diff --git a/board/calao/usb-a9263/Makefile b/board/calao/usb-a9263/Makefile
new file mode 100644
index 0000000..ec79872
--- /dev/null
+++ b/board/calao/usb-a9263/Makefile
@@ -0,0 +1,58 @@
+#
+# (C) Copyright 2003-2008
+# Wolfgang Denk, DENX Software Engineering, wd at denx.de.
+#
+# (C) Copyright 2008
+# Stelian Pop <stelian.pop@leadtechdesign.com>
+# Lead Tech Design <www.leadtechdesign.com>
+#
+# (C) Copyright 2009
+# Thomas Petazzoni, Free Electrons, <thomas.petazzoni@free-electrons.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 += usb-a9263.o
+COBJS-$(CONFIG_HAS_DATAFLASH) += partition.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/calao/usb-a9263/config.mk b/board/calao/usb-a9263/config.mk
new file mode 100644
index 0000000..2724a7d
--- /dev/null
+++ b/board/calao/usb-a9263/config.mk
@@ -0,0 +1,24 @@
+#
+# (C) Copyright 2009
+# Thomas Petazzoni, Free Electrons, <thomas.petazzoni@free-electrons.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
+#
+
+TEXT_BASE = 0x23f00000
diff --git a/board/calao/usb-a9263/partition.c b/board/calao/usb-a9263/partition.c
new file mode 100644
index 0000000..614ef0d
--- /dev/null
+++ b/board/calao/usb-a9263/partition.c
@@ -0,0 +1,38 @@
+/*
+ * (C) Copyright 2008-2009
+ * Ulf Samuelsson <ulf@atmel.com>
+ * Thomas Petazzoni, Free Electrons, <thomas.petazzoni@free-electrons.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[CONFIG_SYS_MAX_DATAFLASH_BANKS];
+
+struct dataflash_addr cs[CONFIG_SYS_MAX_DATAFLASH_BANKS] = {
+	{CONFIG_SYS_DATAFLASH_LOGIC_ADDR_CS0, 0},	/* Logical adress, CS */
+};
+
+/*define the area offsets*/
+dataflash_protect_t area_list[NB_DATAFLASH_AREA] = {
+	{0x00000000, 0x00001FFF, FLAG_PROTECT_SET,   0, "Bootstrap"},
+	{0x00002000, 0x00003FFF, FLAG_PROTECT_CLEAR, 0, "Environment"},
+	{0x00004000, 0xFFFFFFFF, FLAG_PROTECT_SET,   0, "U-Boot"},
+};
diff --git a/board/calao/usb-a9263/usb-a9263.c b/board/calao/usb-a9263/usb-a9263.c
new file mode 100644
index 0000000..7cf1925
--- /dev/null
+++ b/board/calao/usb-a9263/usb-a9263.c
@@ -0,0 +1,194 @@
+/*
+ * (C) Copyright 2007-2009
+ * Stelian Pop <stelian.pop@leadtechdesign.com>
+ * Lead Tech Design <www.leadtechdesign.com>
+ * Thomas Petazzoni, Free Electrons, <thomas.petazzoni@free-electrons.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/sizes.h>
+#include <asm/arch/at91sam9263.h>
+#include <asm/arch/at91sam9263_matrix.h>
+#include <asm/arch/at91sam9_smc.h>
+#include <asm/arch/at91_common.h>
+#include <asm/arch/at91_pmc.h>
+#include <asm/arch/at91_rstc.h>
+#include <asm/arch/clk.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
+ */
+
+#ifdef CONFIG_CMD_NAND
+static void usb_a9263_nand_hw_init(void)
+{
+	unsigned long csa;
+
+	/* Enable CS3 */
+	csa = at91_sys_read(AT91_MATRIX_EBI0CSA);
+	at91_sys_write(AT91_MATRIX_EBI0CSA,
+		       csa | AT91_MATRIX_EBI0_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 CONFIG_SYS_NAND_DBW_16
+		       AT91_SMC_DBW_16 |
+#else /* CONFIG_SYS_NAND_DBW_8 */
+		       AT91_SMC_DBW_8 |
+#endif
+		       AT91_SMC_TDF_(2));
+
+	at91_sys_write(AT91_PMC_PCER, 1 << AT91SAM9263_ID_PIOA |
+				      1 << AT91SAM9263_ID_PIOCDE);
+
+	/* Configure RDY/BSY */
+	at91_set_gpio_input(CONFIG_SYS_NAND_READY_PIN, 1);
+
+	/* Enable NandFlash */
+	at91_set_gpio_output(CONFIG_SYS_NAND_ENABLE_PIN, 1);
+}
+#endif
+
+#ifdef CONFIG_MACB
+static void usb_a9263_macb_hw_init(void)
+{
+	unsigned long rstc;
+
+	/* Enable clock */
+	at91_sys_write(AT91_PMC_PCER, 1 << AT91SAM9263_ID_EMAC);
+
+	/*
+	 * Disable pull-up on:
+	 *	RXDV (PC25) => PHY normal mode (not Test mode)
+	 * 	ERX0 (PE25) => PHY ADDR0
+	 *	ERX1 (PE26) => PHY ADDR1 => PHYADDR = 0x0
+	 *
+	 * PHY has internal pull-down
+	 */
+	writel(pin_to_mask(AT91_PIN_PC25),
+	       pin_to_controller(AT91_PIN_PC0) + PIO_PUDR);
+	writel(pin_to_mask(AT91_PIN_PE25) |
+	       pin_to_mask(AT91_PIN_PE26),
+	       pin_to_controller(AT91_PIN_PE0) + PIO_PUDR);
+
+	rstc = at91_sys_read(AT91_RSTC_MR) & AT91_RSTC_ERSTL;
+
+	/* 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 |
+				     (rstc) |
+				     AT91_RSTC_URSTEN);
+
+	/* Re-enable pull-up */
+	writel(pin_to_mask(AT91_PIN_PC25),
+	       pin_to_controller(AT91_PIN_PC0) + PIO_PUER);
+	writel(pin_to_mask(AT91_PIN_PE25) |
+	       pin_to_mask(AT91_PIN_PE26),
+	       pin_to_controller(AT91_PIN_PE0) + PIO_PUER);
+
+	at91_macb_hw_init();
+}
+#endif
+
+int board_init(void)
+{
+	/* Enable Ctrlc */
+	console_init_f();
+
+	/* arch number of USB-A9263-Board */
+	gd->bd->bi_arch_number = MACH_TYPE_USB_A9263;
+	/* adress of boot parameters */
+	gd->bd->bi_boot_params = PHYS_SDRAM + 0x100;
+
+	at91_serial_hw_init();
+#ifdef CONFIG_CMD_NAND
+	usb_a9263_nand_hw_init();
+#endif
+#ifdef CONFIG_HAS_DATAFLASH
+	at91_set_gpio_output(AT91_PIN_PE20, 1);	/* select spi0 clock */
+	at91_spi0_hw_init(1 << 0);
+#endif
+#ifdef CONFIG_MACB
+	usb_a9263_macb_hw_init();
+#endif
+#ifdef CONFIG_USB_OHCI_NEW
+	at91_uhp_hw_init();
+#endif
+	return 0;
+}
+
+int dram_init(void)
+{
+	gd->bd->bi_dram[0].start = PHYS_SDRAM;
+	gd->bd->bi_dram[0].size = get_ram_size((long*) PHYS_SDRAM, 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
+	rc = macb_eth_initialize(0, (void *)AT91SAM9263_BASE_EMAC, 0x00);
+#endif
+	return rc;
+}
diff --git a/include/configs/usb-a9263.h b/include/configs/usb-a9263.h
new file mode 100644
index 0000000..0833325
--- /dev/null
+++ b/include/configs/usb-a9263.h
@@ -0,0 +1,185 @@
+/*
+ * (C) Copyright 2007-2009
+ * Stelian Pop <stelian.pop@leadtechdesign.com>
+ * Lead Tech Design <www.leadtechdesign.com>
+ * Thomas Petazzoni, Free Electrons, <thomas.petazzoni@free-electrons.com>
+ *
+ * Configuration settings for the Calao USB-A9263 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
+
+#include <asm/arch/at91sam9263.h>
+
+/* ARM asynchronous clock */
+#define AT91_MAIN_CLOCK		12000000	/* 12 MHz crystal */
+#define CONFIG_SYS_HZ		1000
+
+#define CONFIG_ARM926EJS	1	/* This is an ARM926EJS Core	*/
+#define CONFIG_AT91SAM9263	1	/* It's an Atmel AT91SAM9263 SoC*/
+#define CONFIG_CALAO_USB_A9263	1	/* on an Calao USB A 9263 Board	*/
+#define CONFIG_ARCH_CPU_INIT
+#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 */
+
+/* LCD */
+#undef CONFIG_LCD
+
+#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_FPGA
+#undef CONFIG_CMD_IMI
+#undef CONFIG_CMD_IMLS
+#undef CONFIG_CMD_LOADS
+#undef CONFIG_CMD_SOURCE
+
+#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
+
+/* DataFlash */
+#define CONFIG_ATMEL_DATAFLASH_SPI
+#define CONFIG_HAS_DATAFLASH		1
+#define CONFIG_SYS_SPI_WRITE_TOUT		(5*CONFIG_SYS_HZ)
+#define CONFIG_SYS_MAX_DATAFLASH_BANKS		1
+#define CONFIG_SYS_DATAFLASH_LOGIC_ADDR_CS0	0xC0000000
+#define AT91_SPI_CLK			8000000
+#define DATAFLASH_TCSS			(0x1c << 16)
+#define DATAFLASH_TCHS			(0x1 << 24)
+
+/* no NOR flash */
+#define CONFIG_SYS_NO_FLASH			1
+
+/* NAND flash */
+#ifdef CONFIG_CMD_NAND
+#define CONFIG_NAND_ATMEL
+#define CONFIG_SYS_MAX_NAND_DEVICE		1
+#define CONFIG_SYS_NAND_BASE			0x40000000
+#define CONFIG_SYS_NAND_DBW_8			1
+/* our ALE is AD21 */
+#define CONFIG_SYS_NAND_MASK_ALE		(1 << 21)
+/* our CLE is AD22 */
+#define CONFIG_SYS_NAND_MASK_CLE		(1 << 22)
+#define CONFIG_SYS_NAND_ENABLE_PIN		AT91_PIN_PD15
+#define CONFIG_SYS_NAND_READY_PIN		AT91_PIN_PA22
+#endif
+
+/* Ethernet */
+#define CONFIG_MACB			1
+#define CONFIG_RMII			1
+#define CONFIG_NET_MULTI		1
+#define CONFIG_NET_RETRY_COUNT		20
+#define CONFIG_RESET_PHY_R		1
+#define CONFIG_MACB_SEARCH_PHY		1
+
+/* USB */
+#define CONFIG_USB_ATMEL
+#define CONFIG_USB_OHCI_NEW		1
+#define CONFIG_DOS_PARTITION		1
+#define CONFIG_SYS_USB_OHCI_CPU_INIT		1
+#define CONFIG_SYS_USB_OHCI_REGS_BASE		AT91SAM9263_UHP_BASE
+#define CONFIG_SYS_USB_OHCI_SLOT_NAME		"at91sam9263"
+#define CONFIG_SYS_USB_OHCI_MAX_ROOT_PORTS	2
+#define CONFIG_USB_STORAGE		1
+#define CONFIG_CMD_FAT			1
+
+#define CONFIG_SYS_LOAD_ADDR			0x22000000
+
+#define CONFIG_SYS_MEMTEST_START		PHYS_SDRAM
+#define CONFIG_SYS_MEMTEST_END			0x23e00000
+
+/* bootstrap + u-boot + env in dataflash on CS0 */
+#define CONFIG_ENV_IS_IN_DATAFLASH	1
+#define CONFIG_SYS_MONITOR_BASE	(CONFIG_SYS_DATAFLASH_LOGIC_ADDR_CS0)
+#define CONFIG_ENV_OFFSET		0x2000
+#define CONFIG_ENV_ADDR		(CONFIG_SYS_DATAFLASH_LOGIC_ADDR_CS0 + \
+				 CONFIG_ENV_OFFSET)
+#define CONFIG_ENV_SIZE		0x2000
+#define CONFIG_BOOTCOMMAND	"nboot 21000000 0"
+#define CONFIG_BOOTARGS		"console=ttyS0,115200 " \
+				"root=/dev/mtdblock1 " \
+				"mtdparts=atmel_nand:2m(kernel)ro,-(root) "\
+				"rw rootfstype=jffs2"
+
+#define CONFIG_BAUDRATE		115200
+#define CONFIG_SYS_BAUDRATE_TABLE	{115200 , 19200, 38400, 57600, 9600 }
+
+#define CONFIG_SYS_PROMPT		"U-Boot> "
+#define CONFIG_SYS_CBSIZE		256
+#define CONFIG_SYS_MAXARGS		16
+#define CONFIG_SYS_PBSIZE		(CONFIG_SYS_CBSIZE + \
+					 sizeof(CONFIG_SYS_PROMPT) + 16)
+#define CONFIG_SYS_LONGHELP		1
+#define CONFIG_CMDLINE_EDITING	1
+#define CONFIG_AUTO_COMPLETE
+#define CONFIG_SYS_HUSH_PARSER
+#define CONFIG_SYS_PROMPT_HUSH_PS2	"> "
+
+#define ROUND(A, B)		(((A) + (B)) & ~((B) - 1))
+/*
+ * Size of malloc() pool
+ */
+#define CONFIG_SYS_MALLOC_LEN		ROUND(3 * CONFIG_ENV_SIZE + 128*1024, \
+					      0x1000)
+#define CONFIG_SYS_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

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

* [U-Boot] Support for Calao USB A9263 board based on AT91SAM9263 CPU
  2009-07-22 15:30 ` Thomas Petazzoni
@ 2009-07-22 15:57   ` Peter Tyser
  2009-07-22 16:04     ` Thomas Petazzoni
  2009-07-22 16:05     ` Albin Tonnerre
  2009-07-23 22:35   ` Jean-Christophe PLAGNIOL-VILLARD
  1 sibling, 2 replies; 20+ messages in thread
From: Peter Tyser @ 2009-07-22 15:57 UTC (permalink / raw)
  To: u-boot

Hi Thomas,

Just a note, but its nice when you resend patches to include the string
[PATCH vX] where X=2, 3, etc.  That way whoever applies your patch can
tell which email contains the latest iteration of it.

> This new version includes the following changes :
> 
>  * Copyright header on config.mk, by suggestion of Peter Tyser
> 
>  * Updated copyright informations in all new files
> 
>  * Use get_ram_size(), as suggested by Wolfgang Denk
> 
>  * Do some cleanup of useless comments, re-indent definitions to avoid
>    long lines, etc.
> 
>  * Add entry to MAINTAINERS
> 
> I'm still including the definition of ROUND() in the board
> configuration file, since Wolfgang's patch has yet been merged to the
> Git tree (and I don't think sending a patch that doesn't compile
> against the current Git tree is useful).

That's just plain bad luck, Wolfgang just merged the ROUND() commit a
few hours ago:)

http://git.denx.de/?p=u-boot.git;a=commit;h=70ebf31633f372a24505e47846b2628e8435ea37

Its up to the ARM maintainer to determine if having the ROUND() defined
locally is a show stopper.

Best,
Peter

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

* [U-Boot] Support for Calao USB A9263 board based on AT91SAM9263 CPU
  2009-07-22 15:57   ` Peter Tyser
@ 2009-07-22 16:04     ` Thomas Petazzoni
  2009-07-22 16:10       ` Peter Tyser
  2009-07-22 16:05     ` Albin Tonnerre
  1 sibling, 1 reply; 20+ messages in thread
From: Thomas Petazzoni @ 2009-07-22 16:04 UTC (permalink / raw)
  To: u-boot

Hi,

Le Wed, 22 Jul 2009 10:57:09 -0500,
Peter Tyser <ptyser@xes-inc.com> a ?crit :

> Hi Thomas,
> 
> Just a note, but its nice when you resend patches to include the
> string [PATCH vX] where X=2, 3, etc.  That way whoever applies your
> patch can tell which email contains the latest iteration of it.

Ok.

> That's just plain bad luck, Wolfgang just merged the ROUND() commit a
> few hours ago:)
> 
> http://git.denx.de/?p=u-boot.git;a=commit;h=70ebf31633f372a24505e47846b2628e8435ea37

Yes, but it also doesn't seem to work (yet):
http://lists.denx.de/pipermail/u-boot/2009-July/057230.html

Thomas
-- 
Thomas Petazzoni, Free Electrons
Kernel, drivers and embedded Linux development,
consulting, training and support.
http://free-electrons.com

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

* [U-Boot] Support for Calao USB A9263 board based on AT91SAM9263 CPU
  2009-07-22 15:57   ` Peter Tyser
  2009-07-22 16:04     ` Thomas Petazzoni
@ 2009-07-22 16:05     ` Albin Tonnerre
  1 sibling, 0 replies; 20+ messages in thread
From: Albin Tonnerre @ 2009-07-22 16:05 UTC (permalink / raw)
  To: u-boot

On Wed, Jul 22, 2009 at 10:57:09AM -0500, Peter Tyser wrote :
> Hi Thomas,
> 
> Just a note, but its nice when you resend patches to include the string
> [PATCH vX] where X=2, 3, etc.  That way whoever applies your patch can
> tell which email contains the latest iteration of it.
> 
> > This new version includes the following changes :
> > 
> >  * Copyright header on config.mk, by suggestion of Peter Tyser
> > 
> >  * Updated copyright informations in all new files
> > 
> >  * Use get_ram_size(), as suggested by Wolfgang Denk
> > 
> >  * Do some cleanup of useless comments, re-indent definitions to avoid
> >    long lines, etc.
> > 
> >  * Add entry to MAINTAINERS
> > 
> > I'm still including the definition of ROUND() in the board
> > configuration file, since Wolfgang's patch has yet been merged to the
> > Git tree (and I don't think sending a patch that doesn't compile
> > against the current Git tree is useful).
> 
> That's just plain bad luck, Wolfgang just merged the ROUND() commit a
> few hours ago:)
> 
> http://git.denx.de/?p=u-boot.git;a=commit;h=70ebf31633f372a24505e47846b2628e8435ea37
> 

Which consequently made all those boards fail to compile. See
http://lists.denx.de/pipermail/u-boot/2009-July/057230.html for further details

Cheers,
-- 
Albin Tonnerre, Free Electrons
Kernel, drivers and embedded Linux development,
consulting, training and support.
http://free-electrons.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 835 bytes
Desc: Digital signature
Url : http://lists.denx.de/pipermail/u-boot/attachments/20090722/6707fdda/attachment.pgp 

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

* [U-Boot] Support for Calao USB A9263 board based on AT91SAM9263 CPU
  2009-07-22 16:04     ` Thomas Petazzoni
@ 2009-07-22 16:10       ` Peter Tyser
  0 siblings, 0 replies; 20+ messages in thread
From: Peter Tyser @ 2009-07-22 16:10 UTC (permalink / raw)
  To: u-boot

On Wed, 2009-07-22 at 18:04 +0200, Thomas Petazzoni wrote:
> Hi,
> 
> Le Wed, 22 Jul 2009 10:57:09 -0500,
> Peter Tyser <ptyser@xes-inc.com> a ?crit :
> 
> > Hi Thomas,
> > 
> > Just a note, but its nice when you resend patches to include the
> > string [PATCH vX] where X=2, 3, etc.  That way whoever applies your
> > patch can tell which email contains the latest iteration of it.
> 
> Ok.
> 
> > That's just plain bad luck, Wolfgang just merged the ROUND() commit a
> > few hours ago:)
> > 
> > http://git.denx.de/?p=u-boot.git;a=commit;h=70ebf31633f372a24505e47846b2628e8435ea37
> 
> Yes, but it also doesn't seem to work (yet):
> http://lists.denx.de/pipermail/u-boot/2009-July/057230.html
> 

I see, well I'll gracefully bow out of this conversation now:)

Best,
Peter

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

* [U-Boot] Support for Calao USB A9263 board based on AT91SAM9263 CPU
  2009-07-22 15:30 ` Thomas Petazzoni
  2009-07-22 15:57   ` Peter Tyser
@ 2009-07-23 22:35   ` Jean-Christophe PLAGNIOL-VILLARD
  2009-07-23 22:45     ` Wolfgang Denk
  1 sibling, 1 reply; 20+ messages in thread
From: Jean-Christophe PLAGNIOL-VILLARD @ 2009-07-23 22:35 UTC (permalink / raw)
  To: u-boot

On 17:30 Wed 22 Jul     , Thomas Petazzoni wrote:
> The Calao USB A9263 board is a board manufactured and sold by Calao
> Systems <http://www.calao-systems.com>. Its components are very
> similar to the AT91SAM9263EK board, so its configuration is based on
> the configuration of this board. There are however some differences:
> different clocks, no LCD, etc.
> 
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
> 
> ---
please no RE in the subject
> 
> This new version includes the following changes :
> 
>  * Copyright header on config.mk, by suggestion of Peter Tyser
> 
>  * Updated copyright informations in all new files
> 
>  * Use get_ram_size(), as suggested by Wolfgang Denk
> 
>  * Do some cleanup of useless comments, re-indent definitions to avoid
>    long lines, etc.
> 
>  * Add entry to MAINTAINERS
> 
> I'm still including the definition of ROUND() in the board
> configuration file, since Wolfgang's patch has yet been merged to the
> Git tree (and I don't think sending a patch that doesn't compile
> against the current Git tree is useful).
> 
>  MAINTAINERS                       |    4 
>  MAKEALL                           |    1 
>  Makefile                          |    3 
>  board/calao/usb-a9263/Makefile    |   58 +++++++++++
>  board/calao/usb-a9263/config.mk   |   24 ++++
>  board/calao/usb-a9263/partition.c |   38 +++++++
>  board/calao/usb-a9263/usb-a9263.c |  194 ++++++++++++++++++++++++++++++++++++++
>  include/configs/usb-a9263.h       |  185 ++++++++++++++++++++++++++++++++++++
>  8 files changed, 507 insertions(+)
> 
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 575a7ec..5c37647 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -624,6 +624,10 @@ Peter Pearse <peter.pearse@arm.com>
>  	versatile	ARM926EJ-S
>  	versatile	ARM926EJ-S
>  
> +Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
> +
> +	usb-a9263	ARM926EJS (AT91SAM9263 SoC)
> +
>  Dave Peverley <dpeverley@mpc-data.co.uk>
>  
>  	omap730p2	ARM926EJS
<snip>
> diff --git a/board/calao/usb-a9263/usb-a9263.c b/board/calao/usb-a9263/usb-a9263.c
> new file mode 100644
> index 0000000..7cf1925
> --- /dev/null
> +++ b/board/calao/usb-a9263/usb-a9263.c
> @@ -0,0 +1,194 @@
> +/*
> + * (C) Copyright 2007-2009
> + * Stelian Pop <stelian.pop@leadtechdesign.com>
> + * Lead Tech Design <www.leadtechdesign.com>
> + * Thomas Petazzoni, Free Electrons, <thomas.petazzoni@free-electrons.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/sizes.h>
> +#include <asm/arch/at91sam9263.h>
> +#include <asm/arch/at91sam9263_matrix.h>
please
#include <asm/arch/at91sam9_matrix.h>
> +#include <asm/arch/at91sam9_smc.h>
> +#include <asm/arch/at91_common.h>
> +#include <asm/arch/at91_pmc.h>
> +#include <asm/arch/at91_rstc.h>
> +#include <asm/arch/clk.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
> + */
> +
> +
> +#include <asm/arch/at91sam9263.h>
no please do not include it here but in the correctly file need
> +
> +/* ARM asynchronous clock */
> +#define AT91_MAIN_CLOCK		12000000	/* 12 MHz crystal */
> +#define CONFIG_SYS_HZ		1000
> +
> +#define CONFIG_ARM926EJS	1	/* This is an ARM926EJS Core	*/
> +#define CONFIG_AT91SAM9263	1	/* It's an Atmel AT91SAM9263 SoC*/
> +#define CONFIG_CALAO_USB_A9263	1	/* on an Calao USB A 9263 Board	*/
> +#define CONFIG_ARCH_CPU_INIT
> +#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 */
> +
> +/* LCD */
> +#undef CONFIG_LCD
> +
> +#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_FPGA
> +#undef CONFIG_CMD_IMI
> +#undef CONFIG_CMD_IMLS
> +#undef CONFIG_CMD_LOADS
> +#undef CONFIG_CMD_SOURCE
> +
> +#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
> +
> +/* DataFlash */
> +#define CONFIG_ATMEL_DATAFLASH_SPI
> +#define CONFIG_HAS_DATAFLASH		1
> +#define CONFIG_SYS_SPI_WRITE_TOUT		(5*CONFIG_SYS_HZ)
> +#define CONFIG_SYS_MAX_DATAFLASH_BANKS		1
> +#define CONFIG_SYS_DATAFLASH_LOGIC_ADDR_CS0	0xC0000000
> +#define AT91_SPI_CLK			8000000
> +#define DATAFLASH_TCSS			(0x1c << 16)
> +#define DATAFLASH_TCHS			(0x1 << 24)
> +
> +/* no NOR flash */
> +#define CONFIG_SYS_NO_FLASH			1
> +
> +/* NAND flash */
> +#ifdef CONFIG_CMD_NAND
> +#define CONFIG_NAND_ATMEL
> +#define CONFIG_SYS_MAX_NAND_DEVICE		1
> +#define CONFIG_SYS_NAND_BASE			0x40000000
> +#define CONFIG_SYS_NAND_DBW_8			1
> +/* our ALE is AD21 */
> +#define CONFIG_SYS_NAND_MASK_ALE		(1 << 21)
> +/* our CLE is AD22 */
> +#define CONFIG_SYS_NAND_MASK_CLE		(1 << 22)
> +#define CONFIG_SYS_NAND_ENABLE_PIN		AT91_PIN_PD15
> +#define CONFIG_SYS_NAND_READY_PIN		AT91_PIN_PA22
> +#endif
> +
> +/* Ethernet */
> +#define CONFIG_MACB			1
> +#define CONFIG_RMII			1
> +#define CONFIG_NET_MULTI		1
> +#define CONFIG_NET_RETRY_COUNT		20
> +#define CONFIG_RESET_PHY_R		1
> +#define CONFIG_MACB_SEARCH_PHY		1
do you have multiple phy?
> +

> +#define CONFIG_CMDLINE_EDITING	1
> +#define CONFIG_AUTO_COMPLETE
> +#define CONFIG_SYS_HUSH_PARSER
> +#define CONFIG_SYS_PROMPT_HUSH_PS2	"> "
> +
> +#define ROUND(A, B)		(((A) + (B)) & ~((B) - 1))
no need please remove
> +/*
Best Regards,
J.

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

* [U-Boot] Support for Calao USB A9263 board based on AT91SAM9263 CPU
  2009-07-23 22:35   ` Jean-Christophe PLAGNIOL-VILLARD
@ 2009-07-23 22:45     ` Wolfgang Denk
  2009-07-23 22:53       ` Jean-Christophe PLAGNIOL-VILLARD
  0 siblings, 1 reply; 20+ messages in thread
From: Wolfgang Denk @ 2009-07-23 22:45 UTC (permalink / raw)
  To: u-boot

Dear Jean-Christophe PLAGNIOL-VILLARD,

In message <20090723223518.GD24893@game.jcrosoft.org> you wrote:
> On 17:30 Wed 22 Jul     , Thomas Petazzoni wrote:
> > The Calao USB A9263 board is a board manufactured and sold by Calao
> > Systems <http://www.calao-systems.com>. Its components are very
> > similar to the AT91SAM9263EK board, so its configuration is based on
> > the configuration of this board. There are however some differences:
> > different clocks, no LCD, etc.
> > 
> > Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
> > 
> > ---
> please no RE in the subject

Oops??? Why not?? It is strictly RFC-conformant to add a (single)
"Re: " in front of the Subject on replies.

What exactly do you mean????



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 good aphorism is too hard for the tooth of time, and  is  not  worn
away  by  all  the  centuries,  although  it serves as food for every
epoch.                                  - Friedrich Wilhelm Nietzsche
                          _Miscellaneous Maxims and Opinions_ no. 168

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

* [U-Boot] Support for Calao USB A9263 board based on AT91SAM9263 CPU
  2009-07-23 22:45     ` Wolfgang Denk
@ 2009-07-23 22:53       ` Jean-Christophe PLAGNIOL-VILLARD
  2009-07-24  5:38         ` Wolfgang Denk
  0 siblings, 1 reply; 20+ messages in thread
From: Jean-Christophe PLAGNIOL-VILLARD @ 2009-07-23 22:53 UTC (permalink / raw)
  To: u-boot

On 00:45 Fri 24 Jul     , Wolfgang Denk wrote:
> Dear Jean-Christophe PLAGNIOL-VILLARD,
> 
> In message <20090723223518.GD24893@game.jcrosoft.org> you wrote:
> > On 17:30 Wed 22 Jul     , Thomas Petazzoni wrote:
> > > The Calao USB A9263 board is a board manufactured and sold by Calao
> > > Systems <http://www.calao-systems.com>. Its components are very
> > > similar to the AT91SAM9263EK board, so its configuration is based on
> > > the configuration of this board. There are however some differences:
> > > different clocks, no LCD, etc.
> > > 
> > > Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
> > > 
> > > ---
> > please no RE in the subject
> 
> Oops??? Why not?? It is strictly RFC-conformant to add a (single)
> "Re: " in front of the Subject on replies.
> 
> What exactly do you mean????
git am does not like it
and v2 will be better

Best Regards,
J.

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

* [U-Boot] Support for Calao USB A9263 board based on AT91SAM9263 CPU
  2009-07-23 22:53       ` Jean-Christophe PLAGNIOL-VILLARD
@ 2009-07-24  5:38         ` Wolfgang Denk
  0 siblings, 0 replies; 20+ messages in thread
From: Wolfgang Denk @ 2009-07-24  5:38 UTC (permalink / raw)
  To: u-boot

Dear Jean-Christophe PLAGNIOL-VILLARD,

In message <20090723225354.GD28766@game.jcrosoft.org> you wrote:
>
> > > please no RE in the subject
> > 
> > Oops??? Why not?? It is strictly RFC-conformant to add a (single)
> > "Re: " in front of the Subject on replies.
> > 
> > What exactly do you mean????
> git am does not like it
> and v2 will be better

What are you talking about?

"git am" on the patch with "Subject: Re: [U-Boot] Support for Calao
USB A9263 board based on AT91SAM9263 CPU" results in:

-> git-am -3 -i -u --whitespace=strip ~/Mail/U-Boot/8418
Commit Body is:
--------------------------
Support for Calao USB A9263 board based on AT91SAM9263 CPU

The Calao USB A9263 board is a board manufactured and sold by Calao
Systems <http://www.calao-systems.com>. Its components are very
similar to the AT91SAM9263EK board, so its configuration is based on
the configuration of this board. There are however some differences:
different clocks, no LCD, etc.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
--------------------------
Apply? [y]es/[n]o/[e]dit/[v]iew patch/[a]ccept all n


As you can see there is zero problem with the "Re: " (and I'd be
seriously surprised if there was).

So please explain what exactly you are talking about.

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
He is truly wise who gains wisdom from another's mishap.

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

end of thread, other threads:[~2009-07-24  5:38 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-07-01 12:07 [U-Boot] Support for Calao USB A9263 board based on AT91SAM9263 CPU Thomas Petazzoni
2009-07-08 21:42 ` Jean-Christophe PLAGNIOL-VILLARD
2009-07-15 14:35   ` Thomas Petazzoni
2009-07-15 14:51     ` Peter Tyser
2009-07-16 11:39       ` Thomas Petazzoni
2009-07-16 14:52         ` Peter Tyser
2009-07-20 15:40           ` Thomas Petazzoni
2009-07-20 15:51             ` Peter Tyser
2009-07-17 19:41     ` Wolfgang Denk
2009-07-20 15:42       ` Thomas Petazzoni
2009-07-20 21:11         ` Wolfgang Denk
2009-07-22 15:30 ` Thomas Petazzoni
2009-07-22 15:57   ` Peter Tyser
2009-07-22 16:04     ` Thomas Petazzoni
2009-07-22 16:10       ` Peter Tyser
2009-07-22 16:05     ` Albin Tonnerre
2009-07-23 22:35   ` Jean-Christophe PLAGNIOL-VILLARD
2009-07-23 22:45     ` Wolfgang Denk
2009-07-23 22:53       ` Jean-Christophe PLAGNIOL-VILLARD
2009-07-24  5:38         ` Wolfgang Denk

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.