Re: [U-Boot-Users] [PATCH 1/3] sh: Add support SH2/SH2A which is CPU of Renesas Technology

2008-08-30 Thread Jean-Christophe PLAGNIOL-VILLARD
 +# 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)
please use $(obj).depend
 +
 +$(LIB):  $(OBJS)
 + $(AR) crv $@ $(OBJS)
please replace crv by $(ARFLAGS)
 +
 +#
 +
 +.depend: Makefile $(START:.o=.S) $(OBJS:.o=.c)
 + $(CC) -M $(CFLAGS) $(START:.o=.S) $(OBJS:.o=.c)  $@
 +
 +sinclude .depend
please replace with

# defines $(obj).depend target
include $(SRCTREE)/rules.mk

sinclude $(obj).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)
 +
please use tab instead of space
 +/*
 + * Back to P1 area.
 + */
 +#define back_to_P1()\
 +  do {\
 +unsigned long __dummy;  \
 +__asm__ __volatile__(   \
 + nop;nop;nop;nop;nop;nop;nop\n\t   \
 + mov.l  1f, %0\n\t \
 + jmp@%0\n\t\
 +  nop\n\t  \
 + .balign 4\n   \
 + 1: .long 2f\n \
 + 2:\
 + : =r (__dummy)); \
 +  } while (0)
please use tab instead of space
 +
 +#define CACHE_VALID   1
  ^^^
 +#define CACHE_UPDATED 2
^
whitespace
 +
 +static inline void cache_wback_all(void)
 +{
 + unsigned long addr, data, i, j;
 +
 + jump_to_P2();
 + for (i = 0; i  CACHE_OC_NUM_ENTRIES; i++) {
 + for (j = 0; j  CACHE_OC_NUM_WAYS; j++) {
 + addr = CACHE_OC_ADDRESS_ARRAY
 + | (j  CACHE_OC_WAY_SHIFT)
 + | (i  CACHE_OC_ENTRY_SHIFT);
 + data = inl(addr);
 + if (data  CACHE_UPDATED) {
 + data = ~CACHE_UPDATED;
 + outl(data, addr);
 + }
 + }
 + }
 + back_to_P1();
 +}
 +
 +
 +#define CACHE_ENABLE  0
   ^^
 +#define CACHE_DISABLE 1
^

[U-Boot-Users] [PATCH 1/3] sh: Add support SH2/SH2A which is CPU of Renesas Technology

2008-07-03 Thread Nobuhiro Iwamatsu
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   \
+