Skip to contentSkip to conversation

AT572D940HF-EB Support

PATCH New Antonio R. Costa 2 participants 7 messages Jun 11, 2008

Subsystems (5)
lore
Share & tools
lore
#0 lore raw

PATCH 1/6 AT572D940HF-EB Support

Logic unit: boart/atmel/at572d940hfeb (except atmel_mci.c)
Purpose:    AT572D940HF-EB core files
Author:     Antnoio R. Costa <antonio.costa <at> atmel.com>
Date  :     11 Jun 2008

Status:
- USB,MACB,MCI,DBGU,USARTS working
- Introduced interrput handling on reset to work around a bug on SDRAM controller
- Introduced a function to compute system frequency at run-time
- Flashes initialised but not recognised
- Environment is built-in and temporarly stored in SDRAM

board/atmel/at572d940hfeb/Makefile new file +55 -0
new file mode 100644
index 0000000..c91bea6
@@ -0,0 +1,55 @@
+#
+# (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	+= at572d940hfeb.o
+COBJS-y	+= partition.o
+COBJS-y += flash.o
+COBJS-$(CONFIG_CMD_NAND) += nand.o
+COBJS-$(CONFIG_CMD_MMC)  += atmel_mci.o
+COBJS-$(CONFIG_USE_IRQ)	 += interrupts.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 .depend
+
+#########################################################################
+
+# defines $(obj).depend target
+include $(SRCTREE)/rules.mk
+
+sinclude $(obj).depend
+
+#########################################################################
board/atmel/at572d940hfeb/at572d940hfeb.c new file +267 -0

267 lines not on this page · raw message

board/atmel/at572d940hfeb/config.mk new file +1 -0
new file mode 100644
index 0000000..ff2cfd1
@@ -0,0 +1 @@
+TEXT_BASE = 0x23f00000
board/atmel/at572d940hfeb/flash.c new file +509 -0

509 lines not on this page · raw message

board/atmel/at572d940hfeb/interrupts.c new file +81 -0

81 lines not on this page · raw message

board/atmel/at572d940hfeb/nand.c new file +76 -0

76 lines not on this page · raw message

board/atmel/at572d940hfeb/partition.c new file +38 -0
new file mode 100644
index 0000000..389fb2c
@@ -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[CFG_MAX_DATAFLASH_BANKS];
+
+struct dataflash_addr cs[CFG_MAX_DATAFLASH_BANKS] = {
+	{CFG_DATAFLASH_LOGIC_ADDR_CS0, 0},	/* Logical adress, CS */
+	{CFG_DATAFLASH_LOGIC_ADDR_CS1, 1}
+};
+
+/*define the area offsets*/
+dataflash_protect_t area_list[NB_DATAFLASH_AREA] = {
+	{0x00000000, 0x000041FF, FLAG_PROTECT_SET,   0, "Bootstrap"},
+	{0x00004200, 0x000083FF, FLAG_PROTECT_CLEAR, 0, "Environment"},
+	{0x00008400, 0x00041FFF, FLAG_PROTECT_SET,   0, "U-Boot"},
+	{0x00042000, 0x00251FFF, FLAG_PROTECT_CLEAR, 0,	"Kernel"},
+	{0x00252000, 0xFFFFFFFF, FLAG_PROTECT_CLEAR, 0,	"FS"},
+};
board/atmel/at572d940hfeb/u-boot.lds new file +57 -0

57 lines not on this page · raw message

Signature · 1 line
1.5.4.3
#1 lore raw

PATCH 2/6 AT572D940HF-EB Support

Logic unit: include/asm-arm/arch-at572d940hf (part 1)
Purpose:    AT572D940HF-EB include files (part 1)
Author:     Antnoio R. Costa <antonio.costa <at> atmel.com>
Date  :     11 Jun 2008

Status:
- USB,MACB,MCI,DBGU,USARTS working
- Introduced interrput handling on reset to work around a bug on SDRAM controller
- Introduced a function to compute system frequency at run-time
- Flashes initialised but not recognised
- Environment is built-in and temporarly stored in SDRAM

include/asm-arm/arch-at572d940hf/at91_aic.h new file +43 -0
new file mode 100644
index 0000000..dd4a8d4
@@ -0,0 +1,43 @@
+/*
+ * include/asm-arm/arch-at572d940/at91_aic.h
+ *
+ * Copyright (C) ATMEL
+ *
+ * Advanced Interrupt Controller (AIC).
+ * Based on AT572D940 datasheet.
+ *
+ * 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.
+ */
+
+#define AIC_BASE 	0xfffff000
+
+#define AIC_SMR0	0x0
+#define AIC_SVR0	0x80
+#define AIC_IVR		0x100
+#define AIC_FIQ		0x104
+#define AIC_ISR		0x108
+#define AIC_IPR		0x10c
+#define AIC_IMR		0x110
+#define AIC_ICR		0x114
+#define AIC_IECR	0x120
+#define AIC_IDCR	0x124
+#define AIC_ICCR	0x128
+#define AIC_ISCR	0x12c
+#define AIC_EOICR	0x130
+#define AIC_SPU		0x134
+
+#define AIC_SMR(n)	\
+	((unsigned long) (((unsigned long*) AIC_SMR0) + (n)))
+#define AIC_SVR(n)	\
+	((unsigned long) (((unsigned long*) AIC_SVR0) + (n)))
+
+#define AIC_WRITE(reg,value) \
+	(*((volatile unsigned long*) (AIC_BASE + (reg))) = value)
+#define AIC_READ(reg,value)  \
+	(value = *((volatile unsigned long*) (AIC_BASE + (reg))))
+
+#define AIC_REG(reg)	\
+	(*((volatile unsigned long*) (AIC_BASE + (reg))))
include/asm-arm/arch-at572d940hf/at91_pio.h new file +51 -0

51 lines not on this page · raw message

