Now treat the bus error register as 16-bits wide, even
though it has nothing in the top half. Reading it as only 8 bits can sometimes give erroneous values. Under DEBUG, also stash the value read in the buserr_reg global, since the value is only latched until read.
This commit is contained in:
parent
3a6e3c55cb
commit
ba289d7421
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: locore.s,v 1.7 2001/06/27 03:25:31 fredette Exp $ */
|
||||
/* $NetBSD: locore.s,v 1.8 2001/08/16 23:54:31 fredette Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 2001 Matthew Fredette
|
||||
@ -227,9 +227,12 @@ sun2_mmu_specific:
|
||||
movc %sfc, %d1 | save sfc to d1
|
||||
moveq #FC_CONTROL, %d0 | sfc = FC_CONTROL
|
||||
movc %d0, %sfc
|
||||
movsb BUSERR_REG, %d0 | get value of bus error register
|
||||
movsw BUSERR_REG, %d0 | get value of bus error register
|
||||
movc %d1, %sfc | restore sfc
|
||||
movl %sp@+, %d1 | restore d1
|
||||
#ifdef DEBUG
|
||||
movw %d0, _C_LABEL(buserr_reg) | save bus error register value
|
||||
#endif
|
||||
andb #BUSERR_PROTERR, %d0 | is this an MMU (protection *or* page unavailable) fault?
|
||||
jeq Lisberr | non-MMU bus error
|
||||
/* End of sun2 specific code. */
|
||||
|
Loading…
Reference in New Issue
Block a user