diff options
author | Peter Grehan <grehan@FreeBSD.org> | 2002-09-19 04:31:39 +0000 |
---|---|---|
committer | Peter Grehan <grehan@FreeBSD.org> | 2002-09-19 04:31:39 +0000 |
commit | 1ce0c6b147758544a4a88a270cce06213cbd43f8 (patch) | |
tree | 86aed4406ea474376ed401cf623aade7b6110e5d | |
parent | d6ce71e50a2eb10a51b86a315f7a1c32018cc2e2 (diff) | |
download | src-1ce0c6b147758544a4a88a270cce06213cbd43f8.tar.gz src-1ce0c6b147758544a4a88a270cce06213cbd43f8.zip |
Clear on-demand BAT entries to properly restore OpenFirmware's
address space
Approved by: benno
Notes
Notes:
svn path=/head/; revision=103602
-rw-r--r-- | sys/powerpc/aim/ofw_machdep.c | 6 | ||||
-rw-r--r-- | sys/powerpc/powerpc/ofw_machdep.c | 6 |
2 files changed, 12 insertions, 0 deletions
diff --git a/sys/powerpc/aim/ofw_machdep.c b/sys/powerpc/aim/ofw_machdep.c index b87d97afd7f9..11bc6de7c3f5 100644 --- a/sys/powerpc/aim/ofw_machdep.c +++ b/sys/powerpc/aim/ofw_machdep.c @@ -129,6 +129,12 @@ openfirmware(void *args) srsave[i] = mfsrin(i << ADDR_SR_SHFT); mtsrin(i << ADDR_SR_SHFT, ofw_pmap.pm_sr[i]); } + + /* + * Clear battable[] translations + */ + __asm __volatile("mtdbatu 2, %0\n" + "mtdbatu 3, %0" : : "r" (0)); isync(); } diff --git a/sys/powerpc/powerpc/ofw_machdep.c b/sys/powerpc/powerpc/ofw_machdep.c index b87d97afd7f9..11bc6de7c3f5 100644 --- a/sys/powerpc/powerpc/ofw_machdep.c +++ b/sys/powerpc/powerpc/ofw_machdep.c @@ -129,6 +129,12 @@ openfirmware(void *args) srsave[i] = mfsrin(i << ADDR_SR_SHFT); mtsrin(i << ADDR_SR_SHFT, ofw_pmap.pm_sr[i]); } + + /* + * Clear battable[] translations + */ + __asm __volatile("mtdbatu 2, %0\n" + "mtdbatu 3, %0" : : "r" (0)); isync(); } |