The grasshopper board is a neat avr32 evaluation kit produced by In-Circuit
GmbH.
See http://www.ic-board.de/product_info.php?info=p75_ICnova-AP7000-Base.html
for detailed information about this device.
Signed-off-by: Andreas Bießmann biessm...@corscience.de
---
board/in-circuit/grasshopper/Makefile | 45 +++
board/in-circuit/grasshopper/grasshopper.c | 105 +++
boards.cfg |1 +
include/configs/grasshopper.h | 197
4 files changed, 348 insertions(+), 0 deletions(-)
create mode 100644 board/in-circuit/grasshopper/Makefile
create mode 100644 board/in-circuit/grasshopper/grasshopper.c
create mode 100644 include/configs/grasshopper.h
diff --git a/board/in-circuit/grasshopper/Makefile
b/board/in-circuit/grasshopper/Makefile
new file mode 100644
index 000..a6c36c7
--- /dev/null
+++ b/board/in-circuit/grasshopper/Makefile
@@ -0,0 +1,45 @@
+#
+# (C) Copyright 2001-2006
+# Wolfgang Denk, DENX Software Engineering, w...@denx.de.
+#
+# Copyright (C) 2011
+# Corscience GmbH Co.KG, Andreas Bießmann biessm...@corscience.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).o
+
+COBJS-y += $(BOARD).o
+
+SRCS:= $(COBJS-y:.o=.c)
+OBJS:= $(addprefix $(obj),$(COBJS-y))
+
+$(LIB): $(obj).depend $(OBJS)
+ $(call cmd_link_o_target, $(OBJS))
+
+#
+
+# defines $(obj).depend target
+include $(SRCTREE)/rules.mk
+
+sinclude $(obj).depend
+
+#
diff --git a/board/in-circuit/grasshopper/grasshopper.c
b/board/in-circuit/grasshopper/grasshopper.c
new file mode 100644
index 000..d020c29
--- /dev/null
+++ b/board/in-circuit/grasshopper/grasshopper.c
@@ -0,0 +1,105 @@
+/*
+ * Copyright (C) 2011
+ * Corscience GmbH Co.KG, Andreas Bießmann biessm...@corscience.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/io.h
+#include asm/sdram.h
+#include asm/arch/clk.h
+#include asm/arch/hmatrix.h
+#include asm/arch/mmu.h
+#include asm/arch/portmux.h
+#include netdev.h
+
+DECLARE_GLOBAL_DATA_PTR;
+
+struct mmu_vm_range mmu_vmr_table[CONFIG_SYS_NR_VM_REGIONS] = {
+{
+.virt_pgno = CONFIG_SYS_FLASH_BASE PAGE_SHIFT,
+.nr_pages = CONFIG_SYS_FLASH_SIZE PAGE_SHIFT,
+.phys = (CONFIG_SYS_FLASH_BASE PAGE_SHIFT)
+| MMU_VMR_CACHE_NONE,
+}, {
+.virt_pgno = CONFIG_SYS_SDRAM_BASE PAGE_SHIFT,
+.nr_pages = EBI_SDRAM_SIZE PAGE_SHIFT,
+.phys = (CONFIG_SYS_SDRAM_BASE PAGE_SHIFT)
+| MMU_VMR_CACHE_WRBACK,
+},
+};
+
+static const struct sdram_config sdram_config = {
+/* Dual MT48LC16M16A2-7E (or equal) */
+.data_bits = SDRAM_DATA_32BIT,
+.row_bits = 13,
+.col_bits = 9,
+.bank_bits = 2,
+.cas= 2,
+.twr= 2,
+.trc= 7,
+.trp= 2,
+.trcd = 2,
+.tras = 4,
+.txsr = 7,
+/* 7.81 us */
+.refresh_period = (781 * (SDRAMC_BUS_HZ / 1000)) / 10,
+};
+
+int board_early_init_f(void)
+{
+/* Enable SDRAM in the EBI mux */
+hmatrix_slave_write(EBI, SFR, HMATRIX_BIT(EBI_SDRAM_ENABLE));
+
+portmux_enable_ebi(SDRAM_DATA_32BIT, 23, 0,