Skip to contentSkip to conversation

H8/300 support update (1/4)

PATCH New Yoshinori Sato 1 participant 1 message May 2, 2003

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 H8/300 support update (1/4)

include

o fixed exception stack handling.
o fixed signal handling.
o fixed context switch problem.
o fixed configure scripts.

Signature · 2 lines
Yoshinori Sato
<[email protected]>

Index: MAINTAINERS
===================================================================
RCS file: /var/lib/cvs/linux-2.5/MAINTAINERS,v retrieving revision 1.1.1.1

MAINTAINERS +6 -0
diff -u -r1.1.1.1 MAINTAINERS
@@ -2088,6 +2088,12 @@
 W:	http://www.ee.nec.de/uclinux/
 S:	Supported
 
+UCLINUX FOR RENESAS H8/300
+P:	Yoshinori Sato
+M:	[email protected]
+W:	http://uclinux-h8.sourceforge.jp/
+S:	Supported
+
 USB DIAMOND RIO500 DRIVER
 P:	Cesar Miquel
 M:	[email protected]

Index: arch/h8300/Kconfig
===================================================================
RCS file: /var/lib/cvs/linux-2.5/arch/h8300/Kconfig,v retrieving revision 1.1.1.1
retrieving revision 1.2

h8300/Kconfig +5 -3
diff -u -r1.1.1.1 -r1.2
@@ -121,12 +121,13 @@
 endchoice
 
 config DEFAULT_CMDLINE
-	bool
+	bool "Use buildin commandline"
 	help
 	  buildin kernel commandline enabled.
 
 config KERNEL_COMMAND
-	string
+	string "Buildin commmand string"
+	depends on DEFAULT_CMDLINE
 	help
 	  buildin kernel commandline strings.
 
@@ -148,8 +149,9 @@
 
 endmenu
 
-source "drivers/block/Kconfig"
+source "drivers/mtd/Kconfig"
 
+source "drivers/block/Kconfig"
 
 menu "ATA/IDE/MFM/RLL support"
 

Index: arch/h8300/kernel/asm-offsets.c
===================================================================
RCS file: /var/lib/cvs/linux-2.5/arch/h8300/kernel/asm-offsets.c,v retrieving revision 1.1.1.1

h8300/kernel/asm-offsets.c +0 -1
diff -u -r1.1.1.1 asm-offsets.c
@@ -40,7 +40,6 @@
 	DEFINE(THREAD_KSP, offsetof(struct thread_struct, ksp));
 	DEFINE(THREAD_USP, offsetof(struct thread_struct, usp));
 	DEFINE(THREAD_CCR, offsetof(struct thread_struct, ccr));
-	DEFINE(THREAD_VFORK, offsetof(struct thread_struct, vfork_ret));
 
 	DEFINE(PT_PTRACED, PT_PTRACED);
 	DEFINE(PT_DTRACE, PT_DTRACE);

Index: arch/h8300/kernel/process.c
===================================================================
RCS file: /var/lib/cvs/linux-2.5/arch/h8300/kernel/process.c,v retrieving revision 1.1.1.1
retrieving revision 1.4

h8300/kernel/process.c +15 -33

107 lines not on this page · raw message

Index: arch/h8300/kernel/ptrace.c
===================================================================
RCS file: /var/lib/cvs/linux-2.5/arch/h8300/kernel/ptrace.c,v retrieving revision 1.1.1.1
retrieving revision 1.2

h8300/kernel/ptrace.c +2 -4
diff -u -r1.1.1.1 -r1.2
@@ -46,14 +46,12 @@
 
 /* Find the stack offset for a register, relative to thread.esp0. */
 #define PT_REG(reg)	((long)&((struct pt_regs *)0)->reg)
-#define SW_REG(reg)	((long)&((struct switch_stack *)0)->reg \
-			 - sizeof(struct switch_stack))
 /* Mapping from PT_xxx to the stack offset at which the register is
    saved.  Notice that usp has no stack-slot and needs to be treated
    specially (see get_reg/put_reg below). */
 static const int regoff[] = {
-	PT_REG(er1), PT_REG(er2), PT_REG(er3), SW_REG(er4),
-	SW_REG(er5), SW_REG(er6), PT_REG(er0), PT_REG(orig_er0),
+	PT_REG(er1), PT_REG(er2), PT_REG(er3), PT_REG(er4),
+	PT_REG(er5), PT_REG(er6), PT_REG(er0), PT_REG(orig_er0),
 	PT_REG(ccr), PT_REG(pc)
 };
 

