* [PATCH 2.6.12-rc1] m32r: Update MMU-less support (1/3)
2005-03-24 1:48 [PATCH 2.6.12-rc1] m32r: Update MMU-less support (0/3) Hirokazu Takata
@ 2005-03-24 1:54 ` Hirokazu Takata
2005-03-24 1:55 ` [PATCH 2.6.12-rc1] m32r: Update MMU-less support (2/3) Hirokazu Takata
` (2 subsequent siblings)
3 siblings, 0 replies; 6+ messages in thread
From: Hirokazu Takata @ 2005-03-24 1:54 UTC (permalink / raw)
To: Andrew Morton; +Cc: linux-kernel, sugai, takata
This patch is for updating m32r's MMU-less support.
* arch/m32r/kernel/entry.s:
- Fix syscall table for !CONFIG_MMU
* arch/m32r/kernel/traps.c:
- Fix EIT vector setup routine for !CONFIG_MMU
Signed-off-by: Naoto Sugai <sugai@isl.melco.co.jp>
Signed-off-by: Hirokazu Takata <takata@linux-m32r.org>
---
arch/m32r/kernel/entry.S | 21 +++++++++++----------
arch/m32r/kernel/traps.c | 2 ++
2 files changed, 13 insertions(+), 10 deletions(-)
diff -ruNp a/arch/m32r/kernel/entry.S b/arch/m32r/kernel/entry.S
--- a/arch/m32r/kernel/entry.S 2005-03-07 14:10:21.000000000 +0900
+++ b/arch/m32r/kernel/entry.S 2005-03-23 20:05:40.343327214 +0900
@@ -69,16 +69,17 @@
#include <asm/mmu_context.h>
#if !defined(CONFIG_MMU)
-#define sys_madvise sys_ni_syscall
-#define sys_readahead sys_ni_syscall
-#define sys_mprotect sys_ni_syscall
-#define sys_msync sys_ni_syscall
-#define sys_mlock sys_ni_syscall
-#define sys_munlock sys_ni_syscall
-#define sys_mlockall sys_ni_syscall
-#define sys_munlockall sys_ni_syscall
-#define sys_mremap sys_ni_syscall
-#define sys_mincore sys_ni_syscall
+#define sys_madvise sys_ni_syscall
+#define sys_readahead sys_ni_syscall
+#define sys_mprotect sys_ni_syscall
+#define sys_msync sys_ni_syscall
+#define sys_mlock sys_ni_syscall
+#define sys_munlock sys_ni_syscall
+#define sys_mlockall sys_ni_syscall
+#define sys_munlockall sys_ni_syscall
+#define sys_mremap sys_ni_syscall
+#define sys_mincore sys_ni_syscall
+#define sys_remap_file_pages sys_ni_syscall
#endif /* CONFIG_MMU */
#define R4(reg) @reg
diff -ruNp a/arch/m32r/kernel/traps.c b/arch/m32r/kernel/traps.c
--- a/arch/m32r/kernel/traps.c 2005-03-07 14:10:21.000000000 +0900
+++ b/arch/m32r/kernel/traps.c 2005-03-23 20:05:40.372322745 +0900
@@ -95,8 +95,10 @@ void set_eit_vector_entries(void)
eit_vector[31] = 0xff000000UL;
eit_vector[32] = BRA_INSN(ei_handler, 32);
eit_vector[64] = BRA_INSN(pie_handler, 64);
+#ifdef CONFIG_MMU
eit_vector[68] = BRA_INSN(ace_handler, 68);
eit_vector[72] = BRA_INSN(tme_handler, 72);
+#endif /* CONFIG_MMU */
#ifdef CONFIG_SMP
eit_vector[184] = (unsigned long)smp_reschedule_interrupt;
eit_vector[185] = (unsigned long)smp_invalidate_interrupt;
--
Hirokazu Takata <takata@linux-m32r.org>
Linux/M32R Project: http://www.linux-m32r.org/
^ permalink raw reply [flat|nested] 6+ messages in thread* [PATCH 2.6.12-rc1] m32r: Update MMU-less support (2/3)
2005-03-24 1:48 [PATCH 2.6.12-rc1] m32r: Update MMU-less support (0/3) Hirokazu Takata
2005-03-24 1:54 ` [PATCH 2.6.12-rc1] m32r: Update MMU-less support (1/3) Hirokazu Takata
@ 2005-03-24 1:55 ` Hirokazu Takata
2005-03-24 1:55 ` [PATCH 2.6.12-rc1] m32r: Update MMU-less support (3/3) Hirokazu Takata
2005-03-24 2:35 ` [PATCH 2.6.12-rc1] m32r: Update MMU-less support (0/3) Andrew Morton
3 siblings, 0 replies; 6+ messages in thread
From: Hirokazu Takata @ 2005-03-24 1:55 UTC (permalink / raw)
To: Andrew Morton; +Cc: linux-kernel, ysato, takata
This patch is for updating m32r's MMU-less support.
* arch/m32r/boot/compressed/m32r_sio.c:
- Fix serial output routine
* include/asm-m32r/mmu.h:
- Update mm_context_t definition
Signed-off-by: Yoshinori Sato <ysato@users.sourceforge.jp>
Signed-off-by: Hirokazu Takata <takata@linux-m32r.org>
---
arch/m32r/boot/compressed/m32r_sio.c | 7 ++++++-
include/asm-m32r/mmu.h | 18 ++----------------
2 files changed, 8 insertions(+), 17 deletions(-)
diff -ruNp a/arch/m32r/boot/compressed/m32r_sio.c b/arch/m32r/boot/compressed/m32r_sio.c
--- a/arch/m32r/boot/compressed/m32r_sio.c 2004-12-25 06:34:58.000000000 +0900
+++ b/arch/m32r/boot/compressed/m32r_sio.c 2005-03-23 20:28:24.846369405 +0900
@@ -46,9 +46,14 @@ static void putc(char c)
}
*BOOT_SIO0TXB = c;
}
-#else
+#else /* defined(CONFIG_PLAT_M32700UT_Alpha) || defined(CONFIG_PLAT_M32700UT) */
+#ifdef CONFIG_MMU
#define SIO0STS (volatile unsigned short *)(0xa0efd000 + 14)
#define SIO0TXB (volatile unsigned short *)(0xa0efd000 + 30)
+#else
+#define SIO0STS (volatile unsigned short *)(0x00efd000 + 14)
+#define SIO0TXB (volatile unsigned short *)(0x00efd000 + 30)
+#endif
static void putc(char c)
{
diff -ruNp a/include/asm-m32r/mmu.h b/include/asm-m32r/mmu.h
--- a/include/asm-m32r/mmu.h 2004-12-25 06:34:44.000000000 +0900
+++ b/include/asm-m32r/mmu.h 2005-03-23 20:26:57.473769245 +0900
@@ -1,25 +1,12 @@
#ifndef _ASM_M32R_MMU_H
#define _ASM_M32R_MMU_H
-/* $Id$ */
-
#include <linux/config.h>
#if !defined(CONFIG_MMU)
-struct mm_rblock_struct {
- int size;
- int refcount;
- void *kblock;
-};
-
-struct mm_tblock_struct {
- struct mm_rblock_struct *rblock;
- struct mm_tblock_struct *next;
-};
-
typedef struct {
- struct mm_tblock_struct tblock;
- unsigned long end_brk;
+ struct vm_list_struct *vmlist;
+ unsigned long end_brk;
} mm_context_t;
#else
@@ -32,4 +19,3 @@ typedef unsigned long mm_context_t[NR_CP
#endif /* CONFIG_MMU */
#endif /* _ASM_M32R_MMU_H */
-
--
Hirokazu Takata <takata@linux-m32r.org>
Linux/M32R Project: http://www.linux-m32r.org/
^ permalink raw reply [flat|nested] 6+ messages in thread* [PATCH 2.6.12-rc1] m32r: Update MMU-less support (3/3)
2005-03-24 1:48 [PATCH 2.6.12-rc1] m32r: Update MMU-less support (0/3) Hirokazu Takata
2005-03-24 1:54 ` [PATCH 2.6.12-rc1] m32r: Update MMU-less support (1/3) Hirokazu Takata
2005-03-24 1:55 ` [PATCH 2.6.12-rc1] m32r: Update MMU-less support (2/3) Hirokazu Takata
@ 2005-03-24 1:55 ` Hirokazu Takata
2005-03-24 2:35 ` [PATCH 2.6.12-rc1] m32r: Update MMU-less support (0/3) Andrew Morton
3 siblings, 0 replies; 6+ messages in thread
From: Hirokazu Takata @ 2005-03-24 1:55 UTC (permalink / raw)
To: Andrew Morton; +Cc: linux-kernel, inaoka.kazuhiro, fujiwara, takata
This patch is for updating m32r's MMU-less support.
* arch/m32r/boot/compressed/Makefile:
Use m32r-elf-gcc for MMU-less targets; change ELF object format
from elf32-m32r-linux to elf32-m32r for !CONFIG_MMU.
* arch/m32r/boot/compressed/head.S: Set up cache for M32102 chip.
* arch/m32r/boot/setup.S: ditto.
* arch/m32r/kernel/module.c: Module support for !CONFIG_MMU.
Signed-off-by: Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
Signed-off-by: Hayato Fujiwara <fujiwara@linux-m32r.org>
Signed-off-by: Hirokazu Takata <takata@linux-m32r.org>
---
arch/m32r/boot/compressed/Makefile | 5 +++++
arch/m32r/boot/compressed/head.S | 5 +++++
arch/m32r/boot/setup.S | 5 +++++
arch/m32r/kernel/module.c | 6 ++++++
arch/m32r/mm/fault-nommu.c | 1 +
5 files changed, 22 insertions(+)
diff -ruNp a/arch/m32r/boot/compressed/Makefile b/arch/m32r/boot/compressed/Makefile
--- a/arch/m32r/boot/compressed/Makefile 2004-12-25 06:33:49.000000000 +0900
+++ b/arch/m32r/boot/compressed/Makefile 2005-03-23 20:05:40.301333686 +0900
@@ -30,7 +30,12 @@ $(obj)/vmlinux.bin.gz: $(obj)/vmlinux.bi
CFLAGS_misc.o += -fpic
+ifdef CONFIG_MMU
LDFLAGS_piggy.o := -r --format binary --oformat elf32-m32r-linux -T
+else
+LDFLAGS_piggy.o := -r --format binary --oformat elf32-m32r -T
+endif
+
OBJCOPYFLAGS += -R .empty_zero_page
$(obj)/piggy.o: $(obj)/vmlinux.scr $(obj)/vmlinux.bin.gz FORCE
diff -ruNp a/arch/m32r/boot/compressed/head.S b/arch/m32r/boot/compressed/head.S
--- a/arch/m32r/boot/compressed/head.S 2004-12-25 06:34:26.000000000 +0900
+++ b/arch/m32r/boot/compressed/head.S 2005-03-23 20:05:40.310332299 +0900
@@ -138,6 +138,11 @@ startup:
ldi r0, -1
ldi r1, 0xd0 ; invalidate i-cache, copy back d-cache
stb r1, @r0
+#elif defined(CONFIG_CHIP_M32102)
+ /* Cache flush */
+ ldi r0, -2
+ ldi r1, 0x0100 ; invalidate
+ stb r1, @r0
#else
#error "put your cache flush function, please"
#endif
diff -ruNp a/arch/m32r/boot/setup.S b/arch/m32r/boot/setup.S
--- a/arch/m32r/boot/setup.S 2004-12-25 06:34:45.000000000 +0900
+++ b/arch/m32r/boot/setup.S 2005-03-23 20:05:40.326329834 +0900
@@ -75,6 +75,11 @@ ENTRY(boot)
ldi r1, #0x73 ; cache on (with invalidation)
; ldi r1, #0x00 ; cache off
st r1, @r0
+#elif defined(CONFIG_CHIP_M32102)
+ ldi r0, #-4 ;LDIMM (r0, M32R_MCCR)
+ ldi r1, #0x101 ; cache on (with invalidation)
+; ldi r1, #0x00 ; cache off
+ st r1, @r0
#else
#error unknown chip configuration
#endif
diff -ruNp a/arch/m32r/kernel/module.c b/arch/m32r/kernel/module.c
--- a/arch/m32r/kernel/module.c 2004-12-25 06:35:49.000000000 +0900
+++ b/arch/m32r/kernel/module.c 2005-03-23 20:05:40.356325211 +0900
@@ -14,6 +14,8 @@
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
+
+#include <linux/config.h>
#include <linux/moduleloader.h>
#include <linux/elf.h>
#include <linux/vmalloc.h>
@@ -31,7 +33,11 @@ void *module_alloc(unsigned long size)
{
if (size == 0)
return NULL;
+#ifdef CONFIG_MMU
return vmalloc_exec(size);
+#else
+ return vmalloc(size);
+#endif
}
diff -ruNp a/arch/m32r/mm/fault-nommu.c b/arch/m32r/mm/fault-nommu.c
--- a/arch/m32r/mm/fault-nommu.c 2004-12-25 06:34:31.000000000 +0900
+++ b/arch/m32r/mm/fault-nommu.c 2005-03-23 20:05:56.192265581 +0900
@@ -23,6 +23,7 @@
#include <linux/smp_lock.h>
#include <linux/interrupt.h>
#include <linux/init.h>
+#include <linux/vt_kern.h> /* For unblank_screen() */
#include <asm/m32r.h>
#include <asm/system.h>
--
Hirokazu Takata <takata@linux-m32r.org>
Linux/M32R Project: http://www.linux-m32r.org/
^ permalink raw reply [flat|nested] 6+ messages in thread