Commit 37741f65 authored by Yoshinori Sato's avatar Yoshinori Sato Committed by Linus Torvalds

[PATCH] H8/300 support update

 - fix semaphore problem
 - document update and config fix
parent a2ec0df5
......@@ -341,8 +341,8 @@ config UNIX98_PTY_COUNT
endmenu
#source drivers/misc/Config.in
source "drivers/media/Kconfig"
source "sound/Kconfig"
source "fs/Kconfig"
......
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.
/* 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
......
/*
* 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;
......
......@@ -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");
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment