Home Home > GIT Browse
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYoshinori Sato <ysato@users.sourceforge.jp>2003-10-15 19:56:26 -0700
committerLinus Torvalds <torvalds@home.osdl.org>2003-10-15 19:56:26 -0700
commit37741f65378809124982e114910d0ca56ea67224 (patch)
tree15a694bfc6b00bb6e173828e39c96330510854de
parenta2ec0df550baab8844297d75fa55536ee041353e (diff)
[PATCH] H8/300 support update
- fix semaphore problem - document update and config fix
-rw-r--r--arch/h8300/Kconfig2
-rw-r--r--arch/h8300/README18
-rw-r--r--arch/h8300/lib/romfs.S6
-rw-r--r--arch/h8300/platform/h8s/ints.c5
-rw-r--r--include/asm-h8300/semaphore.h12
5 files changed, 27 insertions, 16 deletions
diff --git a/arch/h8300/Kconfig b/arch/h8300/Kconfig
index 769b98b63eaf..b22293926b34 100644
--- a/arch/h8300/Kconfig
+++ b/arch/h8300/Kconfig
@@ -341,8 +341,8 @@ config UNIX98_PTY_COUNT
endmenu
-#source drivers/misc/Config.in
source "drivers/media/Kconfig"
+source "sound/Kconfig"
source "fs/Kconfig"
diff --git a/arch/h8300/README b/arch/h8300/README
index 6455ad925119..2fd6f6d7a019 100644
--- a/arch/h8300/README
+++ b/arch/h8300/README
@@ -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.
diff --git a/arch/h8300/lib/romfs.S b/arch/h8300/lib/romfs.S
index 844f1169719e..b72f93a47e31 100644
--- a/arch/h8300/lib/romfs.S
+++ b/arch/h8300/lib/romfs.S
@@ -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
diff --git a/arch/h8300/platform/h8s/ints.c b/arch/h8300/platform/h8s/ints.c
index 727f965d28a1..84ab5adb946a 100644
--- a/arch/h8300/platform/h8s/ints.c
+++ b/arch/h8300/platform/h8s/ints.c
@@ -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;
diff --git a/include/asm-h8300/semaphore.h b/include/asm-h8300/semaphore.h
index 62e6e9ce669e..283f0860a2af 100644
--- a/include/asm-h8300/semaphore.h
+++ b/include/asm-h8300/semaphore.h
@@ -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");
}