Re: [Fwd: Kernel panic: Caught reserved exception - should not happen.]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Nov 01, 2001 at 09:09:05AM -0500, Scott A McConnell wrote:
> 
> -- 
> Scott A. McConnell
> X-Mozilla-Status2: 00000000
> Date: Thu, 01 Nov 2001 09:05:52 -0500
> From: Scott A McConnell <samcconn@cotw.com>
> X-Mailer: Mozilla 4.77 [en] (X11; U; Linux 2.4.5-xfs-1.0.1 i686)
> X-Accept-Language: en
> To: Jun Sun <jsun@mvista.com>
> Subject: Re: Kernel panic: Caught reserved exception - should not happen.
> 
> Jun Sun wrote:
> > 
> > Scott A McConnell wrote:
> > >
> > > I have been getting a fair amount of the above type of errors when
> > > compiling on a mipsel box.
> > >
> > > 2.4.5 kernel on a NEC VR5432 box. Anyone aware of known problems?
> > >
> > 
> > What is the exception vector?  Is it the "watch exception"?
> 
> No it is not a watch exception it appears to always be an Interrupt
> exception.
>

Try the following patch.  It is outdated, and it may not apply cleanly.
But you should get an idea about the intention of the fix.

Please let me know the result.

Jun


This is a possible fix for the R5432 cp0/interrupt bug.  Not tested or
verified by NEC engineers.

Not checked in yet.  Pending on more info on this bug.

Jun

diff -Nru linux/arch/mips/kernel/head.S.orig linux/arch/mips/kernel/head.S
--- linux/arch/mips/kernel/head.S.orig	Tue Jun 26 16:15:26 2001
+++ linux/arch/mips/kernel/head.S	Tue Jun 26 16:27:49 2001
@@ -59,6 +59,12 @@
 	.set	noat
 	LEAF(except_vec0_r4000)
 	.set	mips3
+#if defined(CONFIG_CPU_R5432)
+	la 	k0, 1f
+	jr	k0
+	nop
+1:
+#endif
 	mfc0	k0, CP0_BADVADDR		# Get faulting address
 	srl	k0, k0, 22			# get pgd only bits
 	lw	k1, current_pgd			# get pgd pointer
@@ -329,6 +335,12 @@
 	/* Register saving is delayed as long as we don't know
 	 * which registers really need to be saved.
 	 */
+#if defined(CONFIG_CPU_R5432)
+	la 	k0, 1f
+	jr	k0
+	nop
+1:
+#endif
 	mfc0	k1, CP0_CONTEXT
 	dsra	k1, 1
 	lwu	k0,  (k1)		# May cause another exception
@@ -357,6 +369,12 @@
 	 * in the cache, we may not be able to recover.  As a
 	 * first-order desperate measure, turn off KSEG0 cacheing.
 	 */
+#if defined(CONFIG_CPU_R5432)
+	la 	k0, 1f
+	jr	k0
+	nop
+1:
+#endif
 	mfc0	k0,CP0_CONFIG
 	li	k1,~CONF_CM_CMASK
 	and	k0,k0,k1
@@ -374,6 +392,12 @@
 	/* General exception vector R4000 version. */
 	NESTED(except_vec3_r4000, 0, sp)
 	.set	noat
+#if defined(CONFIG_CPU_R5432)
+	la 	k0, 1f
+	jr	k0
+	nop
+1:
+#endif
 	mfc0	k1, CP0_CAUSE
 	andi	k1, k1, 0x7c
 	li	k0, 31<<2
@@ -427,6 +451,12 @@
 	NESTED(except_vec3_generic, 0, sp)
 	.set	noat
 	.set	mips0
+#if defined(CONFIG_CPU_R5432)
+	la 	k0, 1f
+	jr	k0
+	nop
+1:
+#endif
 	mfc0	k1, CP0_CAUSE
 	la	k0, exception_handlers
 	andi	k1, k1, 0x7c

[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux