All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 5/9] Add support for the AT91RM9200EK Board.
Date: Tue,  3 Mar 2009 15:07:41 +0100	[thread overview]
Message-ID: <1236089265-24598-5-git-send-email-plagnioj@jcrosoft.com> (raw)
In-Reply-To: <1236089265-24598-4-git-send-email-plagnioj@jcrosoft.com>

From: Ulf Samuelsson <ulf@atmel.com>

with
	- NOR (cfi driver)
	- DataFlash
	- USB OHCI
	- Net

Signed-off-by: Ulf Samuelsson <ulf@atmel.com>
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
---
 MAKEALL                                 |    1 +
 Makefile                                |    3 +
 board/atmel/at91rm9200ek/Makefile       |   56 ++++++
 board/atmel/at91rm9200ek/at91rm9200ek.c |   86 +++++++++
 board/atmel/at91rm9200ek/config.mk      |    1 +
 board/atmel/at91rm9200ek/led.c          |   89 +++++++++
 board/atmel/at91rm9200ek/misc.c         |   51 +++++
 board/atmel/at91rm9200ek/mux.c          |   40 ++++
 board/atmel/at91rm9200ek/partition.c    |   38 ++++
 board/atmel/at91rm9200ek/u-boot.lds     |   56 ++++++
 drivers/mtd/cfi_flash.c                 |    5 +-
 include/configs/at91rm9200ek.h          |  315 +++++++++++++++++++++++++++++++
 12 files changed, 737 insertions(+), 4 deletions(-)
 create mode 100644 board/atmel/at91rm9200ek/Makefile
 create mode 100644 board/atmel/at91rm9200ek/at91rm9200ek.c
 create mode 100644 board/atmel/at91rm9200ek/config.mk
 create mode 100644 board/atmel/at91rm9200ek/led.c
 create mode 100644 board/atmel/at91rm9200ek/misc.c
 create mode 100644 board/atmel/at91rm9200ek/mux.c
 create mode 100644 board/atmel/at91rm9200ek/partition.c
 create mode 100644 board/atmel/at91rm9200ek/u-boot.lds
 create mode 100644 include/configs/at91rm9200ek.h

diff --git a/MAKEALL b/MAKEALL
index f8c912b..25d0647 100755
--- a/MAKEALL
+++ b/MAKEALL
@@ -567,6 +567,7 @@ LIST_at91="		\
 	afeb9260	\
 	at91cap9adk	\
 	at91rm9200dk	\
+	at91rm9200ek	\
 	at91sam9260ek	\
 	at91sam9261ek	\
 	at91sam9263ek	\
diff --git a/Makefile b/Makefile
index b1dee97..784af52 100644
--- a/Makefile
+++ b/Makefile
@@ -2605,6 +2605,9 @@ shannon_config	:	unconfig
 at91rm9200dk_config	:	unconfig
 	@$(MKCONFIG) $(@:_config=) arm arm920t at91rm9200dk atmel at91rm9200
 
+at91rm9200ek_config	:	unconfig
+	@$(MKCONFIG) $(@:_config=) arm arm920t at91rm9200ek atmel at91rm9200
+
 cmc_pu2_config	:	unconfig
 	@$(MKCONFIG) $(@:_config=) arm arm920t cmc_pu2 NULL at91rm9200
 
