2005-03-24 01:48:55

by Hirokazu Takata

[permalink] [raw]
Subject: [PATCH 2.6.12-rc1] m32r: Update MMU-less support (0/3)

Hello,

Here is a patchset to update m32r's MMU-less support.
# Thanks to Naoto Sugai, Yoshinori Sato, Kazuhiro Inaoka,
# and Hayato Fujiwara.

These patches can be applied to 2.6.11 or later.
Tested on an OAKS32R target.
Please apply.

Thanks,


[PATCH 2.6.12-rc1] m32r: Update MMU-less support (1/3)
- Fix syscall table for !CONFIG_MMU
- Fix EIT vector setup routine for !CONFIG_MMU

[PATCH 2.6.12-rc1] m32r: Update MMU-less support (2/3)
- Fix serial output routine
- Update mm_context_t definition

[PATCH 2.6.12-rc1] m32r: Update MMU-less support (3/3)
- Use m32r-elf-gcc for MMU-less targets
- Set up cache for M32102 chip
- Module support for !CONFIG_MMU

--
Hirokazu Takata <[email protected]>
Linux/M32R Project: http://www.linux-m32r.org/


2005-03-24 01:56:57

by Hirokazu Takata

[permalink] [raw]
Subject: [PATCH 2.6.12-rc1] m32r: Update MMU-less support (3/3)

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 <[email protected]>
Signed-off-by: Hayato Fujiwara <[email protected]>
Signed-off-by: Hirokazu Takata <[email protected]>
---

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 <[email protected]>
Linux/M32R Project: http://www.linux-m32r.org/

2005-03-24 01:56:16

by Hirokazu Takata

[permalink] [raw]
Subject: [PATCH 2.6.12-rc1] m32r: Update MMU-less support (2/3)

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 <[email protected]>
Signed-off-by: Hirokazu Takata <[email protected]>
---

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 <[email protected]>
Linux/M32R Project: http://www.linux-m32r.org/

2005-03-24 02:08:55

by Hirokazu Takata

[permalink] [raw]
Subject: [PATCH 2.6.12-rc1] m32r: Update MMU-less support (1/3)

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 <[email protected]>
Signed-off-by: Hirokazu Takata <[email protected]>
---

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 <[email protected]>
Linux/M32R Project: http://www.linux-m32r.org/

2005-03-24 02:36:06

by Andrew Morton

[permalink] [raw]
Subject: Re: [PATCH 2.6.12-rc1] m32r: Update MMU-less support (0/3)

Hirokazu Takata <[email protected]> wrote:
>
> Here is a patchset to update m32r's MMU-less support.

I'd prefer it if you could avoid sending multiple patches with the same
title in future, please. It mucks up my patch naming and tracking system,
and surely all three patches weren't doing the same thing?

More at http://www.zip.com.au/~akpm/linux/patches/stuff/tpp.txt, thanks.

2005-03-24 02:59:02

by Hirokazu Takata

[permalink] [raw]
Subject: Re: [PATCH 2.6.12-rc1] m32r: Update MMU-less support (0/3)

Andrew,

From: Andrew Morton <[email protected]>
> I'd prefer it if you could avoid sending multiple patches with the same
> title in future, please. It mucks up my patch naming and tracking system,
> and surely all three patches weren't doing the same thing?
>
> More at http://www.zip.com.au/~akpm/linux/patches/stuff/tpp.txt, thanks.
>

Sorry for the inconvinience, and many thanks for your elaboration.

-- Takata