include/asm-arm/arch-at572d940hf/at91_pit.h new file +29 -0
new file mode 100644
index 0000000..b854ff9
@@ -0,0 +1,29 @@
+/*
+ * include/asm-arm/arch-at91/at91_pit.h
+ *
+ * Periodic Interval Timer (PIT) - System peripherals regsters.
+ * Based on AT91SAM9261 datasheet revision D.
+ *
+ * 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.
+ */
+
+#ifndef AT91_PIT_H
+#define AT91_PIT_H
+
+#define AT91_PIT_MR		(AT91_PIT + 0x00)	/* Mode Register */
+#define		AT91_PIT_PITIEN		(1 << 25)	/* Timer Interrupt Enable */
+#define		AT91_PIT_PITEN		(1 << 24)	/* Timer Enabled */
+#define		AT91_PIT_PIV		(0xfffff)	/* Periodic Interval Value */
+
+#define AT91_PIT_SR		(AT91_PIT + 0x04)	/* Status Register */
+#define		AT91_PIT_PITS		(1 << 0)	/* Timer Status */
+
+#define AT91_PIT_PIVR		(AT91_PIT + 0x08)	/* Periodic Interval Value Register */
+#define AT91_PIT_PIIR		(AT91_PIT + 0x0c)	/* Periodic Interval Image Register */
+#define		AT91_PIT_PICNT		(0xfff << 20)	/* Interval Counter */
+#define		AT91_PIT_CPIV		(0xfffff)	/* Inverval Value */
+
+#endif
include/asm-arm/arch-at572d940hf/at91_pmc.h new file +101 -0

101 lines not on this page · raw message

include/asm-arm/arch-at572d940hf/at91_rstc.h new file +38 -0
new file mode 100644
index 0000000..aae10c0
@@ -0,0 +1,38 @@
+/*
+ * include/asm-arm/arch-at91/at91_rstc.h
+ *
+ * Reset Controller (RSTC) - System peripherals regsters.
+ * Based on AT91SAM9261 datasheet revision D.
+ *
+ * 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.
+ */
+
+#ifndef AT91_RSTC_H
+#define AT91_RSTC_H
+
+#define AT91_RSTC_CR		(AT91_RSTC + 0x00)	/* Reset Controller Control Register */
+#define	AT91_RSTC_PROCRST	(1 << 0)	/* Processor Reset */
+#define	AT91_RSTC_PERRST	(1 << 2)	/* Peripheral Reset */
+#define	AT91_RSTC_EXTRST	(1 << 3)	/* External Reset */
+#define	AT91_RSTC_KEY		(0xa5 << 24)	/* KEY Password */
+
+#define AT91_RSTC_SR			(AT91_RSTC + 0x04)	/* Reset Controller Status Register */
+#define	AT91_RSTC_URSTS			(1 << 0)	/* User Reset Status */
+#define	AT91_RSTC_RSTTYP		(7 << 8)	/* Reset Type */
+#define	AT91_RSTC_RSTTYP_GENERAL	(0 << 8)
+#define	AT91_RSTC_RSTTYP_WAKEUP		(1 << 8)
+#define	AT91_RSTC_RSTTYP_WATCHDOG	(2 << 8)
+#define	AT91_RSTC_RSTTYP_SOFTWARE	(3 << 8)
+#define	AT91_RSTC_RSTTYP_USER		(4 << 8)
+#define	AT91_RSTC_NRSTL			(1 << 16)	/* NRST Pin Level */
+#define	AT91_RSTC_SRCMP			(1 << 17)	/* Software Reset Command in Progress */
+
+#define AT91_RSTC_MR		(AT91_RSTC + 0x08)	/* Reset Controller Mode Register */
+#define	AT91_RSTC_URSTEN	(1 << 0)	/* User Reset Enable */
+#define	AT91_RSTC_URSTIEN	(1 << 4)	/* User Reset Interrupt Enable */
+#define	AT91_RSTC_ERSTL		(0xf << 8)	/* External Reset Length */
+
+#endif
include/asm-arm/arch-at572d940hf/at91_spi.h new file +105 -0

105 lines not on this page · raw message

include/asm-arm/arch-at572d940hf/clk.h new file +44 -0

44 lines not on this page · raw message

include/asm-arm/arch-at572d940hf/gpio.h new file +366 -0

366 lines not on this page · raw message

include/asm-arm/arch-at572d940hf/hardware.h new file +36 -0
new file mode 100644
index 0000000..f649b41
@@ -0,0 +1,36 @@
+/*
+ * include/asm-arm/arch-at91/hardware.h
+ *
+ *  Copyright (C) 2003 SAN People
+ *  Copyright (C) 2003 ATMEL
+ *
+ * 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.
+ *
+ */
+
+#ifndef __ASM_ARCH_HARDWARE_H
+#define __ASM_ARCH_HARDWARE_H
+
+#include <asm/sizes.h>
+
+#if defined(CONFIG_AT572D940HF)
+#include <asm/arch/at572d940hf.h>
+#else
+#error "Unsupported AT572D940HF processor"
+#endif
+
+/*
+ * container_of - cast a member of a structure out to the containing structure
+ *
+ * @ptr:	the pointer to the member.
+ * @type:	the type of the container struct this is embedded in.
+ * @member:	the name of the member within the struct.
+ */
+#define container_of(ptr, type, member) ({			\
+	const typeof(((type *)0)->member) *__mptr = (ptr);	\
+	(type *)((char *)__mptr - offsetof(type, member)); })
+
+#endif
include/asm-arm/arch-at572d940hf/io.h new file +40 -0
new file mode 100644
index 0000000..be9e9ab
@@ -0,0 +1,40 @@
+/*
+ * include/asm-arm/arch-at91/io.h
+ *
+ *  Copyright (C) 2003 SAN People
+ *
+ * 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 __ASM_ARCH_IO_H
+#define __ASM_ARCH_IO_H
+
+#include <asm/io.h>
+
+static inline unsigned int at91_sys_read(unsigned int reg_offset)
+{
+	void *addr = (void *)AT91_BASE_SYS;
+
+	return __raw_readl(addr + reg_offset);
+}
+
+static inline void at91_sys_write(unsigned int reg_offset, unsigned long value)
+{
+	void *addr = (void *)AT91_BASE_SYS;
+
+	__raw_writel(value, addr + reg_offset);
+}
+
+#endif
include/asm-arm/arch-at572d940hf/memory-map.h new file +36 -0
new file mode 100644
index 0000000..a590d59
@@ -0,0 +1,36 @@
+/*
+ * (C) Copyright 2007-2008
+ * Stelian Pop <stelian.pop <at> 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
+ */
+#ifndef __ASM_ARM_ARCH_MEMORYMAP_H__
+#define __ASM_ARM_ARCH_MEMORYMAP_H__
+
+#include <asm/arch/hardware.h>
+
+#define USART0_BASE AT91_USART0
+#define USART1_BASE AT91_USART1
+#define USART2_BASE AT91_USART2
+#define USART3_BASE (AT91_BASE_SYS + AT91_DBGU)
+
+#define AT572D940_SDRAM_BASE 0x20000000
+
+#endif /* __ASM_ARM_ARCH_MEMORYMAP_H__ */
Signature · 1 line
1.5.4.3
#2 lore raw

