Fatal kernel trap on 7400 G4 processors
Marco Trillo
marcotrillo at gmail.com
Sun Sep 28 11:12:49 UTC 2008
Hi all,
Recent 8.0-current kernels cause a "fatal kernel trap" on 7400 G4 processors:
fatal kernel trap
exception = 0x7 (program)
srr0 = 0x5336bc
srr1 = 0x83032
lr = 0x5334b4
Stopped at 0x5336bc mfspr 0, dccr
The address 0x5336bc corresponds to function cpu_setup() in powerpc/cpu.c:
5336b4: 7f 9e 00 00 cmpw cr7,r30,r0
5336b8: 40 be 02 94 bne+ cr7,53394c <cpu_setup+0x5f4>
5336bc: 7c 1a fa a6 mfdccr r0 <<<<< here
5336c0: 3d 20 00 5f lis r9,95
I tracked the line to the following code in cpu.c:
switch (vers) {
case MPC7400:
case MPC7410:
case MPC7447A:
case MPC7448:
case MPC7450:
case MPC7455:
case MPC7457:
/* G3 systems don't have an L3 cache, so only check
* for G4 and above */
l3cr_config = mfspr(SPR_L3CR); <<<< here
/* Fallthrough */
In include/spr.h I see the following:
#define SPR_L3CR 0x3fa /* .6. L3 Control Register */
#define SPR_DCCR 0x3fa /* 4.. Data Cache Cachability Register */
So it seems that the 7400 processor doesn't have these registers so it
causes a fault.
What do you think?
Thanks,
Marco.
More information about the freebsd-ppc
mailing list