]> git.hungrycats.org Git - linux/commitdiff
[PATCH] H8/300 support update
authorYoshinori Sato <ysato@users.sourceforge.jp>
Thu, 16 Oct 2003 02:56:26 +0000 (19:56 -0700)
committerLinus Torvalds <torvalds@home.osdl.org>
Thu, 16 Oct 2003 02:56:26 +0000 (19:56 -0700)
 - fix semaphore problem
 - document update and config fix

arch/h8300/Kconfig
arch/h8300/README
arch/h8300/lib/romfs.S
arch/h8300/platform/h8s/ints.c
include/asm-h8300/semaphore.h

index 769b98b63eaf581f82cc53fd7ece5499d8883599..b22293926b34bff2bd169f18c3e04c9131f8a572 100644 (file)
@@ -341,8 +341,8 @@ config UNIX98_PTY_COUNT
 
 endmenu
 
-#source drivers/misc/Config.in
 source "drivers/media/Kconfig"
+source "sound/Kconfig"
 
 source "fs/Kconfig"
 
index 6455ad925119fd51e0f7cce985fcd2fbebebea8b..2fd6f6d7a019ff0fd80055f90f71984c2bfa7f89 100644 (file)
@@ -1,9 +1,8 @@
-uClinux-2.4 for H8/300 README
+linux-2.6 for H8/300 README
 Yoshinori Sato <ysato@users.sourceforge.jp>
 
 * Supported CPU
-H8/300H
-H8S is planning.
+H8/300H and H8S
 
 * Supported Target
 1.simulator of GDB
@@ -15,8 +14,11 @@ H8S is planning.
   Akizuki Denshi Tsusho Ltd. <http://www.akizuki.ne.jp> (Japanese Only)
 
 3.H8MAX 
-  Under development
-  see http://www.strawberry-linux.com (Japanese Only)
+  see http://ip-sol.jp/h8max/ (Japanese Only)
+
+4.EDOSK2674
+  see http://www.eu.renesas.com/products/mpumcu/tool/edk/support/edosk2674.html
+      http://www.azpower.com/H8-uClinux/
 
 * Toolchain Version
 gcc-3.1 or higher and patch
@@ -26,10 +28,10 @@ gdb-5.2 or higher
 The environment that can compile a h8300-elf binary is necessary.
 
 * Userland Develop environment
-Tempolary used h8300-hms(h8300-coff) Toolchain.
-I prepare toolchain corresponding to h8300-elf.
+used h8300-elf toolchains.
+see http://www.uclinux.org/pub/uClinux/ports/h8/
 
 * A few words of thanks
-Porting to H8/300H is support of Information-technology Promotion Agency, Japan.
+Porting to H8/300 serieses is support of Information-technology Promotion Agency, Japan.
 I thank support.
 and All developer/user.
index 844f1169719e2060d96aaaa905e906af76505654..b72f93a47e310aafb2bc186e5c325a77884f4ad6 100644 (file)
@@ -1,6 +1,7 @@
 /* romfs move to __ebss */
 
 #include <asm/linkage.h>
+#include <linux/config.h>
 
 #if defined(__H8300H__) 
        .h8300h
@@ -9,6 +10,8 @@
        .h8300s
 #endif
 
+#define BLKOFFSET 512
+
        .text
 .globl __move_romfs
 _romfs_sig_len = 8
@@ -31,6 +34,9 @@ __move_romfs:
        add.l   er0,er1                 /* romfs image end */
        mov.l   #__ebss,er2
        add.l   er0,er2                 /* distination address */
+#if defined(CONFIG_INTELFLASH)
+       add.l   #BLKOFFSET,er2
+#endif
        adds    #2,er0
        adds    #1,er0
        shlr    er0
index 727f965d28a1873cbdc1c18e40eb79aa8d7f1e6f..84ab5adb946a6f9375d7074784543513f9aec8be 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * linux/arch/h8300/platform/h8sh/ints.c
+ * linux/arch/h8300/platform/h8s/ints.c
  *
  * Yoshinori Sato <ysato@users.sourceforge.jp>
  *
@@ -20,7 +20,6 @@
 #include <linux/kernel_stat.h>
 #include <linux/seq_file.h>
 #include <linux/init.h>
-#include <linux/slab.h>
 #include <linux/bootmem.h>
 #include <linux/random.h>
 
@@ -75,7 +74,7 @@ const static struct irq_pins irq_assign_table1[16]={
        {H8300_GPIO_P2,H8300_GPIO_B6},{H8300_GPIO_P2,H8300_GPIO_B7},
 };
 
-static int use_kmalloc;
+static short use_kmalloc = 0;
 
 extern unsigned long *interrupt_redirect_table;
 
index 62e6e9ce669e6f22e9ae712cbd1a11a0eac0c04e..283f0860a2af04a358a33130fe9e71aa6934c653 100644 (file)
@@ -101,13 +101,14 @@ static inline void down(struct semaphore * sem)
                "mov.l er1,%0\n\t"
                "bpl 1f\n\t"
                "ldc r3l,ccr\n\t"
+               "mov.l %1,er0\n\t"
                "jsr @___down\n\t"
                "bra 2f\n"
                "1:\n\t"
                "ldc r3l,ccr\n"
                "2:"
                : "+m"(*count)
-               : 
+               : "g"(sem)
                : "cc",  "er1", "er2", "er3");
 }
 
@@ -129,6 +130,7 @@ static inline int down_interruptible(struct semaphore * sem)
                "mov.l er2,%1\n\t"
                "bpl 1f\n\t"
                "ldc r1l,ccr\n\t"
+               "mov.l %2,er0\n\t"
                "jsr @___down_interruptible\n\t"
                "bra 2f\n"
                "1:\n\t"
@@ -136,7 +138,7 @@ static inline int down_interruptible(struct semaphore * sem)
                "sub.l %0,%0\n\t"
                "2:\n\t"
                : "=r" (count),"+m" (*count)
-               :
+               : "g"(sem)
                : "cc", "er1", "er2", "er3");
        return (int)count;
 }
@@ -161,6 +163,7 @@ static inline int down_trylock(struct semaphore * sem)
                "jmp @3f\n\t"
                LOCK_SECTION_START(".align 2\n\t")
                "3:\n\t"
+               "mov.l %2,er0\n\t"
                "jsr @___down_trylock\n\t"
                "jmp @2f\n\t"
                LOCK_SECTION_END
@@ -169,7 +172,7 @@ static inline int down_trylock(struct semaphore * sem)
                "sub.l %1,%1\n"
                "2:"
                : "+m" (*count),"=r"(count)
-               : 
+               : "g"(sem)
                : "cc", "er1","er2", "er3");
        return (int)count;
 }
@@ -199,10 +202,11 @@ static inline void up(struct semaphore * sem)
                "sub.l er2,er2\n\t"
                "cmp.l er2,er1\n\t"
                "bgt 1f\n\t"
+               "mov.l %1,er0\n\t"
                "jsr @___up\n"
                "1:"
                : "+m"(*count)
-               : 
+               : "g"(sem)
                : "cc", "er1", "er2", "er3");
 }