Subject: kern/3854: Kernel crashes at boot time on 040 machines
To: None <gnats-bugs@gnats.netbsd.org>
From: Dave Huang <khym@bga.com>
List: netbsd-bugs
Date: 07/12/1997 00:20:22
>Number: 3854
>Category: kern
>Synopsis: Kernel crashes at boot time on 040 machines
>Confidential: no
>Severity: critical
>Priority: high
>Responsible: kern-bug-people (Kernel Bug People)
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Fri Jul 11 22:35:01 1997
>Last-Modified:
>Originator: Dave Huang
>Organization:
Name: Dave Huang | Mammal, mammal / their names are called /
INet: khym@bga.com | they raise a paw / the bat, the cat /
FurryMUCK: Dahan | dolphin and dog / koala bear and hog -- TMBG
Dahan: Hani G Y+C 21 Y++ L+++ W- C++ T++ A+ E+ S++ V++ F- Q+++ P+ B+ PA+ PL++
>Release: NetBSD-current as of July 11, 1997
>Environment:
System: NetBSD gedd.metonymy.com 1.2G NetBSD 1.2G (GEDD) #243: Sat Jul 5 05:22:20 CDT 1997 khym@dahan.metonymy.com:/usr/src.local/sys/arch/mac68k/compile/GEDD
>Description:
Booting a kernel on a 68040 machine (well, on a Centris 660av and
Quadra 610, at least) crashes during the nubus probe with the following:
nubus0 at mainbus0
trap type 1, code = 0, v= 10ccd0
kernel: Address error trap
pid = 0, pc = 000A33BA, ps = 2000, sfc = 0001, dfc = 0001
Registers:
0 1 2 3 4 5 6 7
dreg: 00000000 0835F000 00000008 00000000 00000000 0010CD0F 00000008 00000000
areg: 0010CCD0 00FFFFFF 00FFFFFF 00000000 0835F000 0010CDAA 0010CD0C FFFFCFFC
Kernel stack (0010CC04):
10CC04: 000A7590 0010CC50 00000080 00000008 00000000 00000000 0010CD0F 00000008
10CC24: 00000000 00FFFFFF 00000000 0835F000 0010CDAA 00C24000 0010CD0C 00003046
10CC44: 00000001 00000000 0010CCD0 00000000 0835F000 00000008 00000000 00000000
10CC64: 0010CD0F 00000008 00000000 0010CCD0 00FFFFFF 00FFFFFF 00000000 0835F000
10CC84: 0010CDAA 0010CD0C FFFFCFFC 00000000 2000000A 33BA7008 0010CCD0 01250005
10CCA4: 00250025 0935EFFF 0010CD00 000A338E 0935EFFF FFFFFFFF 0935EFFF FFFFFFFF
10CCC4: F9FFF000 000A338E 0010CCD0 00000008 00000000 00000000 0010CD0F 00000008
10CCE4: 00000000 00FFFFFF 00000000 0835F000 0010CDAA 0010CD0C 0010CCC8 000A338E
10CD04: 00000040 00000001 0010CD4C 00091C78 00000000 0835F000 00FFFFFF 00000001
10CD24: F9000000 00000000 00000009 0010CDA0 00000000 00000000 0010CDAA 0010CD94
10CD44: 06BA7380 000B70E8 0010CDDC 000917C2 00000000 0835F000 00000009 0010CDAA
10CD64: 00000000 00000000 0010CE26 00000000 000B70E8 06BA79C0 000B2324 000B2320
10CD84: 06BA7380 000B70E8 00000002 0001F8EE 00000000 0010CE26 0835F000 0010CDDC
10CDA4: 0001FC0E 06BA9F20 0000000C 0001FC8C 00000004 00000000 0010CE26 00000000
10CDC4: 00000000 00000009 0008B5B0 06BA7394 06BA7380 000B70F4 0010CE28 000261F4
10CDE4: 06BA79C0 06BA7380 00000000 06BA79C0 00000000 0010CEFA 00000000 000BAD00
panic: Address error
BTW, I think this code came from NetBSD/amiga, so someone might want
to make sure that the problem doesn't exist there too...
>How-To-Repeat:
Try to boot a recent kernel on a 660av or Q610. It looks like this
problem affects all '040 macs though.
>Fix:
The bus error handler and address error handler vectors are switched
around... vector 2 is bus error, and 3 is address error.
--- /usr/src/sys/arch/mac68k/mac68k/machdep.c Fri Jul 11 06:18:14 1997
+++ machdep.c Fri Jul 11 23:27:57 1997
@@ -499,14 +499,14 @@
switch (cputype) {
#ifdef M68060
case CPU_68060:
- vectab[2] = addrerr4060;
- vectab[3] = buserr60;
+ vectab[2] = buserr60;
+ vectab[3] = addrerr4060;
break;
#endif
#ifdef M68040
case CPU_68040:
- vectab[2] = addrerr4060;
- vectab[3] = buserr40;
+ vectab[2] = buserr40;
+ vectab[3] = addrerr4060;
break;
#endif
default:
>Audit-Trail:
>Unformatted: