Add support SH2/SH2A basic function.
Signed-off-by: Nobuhiro Iwamatsu [EMAIL PROTECTED]
---
cpu/sh2/Makefile | 46 ++
cpu/sh2/cache.c| 112
cpu/sh2/config.mk | 29 +++
cpu/sh2/cpu.c | 98 ++
cpu/sh2/interrupts.c | 39 +++
cpu/sh2/start.S| 84 +
cpu/sh2/time.c | 111 +++
cpu/sh2/watchdog.c | 33 +
examples/Makefile |3 +
include/asm-sh/cpu_sh2.h | 36 ++
include/asm-sh/processor.h |5 ++-
11 files changed, 595 insertions(+), 1 deletions(-)
create mode 100644 cpu/sh2/Makefile
create mode 100644 cpu/sh2/cache.c
create mode 100644 cpu/sh2/config.mk
create mode 100644 cpu/sh2/cpu.c
create mode 100644 cpu/sh2/interrupts.c
create mode 100644 cpu/sh2/start.S
create mode 100644 cpu/sh2/time.c
create mode 100644 cpu/sh2/watchdog.c
create mode 100644 include/asm-sh/cpu_sh2.h
diff --git a/cpu/sh2/Makefile b/cpu/sh2/Makefile
new file mode 100644
index 000..afd4f80
--- /dev/null
+++ b/cpu/sh2/Makefile
@@ -0,0 +1,46 @@
+#
+# (C) Copyright 2000-2006
+# Wolfgang Denk, DENX Software Engineering, [EMAIL PROTECTED]
+#
+# Copyright (C) 2007,2008 Nobuhiro Iwamatsu [EMAIL PROTECTED]
+# Copyright (C) 2008 Renesas Solutions Corp.
+#
+# 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$(CPU).a
+
+START = start.o
+OBJS = cpu.o interrupts.o watchdog.o time.o # cache.o
+
+all: .depend $(START) $(LIB)
+
+$(LIB):$(OBJS)
+ $(AR) crv $@ $(OBJS)
+
+#
+
+.depend: Makefile $(START:.o=.S) $(OBJS:.o=.c)
+ $(CC) -M $(CFLAGS) $(START:.o=.S) $(OBJS:.o=.c) $@
+
+sinclude .depend
+
+#
diff --git a/cpu/sh2/cache.c b/cpu/sh2/cache.c
new file mode 100644
index 000..d7ac2a5
--- /dev/null
+++ b/cpu/sh2/cache.c
@@ -0,0 +1,112 @@
+/*
+ * (C) Copyright 2007
+ * Yoshihiro Shimoda [EMAIL PROTECTED]
+ *
+ * Copyright (C) 2007, 2008 Nobobuhiro Iwamatsu [EMAIL PROTECTED]
+ * Copyright (C) 2008 Renesas Solutions Corp.
+ *
+ * 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 command.h
+#include asm/processor.h
+#include asm/io.h
+
+/*
+ * Jump to P2 area.
+ * When handling TLB or caches, we need to do it from P2 area.
+ */
+#define jump_to_P2()\
+ do {\
+unsigned long __dummy; \
+__asm__ __volatile__( \
+ mov.l 1f, %0\n\t \
+ or %1, %0\n\t \
+ jmp@%0\n\t\
+nop\n\t \
+ .balign 4\n \
+ 1: .long 2f\n \
+ 2:\
+ : =r (__dummy) \
+ : r (0x2000));\
+ } while (0)
+
+/*
+ * Back to P1 area.
+ */
+#define back_to_P1()\
+ do {\
+unsigned long __dummy; \
+__asm__ __volatile__( \
+ nop;nop;nop;nop;nop;nop;nop\n\t \
+