summaryrefslogtreecommitdiffstats
path: root/arch/mips64/kernel/head.S
diff options
context:
space:
mode:
authorKanoj Sarcar <kanoj@engr.sgi.com>2000-06-12 17:39:31 +0000
committerKanoj Sarcar <kanoj@engr.sgi.com>2000-06-12 17:39:31 +0000
commit96680a4e6d55df5988c7b9fae26b459c4e94fb95 (patch)
tree0f71fac70269e2792780dae92a6333f713a76ada /arch/mips64/kernel/head.S
parentd664fc3c7e5dfcff2bf348050ace5894c7648b3a (diff)
Fix the code that puts in (possibly different) tlblo0/tlblo1 entries
for the mapped kernel. Compute the "pfn" field properly.
Diffstat (limited to 'arch/mips64/kernel/head.S')
-rw-r--r--arch/mips64/kernel/head.S8
1 files changed, 5 insertions, 3 deletions
diff --git a/arch/mips64/kernel/head.S b/arch/mips64/kernel/head.S
index 29b7e17c0..5949dbfd9 100644
--- a/arch/mips64/kernel/head.S
+++ b/arch/mips64/kernel/head.S
@@ -59,9 +59,11 @@
dsll t1, NASID_SHFT # Shift text nasid into place
dsll t2, NASID_SHFT # Same for data nasid
or t1, t1, t0 # Physical load address of kernel text
- or t2, t1, t0 # Physical load address of kernel data
- dsrl t1, 6 # Put physical address into place
- dsrl t2, 6 # Put physical address into place
+ or t2, t2, t0 # Physical load address of kernel data
+ dsrl t1, 12 # 4K pfn
+ dsrl t2, 12 # 4K pfn
+ dsll t1, 6 # Get pfn into place
+ dsll t2, 6 # Get pfn into place
li t0, ((_PAGE_GLOBAL|_PAGE_VALID| _CACHE_CACHABLE_COW) >> 6)
or t0, t0, t1
mtc0 t0, CP0_ENTRYLO0 # physaddr, VG, cach exlwr