summaryrefslogtreecommitdiffstats
path: root/sys/powerpc/aim/machdep.c
diff options
context:
space:
mode:
authornwhitehorn <nwhitehorn@FreeBSD.org>2010-11-11 02:40:00 +0000
committernwhitehorn <nwhitehorn@FreeBSD.org>2010-11-11 02:40:00 +0000
commitc4343a6448cd3ea139add48e1d33e67681a3fc05 (patch)
tree45f3d7efb1a1c01884e2a01af60ae9b30caef611 /sys/powerpc/aim/machdep.c
parent433c390cb42236ee4f9fd7761683c20e148407f7 (diff)
downloadFreeBSD-src-c4343a6448cd3ea139add48e1d33e67681a3fc05.zip
FreeBSD-src-c4343a6448cd3ea139add48e1d33e67681a3fc05.tar.gz
Add support for the IMISS, DLMISS, and DSMISS traps required to run
FreeBSD on a G2 core. PR: powerpc/111296 Submitted by: Andrew Turner
Diffstat (limited to 'sys/powerpc/aim/machdep.c')
-rw-r--r--sys/powerpc/aim/machdep.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/sys/powerpc/aim/machdep.c b/sys/powerpc/aim/machdep.c
index 0331b50..f52f7a4 100644
--- a/sys/powerpc/aim/machdep.c
+++ b/sys/powerpc/aim/machdep.c
@@ -245,6 +245,9 @@ extern void *dsitrap, *dsisize;
extern void *decrint, *decrsize;
extern void *extint, *extsize;
extern void *dblow, *dbsize;
+extern void *imisstrap, *imisssize;
+extern void *dlmisstrap, *dlmisssize;
+extern void *dsmisstrap, *dsmisssize;
uintptr_t
powerpc_init(vm_offset_t startkernel, vm_offset_t endkernel,
@@ -491,6 +494,12 @@ powerpc_init(vm_offset_t startkernel, vm_offset_t endkernel,
bcopy(generictrap, (void *)EXC_VEC, (size_t)&trapsize);
bcopy(generictrap, (void *)EXC_VECAST_G4, (size_t)&trapsize);
bcopy(generictrap, (void *)EXC_VECAST_G5, (size_t)&trapsize);
+ #ifndef __powerpc64__
+ /* G2-specific TLB miss helper handlers */
+ bcopy(&imisstrap, (void *)EXC_IMISS, (size_t)&imisssize);
+ bcopy(&dlmisstrap, (void *)EXC_DLMISS, (size_t)&dlmisssize);
+ bcopy(&dsmisstrap, (void *)EXC_DSMISS, (size_t)&dsmisssize);
+ #endif
__syncicache(EXC_RSVD, EXC_LAST - EXC_RSVD);
/*
OpenPOWER on IntegriCloud