Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 28 Sep 2008 13:12:49 +0200
From:      "Marco Trillo" <marcotrillo@gmail.com>
To:        freebsd-ppc@freebsd.org
Subject:   Fatal kernel trap on 7400 G4 processors
Message-ID:  <b9c23c9f0809280412x6b2a87cfyab6e655b62d162ab@mail.gmail.com>

next in thread | raw e-mail | index | archive | help
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.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?b9c23c9f0809280412x6b2a87cfyab6e655b62d162ab>