diff options
author | Jeff Garzik <jgarzik@pobox.com> | 2005-10-03 19:46:45 -0400 |
---|---|---|
committer | Jeff Garzik <jgarzik@pobox.com> | 2005-10-03 19:46:45 -0400 |
commit | 2b235826098bb653982894dfc3f70fd029f6c2e4 (patch) | |
tree | ec525ddba74f58017a3f145bb68cf94376648c1c /arch/sparc64/kernel/setup.c | |
parent | b4b52db71529bbe46da914eda772fb574914c94d (diff) | |
parent | c77054e518d9163578cfcad09826d7b959f95ece (diff) |
Merge branch 'master'
Diffstat (limited to 'arch/sparc64/kernel/setup.c')
-rw-r--r-- | arch/sparc64/kernel/setup.c | 50 |
1 files changed, 8 insertions, 42 deletions
diff --git a/arch/sparc64/kernel/setup.c b/arch/sparc64/kernel/setup.c index ddbed3341a23..4c9c8f241748 100644 --- a/arch/sparc64/kernel/setup.c +++ b/arch/sparc64/kernel/setup.c | |||
@@ -464,8 +464,6 @@ static void __init boot_flags_init(char *commands) | |||
464 | } | 464 | } |
465 | } | 465 | } |
466 | 466 | ||
467 | extern int prom_probe_memory(void); | ||
468 | extern unsigned long start, end; | ||
469 | extern void panic_setup(char *, int *); | 467 | extern void panic_setup(char *, int *); |
470 | 468 | ||
471 | extern unsigned short root_flags; | 469 | extern unsigned short root_flags; |
@@ -492,13 +490,8 @@ void register_prom_callbacks(void) | |||
492 | "' linux-.soft2 to .soft2"); | 490 | "' linux-.soft2 to .soft2"); |
493 | } | 491 | } |
494 | 492 | ||
495 | extern void paging_init(void); | ||
496 | |||
497 | void __init setup_arch(char **cmdline_p) | 493 | void __init setup_arch(char **cmdline_p) |
498 | { | 494 | { |
499 | unsigned long highest_paddr; | ||
500 | int i; | ||
501 | |||
502 | /* Initialize PROM console and command line. */ | 495 | /* Initialize PROM console and command line. */ |
503 | *cmdline_p = prom_getbootargs(); | 496 | *cmdline_p = prom_getbootargs(); |
504 | strcpy(saved_command_line, *cmdline_p); | 497 | strcpy(saved_command_line, *cmdline_p); |
@@ -517,40 +510,6 @@ void __init setup_arch(char **cmdline_p) | |||
517 | boot_flags_init(*cmdline_p); | 510 | boot_flags_init(*cmdline_p); |
518 | 511 | ||
519 | idprom_init(); | 512 | idprom_init(); |
520 | (void) prom_probe_memory(); | ||
521 | |||
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; | ||
526 | highest_paddr = 0UL; | ||
527 | for (i = 0; sp_banks[i].num_bytes != 0; i++) { | ||
528 | unsigned long top; | ||
529 | |||
530 | if (sp_banks[i].base_addr < phys_base) | ||
531 | phys_base = sp_banks[i].base_addr; | ||
532 | top = sp_banks[i].base_addr + | ||
533 | sp_banks[i].num_bytes; | ||
534 | if (highest_paddr < top) | ||
535 | highest_paddr = top; | ||
536 | } | ||
537 | pfn_base = phys_base >> PAGE_SHIFT; | ||
538 | |||
539 | switch (tlb_type) { | ||
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; | ||
554 | 513 | ||
555 | if (!root_flags) | 514 | if (!root_flags) |
556 | root_mountflags &= ~MS_RDONLY; | 515 | root_mountflags &= ~MS_RDONLY; |
@@ -625,6 +584,9 @@ extern void smp_info(struct seq_file *); | |||
625 | extern void smp_bogo(struct seq_file *); | 584 | extern void smp_bogo(struct seq_file *); |
626 | extern void mmu_info(struct seq_file *); | 585 | extern void mmu_info(struct seq_file *); |
627 | 586 | ||
587 | unsigned int dcache_parity_tl1_occurred; | ||
588 | unsigned int icache_parity_tl1_occurred; | ||
589 | |||
628 | static int show_cpuinfo(struct seq_file *m, void *__unused) | 590 | static int show_cpuinfo(struct seq_file *m, void *__unused) |
629 | { | 591 | { |
630 | seq_printf(m, | 592 | seq_printf(m, |
@@ -635,6 +597,8 @@ static int show_cpuinfo(struct seq_file *m, void *__unused) | |||
635 | "type\t\t: sun4u\n" | 597 | "type\t\t: sun4u\n" |
636 | "ncpus probed\t: %ld\n" | 598 | "ncpus probed\t: %ld\n" |
637 | "ncpus active\t: %ld\n" | 599 | "ncpus active\t: %ld\n" |
600 | "D$ parity tl1\t: %u\n" | ||
601 | "I$ parity tl1\t: %u\n" | ||
638 | #ifndef CONFIG_SMP | 602 | #ifndef CONFIG_SMP |
639 | "Cpu0Bogo\t: %lu.%02lu\n" | 603 | "Cpu0Bogo\t: %lu.%02lu\n" |
640 | "Cpu0ClkTck\t: %016lx\n" | 604 | "Cpu0ClkTck\t: %016lx\n" |
@@ -647,7 +611,9 @@ static int show_cpuinfo(struct seq_file *m, void *__unused) | |||
647 | (prom_prev >> 8) & 0xff, | 611 | (prom_prev >> 8) & 0xff, |
648 | prom_prev & 0xff, | 612 | prom_prev & 0xff, |
649 | (long)num_possible_cpus(), | 613 | (long)num_possible_cpus(), |
650 | (long)num_online_cpus() | 614 | (long)num_online_cpus(), |
615 | dcache_parity_tl1_occurred, | ||
616 | icache_parity_tl1_occurred | ||
651 | #ifndef CONFIG_SMP | 617 | #ifndef CONFIG_SMP |
652 | , cpu_data(0).udelay_val/(500000/HZ), | 618 | , cpu_data(0).udelay_val/(500000/HZ), |
653 | (cpu_data(0).udelay_val/(5000/HZ)) % 100, | 619 | (cpu_data(0).udelay_val/(5000/HZ)) % 100, |