From 37741f65378809124982e114910d0ca56ea67224 Mon Sep 17 00:00:00 2001 From: Yoshinori Sato Date: Wed, 15 Oct 2003 19:56:26 -0700 Subject: [PATCH] [PATCH] H8/300 support update - fix semaphore problem - document update and config fix --- arch/h8300/Kconfig | 2 +- arch/h8300/README | 18 ++++++++++-------- arch/h8300/lib/romfs.S | 6 ++++++ arch/h8300/platform/h8s/ints.c | 5 ++--- include/asm-h8300/semaphore.h | 12 ++++++++---- 5 files changed, 27 insertions(+), 16 deletions(-) diff --git a/arch/h8300/Kconfig b/arch/h8300/Kconfig index 769b98b63eaf5..b22293926b34b 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 6455ad925119f..2fd6f6d7a019f 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 * 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. (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 844f1169719e2..b72f93a47e310 100644 --- a/arch/h8300/lib/romfs.S +++ b/arch/h8300/lib/romfs.S @@ -1,6 +1,7 @@ /* romfs move to __ebss */ #include +#include #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 727f965d28a18..84ab5adb946a6 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 * @@ -20,7 +20,6 @@ #include #include #include -#include #include #include @@ -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 62e6e9ce669e6..283f0860a2af0 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"); } -- 2.53.0