PERFORCE change 137678 for review
Marcel Moolenaar
marcel at FreeBSD.org
Fri Mar 14 04:07:50 UTC 2008
http://perforce.freebsd.org/chv.cgi?CH=137678
Change 137678 by marcel at marcel_xcllnt on 2008/03/14 04:07:16
Install rstcode at the EXC_RST vector. It now saves
some critical information and goes into an infinite
loop, but will be fleshed out to get the AP into a
usable state.
Affected files ...
.. //depot/projects/powerpc/sys/powerpc/aim/machdep.c#7 edit
.. //depot/projects/powerpc/sys/powerpc/aim/trap_subr.S#3 edit
Differences ...
==== //depot/projects/powerpc/sys/powerpc/aim/machdep.c#7 (text+ko) ====
@@ -241,6 +241,7 @@
extern char kernel_text[], _end[];
+extern void *rstcode, *rstsize;
extern void *trapcode, *trapsize;
extern void *alitrap, *alisize;
extern void *dsitrap, *dsisize;
@@ -326,7 +327,7 @@
*/
mtmsr(mfmsr() & ~(PSL_IR | PSL_DR));
isync();
- bcopy(&trapcode, (void *)EXC_RST, (size_t)&trapsize);
+ bcopy(&rstcode, (void *)EXC_RST, (size_t)&rstsize);
bcopy(&trapcode, (void *)EXC_MCHK, (size_t)&trapsize);
bcopy(&dsitrap, (void *)EXC_DSI, (size_t)&dsisize);
bcopy(&trapcode, (void *)EXC_ISI, (size_t)&trapsize);
@@ -343,7 +344,6 @@
bcopy(&trapcode, (void *)EXC_THRM, (size_t)&trapsize);
bcopy(&trapcode, (void *)EXC_BPT, (size_t)&trapsize);
#ifdef KDB
- bcopy(&dblow, (void *)EXC_RST, (size_t)&dbsize);
bcopy(&dblow, (void *)EXC_MCHK, (size_t)&dbsize);
bcopy(&dblow, (void *)EXC_PGM, (size_t)&dbsize);
bcopy(&dblow, (void *)EXC_TRC, (size_t)&dbsize);
==== //depot/projects/powerpc/sys/powerpc/aim/trap_subr.S#3 (text+ko) ====
@@ -242,6 +242,26 @@
* (except ISI/DSI, ALI, and the interrupts)
*/
.text
+
+ .globl CNAME(rstcode), CNAME(rstsize)
+CNAME(rstcode):
+ bl 1f
+
+ .long 0
+ .long 0
+ .long 0
+ .long 0
+
+1:
+ mflr %r3
+ stw %r3, 0(%r3)
+ stw %r1, 4(%r3)
+ stw %r2, 8(%r3)
+ mfmsr %r4
+ stw %r4, 12(%r3)
+9: b 9b
+CNAME(rstsize) = . - CNAME(rstcode)
+
.globl CNAME(trapcode),CNAME(trapsize)
CNAME(trapcode):
mtsprg1 %r1 /* save SP */
More information about the p4-projects
mailing list