diff options
Diffstat (limited to 'arch/m32r/boot/setup.S')
-rw-r--r-- | arch/m32r/boot/setup.S | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/arch/m32r/boot/setup.S b/arch/m32r/boot/setup.S index 5d256434b4ad..398542507d84 100644 --- a/arch/m32r/boot/setup.S +++ b/arch/m32r/boot/setup.S | |||
@@ -1,11 +1,10 @@ | |||
1 | /* | 1 | /* |
2 | * linux/arch/m32r/boot/setup.S -- A setup code. | 2 | * linux/arch/m32r/boot/setup.S -- A setup code. |
3 | * | 3 | * |
4 | * Copyright (C) 2001, 2002 Hiroyuki Kondo, Hirokazu Takata, | 4 | * Copyright (C) 2001-2005 Hiroyuki Kondo, Hirokazu Takata, |
5 | * and Hitoshi Yamamoto | 5 | * Hitoshi Yamamoto, Hayato Fujiwara |
6 | * | 6 | * |
7 | */ | 7 | */ |
8 | /* $Id$ */ | ||
9 | 8 | ||
10 | #include <linux/linkage.h> | 9 | #include <linux/linkage.h> |
11 | #include <asm/segment.h> | 10 | #include <asm/segment.h> |
@@ -80,6 +79,20 @@ ENTRY(boot) | |||
80 | ldi r1, #0x101 ; cache on (with invalidation) | 79 | ldi r1, #0x101 ; cache on (with invalidation) |
81 | ; ldi r1, #0x00 ; cache off | 80 | ; ldi r1, #0x00 ; cache off |
82 | st r1, @r0 | 81 | st r1, @r0 |
82 | #elif defined(CONFIG_CHIP_M32104) | ||
83 | ldi r0, #-96 ; DNCR0 | ||
84 | seth r1, #0x0060 ; from 0x00600000 | ||
85 | or3 r1, r1, #0x0005 ; size 2MB | ||
86 | st r1, @r0 | ||
87 | seth r1, #0x0100 ; from 0x01000000 | ||
88 | or3 r1, r1, #0x0003 ; size 16MB | ||
89 | st r1, @+r0 | ||
90 | seth r1, #0x0200 ; from 0x02000000 | ||
91 | or3 r1, r1, #0x0002 ; size 32MB | ||
92 | st r1, @+r0 | ||
93 | ldi r0, #-4 ;LDIMM (r0, M32R_MCCR) | ||
94 | ldi r1, #0x703 ; cache on (with invalidation) | ||
95 | st r1, @r0 | ||
83 | #else | 96 | #else |
84 | #error unknown chip configuration | 97 | #error unknown chip configuration |
85 | #endif | 98 | #endif |
@@ -115,10 +128,15 @@ mmu_on: | |||
115 | st r1, @(MATM_offset,r0) ; Set MATM (T bit ON) | 128 | st r1, @(MATM_offset,r0) ; Set MATM (T bit ON) |
116 | ld r0, @(MATM_offset,r0) ; Check | 129 | ld r0, @(MATM_offset,r0) ; Check |
117 | #else | 130 | #else |
131 | #if defined(CONFIG_CHIP_M32700) | ||
118 | seth r0,#high(M32R_MCDCAR) | 132 | seth r0,#high(M32R_MCDCAR) |
119 | or3 r0,r0,#low(M32R_MCDCAR) | 133 | or3 r0,r0,#low(M32R_MCDCAR) |
120 | ld24 r1,#0x8080 | 134 | ld24 r1,#0x8080 |
121 | st r1,@r0 | 135 | st r1,@r0 |
136 | #elif defined(CONFIG_CHIP_M32104) | ||
137 | LDIMM (r2, eit_vector) ; set EVB(cr5) | ||
138 | mvtc r2, cr5 | ||
139 | #endif | ||
122 | #endif /* CONFIG_MMU */ | 140 | #endif /* CONFIG_MMU */ |
123 | jmp r13 | 141 | jmp r13 |
124 | nop | 142 | nop |