PATCH 3/6 AT572D940HF-EB Support

Logic unit: include/asm-arm/arch-at572d940hf (Part 2)
Purpose:    AT572D940HF-EB include files (Part 2)
Author:     Antnoio R. Costa <antonio.costa <at> atmel.com>
Date  :     11 Jun 2008

Status:
- USB,MACB,MCI,DBGU,USARTS working
- Introduced interrput handling on reset to work around a bug on SDRAM controller
- Introduced a function to compute system frequency at run-time
- Flashes initialised but not recognised
- Environment is built-in and temporarly stored in SDRAM

include/asm-arm/arch-at572d940hf/at572d940hf.h new file +147 -0
new file mode 100644
index 0000000..b3e6f77
@@ -0,0 +1,147 @@
+/*
+ * include/asm-arm/arch-at91/AT572D940HFhf.h
+ *
+ * (C) 2008 Antonio R. Costa
+ *
+ * Common definitions.
+ * Based on AT572D940HFHF datasheet rev A.
+ *
+ * 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.
+ */
+
+#ifndef AT572D940HFHF_H
+#define AT572D940HFHF_H
+
+/*
+ * Peripheral identifiers/interrupts.
+ */
+#define AT91_ID_FIQ		0	/* Advanced Interrupt Controller (FIQ) */
+#define AT91_ID_SYS		1	/* System Peripherals */
+#define AT572D940HF_ID_PIOA	2	/* Parallel IO Controller A */
+#define AT572D940HF_ID_PIOB	3	/* Parallel IO Controller B */
+#define AT572D940HF_ID_PIOC	4	/* Parallel IO Controller C */
+#define AT572D940HF_ID_EMAC	5	/* Ethernet */
+#define AT572D940HF_ID_US0	6	/* USART 0 */
+#define AT572D940HF_ID_US1	7	/* USART 1 */
+#define AT572D940HF_ID_US2	8	/* USART 2 */
+#define AT572D940HF_ID_MCI	9	/* Multimedia Card Interface */
+#define AT572D940HF_ID_UDP	10	/* USB Device Port */
+#define AT572D940HF_ID_TWI	11	/* Two-Wire Interface */
+#define AT572D940HF_ID_TWI0	11	/* Two-Wire Interface */
+#define AT572D940HF_ID_SPI0	12	/* Serial Peripheral Interface 0 */
+#define AT572D940HF_ID_SPI1	13	/* Serial Peripheral Interface 1 */
+#define AT572D940HF_ID_SSC	14	/* Serial Synchronous Controller */
+#define AT572D940HF_ID_SSC0	14	/* Serial Synchronous Controller */
+#define AT572D940HF_ID_SSC1	15	/* Serial Synchronous Controller */
+#define AT572D940HF_ID_SSC2	16	/* Serial Synchronous Controller */
+#define AT572D940HF_ID_TC0	17	/* Timer Counter 0 */
+#define AT572D940HF_ID_TC1	18	/* Timer Counter 1 */
+#define AT572D940HF_ID_TC2	19	/* Timer Counter 2 */
+#define AT572D940HF_ID_UHP	20	/* USB Host port */
+#define AT572D940HF_ID_SSC3	21	/* Serial Synchronous Controller */
+#define AT572D940HF_ID_TWI1	22	/* Two-Wire Interface */
+#define AT572D940HF_ID_CAN0	23	/* CAN Controller */
+#define AT572D940HF_ID_CAN1	24	/* CAN Controller */
+#define AT572D940HF_ID_mHALT	25	/* mAgicV DSP halt int */
+#define AT572D940HF_ID_mSIRQ1	26	/* mAgicV DSP SIRQ1 int */
+#define AT572D940HF_ID_mEXC	27	/* mAgicV DSP Exception int */
+#define AT572D940HF_ID_mEDMA	28	/* mAgicV DSP end of DMA transfer int */
+#define AT572D940HF_ID_IRQ0	29	/* Advanced Interrupt Controller (IRQ0) */
+#define AT572D940HF_ID_IRQ1	30	/* Advanced Interrupt Controller (IRQ1) */
+#define AT572D940HF_ID_IRQ2	31	/* Advanced Interrupt Controller (IRQ2) */
+
+#define AT91_ID_US0 		AT572D940HF_ID_US0
+#define AT91_ID_US1 		AT572D940HF_ID_US1
+#define AT91_ID_US2 		AT572D940HF_ID_US2
+#define AT91_ID_US3 		AT572D940HF_ID_US3
+
+#define AT91_ID_UHP	AT572D940HF_ID_UHP
+#define AT91_PMC_UHP	AT572D940HF_ID_UHP
+
+/*
+ * User Peripheral physical base addresses.
+ */
+#define AT572D940HF_BASE_TCB0		0xfffa0000
+#define AT572D940HF_BASE_TC0		0xfffa0000
+#define AT572D940HF_BASE_TC1		0xfffa0040
+#define AT572D940HF_BASE_TC2		0xfffa0080
+#define AT572D940HF_BASE_UDP		0xfffa4000
+#define AT572D940HF_BASE_MCI		0xfffa8000
+#define AT572D940HF_BASE_TWI		0xfffac000
+#define AT572D940HF_BASE_US0		0xfffb0000
+#define AT572D940HF_BASE_US1		0xfffb4000
+#define AT572D940HF_BASE_US2		0xfffb8000
+#define AT572D940HF_BASE_SSC		0xfffbc000
+#define AT572D940HF_BASE_ISI		0xfffc0000
+#define AT572D940HF_BASE_EMAC		0xfffd8000
+#define AT572D940HF_BASE_SPI0		0xfffc8000
+#define AT572D940HF_BASE_SPI1		0xfffcc000
+#define AT572D940HF_BASE_US3		0xfffd0000
+#define AT572D940HF_BASE_US4		0xfffd4000
+#define AT572D940HF_BASE_US5		0xfffd8000
+#define AT572D940HF_BASE_TCB1		0xfffdc000
+#define AT572D940HF_BASE_TC3		0xfffdc000
+#define AT572D940HF_BASE_TC4		0xfffdc040
+#define AT572D940HF_BASE_TC5		0xfffdc080
+#define AT572D940HF_BASE_ADC		0xfffe0000
+#define AT572D940HF_BASE_RSTC		0xfffffd00
+#define AT91_BASE_SYS			0xffffea00
+
+#define AT91_BASE_EMAC	AT572D940HF_BASE_EMAC
+#define AT91_BASE_SPI	AT572D940HF_BASE_SPI0
+#define MMCI_BASE	AT572D940HF_BASE_MCI
+
+/*
+ * System Peripherals (offset from AT91_BASE_SYS)
+ */
+#define AT91_ECC	(0xffffe800 - AT91_BASE_SYS)
+#define AT91_SDRAMC	(0xffffea00 - AT91_BASE_SYS)
+#define AT91_SMC	(0xffffec00 - AT91_BASE_SYS)
+#define AT91_MATRIX	(0xffffee00 - AT91_BASE_SYS)
+#define AT91_CCFG	(0xffffef10 - AT91_BASE_SYS)
+#define AT91_AIC	(0xfffff000 - AT91_BASE_SYS)
+#define AT91_DBGU	(0xfffff200 - AT91_BASE_SYS)
+#define AT91_PIOA	(0xfffff400 - AT91_BASE_SYS)
+#define AT91_PIOB	(0xfffff600 - AT91_BASE_SYS)
+#define AT91_PIOC	(0xfffff800 - AT91_BASE_SYS)
+#define AT91_PMC	(0xfffffc00 - AT91_BASE_SYS)
+#define AT91_RSTC	(0xfffffd00 - AT91_BASE_SYS)
+#define AT91_SHDWC	(0xfffffd10 - AT91_BASE_SYS)
+#define AT91_RTT	(0xfffffd20 - AT91_BASE_SYS)
+#define AT91_PIT	(0xfffffd30 - AT91_BASE_SYS)
+#define AT91_WDT	(0xfffffd40 - AT91_BASE_SYS)
+#define AT91_GPBR	(0xfffffd50 - AT91_BASE_SYS)
+
+#define AT91_USART0	AT572D940HF_BASE_US0
+#define AT91_USART1	AT572D940HF_BASE_US1
+#define AT91_USART2	AT572D940HF_BASE_US2
+#define AT91_USART3	AT572D940HF_BASE_US3
+#define AT91_USART4	AT572D940HF_BASE_US4
+#define AT91_USART5	AT572D940HF_BASE_US5
+
+/*
+ * Internal Memory.
+ */
+#define AT572D940HF_ROM_BASE	0x00400000	/* Internal ROM base address */
+#define AT572D940HF_ROM_SIZE	SZ_32K	/* Internal ROM size (32Kb) */
+
+#define AT572D940HF_SRAM0_BASE	0x00100000	/* Internal SRAM 0 base address */
+#define AT572D940HF_SRAM0_SIZE	SZ_16K	/* Internal SRAM 0 size (4Kb) */
+#define AT572D940HF_SRAM1_BASE	0x00200000	/* Internal SRAM 0 base address */
+#define AT572D940HF_SRAM1_SIZE	SZ_16K	/* Internal SRAM 0 size (4Kb) */
+#define AT572D940HF_SRAM2_BASE	0x00300000	/* Internal SRAM 1 base address */
+#define AT572D940HF_SRAM2_SIZE	SZ_16K	/* Internal SRAM 1 size (4Kb) */
+
+//SDRAM
+#define AT572D940HF_SDRAM_BASE	0x20000000
+
+// USB Host
+#define AT572D940HF_UHP_BASE	0x00500000	/* USB Host controller */
+
+#define AT91SAM9XE_FLASH_BASE	0x00200000	/* Internal FLASH base address */
+#define AT91SAM9XE_SRAM_BASE	0x00300000	/* Internal SRAM base address */
+
+#endif
include/asm-arm/arch-at572d940hf/at572d940hf_matrix.h new file +78 -0

