diff options
Diffstat (limited to 'arch/sparc64/kernel/head.S')
-rw-r--r-- | arch/sparc64/kernel/head.S | 18 |
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 | */ | ||
322 | niagara_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 | |||
319 | cheetah_tlb_fixup: | 337 | cheetah_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) |