Make reboot(2) actually work (don't access %sp after MMU is turned off).

Also cleanup spaces and #if 0'ed code.  Tested on both LUNA and LUNA-II.

Should be pulled up to netbsd-6.
This commit is contained in:
tsutsui 2012-07-23 15:10:17 +00:00
parent 46d3513c30
commit d756dcd32c
1 changed files with 4 additions and 11 deletions

View File

@ -1,4 +1,4 @@
/* $NetBSD: locore.s,v 1.47 2011/12/22 15:33:30 tsutsui Exp $ */
/* $NetBSD: locore.s,v 1.48 2012/07/23 15:10:17 tsutsui Exp $ */
/*
* Copyright (c) 1988 University of Utah.
@ -1062,7 +1062,9 @@ GLOBAL(doadump)
* and return to monitor.
*/
ENTRY_NOPROFILE(doboot)
movw #PSL_HIGHIPL,%sr | no interrupts
movw #PSL_HIGHIPL,%sr | no interrupts
movl _C_LABEL(boothowto),%d7 | load howto
movl %sp@(4),%d2 | arg
#if defined(M68040)
cmpl #MMU_68040,_C_LABEL(mmutype) | 68040?
jeq Lnocache5 | yes, skip
@ -1085,18 +1087,9 @@ Lnocache5:
.long 0x4e7b0807 | movc %d0,%srp
#endif /* M68040 */
Lbootcommon:
movl _C_LABEL(boothowto),%d0 | load howto
movl %sp@(4),%d2 | arg
lea _ASM_LABEL(tmpstk),%sp | physical SP in case of NMI
movl #0,%d3
movc %d3,%vbr | monitor %vbr
#if 0
andl #0,%d0 | mask off
tstl %d0 |
bne Lsboot | sboot?
tstl %d2
beq Ldoreset
#endif
movl #0x41000000,%a0 | base = (int **)0x4100.0000
movl %a0@,%d0 | *((int *)base[0])