78 lines not on this page · raw message

include/asm-arm/arch-at572d940hf/at572d940hf_mc.h new file +140 -0

140 lines not on this page · raw message

include/asm-arm/arch-at572d940hf/interrupts.h new file +41 -0

41 lines not on this page · raw message

include/asm-arm/arch-at572d940hf/timer.h new file +40 -0
new file mode 100644
index 0000000..8878d06
@@ -0,0 +1,40 @@
+/*
+ * Copyright (C) 2005-2006 Atmel Corporation
+ *
+ * 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
+ */
+
+/*
+ * Author: Antonio R. Costa
+ */
+
+#ifndef _AT91_TIMER_H_
+#define _AT91_TIMER_H_
+
+#define AT91_SLOW_FREQ    0
+#define AT91_MAIN_FREQ    1
+#define AT91_PLLA_FREQ    2
+#define AT91_PLLB_FREQ    3
+#define AT91_MASTER_FREQ  4
+#define AT91_SYS_FREQ     4
+#define AT91_PROC_FREQ    5
+
+extern int sys_get_freq(unsigned long mode, unsigned long *pfreq);
+
+#endif /* _AT91_TIMER_H_ */
Signature · 1 line
1.5.4.3
#3 lore raw

PATCH 4/6 AT572D940HF-EB Support

