diff options
author | grehan <grehan@FreeBSD.org> | 2002-09-19 04:31:39 +0000 |
---|---|---|
committer | grehan <grehan@FreeBSD.org> | 2002-09-19 04:31:39 +0000 |
commit | 2adb6a113bf9339205cf504b512c22acaad99f45 (patch) | |
tree | 86aed4406ea474376ed401cf623aade7b6110e5d /sys/powerpc | |
parent | 079bbffd71773ddf06dd0766eb9717d055a08cce (diff) | |
download | FreeBSD-src-2adb6a113bf9339205cf504b512c22acaad99f45.zip FreeBSD-src-2adb6a113bf9339205cf504b512c22acaad99f45.tar.gz |
Clear on-demand BAT entries to properly restore OpenFirmware's
address space
Approved by: benno
Diffstat (limited to 'sys/powerpc')
-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 b87d97a..11bc6de 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 b87d97a..11bc6de 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(); } |