Execution of Altivec instructions will crash the kernel. Apply by doing: cd /usr/src patch -p0 < 005_altivec.patch And then rebuild your kernel. Index: sys/arch/macppc/macppc/machdep.c =================================================================== RCS file: /cvs/src/sys/arch/macppc/macppc/machdep.c,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- sys/arch/macppc/macppc/machdep.c 2001/09/28 04:13:12 1.9 +++ sys/arch/macppc/macppc/machdep.c 2001/11/05 22:26:57 1.10 @@ -264,7 +264,7 @@ /* * Set up trap vectors */ - for (exc = EXC_RSVD; exc <= EXC_LAST; exc += 0x100) + for (exc = EXC_RSVD; exc <= EXC_LAST; exc += 0x100) { switch (exc) { default: bcopy(&trapcode, (void *)exc, (size_t)&trapsize); @@ -309,6 +309,17 @@ #endif break; } + } + + /* Grr, ALTIVEC_UNAVAIL is a vector not ~0xff aligned: 0x0f20 */ + bcopy(&trapcode, (void *)0xf20, (size_t)&trapsize); + /* + * since trapsize is > 0x20, we just overwrote the EXC_PERF handler + * since we do not use it, we will "share" it with the EXC_VEC, + * we dont support EXC_VEC either. + * should be a 'ba 0xf20 written' at address 0xf00, but we + * do not generate EXC_PERF exceptions... + */ syncicache((void *)EXC_RST, EXC_LAST - EXC_RST + 0x100); Index: sys/arch/powerpc/powerpc/trap.c =================================================================== RCS file: /cvs/src/sys/arch/powerpc/powerpc/trap.c,v retrieving revision 1.33 retrieving revision 1.34 diff -u -r1.33 -r1.34 --- sys/arch/powerpc/powerpc/trap.c 2001/09/20 13:46:04 1.33 +++ sys/arch/powerpc/powerpc/trap.c 2001/11/05 22:26:57 1.34 @@ -413,6 +413,14 @@ break; } + /* This is not really a perf exception, but is an ALTIVEC unavail + * which we do not handle, kill the process with illegal instruction. + */ + case EXC_PERF|EXC_USER: + sv.sival_int = frame->srr0; + trapsignal(p, SIGILL, 0, ILL_ILLOPC, sv); + break; + case EXC_AST|EXC_USER: /* This is just here that we trap */ break;