Logic unit: cpu/arm926ejs/at572d940hf
Purpose:    AT572D940HF-EB interrupts, reset and timer functions
Author:     Antnoio R. Costa <antonio.costa <at> atmel.com>
Date  :     11 Jun 2008

Status:
- USB,MACB,MCI,DBGU,USARTS working
- Introduced interrput handling on reset to work around a bug on SDRAM controller
- Introduced a function to compute system frequency at run-time
- Flashes initialised but not recognised
- Environment is built-in and temporarly stored in SDRAM

cpu/arm926ejs/at572d940hf/Makefile new file +49 -0
new file mode 100644
index 0000000..203abc2
@@ -0,0 +1,49 @@
+#
+# (C) Copyright 2000-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$(SOC).a
+
+COBJS-y	+= ether.o
+COBJS-y	+= timer.o
+COBJS-$(CONFIG_HAS_DATAFLASH) +=spi.o
+COBJS-y	+= usb.o
+SOBJS	= lowlevel_init.o
+
+SRCS    := $(SOBJS:.o=.S) $(COBJS-y:.o=.c)
+OBJS    := $(addprefix $(obj),$(SOBJS) $(COBJS-y))
+
+all:	$(obj).depend $(LIB)
+
+$(LIB):	$(OBJS)
+	$(AR) $(ARFLAGS) $@ $(OBJS)
+
+#########################################################################
+
+# defines $(obj).depend target
+include $(SRCTREE)/rules.mk
+
+sinclude $(obj).depend
+
+#########################################################################
cpu/arm926ejs/at572d940hf/config.mk new file +2 -0
new file mode 100644
index 0000000..ca2cae1
@@ -0,0 +1,2 @@
+PLATFORM_CPPFLAGS += -march=armv5te
+PLATFORM_CPPFLAGS += $(call cc-option,-mtune=arm926ejs,)
cpu/arm926ejs/at572d940hf/ether.c new file +35 -0
new file mode 100644
index 0000000..5b458f0
@@ -0,0 +1,35 @@
+/*
+ * (C) Copyright 2007-2008
+ * Stelian Pop <stelian.pop <at> 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/hardware.h>
+
+extern int macb_eth_initialize(int id, void *regs, unsigned int phy_addr);
+
+#if defined(CONFIG_MACB) && defined(CONFIG_CMD_NET)
+void at572d940hf_eth_initialize(bd_t *bi)
+{
+	macb_eth_initialize(0, (void *)AT91_BASE_EMAC, 0x00);
+}
+#endif
cpu/arm926ejs/at572d940hf/lowlevel_init.S new file +43 -0

43 lines not on this page · raw message

cpu/arm926ejs/at572d940hf/spi.c new file +157 -0

157 lines not on this page · raw message

cpu/arm926ejs/at572d940hf/timer.c new file +292 -0

292 lines not on this page · raw message

cpu/arm926ejs/at572d940hf/usb.c new file +54 -0

54 lines not on this page · raw message

Signature · 1 line
1.5.4.3
#4 lore raw

PATCH 5/6 AT572D940HF-EB Support

Logic unit: Network glue code
Purpose:    Added AT572D940HF-EB to network files
Author:     Antnoio R. Costa <antonio.costa <at> atmel.com>
Date  :     11 Jun 2008

Status:
- USB,MACB,MCI,DBGU,USARTS working
- Introduced interrput handling on reset to work around a bug on SDRAM controller
- Introduced a function to compute system frequency at run-time
- Flashes initialised but not recognised
- Environment is built-in and temporarly stored in SDRAM

drivers/net/macb.c +4 -4
index e5733f6..eb446d1 100644
@@ -417,15 +417,15 @@ static int macb_init(struct eth_device *netdev, bd_t *bd)
 
 	/* choose RMII or MII mode. This depends on the board */
 #ifdef CONFIG_RMII
-#if defined(CONFIG_AT91CAP9) || defined(CONFIG_AT91SAM9260) || \
-    defined(CONFIG_AT91SAM9263)
+#if defined(CONFIG_AT91CAP9)    || defined(CONFIG_AT91SAM9260) || \
+    defined(CONFIG_AT91SAM9263) || defined(CONFIG_AT572D940HFEB)
 	macb_writel(macb, USRIO, MACB_BIT(RMII) | MACB_BIT(CLKEN));
 #else
 	macb_writel(macb, USRIO, 0);
 #endif
 #else
-#if defined(CONFIG_AT91CAP9) || defined(CONFIG_AT91SAM9260) || \
-    defined(CONFIG_AT91SAM9263)
+#if defined(CONFIG_AT91CAP9)    || defined(CONFIG_AT91SAM9260) || \
+    defined(CONFIG_AT91SAM9263) || defined(CONFIG_AT572D940HFEB)
 	macb_writel(macb, USRIO, MACB_BIT(CLKEN));
 #else
 	macb_writel(macb, USRIO, MACB_BIT(MII));
net/eth.c +4 -0
index 21d1496..e782731 100644
@@ -65,6 +65,7 @@ extern int atngw100_eth_initialize(bd_t *);
 extern int mcffec_initialize(bd_t*);
 extern int mcdmafec_initialize(bd_t*);
 extern int at91sam9_eth_initialize(bd_t *);