diff --git a/board/atmel/at91rm9200ek/Makefile b/board/atmel/at91rm9200ek/Makefile
new file mode 100644
index 0000000..500ce72
--- /dev/null
+++ b/board/atmel/at91rm9200ek/Makefile
@@ -0,0 +1,56 @@
+#
+# (C) Copyright 2003-2008
+# Wolfgang Denk, DENX Software Engineering, wd at denx.de.
+#
+# See file CREDITS for list of people who contributed to this
+# project.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation; either version 2 of
+# the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+# MA 02111-1307 USA
+#
+
+include $(TOPDIR)/config.mk
+
+LIB	= $(obj)lib$(BOARD).a
+
+COBJS-y += $(BOARD).o
+COBJS-y += led.o
+COBJS-y += misc.o
+ifdef CONFIG_HAS_DATAFLASH
+COBJS-$(CONFIG_DATAFLASH_MMC_SELECT) += mux.o
+COBJS-y += partition.o
+endif
+
+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/atmel/at91rm9200ek/at91rm9200ek.c b/board/atmel/at91rm9200ek/at91rm9200ek.c
new file mode 100644
index 0000000..ea684e9
--- /dev/null
+++ b/board/atmel/at91rm9200ek/at91rm9200ek.c
@@ -0,0 +1,86 @@
+/*
+ * (C) Copyright 2002
+ * Sysgo Real-Time Solutions, GmbH <www.elinos.com>
+ * Marius Groeger <mgroeger@sysgo.de>
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+#include <common.h>
+#include <asm/arch/AT91RM9200.h>
+#include <at91rm9200_net.h>
+#include <dm9161.h>
+
+DECLARE_GLOBAL_DATA_PTR;
+
+/* ------------------------------------------------------------------------- */
+/*
+ * Miscelaneous platform dependent initialisations
+ */
+
+int board_init (void)
+{
+	/* Enable Ctrlc */
+	console_init_f ();
+
+	/*
+	 * Correct IRDA resistor problem
+	 * Set PA23_TXD in Output
+	 */
+	writel(AT91C_PA23_TXD2, ((AT91PS_PIO) AT91C_BASE_PIOA)->PIO_OER);
+
+	/*
+	 * memory and cpu-speed are setup before relocation
+	 * so we do _nothing_ here
+	 */
+
+	/* arch number of AT91RM9200EK-Board */
+	gd->bd->bi_arch_number = MACH_TYPE_AT91RM9200EK;
+	/* adress of boot parameters */
+	gd->bd->bi_boot_params = PHYS_SDRAM + 0x100;
+
+	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;
+}
+
+#if defined(CONFIG_DRIVER_ETHER) && defined(CONFIG_CMD_NET)
+/*
+ * Name:
+ *	at91rm9200_GetPhyInterface
+ * Description:
+ *	Initialise the interface functions to the PHY
+ * Arguments:
+ *	None
+ * Return value:
+ *	None
+ */
+void at91rm9200_GetPhyInterface(AT91PS_PhyOps p_phyops)
+{
+	p_phyops->Init = dm9161_InitPhy;
+	p_phyops->IsPhyConnected = dm9161_IsPhyConnected;
+	p_phyops->GetLinkSpeed = dm9161_GetLinkSpeed;
+	p_phyops->AutoNegotiate = dm9161_AutoNegotiate;
+}
+#endif
diff --git a/board/atmel/at91rm9200ek/config.mk b/board/atmel/at91rm9200ek/config.mk
new file mode 100644
index 0000000..9ce161e
--- /dev/null
+++ b/board/atmel/at91rm9200ek/config.mk
@@ -0,0 +1 @@
+TEXT_BASE = 0x21f00000
diff --git a/board/atmel/at91rm9200ek/led.c b/board/atmel/at91rm9200ek/led.c
new file mode 100644
index 0000000..9464952
--- /dev/null
+++ b/board/atmel/at91rm9200ek/led.c
@@ -0,0 +1,89 @@
+/*
+ * (C) Copyright 2006
+ * Atmel Nordic AB <www.atmel.com>
+ * Ulf Samuelsson <ulf@atmel.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/AT91RM9200.h>
+#include <asm/io.h>
+
+#define	GREEN_LED	AT91C_PIO_PB0
+#define	YELLOW_LED	AT91C_PIO_PB1
+#define	RED_LED		AT91C_PIO_PB2
+
+void	green_LED_on(void)
+{
+	AT91PS_PIO	PIOB	= AT91C_BASE_PIOB;
+
+	writel(GREEN_LED, PIOB->PIO_CODR);
+}
+
+void	 yellow_LED_on(void)
+{
+	AT91PS_PIO	PIOB	= AT91C_BASE_PIOB;
+
+	writel(YELLOW_LED, PIOB->PIO_CODR);
+}
+
+void	 red_LED_on(void)
+{
+	AT91PS_PIO	PIOB	= AT91C_BASE_PIOB;
+
+	writel(RED_LED, PIOB->PIO_CODR);
+}
+
+void	green_LED_off(void)
+{
+	AT91PS_PIO	PIOB	= AT91C_BASE_PIOB;
+
+	writel(GREEN_LED, PIOB->PIO_SODR);
+}
+
+void	yellow_LED_off(void)
+{
+	AT91PS_PIO	PIOB	= AT91C_BASE_PIOB;
+
+	writel(YELLOW_LED, PIOB->PIO_SODR);
+}
+
+void	red_LED_off(void)
+{
+	AT91PS_PIO	PIOB	= AT91C_BASE_PIOB;
+
+	writel(RED_LED, PIOB->PIO_SODR);
+}
+
+
+void coloured_LED_init (void)
+{
+	AT91PS_PIO	PIOB	= AT91C_BASE_PIOB;
+	AT91PS_PMC	PMC	= AT91C_BASE_PMC;
+
+	/* Enable PIOB clock */
+	writel((1 << AT91C_ID_PIOB), PMC->PMC_PCER);
+	/* Disable peripherals on LEDs */
+	writel(AT91C_PIO_PB2 | AT91C_PIO_PB1 | AT91C_PIO_PB0, PIOB->PIO_PER);
+	/* Enable pins as outputs */
+	writel(AT91C_PIO_PB2 | AT91C_PIO_PB1 | AT91C_PIO_PB0, PIOB->PIO_OER);
+	/* Turn all LEDs OFF */
+	writel(AT91C_PIO_PB2 | AT91C_PIO_PB1 | AT91C_PIO_PB0, PIOB->PIO_SODR);
+}
diff --git a/board/atmel/at91rm9200ek/misc.c b/board/atmel/at91rm9200ek/misc.c
new file mode 100644
index 0000000..d56f33f
--- /dev/null
+++ b/board/atmel/at91rm9200ek/misc.c
@@ -0,0 +1,51 @@
+/*
+ * (C) Copyright 2002
+ * Sysgo Real-Time Solutions, GmbH <www.elinos.com>
+ * Marius Groeger <mgroeger@sysgo.de>
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+#include <common.h>
+#include <asm/arch/AT91RM9200.h>
+#include <at91rm9200_net.h>
+#include <dm9161.h>
+#include <net.h>
+
+int board_late_init(void)
+{
+	DECLARE_GLOBAL_DATA_PTR;
+
+	/* Fix Ethernet Initialization Bug when starting Linux from U-Boot */
+	eth_init(gd->bd);
+	return 0;
+}
+
+
+/* checks if addr is in RAM */
+int addr2ram(ulong addr)
+{
+	int result = 0;
+
+	if((addr >= PHYS_SDRAM) && (addr < (PHYS_SDRAM + PHYS_SDRAM_SIZE)))
+		result = 1;
+
+	return result;
+}
+
diff --git a/board/atmel/at91rm9200ek/mux.c b/board/atmel/at91rm9200ek/mux.c
new file mode 100644
index 0000000..c134d99
--- /dev/null
+++ b/board/atmel/at91rm9200ek/mux.c
@@ -0,0 +1,40 @@
+#include <config.h>
+#include <common.h>
+#include <asm/hardware.h>
+#include <asm/io.h>
+#include <dataflash.h>
+
+int AT91F_GetMuxStatus(void)
+{
+	/* Set in PIO mode */
+	writel(CONFIG_SYS_DATAFLASH_MMC_PIO, AT91C_BASE_PIOB->PIO_PER);
+	/* Configure in output */
+	writel(CONFIG_SYS_DATAFLASH_MMC_PIO, AT91C_BASE_PIOB->PIO_OER);
+
+	if(readl(AT91C_BASE_PIOB->PIO_ODSR) & CONFIG_SYS_DATAFLASH_MMC_PIO) {
+		return 1;
+	} else {
+		return 0;
+	}
+	return 0;
+}
+
+void AT91F_SelectMMC(void)
+{
+	/* Set in PIO mode */
+	writel(CONFIG_SYS_DATAFLASH_MMC_PIO, AT91C_BASE_PIOB->PIO_PER);
+	/* Configure in output */
+	writel(CONFIG_SYS_DATAFLASH_MMC_PIO, AT91C_BASE_PIOB->PIO_OER);
+	/* Set Output */
+	writel(CONFIG_SYS_DATAFLASH_MMC_PIO, AT91C_BASE_PIOB->PIO_SODR);
+}
+
+void AT91F_SelectSPI(void)
+{
+	/* Set in PIO mode */
+	writel(CONFIG_SYS_DATAFLASH_MMC_PIO, AT91C_BASE_PIOB->PIO_PER);
+	/* Configure in output */
+	writel(CONFIG_SYS_DATAFLASH_MMC_PIO, AT91C_BASE_PIOB->PIO_OER);
+	/* Clear Output */
+	writel(CONFIG_SYS_DATAFLASH_MMC_PIO, AT91C_BASE_PIOB->PIO_CODR);
+}
diff --git a/board/atmel/at91rm9200ek/partition.c b/board/atmel/at91rm9200ek/partition.c
new file mode 100644
index 0000000..990cbcf
--- /dev/null
+++ b/board/atmel/at91rm9200ek/partition.c
@@ -0,0 +1,38 @@
+/*
+ *
+ * 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 */
+	{CONFIG_SYS_DATAFLASH_LOGIC_ADDR_CS3, 3}
+};
+
+/*define the area offsets*/
+dataflash_protect_t area_list[NB_DATAFLASH_AREA] = {
+	{0x00000000, 0x000041FF, FLAG_PROTECT_SET,	0, "Bootstrap"},
+	{0x00004200, 0x000083FF, FLAG_PROTECT_CLEAR,	0, "Environment"},
+	{0x00008400, 0x00041FFF, FLAG_PROTECT_SET,	0, "U-Boot"},
+	{0x00042000, 0x00251FFF, FLAG_PROTECT_CLEAR,	0, "Kernel"},
+	{0x00252000, 0xFFFFFFFF, FLAG_PROTECT_CLEAR,	0, "FS"},
+};
diff --git a/board/atmel/at91rm9200ek/u-boot.lds b/board/atmel/at91rm9200ek/u-boot.lds
new file mode 100644
index 0000000..045e849
--- /dev/null
+++ b/board/atmel/at91rm9200ek/u-boot.lds
@@ -0,0 +1,56 @@
+/*
+ * (C) Copyright 2002
+ * Gary Jennejohn, DENX Software Engineering, <gj@denx.de>
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
+OUTPUT_ARCH(arm)
+ENTRY(_start)
+SECTIONS
+{
+	. = 0x00000000;
+
+	. = ALIGN(4);
+	.text :
+	{
+		cpu/arm920t/start.o	(.text)
+		*(.text)
+	}
+
+	. = ALIGN(4);
+	.rodata : { *(.rodata) }
+
+	. = ALIGN(4);
+	.data : { *(.data) }
+
+	. = ALIGN(4);
+	.got : { *(.got) }
+
+	. = .;
+	__u_boot_cmd_start = .;
+	.u_boot_cmd : { *(.u_boot_cmd) }
+	__u_boot_cmd_end = .;
+
+	. = ALIGN(4);
+	__bss_start = .;
+	.bss : { *(.bss) }
+	_end = .;
+}
diff --git a/drivers/mtd/cfi_flash.c b/drivers/mtd/cfi_flash.c
index a66feac..ba55506 100644
--- a/drivers/mtd/cfi_flash.c
+++ b/drivers/mtd/cfi_flash.c
@@ -1788,13 +1788,10 @@ static void flash_fixup_atmel(flash_info_t *info, struct cfi_qry *qry)
 
 	/* AT49BV6416(T) list the erase regions in the wrong order.
 	 * However, the device ID is identical with the non-broken
-	 * AT49BV642D since u-boot only reads the low byte (they
-	 * differ in the high byte.) So leave out this fixup for now.
+	 * AT49BV642D they differ in the high byte.
 	 */
