aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sparc64/kernel/setup.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/sparc64/kernel/setup.c')
-rw-r--r--arch/sparc64/kernel/setup.c31
1 files changed, 9 insertions, 22 deletions
diff --git a/arch/sparc64/kernel/setup.c b/arch/sparc64/kernel/setup.c
index ddbed3341a23..8e8baf2354df 100644
--- a/arch/sparc64/kernel/setup.c
+++ b/arch/sparc64/kernel/setup.c
@@ -496,7 +496,6 @@ extern void paging_init(void);
496 496
497void __init setup_arch(char **cmdline_p) 497void __init setup_arch(char **cmdline_p)
498{ 498{
499 unsigned long highest_paddr;
500 int i; 499 int i;
501 500
502 /* Initialize PROM console and command line. */ 501 /* Initialize PROM console and command line. */
@@ -519,11 +518,7 @@ void __init setup_arch(char **cmdline_p)
519 idprom_init(); 518 idprom_init();
520 (void) prom_probe_memory(); 519 (void) prom_probe_memory();
521 520
522 /* In paging_init() we tip off this value to see if we need
523 * to change init_mm.pgd to point to the real alias mapping.
524 */
525 phys_base = 0xffffffffffffffffUL; 521 phys_base = 0xffffffffffffffffUL;
526 highest_paddr = 0UL;
527 for (i = 0; sp_banks[i].num_bytes != 0; i++) { 522 for (i = 0; sp_banks[i].num_bytes != 0; i++) {
528 unsigned long top; 523 unsigned long top;
529 524
@@ -531,25 +526,10 @@ void __init setup_arch(char **cmdline_p)
531 phys_base = sp_banks[i].base_addr; 526 phys_base = sp_banks[i].base_addr;
532 top = sp_banks[i].base_addr + 527 top = sp_banks[i].base_addr +
533 sp_banks[i].num_bytes; 528 sp_banks[i].num_bytes;
534 if (highest_paddr < top)
535 highest_paddr = top;
536 } 529 }
537 pfn_base = phys_base >> PAGE_SHIFT; 530 pfn_base = phys_base >> PAGE_SHIFT;
538 531
539 switch (tlb_type) { 532 kern_base = (prom_boot_mapping_phys_low >> 22UL) << 22UL;
540 default:
541 case spitfire:
542 kern_base = spitfire_get_itlb_data(sparc64_highest_locked_tlbent());
543 kern_base &= _PAGE_PADDR_SF;
544 break;
545
546 case cheetah:
547 case cheetah_plus:
548 kern_base = cheetah_get_litlb_data(sparc64_highest_locked_tlbent());
549 kern_base &= _PAGE_PADDR;
550 break;
551 };
552
553 kern_size = (unsigned long)&_end - (unsigned long)KERNBASE; 533 kern_size = (unsigned long)&_end - (unsigned long)KERNBASE;
554 534
555 if (!root_flags) 535 if (!root_flags)
@@ -625,6 +605,9 @@ extern void smp_info(struct seq_file *);
625extern void smp_bogo(struct seq_file *); 605extern void smp_bogo(struct seq_file *);
626extern void mmu_info(struct seq_file *); 606extern void mmu_info(struct seq_file *);
627 607
608unsigned int dcache_parity_tl1_occurred;
609unsigned int icache_parity_tl1_occurred;
610
628static int show_cpuinfo(struct seq_file *m, void *__unused) 611static int show_cpuinfo(struct seq_file *m, void *__unused)
629{ 612{
630 seq_printf(m, 613 seq_printf(m,
@@ -635,6 +618,8 @@ static int show_cpuinfo(struct seq_file *m, void *__unused)
635 "type\t\t: sun4u\n" 618 "type\t\t: sun4u\n"
636 "ncpus probed\t: %ld\n" 619 "ncpus probed\t: %ld\n"
637 "ncpus active\t: %ld\n" 620 "ncpus active\t: %ld\n"
621 "D$ parity tl1\t: %u\n"
622 "I$ parity tl1\t: %u\n"
638#ifndef CONFIG_SMP 623#ifndef CONFIG_SMP
639 "Cpu0Bogo\t: %lu.%02lu\n" 624 "Cpu0Bogo\t: %lu.%02lu\n"
640 "Cpu0ClkTck\t: %016lx\n" 625 "Cpu0ClkTck\t: %016lx\n"
@@ -647,7 +632,9 @@ static int show_cpuinfo(struct seq_file *m, void *__unused)
647 (prom_prev >> 8) & 0xff, 632 (prom_prev >> 8) & 0xff,
648 prom_prev & 0xff, 633 prom_prev & 0xff,
649 (long)num_possible_cpus(), 634 (long)num_possible_cpus(),
650 (long)num_online_cpus() 635 (long)num_online_cpus(),
636 dcache_parity_tl1_occurred,
637 icache_parity_tl1_occurred
651#ifndef CONFIG_SMP 638#ifndef CONFIG_SMP
652 , cpu_data(0).udelay_val/(500000/HZ), 639 , cpu_data(0).udelay_val/(500000/HZ),
653 (cpu_data(0).udelay_val/(5000/HZ)) % 100, 640 (cpu_data(0).udelay_val/(5000/HZ)) % 100,