diff options
Diffstat (limited to 'arch')
-rw-r--r-- | arch/m68k/include/asm/system_no.h | 98 | ||||
-rw-r--r-- | arch/m68knommu/platform/coldfire/vectors.c | 7 |
2 files changed, 0 insertions, 105 deletions
diff --git a/arch/m68k/include/asm/system_no.h b/arch/m68k/include/asm/system_no.h index a0a1ae8b1524..3c0718d74398 100644 --- a/arch/m68k/include/asm/system_no.h +++ b/arch/m68k/include/asm/system_no.h | |||
@@ -203,104 +203,6 @@ static inline unsigned long __xchg(unsigned long x, volatile void * ptr, int siz | |||
203 | #include <asm-generic/cmpxchg.h> | 203 | #include <asm-generic/cmpxchg.h> |
204 | #endif | 204 | #endif |
205 | 205 | ||
206 | #if defined( CONFIG_M68328 ) || defined( CONFIG_M68EZ328 ) || \ | ||
207 | defined (CONFIG_M68360) || defined( CONFIG_M68VZ328 ) | ||
208 | #define HARD_RESET_NOW() ({ \ | ||
209 | local_irq_disable(); \ | ||
210 | asm(" \ | ||
211 | moveal #0x10c00000, %a0; \ | ||
212 | moveb #0, 0xFFFFF300; \ | ||
213 | moveal 0(%a0), %sp; \ | ||
214 | moveal 4(%a0), %a0; \ | ||
215 | jmp (%a0); \ | ||
216 | "); \ | ||
217 | }) | ||
218 | #endif | ||
219 | |||
220 | #ifdef CONFIG_COLDFIRE | ||
221 | #if defined(CONFIG_M5272) && defined(CONFIG_NETtel) | ||
222 | /* | ||
223 | * Need to account for broken early mask of 5272 silicon. So don't | ||
224 | * jump through the original start address. Jump strait into the | ||
225 | * known start of the FLASH code. | ||
226 | */ | ||
227 | #define HARD_RESET_NOW() ({ \ | ||
228 | asm(" \ | ||
229 | movew #0x2700, %sr; \ | ||
230 | jmp 0xf0000400; \ | ||
231 | "); \ | ||
232 | }) | ||
233 | #elif defined(CONFIG_NETtel) || \ | ||
234 | defined(CONFIG_SECUREEDGEMP3) || defined(CONFIG_CLEOPATRA) | ||
235 | #define HARD_RESET_NOW() ({ \ | ||
236 | asm(" \ | ||
237 | movew #0x2700, %sr; \ | ||
238 | moveal #0x10000044, %a0; \ | ||
239 | movel #0xffffffff, (%a0); \ | ||
240 | moveal #0x10000001, %a0; \ | ||
241 | moveb #0x00, (%a0); \ | ||
242 | moveal #0xf0000004, %a0; \ | ||
243 | moveal (%a0), %a0; \ | ||
244 | jmp (%a0); \ | ||
245 | "); \ | ||
246 | }) | ||
247 | #elif defined(CONFIG_M5272) | ||
248 | /* | ||
249 | * Retrieve the boot address in flash using CSBR0 and CSOR0 | ||
250 | * find the reset vector at flash_address + 4 (e.g. 0x400) | ||
251 | * remap it in the flash's current location (e.g. 0xf0000400) | ||
252 | * and jump there. | ||
253 | */ | ||
254 | #define HARD_RESET_NOW() ({ \ | ||
255 | asm(" \ | ||
256 | movew #0x2700, %%sr; \ | ||
257 | move.l %0+0x40,%%d0; \ | ||
258 | and.l %0+0x44,%%d0; \ | ||
259 | andi.l #0xfffff000,%%d0; \ | ||
260 | mov.l %%d0,%%a0; \ | ||
261 | or.l 4(%%a0),%%d0; \ | ||
262 | mov.l %%d0,%%a0; \ | ||
263 | jmp (%%a0);" \ | ||
264 | : /* No output */ \ | ||
265 | : "o" (*(char *)MCF_MBAR) ); \ | ||
266 | }) | ||
267 | #elif defined(CONFIG_M523x) || defined(CONFIG_M528x) || defined(CONFIG_M527x) | ||
268 | /* | ||
269 | * Most of the newer ColdFire family members have a proper RESET unit. | ||
270 | * Use the software reset control bit in the Reset Control Register (RCR). | ||
271 | */ | ||
272 | #define HARD_RESET_NOW() \ | ||
273 | ({ \ | ||
274 | unsigned char volatile *reset; \ | ||
275 | asm("move.w #0x2700, %sr"); \ | ||
276 | reset = ((volatile unsigned char *)(MCF_IPSBAR + 0x110000)); \ | ||
277 | while (1) \ | ||
278 | *reset |= 0x80; \ | ||
279 | }) | ||
280 | #elif defined(CONFIG_M520x) | ||
281 | /* | ||
282 | * The MCF5208 has a bit (SOFTRST) in memory (Reset Control Register | ||
283 | * RCR), that when set, resets the MCF5208. | ||
284 | */ | ||
285 | #define HARD_RESET_NOW() \ | ||
286 | ({ \ | ||
287 | unsigned char volatile *reset; \ | ||
288 | asm("move.w #0x2700, %sr"); \ | ||
289 | reset = ((volatile unsigned char *)(MCF_IPSBAR + 0xA0000)); \ | ||
290 | while(1) \ | ||
291 | *reset |= 0x80; \ | ||
292 | }) | ||
293 | #else | ||
294 | #define HARD_RESET_NOW() ({ \ | ||
295 | asm(" \ | ||
296 | movew #0x2700, %sr; \ | ||
297 | moveal #0x4, %a0; \ | ||
298 | moveal (%a0), %a0; \ | ||
299 | jmp (%a0); \ | ||
300 | "); \ | ||
301 | }) | ||
302 | #endif | ||
303 | #endif | ||
304 | #define arch_align_stack(x) (x) | 206 | #define arch_align_stack(x) (x) |
305 | 207 | ||
306 | 208 | ||
diff --git a/arch/m68knommu/platform/coldfire/vectors.c b/arch/m68knommu/platform/coldfire/vectors.c index 6cf894620234..bdca0297fa9a 100644 --- a/arch/m68knommu/platform/coldfire/vectors.c +++ b/arch/m68knommu/platform/coldfire/vectors.c | |||
@@ -96,10 +96,3 @@ void ack_vector(unsigned int irq) | |||
96 | } | 96 | } |
97 | 97 | ||
98 | /***************************************************************************/ | 98 | /***************************************************************************/ |
99 | |||
100 | void coldfire_reset(void) | ||
101 | { | ||
102 | HARD_RESET_NOW(); | ||
103 | } | ||
104 | |||
105 | /***************************************************************************/ | ||