-#if 0
 	if (info->device_id == 0xd6 || info->device_id == 0xd2)
 		reverse_geometry = !reverse_geometry;
-#endif
 
 	if (reverse_geometry)
 		cfi_reverse_geometry(qry);
diff --git a/include/configs/at91rm9200ek.h b/include/configs/at91rm9200ek.h
new file mode 100644
index 0000000..beefc1d
--- /dev/null
+++ b/include/configs/at91rm9200ek.h
@@ -0,0 +1,315 @@
+/*
+ * Ulf Samuelsson <ulf@atmel.com>
+ * Rick Bronson <rick@efn.org>
+ *
+ * Configuration settings for the AT91RM9200EK 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 */
+/*
+ * from 18.432 MHz crystal
+ * (18432000 / 4 * 39)
+ */
+#define AT91C_MAIN_CLOCK	179712000
+/*
+ * peripheral clock
+ * (AT91C_MASTER_CLOCK / 3)
+ */
+#define AT91C_MASTER_CLOCK	59904000
+
+#define AT91_SLOW_CLOCK		32768	/* slow clock */
+
+#define CONFIG_ARM920T		1	/* This is an ARM920T Core	*/
+#define CONFIG_AT91RM9200	1	/* It's an Atmel AT91RM9200 SoC	*/
+#define CONFIG_AT91RM9200EK	1	/* on an AT91RM9200EK Board	*/
+#undef  CONFIG_USE_IRQ			/* we don't need IRQ/FIQ stuff	*/
+#define USE_920T_MMU		1
+
+#define CONFIG_CMDLINE_TAG	1	/* enable passing of ATAGs	*/
+#define CONFIG_SETUP_MEMORY_TAGS 1
+#define CONFIG_INITRD_TAG	1
+
+/*
+ * LowLevel Init
+ */
+#ifndef CONFIG_SKIP_LOWLEVEL_INIT
+#define CONFIG_SYS_USE_MAIN_OSCILLATOR		1
+/* flash */
+#define CONFIG_SYS_MC_PUIA_VAL	0x00000000
+#define CONFIG_SYS_MC_PUP_VAL	0x00000000
+#define CONFIG_SYS_MC_PUER_VAL	0x00000000
+#define CONFIG_SYS_MC_ASR_VAL	0x00000000
+#define CONFIG_SYS_MC_AASR_VAL	0x00000000
+#define CONFIG_SYS_EBI_CFGR_VAL	0x00000000
+#define CONFIG_SYS_SMC_CSR0_VAL	0x00003284 /* 16bit, 2 TDF, 4 WS */
+
+/* clocks */
+#define CONFIG_SYS_PLLAR_VAL	0x20263E04 /* 179.712000 MHz for PCK */
+#define CONFIG_SYS_PLLBR_VAL	0x10483E0E /* 48.054857 MHz (divider by 2 for USB) */
+/* PCK/3 = MCK Master Clock = 59.904000MHz from PLLA */
+#define CONFIG_SYS_MCKR_VAL	0x00000202
+
+/* sdram */
+#define CONFIG_SYS_PIOC_ASR_VAL	0xFFFF0000 /* Configure PIOC as peripheral (D16/D31) */
+#define CONFIG_SYS_PIOC_BSR_VAL	0x00000000
+#define CONFIG_SYS_PIOC_PDR_VAL	0xFFFF0000
+#define CONFIG_SYS_EBI_CSA_VAL	0x00000002 /* CS1=CONFIG_SYS_SDRAM */
+#define CONFIG_SYS_SDRC_CR_VAL	0x2188c155 /* set up the CONFIG_SYS_SDRAM */
+#define CONFIG_SYS_SDRAM	0x20000000 /* address of the CONFIG_SYS_SDRAM */
+#define CONFIG_SYS_SDRAM1	0x20000080 /* address of the CONFIG_SYS_SDRAM */
+#define CONFIG_SYS_SDRAM_VAL	0x00000000 /* value written to CONFIG_SYS_SDRAM */
+#define CONFIG_SYS_SDRC_MR_VAL	0x00000002 /* Precharge All */
+#define CONFIG_SYS_SDRC_MR_VAL1	0x00000004 /* refresh */
+#define CONFIG_SYS_SDRC_MR_VAL2	0x00000003 /* Load Mode Register */
+#define CONFIG_SYS_SDRC_MR_VAL3	0x00000000 /* Normal Mode */
+#define CONFIG_SYS_SDRC_TR_VAL	0x000002E0 /* Write refresh rate */
+#else
+#define CONFIG_SKIP_RELOCATE_UBOOT
+#endif	/* CONFIG_SKIP_LOWLEVEL_INIT */
+
+/* hardcode so no __divsi3 : AT91C_MASTER_CLOCK / baudrate / 16 */
+#define CONFIG_SYS_AT91C_BRGR_DIVISOR	33
+
+/*
+ * Memory Configuration
+ */
+#define CONFIG_NR_DRAM_BANKS		1
+#define PHYS_SDRAM			0x20000000
+#define PHYS_SDRAM_SIZE			0x02000000	/* 32 megs */
+
+#define CONFIG_SYS_MEMTEST_START	PHYS_SDRAM
+#define CONFIG_SYS_MEMTEST_END		\
+		(CONFIG_SYS_MEMTEST_START + PHYS_SDRAM_SIZE - 262144)
+
+/*
+ * Hardware drivers
+ */
+
+/*
+ * UART Configuration
+ *
+ * define one of these to choose the DBGU,
+ * USART0 or USART1 as console
+ */
+#define CONFIG_DBGU
+#undef CONFIG_USART0
+#undef CONFIG_USART1
+/* don't include RTS/CTS flow control support	*/
+#undef	CONFIG_HWFLOW
+/* disable modem initialization stuff */
+#undef	CONFIG_MODEM_SUPPORT
+
+#define CONFIG_SYS_BAUDRATE_TABLE	{115200 , 19200, 38400, 57600, 9600 }
+#define CONFIG_BAUDRATE			115200
+
+/*
+ * Command line configuration.
+ */
+#include <config_cmd_default.h>
+
+#define CONFIG_CMD_DHCP
+#define CONFIG_CMD_FAT
+#define CONFIG_CMD_MII
+#define CONFIG_CMD_PING
+
+#undef CONFIG_CMD_BDI
+#undef CONFIG_CMD_IMI
+#undef CONFIG_CMD_FPGA
+#undef CONFIG_CMD_MISC
+#undef CONFIG_CMD_LOADS
+
+#include <asm/arch/AT91RM9200.h>	/* needed for port definitions */
+/* Options for MMC/SD Card */
+#define CONFIG_DOS_PARTITION	1
+#undef CONFIG_MMC
+#define CONFIG_SYS_MMC_BASE		0xFFFB4000
+#define CONFIG_SYS_MMC_BLOCKSIZE	512
+
+/*
+ * Network Driver Setting
+ */
+#define CONFIG_DRIVER_ETHER
+#define CONFIG_NET_RETRY_COUNT		20
+#define CONFIG_AT91C_USE_RMII
+
+/*
+ * AC Characteristics
+ * DLYBS = tCSS = 250ns min and DLYBCT = tCSH = 250ns
+ */
+#define DATAFLASH_TCSS	(0xC << 16)
+#define DATAFLASH_TCHS	(0x1 << 24)
+
+#if defined(CONFIG_HAS_DATAFLASH)
+#define CONFIG_SYS_SPI_WRITE_TOUT		(5 * CONFIG_SYS_HZ)
+#define CONFIG_SYS_MAX_DATAFLASH_BANKS		2
+#define CONFIG_SYS_MAX_DATAFLASH_PAGES		16384
+/* Logical adress for CS0 */
+#define CONFIG_SYS_DATAFLASH_LOGIC_ADDR_CS0	0xC0000000
+/* Logical adress for CS3 */
+#define CONFIG_SYS_DATAFLASH_LOGIC_ADDR_CS3	0xD0000000
+#define	CONFIG_SYS_SUPPORT_BLOCK_ERASE		1
+#define	CONFIG_DATAFLASH_MMC_SELECT
+#define	CONFIG_SYS_DATAFLASH_MMC_PIO		AT91C_PIO_PB22
+#endif
+
+/*
+ * NOR Flash
+ */
+#define CONFIG_SYS_FLASH_BASE			0x10000000
+#define PHYS_FLASH_SIZE				0x800000	/* 8MB */
+#define CONFIG_SYS_FLASH_CFI			1
+#define CONFIG_FLASH_CFI_DRIVER			1
+#define CONFIG_SYS_MAX_FLASH_BANKS		1
+#define CONFIG_SYS_MAX_FLASH_SECT		256
+#define CONFIG_SYS_FLASH_PROTECTION
+
+/*
+ * Environment Settings
+ */
+#ifdef CONFIG_ENV_IS_IN_DATAFLASH
+/*
+ * Datasflash Environment Settings
+ */
+#define CONFIG_ENV_OFFSET			0x4200
+#define CONFIG_ENV_ADDR			\
+		(CONFIG_SYS_DATAFLASH_LOGIC_ADDR_CS0 + CONFIG_ENV_OFFSET)
+/* 8 * 1056 really , but start.s is not OK with this*/
+#define CONFIG_ENV_SIZE			0x2000
+
+#else
+/*
+ * NOR Flash Environment Settings
+ */
+#define CONFIG_ENV_IS_IN_FLASH		1
+
+#ifdef CONFIG_SKIP_LOWLEVEL_INIT
+/*
+ * between boot.bin and u-boot.bin.gz
+ */
+#define CONFIG_ENV_ADDR			(CONFIG_SYS_FLASH_BASE + 0xe000)
+#define CONFIG_ENV_SIZE			0x10000 /* sectors are 64K here */
+#else
+/*
+ * after u-boot.bin
+ */
+#define CONFIG_ENV_ADDR			\
+		(CONFIG_SYS_FLASH_BASE + CONFIG_SYS_MONITOR_LEN)
+#define CONFIG_ENV_SIZE			0x10000 /* sectors are 64K here */
+/* The following #defines are needed to get flash environment right */
+#define CONFIG_SYS_MONITOR_BASE		CONFIG_SYS_FLASH_BASE
+#define CONFIG_SYS_MONITOR_LEN		\
+		(CONFIG_SYS_BOOT_SIZE + CONFIG_SYS_U_BOOT_SIZE)
+#endif	/* CONFIG_SKIP_LOWLEVEL_INIT */
+
+#endif	/* CONFIG_ENV_IS_IN_DATAFLASH */
+
+/*
+ * Boot option
+ */
+#define CONFIG_BOOTDELAY		3
+
+#ifdef CONFIG_SKIP_LOWLEVEL_INIT
+/* boot.bin, env, u-boot.bin.gz */
+#define CONFIG_SYS_BOOT_SIZE		0x6000 /* 24 KBytes */
+#define CONFIG_SYS_U_BOOT_BASE		(CONFIG_SYS_FLASH_BASE + 0x10000)
+#define CONFIG_SYS_U_BOOT_SIZE		0x10000 /* 64 KBytes */
+#else
+/* u-boot.bin */
+#define CONFIG_SYS_BOOT_SIZE		0x0 /* 0 KBytes */
+#define CONFIG_SYS_U_BOOT_BASE		CONFIG_SYS_FLASH_BASE
+#define CONFIG_SYS_U_BOOT_SIZE		0x40000 /* 128 KBytes */
+#endif /* CONFIG_SKIP_LOWLEVEL_INIT */
+
+#define CONFIG_SYS_LOAD_ADDR		0x21000000 /* default load address */
+#define CONFIG_ENV_OVERWRITE	1
+
+/*
+ * USB Config
+ */
+#define CONFIG_CMD_USB
+#define CONFIG_USB_OHCI_NEW	1
+#define CONFIG_USB_KEYBOARD	1
+#define CONFIG_USB_STORAGE	1
+#define CONFIG_DOS_PARTITION	1
+
+#undef CONFIG_SYS_USB_OHCI_BOARD_INIT
+#define CONFIG_SYS_USB_OHCI_CPU_INIT		1
+#define CONFIG_SYS_USB_OHCI_REGS_BASE		AT91_USB_HOST_BASE
+#define CONFIG_SYS_USB_OHCI_SLOT_NAME		"at91rm9200"
+#define CONFIG_SYS_USB_OHCI_MAX_ROOT_PORTS	15
+
+/*
+ * Shell Settings
+ */
+#define CONFIG_CMDLINE_EDITING		1
+#define CONFIG_SYS_LONGHELP		1
+#define CONFIG_AUTO_COMPLETE		1
+#define CONFIG_SYS_HUSH_PARSER		1
+#define CONFIG_SYS_PROMPT		"U-Boot> "
+#define CONFIG_SYS_PROMPT_HUSH_PS2	"> "
+#define CONFIG_SYS_CBSIZE		256	/* Console I/O Buffer Size */
+#define CONFIG_SYS_MAXARGS		16	/* max number of command args */
+/* Print Buffer Size */
+#define CONFIG_SYS_PBSIZE		\
+		(CONFIG_SYS_CBSIZE + sizeof(CONFIG_SYS_PROMPT) + 16)
+
+#ifndef __ASSEMBLY__
+/*-----------------------------------------------------------------------
+ * Board specific extension for bd_info
+ *
+ * This structure is embedded in the global bd_info (bd_t) structure
+ * and can be used by the board specific code (eg board/...)
+ */
+
+struct bd_info_ext {
+	/* helper variable for board environment handling
+	 *
+	 * env_crc_valid == 0	=>	uninitialised
+	 * env_crc_valid > 0	=>	environment crc in flash is valid
+	 * env_crc_valid < 0	=>	environment crc in flash is invalid
+	 */
+	int env_crc_valid;
+};
+#endif
+
+#define CONFIG_SYS_HZ 1000
+/*
+ * AT91C_TC0_CMR is implicitly set to
+ * AT91C_TC_TIMER_DIV1_CLOCK
+ */
+#define CONFIG_SYS_HZ_CLOCK (AT91C_MASTER_CLOCK / 2)
+
+#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)
+/* size in bytes reserved for initial data */
+#define CONFIG_SYS_GBL_DATA_SIZE	128
+
+#define CONFIG_STACKSIZE		(32 * 1024)	/* regular stack */
+#define CONFIG_STACKSIZE_IRQ		(4 * 1024) /* Unsure if to big or to small*/
+#define CONFIG_STACKSIZE_FIQ		(4 * 1024) /* Unsure if to big or to small*/
+#endif
-- 
1.5.6.5

  reply	other threads:[~2009-03-03 14:07 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-03-03 14:07 [U-Boot] [PATCH 1/9] at91sam9/cap9: use define instead hardcoded value for the USB_OHCI_REGS_BASE Jean-Christophe PLAGNIOL-VILLARD
2009-03-03 14:07 ` [U-Boot] [PATCH 2/9] AT91RM9200EK: fix broken boot from NOR flash Jean-Christophe PLAGNIOL-VILLARD
2009-03-03 14:07   ` [U-Boot] [PATCH 3/9] at91: rename DATAFLASH_MMC_SELECT to CONFIG_SYS_DATAFLASH_MMC_PIO Jean-Christophe PLAGNIOL-VILLARD
2009-03-03 14:07     ` [U-Boot] [PATCH 4/9] at91rm9200dk: Move conditional compilation to Makefile Jean-Christophe PLAGNIOL-VILLARD
2009-03-03 14:07       ` Jean-Christophe PLAGNIOL-VILLARD [this message]
2009-03-03 14:07         ` [U-Boot] [PATCH 6/9] at91rm9200: move serial driver to drivers/serial Jean-Christophe PLAGNIOL-VILLARD
2009-03-03 14:07           ` [U-Boot] [PATCH 7/9] at91rm9200: fix DCC support Jean-Christophe PLAGNIOL-VILLARD
2009-03-03 14:07             ` [U-Boot] [PATCH 8/9] at91sam9263ek add dcc support with at91sam9263ek_dcc_config Jean-Christophe PLAGNIOL-VILLARD
2009-03-03 14:07               ` [U-Boot] [PATCH 9/9] at91rm9200ek: add dcc support with at91rm9200ek_dcc_config Jean-Christophe PLAGNIOL-VILLARD
2009-03-08 23:28                 ` Wolfgang Denk
2009-03-08 23:33               ` [U-Boot] [PATCH 8/9] at91sam9263ek add dcc support with at91sam9263ek_dcc_config Wolfgang Denk
2009-03-09  8:35                 ` Jean-Christophe PLAGNIOL-VILLARD
2009-03-09 11:19                   ` Wolfgang Denk
2009-03-08 23:31             ` [U-Boot] [PATCH 7/9] at91rm9200: fix DCC support Wolfgang Denk
2009-03-09  8:36               ` Jean-Christophe PLAGNIOL-VILLARD
2009-03-09 11:19                 ` Wolfgang Denk
2009-03-09 11:18                   ` Jean-Christophe PLAGNIOL-VILLARD
2009-03-09 11:37                     ` Wolfgang Denk
2009-03-09 12:09                       ` Jean-Christophe PLAGNIOL-VILLARD
2009-03-09 15:50                         ` Wolfgang Denk
2009-03-09 17:12                           ` Jean-Christophe PLAGNIOL-VILLARD
2009-03-09 19:45                             ` Wolfgang Denk
2009-03-08 23:26         ` [U-Boot] [PATCH 5/9] Add support for the AT91RM9200EK Board Wolfgang Denk
2009-03-09  8:37           ` Jean-Christophe PLAGNIOL-VILLARD
2009-03-09 11:19             ` Wolfgang Denk
2009-03-08 23:21 ` [U-Boot] [PATCH 1/9] at91sam9/cap9: use define instead hardcoded value for the USB_OHCI_REGS_BASE Wolfgang Denk

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1236089265-24598-5-git-send-email-plagnioj@jcrosoft.com \
    --to=plagnioj@jcrosoft.com \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.