aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sparc64/kernel/head.S
diff options
context:
space:
mode:
authorDavid S. Miller <davem@sunset.davemloft.net>2006-02-07 19:09:12 -0500
committerDavid S. Miller <davem@sunset.davemloft.net>2006-03-20 04:11:54 -0500
commit8591e3027235d6d11b958e43379f2ee7b7114841 (patch)
treece3f036ac64e20f7d75bae04e5362c97bc9228e6 /arch/sparc64/kernel/head.S
parentdf7d6aec96ab98cb182dd5138a85bdc363a9bf0d (diff)
[SPARC64]: Niagara copy/clear page.
Happily we have no D-cache aliasing issues on these chips, so the implementation is very straightforward. Add a stub in bootup which will be where the patching calls will be made for niagara/sun4v/hypervisor. Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch/sparc64/kernel/head.S')
-rw-r--r--arch/sparc64/kernel/head.S18
1 files changed, 18 insertions, 0 deletions
diff --git a/arch/sparc64/kernel/head.S b/arch/sparc64/kernel/head.S
index 03fc0b5b1d98..f04f7391f236 100644
--- a/arch/sparc64/kernel/head.S
+++ b/arch/sparc64/kernel/head.S
@@ -316,6 +316,24 @@ sun4u_init:
316 ba,pt %xcc, spitfire_tlb_fixup 316 ba,pt %xcc, spitfire_tlb_fixup
317 nop 317 nop
318 318
319 /* XXX Nothing branches to here yet, when %ver register indicates
320 * XXX Niagara we should do this.
321 */
322niagara_tlb_fixup:
323 mov 3, %g2 /* Set TLB type to hypervisor. */
324 sethi %hi(tlb_type), %g1
325 stw %g2, [%g1 + %lo(tlb_type)]
326
327 /* Patch copy/clear ops. */
328 call niagara_patch_copyops
329 nop
330 call niagara_patch_pageops
331 nop
332
333 /* Patch TLB/cache ops. */
334 call hypervisor_patch_cachetlbops
335 nop
336
319cheetah_tlb_fixup: 337cheetah_tlb_fixup:
320 mov 2, %g2 /* Set TLB type to cheetah+. */ 338 mov 2, %g2 /* Set TLB type to cheetah+. */
321 BRANCH_IF_CHEETAH_PLUS_OR_FOLLOWON(g1,g7,1f) 339 BRANCH_IF_CHEETAH_PLUS_OR_FOLLOWON(g1,g7,1f)