diff options
Diffstat (limited to 'arch/sparc64/kernel/head.S')
-rw-r--r-- | arch/sparc64/kernel/head.S | 46 |
1 files changed, 1 insertions, 45 deletions
diff --git a/arch/sparc64/kernel/head.S b/arch/sparc64/kernel/head.S index b49dcd4504b0..d00e20693be1 100644 --- a/arch/sparc64/kernel/head.S +++ b/arch/sparc64/kernel/head.S | |||
@@ -429,17 +429,6 @@ setup_trap_table: | |||
429 | * | 429 | * |
430 | * %g6 --> current_thread_info() | 430 | * %g6 --> current_thread_info() |
431 | * | 431 | * |
432 | * MMU Globals (PSTATE_MG): | ||
433 | * | ||
434 | * %g1 --> TLB_SFSR | ||
435 | * %g2 --> ((_PAGE_VALID | _PAGE_SZ4MB | | ||
436 | * _PAGE_CP | _PAGE_CV | _PAGE_P | _PAGE_W) | ||
437 | * ^ 0xfffff80000000000) | ||
438 | * (this %g2 value is used for computing the PAGE_OFFSET kernel | ||
439 | * TLB entries quickly, the virtual address of the fault XOR'd | ||
440 | * with this %g2 value is the PTE to load into the TLB) | ||
441 | * %g3 --> VPTE_BASE_CHEETAH or VPTE_BASE_SPITFIRE | ||
442 | * | ||
443 | * Interrupt Globals (PSTATE_IG, setup by init_irqwork_curcpu()): | 432 | * Interrupt Globals (PSTATE_IG, setup by init_irqwork_curcpu()): |
444 | * | 433 | * |
445 | * %g6 --> __irq_work[smp_processor_id()] | 434 | * %g6 --> __irq_work[smp_processor_id()] |
@@ -450,40 +439,6 @@ setup_trap_table: | |||
450 | wrpr %o1, PSTATE_AG, %pstate | 439 | wrpr %o1, PSTATE_AG, %pstate |
451 | mov %o2, %g6 | 440 | mov %o2, %g6 |
452 | 441 | ||
453 | #define KERN_HIGHBITS ((_PAGE_VALID|_PAGE_SZ4MB)^0xfffff80000000000) | ||
454 | #define KERN_LOWBITS (_PAGE_CP | _PAGE_CV | _PAGE_P | _PAGE_W) | ||
455 | wrpr %o1, PSTATE_MG, %pstate | ||
456 | mov TSB_REG, %g1 | ||
457 | stxa %g0, [%g1] ASI_DMMU | ||
458 | membar #Sync | ||
459 | stxa %g0, [%g1] ASI_IMMU | ||
460 | membar #Sync | ||
461 | mov TLB_SFSR, %g1 | ||
462 | sethi %uhi(KERN_HIGHBITS), %g2 | ||
463 | or %g2, %ulo(KERN_HIGHBITS), %g2 | ||
464 | sllx %g2, 32, %g2 | ||
465 | or %g2, KERN_LOWBITS, %g2 | ||
466 | |||
467 | BRANCH_IF_ANY_CHEETAH(g3,g7,8f) | ||
468 | ba,pt %xcc, 9f | ||
469 | nop | ||
470 | |||
471 | 8: | ||
472 | sethi %uhi(VPTE_BASE_CHEETAH), %g3 | ||
473 | or %g3, %ulo(VPTE_BASE_CHEETAH), %g3 | ||
474 | ba,pt %xcc, 2f | ||
475 | sllx %g3, 32, %g3 | ||
476 | |||
477 | 9: | ||
478 | sethi %uhi(VPTE_BASE_SPITFIRE), %g3 | ||
479 | or %g3, %ulo(VPTE_BASE_SPITFIRE), %g3 | ||
480 | sllx %g3, 32, %g3 | ||
481 | |||
482 | 2: | ||
483 | clr %g7 | ||
484 | #undef KERN_HIGHBITS | ||
485 | #undef KERN_LOWBITS | ||
486 | |||
487 | /* Kill PROM timer */ | 442 | /* Kill PROM timer */ |
488 | sethi %hi(0x80000000), %o2 | 443 | sethi %hi(0x80000000), %o2 |
489 | sllx %o2, 32, %o2 | 444 | sllx %o2, 32, %o2 |
@@ -538,6 +493,7 @@ sparc64_boot_end: | |||
538 | 493 | ||
539 | #include "systbls.S" | 494 | #include "systbls.S" |
540 | #include "ktlb.S" | 495 | #include "ktlb.S" |
496 | #include "tsb.S" | ||
541 | #include "etrap.S" | 497 | #include "etrap.S" |
542 | #include "rtrap.S" | 498 | #include "rtrap.S" |
543 | #include "winfixup.S" | 499 | #include "winfixup.S" |