+extern int at572d940hf_eth_initialize(bd_t *);
 
 #ifdef CONFIG_API
 extern void (*push_packet)(volatile void *, int);
@@ -292,6 +293,9 @@ int eth_initialize(bd_t *bis)
     defined(CONFIG_AT91SAM9263)
 	at91sam9_eth_initialize(bis);
 #endif
+#if defined(CONFIG_AT572D940HF)
+	at572d940hf_eth_initialize(bis);
+#endif
 
 	if (!eth_devices) {
 		puts ("No ethernet found.\n");
Signature · 1 line
1.5.4.3
#5 lore raw

PATCH 6/6 AT572D940HF-EB Support

Logic unit: Configuration files
Purpose:    Added AT572D940HF-EB to Makefile and mach-types, added config file
Author:     Antnoio R. Costa <antonio.costa <at> atmel.com>
Date  :     11 Jun 2008

Status:
- USB,MACB,MCI,DBGU,USARTS working
- Introduced interrput handling on reset to work around a bug on SDRAM controller
- Introduced a function to compute system frequency at run-time
- Flashes initialised but not recognised
- Environment is built-in and temporarly stored in SDRAM

Makefile +11 -0
index 7e68b23..1cb5ac7 100644
@@ -2370,6 +2370,17 @@ at91sam9260ek_config	:	unconfig
 	@$(MKCONFIG) $(@:_config=) arm arm926ejs at91sam9260ek atmel at91sam9
 
 ########################################################################
+
+########################################################################
+# AT572D940HF
+########################################################################
+#
+at572d940hfeb_config	:	unconfig
+	@$(MKCONFIG) $(@:_config=) arm arm926ejs at572d940hfeb atmel at572d940hf
+
+########################################################################
+
+
 ## ARM Integrator boards - see doc/README-integrator for more info.
 integratorap_config	\
 ap_config		\
include/asm-arm/mach-types.h +1 -0
index aaf2ea2..b053b7a 100644
@@ -1595,6 +1595,7 @@ extern unsigned int __machine_arch_type;
 #define MACH_TYPE_P300                 1602
 #define MACH_TYPE_XDACOMET             1603
 #define MACH_TYPE_DEXFLEX2             1604
+#define MACH_TYPE_AT572D940HFEB        1783
 
 #ifdef CONFIG_ARCH_EBSA110
 # ifdef machine_arch_type
include/configs/at572d940hfeb.h new file +270 -0

270 lines not on this page · raw message

Signature · 1 line
1.5.4.3
#6 lore raw

PATCH 6/6 AT572D940HF-EB Support

Hi Antonio,

Quoted 5 lines · Antonio R. Costa
Logic unit: Configuration files
Purpose:    Added AT572D940HF-EB to Makefile and mach-types, added config file
Author:     Antnoio R. Costa <antonio.costa <at> atmel.com>
Date  :     11 Jun 2008
Quoted 9 lines

Status:
- USB,MACB,MCI,DBGU,USARTS working
- Introduced interrput handling on reset to work around a bug on SDRAM controller
- Introduced a function to compute system frequency at run-time
- Flashes initialised but not recognised
- Environment is built-in and temporarly stored in SDRAM

Having all this stuff in every patch is confusing. Please only include information about the particular patch.

Quoted 65 lines
Makefile +11 -0
index 7e68b23..1cb5ac7 100644
@@ -2370,6 +2370,17 @@ at91sam9260ek_config	:	unconfig
 	@$(MKCONFIG) $(@:_config=) arm arm926ejs at91sam9260ek atmel at91sam9
 
 ########################################################################
+
+########################################################################
+# AT572D940HF
+########################################################################
+#
+at572d940hfeb_config	:	unconfig
+	@$(MKCONFIG) $(@:_config=) arm arm926ejs at572d940hfeb atmel at572d940hf
+
+########################################################################
+
+
 ## ARM Integrator boards - see doc/README-integrator for more info.
 integratorap_config	\
 ap_config		\
include/asm-arm/mach-types.h +1 -0
index aaf2ea2..b053b7a 100644
@@ -1595,6 +1595,7 @@ extern unsigned int __machine_arch_type;
 #define MACH_TYPE_P300                 1602
 #define MACH_TYPE_XDACOMET             1603
 #define MACH_TYPE_DEXFLEX2             1604
+#define MACH_TYPE_AT572D940HFEB        1783
 
 #ifdef CONFIG_ARCH_EBSA110
 # ifdef machine_arch_type
include/configs/at572d940hfeb.h new file +22 -0
new file mode 100644
index 0000000..7e89aa8
@@ -0,0 +1,270 @@
+/*
+ * (C) Copyright 2008
+ * Antonio R. Costa <antonio.costa <at> atmel.com>
+ * ATMEL CORP <www.atmel.com>
+ *
+ * Configuation settings for the AT572D940HFEB 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

include/configs/at572d940hfeb.h line 32

Quoted 10 lines
include/configs/at572d940hfeb.h new file +10 -0
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+#ifndef __CONFIG_H
+#define __CONFIG_H
+
+/* ARM asynchronous clock */
+/* Miniloader */
+#define AT91_MAIN_CLOCK		160000000	/* from 12 MHz crystal   */

I can't say for sure without applying it, but this looks like a long line.

include/configs/at572d940hfeb.h

Quoted 4 lines
include/configs/at572d940hfeb.h new file +4 -0
+#define AT91_MASTER_CLOCK	 80000000	/* peripheral = main / 2 */
+
+/* ROM Boot */
+//#define AT91_MAIN_CLOCK        96000000       /* from 18.432 MHz crystal 

C++ style comments are not allowed

Quoted 129 lines

*/

include/configs/at572d940hfeb.h new file +127 -0
+//#define AT91_MASTER_CLOCK      48000000       /* peripheral = main / 2   */
+
+#define CFG_HZ				1000000	/* 1us resolution */
+
+#define AT91_CLK_DELAY_CYCLES		256
+#define AT91_SLOW_CLOCK			32768	/* slow clock */
+#define CFG_SLOW_CLK			AT91_SLOW_CLOCK
+
+#define CONFIG_ARM926EJS		1	/* This is an ARM926EJS Core    */
+#define CONFIG_AT572D940HF		1	/* It's an Atmel AT572D940HF SoC  */
+#define CONFIG_AT572D940HFEB		1	/* on an AT572D940HFEB Board    */
+#define CONFIG_MACH_AT572D940HFEB	1
+#define CONFIG_USE_IRQ			1
+
+#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	1
+#define CONFIG_SKIP_RELOCATE_UBOOT	1
+
+/*
+ * Hardware drivers
+ */
+#define CONFIG_ATMEL_USART	1
+#undef CONFIG_USART0
+#undef CONFIG_USART1
+#undef CONFIG_USART2
+#define CONFIG_USART3		1	/* USART 3 is DBGU */
+
+#define CONFIG_BOOTDELAY	3
+/*
+ * #define CONFIG_BOOTARGS		"console=ttyS0,115200 " \
+ * 				"root=/dev/mtdblock0 rw rootfstype=jffs2"
+ */
+
+#undef	CONFIG_HWFLOW		/* don't include RTS/CTS flow control support   */
+
+#define CONFIG_ENV_OVERWRITE		1
+
+/*
+ * BOOTP options
+ */
+#define CONFIG_BOOTP_BOOTFILESIZE	1
+#define CONFIG_BOOTP_BOOTPATH		1
+#define CONFIG_BOOTP_GATEWAY		1
+#define CONFIG_BOOTP_HOSTNAME		1
+
+/*
+ * Command line configuration.
+ */
+#include <config_cmd_default.h>
+//#undef CONFIG_CMD_BDI
+//#undef CONFIG_CMD_IMI
+//#undef CONFIG_CMD_NET
+//#undef CONFIG_CMD_PING
+
+#define CONFIG_AUTO_COMPLETE		1
+#define CONFIG_CMDLINE_EDITING		1
+
+#undef CONFIG_CMD_FPGA
+#undef CONFIG_CMD_LOADS
+#undef CONFIG_CMD_IMLS
+
+#define CONFIG_CMD_PING		1
+#define CONFIG_CMD_DHCP		1
+#define CONFIG_CMD_NAND		1
+#define CONFIG_CMD_USB		1
+#define CONFIG_CMD_MMC		1
+// #undef CONFIG_CMD_I2C
+// #undef CONFIG_CMD_SPI                
+// #define CONFIG_CMD_AT91_SPIMUX  1
+#define CONFIG_CMD_FAT		1
+#define CONFIG_CMD_EXT2		1
+#define CONFIG_CMD_JFFS2	1
+
+/* SDRAM */
+#define CONFIG_NR_DRAM_BANKS		1
+#define PHYS_SDRAM			0x20000000
+#define PHYS_SDRAM_SIZE			0x04000000	/* 64 megs */
+
+/* DataFlash */
+#define CONFIG_HAS_DATAFLASH		1
+#define CFG_SPI_WRITE_TOUT		(5*CFG_HZ)
+#define CFG_MAX_DATAFLASH_BANKS		2
+#define CFG_DATAFLASH_LOGIC_ADDR_CS0	0xC0000000	/* CS0 */
+#define CFG_DATAFLASH_LOGIC_ADDR_CS1	0xD0000000	/* CS1 */
+#define AT91_SPI_CLK			33000000
+#define DATAFLASH_TCSS			(0x1a << 16)
+#define DATAFLASH_TCHS			(0x01 << 24)
+
+/* NAND flash */
+#define NAND_MAX_CHIPS			1
+#define CFG_MAX_NAND_DEVICE		1
+#define CFG_NAND_BASE			0x40000000
+
+#define CFG_FLASH_BASE			0x10000000
+#define CFG_BOOT_SIZE			(7 * 0x1000)	/* 7 4K sectors */
+#define CFG_ENV_ADDR			0x10007000
+#define CFG_ENV_SIZE			0x1000	/* 4K */
+
+#define CFG_U_BOOT_BASE			0x10008000
+#define CFG_U_BOOT_SIZE			(10 * 0x1000)	/* 10 4K sectors */
+
+#define CFG_MAX_FLASH_SECT		135
+#define CFG_MAX_FLASH_BANKS		1
+#define CFG_FLASH_ERASE_TOUT		120000
+#define CFG_FLASH_WRITE_TOUT		500
+#define CFG_USE_BUFFER_WRITE		1
+
+#undef CFG_ENV_IS_IN_NVRAM
+#undef CFG_ENV_IS_IN_EEPROM
+#undef CFG_ENV_IS_IN_FLASH
+#undef CFG_ENV_IS_IN_DATAFLASH
+#undef CFG_ENV_IS_IN_NAND
+#undef CFG_ENV_IS_IN_ONENAND
+
+#define CFG_ENV_IS_NOWHERE		1
+
+#define PHYS_FLASH_1 			CFG_FLASH_BASE
+
+/* NOR flash - no real flash on this board */
+// #define CFG_NO_FLASH                 1
+
+/* Ethernet */
+
+#define CONFIG_MACB			1

include/configs/at572d940hfeb.h line 173

Quoted 10 lines
include/configs/at572d940hfeb.h new file +10 -0
+#define CONFIG_RMII			1
+#define CONFIG_NET_MULTI		1
+#define CONFIG_NET_RETRY_COUNT		20
+#define CONFIG_RESET_PHY_R		1
+#define CONFIG_ETHADDR			00:11:22:33:AA:BB
+#define CONFIG_IPADDR			172.16.1.187
+#define CONFIG_NETMASK			255.255.0.0
+#define CONFIG_HOSTNAME			D940DEB
+#define CONFIG_SERVERIP			172.16.1.30
+#define CONFIG_BOOTFILE			d940deb.bin

Please remove all of the default network configurations (from ETHADDR to BOOTFILE)

Quoted 59 lines
include/configs/at572d940hfeb.h new file +58 -0
+
+/* USB */
+#define CONFIG_USBH			1
+#define CONFIG_USB_OHCI_NEW		1
+#define LITTLEENDIAN			1
+#define CONFIG_DOS_PARTITION		1
+#define CFG_USB_OHCI_CPU_INIT		1
+#define CFG_USB_OHCI_REGS_BASE		0x00500000	/* AT572D940_UHP_BASE */
+#define CFG_USB_OHCI_SLOT_NAME		"at572d940"
+#define CFG_USB_OHCI_MAX_ROOT_PORTS	2
+#define CONFIG_USB_STORAGE		1
+
+#define CFG_LOAD_ADDR			0x22000000	/* load address */
+
+#define CFG_MEMTEST_START		PHYS_SDRAM
+#define CFG_MEMTEST_END			0x23e00000
+
+#undef CFG_USE_DATAFLASH_CS0
+#undef CFG_USE_DATAFLASH_CS1
+#undef CFG_USE_NANDFLASH
+#define CFG_USE_SD			1
+
+#ifdef CFG_USE_DATAFLASH_CS0
+
+/* bootstrap + u-boot + env + linux in dataflash on CS0 */
+#define CFG_ENV_IS_IN_DATAFLASH	1
+#define CFG_MONITOR_BASE	(CFG_DATAFLASH_LOGIC_ADDR_CS0 + 0x8400)
+#define CFG_ENV_OFFSET		0x4200
+#define CFG_ENV_ADDR		(CFG_DATAFLASH_LOGIC_ADDR_CS0 + CFG_ENV_OFFSET)
+#define CFG_ENV_SIZE		0x4200
+#define CONFIG_BOOTCOMMAND	"cp.b 0xC003DE00 0x22000000 0x200040; bootm"
+
+#elif CFG_USE_DATAFLASH_CS1
+
+/* bootstrap + u-boot + env + linux in dataflash on CS1 */
+#define CFG_ENV_IS_IN_DATAFLASH	1
+#define CFG_MONITOR_BASE	(CFG_DATAFLASH_LOGIC_ADDR_CS1 + 0x8400)
+#define CFG_ENV_OFFSET		0x4200
+#define CFG_ENV_ADDR		(CFG_DATAFLASH_LOGIC_ADDR_CS1 + CFG_ENV_OFFSET)
+#define CFG_ENV_SIZE		0x4200
+#define CONFIG_BOOTCOMMAND	"cp.b 0xD003DE00 0x22000000 0x200040; bootm"
+
+#elif CFG_USE_NANDFLASH
+
+/* bootstrap + u-boot + env + linux in nandflash */
+#define CFG_ENV_IS_IN_NAND	1
+#define CFG_ENV_OFFSET		0x60000
+#define CFG_ENV_OFFSET_REDUND	0x80000
+#define CFG_ENV_SIZE		0x20000	/* 1 sector = 128 kB */
+#define CONFIG_BOOTCOMMAND	"nand read 0x22000000 0xA0000 0x200000; bootm"
+
+#elif CFG_USE_SD
+//#define CFG_ENV_IS_IN_DATAFLASH       1
+#define CFG_MONITOR_BASE	(CFG_DATAFLASH_LOGIC_ADDR_CS1 + 0x8400)
+//#define CFG_ENV_OFFSET                0x4200
+//#define CFG_ENV_ADDR          (CFG_DATAFLASH_LOGIC_ADDR_CS1 + CFG_ENV_OFFSET)
+//#define CFG_ENV_SIZE          0x4200
+

include/configs/at572d940hfeb.h line 241

Quoted 10 lines
include/configs/at572d940hfeb.h new file +10 -0
+#define CONFIG_MMC		1
+#define CFG_SD_CARD_BOOT	1
+
+//#define CFG_MMC_CLK_OD                1500000
+//#define CFG_MMC_CLK_PP                1500000
+#define CFG_MMC_CLK_OD		20000000
+#define CFG_MMC_CLK_PP		20000000
+#define CFG_MMC_OP_COND		(0x401f8000)	/* SDHC + voltage rage 2.7-3.3 */
+
+#define CONFIG_BOOTCOMMAND    	"mmcinit; fatload mmc 0:1 0x21400000 uLinux.img; fatload mmc 0:1 0x21100000 initrd.img; bootm 0x21400000"

Seriously long line. Please break it up. I believe the limit is < 78 characters, but you can look that up.

Quoted 20 lines
include/configs/at572d940hfeb.h new file +19 -0
+
+#endif
+
+#define CONFIG_BAUDRATE		115200
+#define CFG_BAUDRATE_TABLE	{115200 , 19200, 38400, 57600, 9600 }
+
+#define CFG_PROMPT		"Diopsis U-Boot> "
+#define CFG_CBSIZE		256
+#define CFG_MAXARGS		16
+#define CFG_PBSIZE		(CFG_CBSIZE + sizeof(CFG_PROMPT) + 16)
+#define CFG_LONGHELP		1
+#define CONFIG_CMDLINE_EDITING	1
+
+#define ROUND(A, B)		(((A) + (B)) & ~((B) - 1))
+/*
+ * Size of malloc() pool
+ */
+#define CFG_MALLOC_LEN		ROUND(3 * CFG_ENV_SIZE + 128*1024, 0x1000)
+#define CFG_GBL_DATA_SIZE	128	/* 128 bytes for initial data */

include/configs/at572d940hfeb.h line 270

Quoted 10 lines
include/configs/at572d940hfeb.h new file +10 -0
+
+#define CONFIG_STACKSIZE	(32*1024)	/* regular stack */
+
+#ifdef CONFIG_USE_IRQ
+#define CONFIG_STACKSIZE_IRQ 	4096
+#define CONFIG_STACKSIZE_FIQ 	4096
+//#error CONFIG_USE_IRQ not supported
+#endif
+
+#endif

regards,
Ben