Index: arch/h8300/kernel/setup.c
===================================================================
RCS file: /var/lib/cvs/linux-2.5/arch/h8300/kernel/setup.c,v retrieving revision 1.1.1.1
retrieving revision 1.3

h8300/kernel/setup.c +10 -3
diff -u -r1.1.1.1 -r1.3
@@ -91,7 +91,14 @@
 {
 	int bootmap_size;
 
-	memory_start = PAGE_ALIGN((unsigned long)(&_ramstart));
+	memory_start = (unsigned long) &_ramstart;
+
+	/* allow for ROMFS on the end */
+	if (memcmp(memory_start, "-rom1fs-", 8) == 0) {
+		memory_start += be32_to_cpu(((unsigned long *) memory_start)[2]);
+	}
+
+	memory_start = PAGE_ALIGN(memory_start);
 	memory_end = &_ramend; /* by now the stack is part of the init task */
 
 	init_mm.start_code = (unsigned long) &_stext;
@@ -103,10 +110,10 @@
 	register_console(&gdb_console);
 #endif
 
-	printk("\x0F\r\n\nuClinux " CPU "\n");
+	printk("\r\n\nuClinux " CPU "\n");
 	printk("Target Hardware: %s\n",_target_name);
 	printk("Flat model support (C) 1998,1999 Kenneth Albanowski, D. Jeff Dionne\n");
-	printk("H8/300H support by Yoshinori Sato <[email protected]>\n");
+	printk("H8/300 series support by Yoshinori Sato <[email protected]>\n");
 
 #ifdef DEBUG
 	printk("KERNEL -> TEXT=0x%06x-0x%06x DATA=0x%06x-0x%06x "

Index: arch/h8300/kernel/signal.c
===================================================================
RCS file: /var/lib/cvs/linux-2.5/arch/h8300/kernel/signal.c,v retrieving revision 1.1.1.1
retrieving revision 1.2

h8300/kernel/signal.c +42 -46

181 lines not on this page · raw message

Index: arch/h8300/kernel/sys_h8300.c
===================================================================
RCS file: /var/lib/cvs/linux-2.5/arch/h8300/kernel/sys_h8300.c,v retrieving revision 1.1.1.1
retrieving revision 1.2

h8300/kernel/sys_h8300.c +1 -1
diff -u -r1.1.1.1 -r1.2
@@ -281,7 +281,7 @@
 #if defined(CONFIG_SYSCALL_PRINT)
 asmlinkage void syscall_print(void *dummy,...)
 {
-	struct pt_regs *regs = (struct pt_regs *) ((unsigned char *)&dummy);
+	struct pt_regs *regs = (struct pt_regs *) ((unsigned char *)&dummy-4);
 	unsigned long *usp=rdusp()+8;
 	printk("call %06x:%d 1:%08x,2:%08x,3:%08x,ret:%08x\n",
                ((*usp) & 0xffffff)-2,regs->orig_er0,regs->er1,regs->er2,regs->er3,regs->er0);

Index: arch/h8300/kernel/syscalls.S
===================================================================
RCS file: /var/lib/cvs/linux-2.5/arch/h8300/kernel/syscalls.S,v retrieving revision 1.1.1.1
retrieving revision 1.2

h8300/kernel/syscalls.S +4 -0
diff -u -r1.1.1.1 -r1.2
@@ -312,3 +312,7 @@
 	mov.l	#SYMBOL_NAME(h8300_fork),er0
 	jmp	@SYMBOL_NAME(syscall_trampoline)
 
+SYMBOL_NAME_LABEL(sys_vfork)
+	mov.l	#SYMBOL_NAME(h8300_vfork),er0
+	jmp	@SYMBOL_NAME(syscall_trampoline)
+

Index: arch/h8300/platform/h8300h/entry.S
===================================================================
RCS file: /var/lib/cvs/linux-2.5/arch/h8300/platform/h8300h/entry.S,v retrieving revision 1.1.1.1
retrieving revision 1.4

h8300/platform/h8300h/entry.S +88 -115

346 lines not on this page · raw message

Index: arch/h8300/platform/h8300h/generic/crt0_rom.S
===================================================================
RCS file: /var/lib/cvs/linux-2.5/arch/h8300/platform/h8300h/generic/crt0_rom.S,v retrieving revision 1.1.1.1
retrieving revision 1.2

h8300/platform/h8300h/generic/crt0_rom.S +1 -0
diff -u -r1.1.1.1 -r1.2
@@ -35,6 +35,7 @@
 	inc.l	#1,er6
 	mov.l	#__ebss,er4
 	sub.l	er5,er4
+	dec.l	#1,er4
 	sub.w	r0,r0
 	mov.b	r0l,@er5
 1: