diff options
author | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2012-02-27 21:44:58 -0500 |
---|---|---|
committer | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2012-03-08 18:54:59 -0500 |
commit | 4f8cf36f48b4648a5231e9fc8e49faea377246f4 (patch) | |
tree | d69d81d09fc2b0d30553ea7ff60dd4871dd6a091 /arch/powerpc/kernel/head_64.S | |
parent | b0787660260604ba63621881851de0032279819b (diff) |
powerpc: Remove legacy iSeries bits from assembly files
This removes the various bits of assembly in the kernel entry,
exception handling and SLB management code that were specific
to running under the legacy iSeries hypervisor which is no
longer supported.
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Diffstat (limited to 'arch/powerpc/kernel/head_64.S')
-rw-r--r-- | arch/powerpc/kernel/head_64.S | 44 |
1 files changed, 7 insertions, 37 deletions
diff --git a/arch/powerpc/kernel/head_64.S b/arch/powerpc/kernel/head_64.S index 06c7251c1bf7..40759fbfb171 100644 --- a/arch/powerpc/kernel/head_64.S +++ b/arch/powerpc/kernel/head_64.S | |||
@@ -32,7 +32,6 @@ | |||
32 | #include <asm/cputable.h> | 32 | #include <asm/cputable.h> |
33 | #include <asm/setup.h> | 33 | #include <asm/setup.h> |
34 | #include <asm/hvcall.h> | 34 | #include <asm/hvcall.h> |
35 | #include <asm/iseries/lpar_map.h> | ||
36 | #include <asm/thread_info.h> | 35 | #include <asm/thread_info.h> |
37 | #include <asm/firmware.h> | 36 | #include <asm/firmware.h> |
38 | #include <asm/page_64.h> | 37 | #include <asm/page_64.h> |
@@ -57,10 +56,6 @@ | |||
57 | * entry in r9 for debugging purposes | 56 | * entry in r9 for debugging purposes |
58 | * 2. Secondary processors enter at 0x60 with PIR in gpr3 | 57 | * 2. Secondary processors enter at 0x60 with PIR in gpr3 |
59 | * | 58 | * |
60 | * For iSeries: | ||
61 | * 1. The MMU is on (as it always is for iSeries) | ||
62 | * 2. The kernel is entered at system_reset_iSeries | ||
63 | * | ||
64 | * For Book3E processors: | 59 | * For Book3E processors: |
65 | * 1. The MMU is on running in AS0 in a state defined in ePAPR | 60 | * 1. The MMU is on running in AS0 in a state defined in ePAPR |
66 | * 2. The kernel is entered at __start | 61 | * 2. The kernel is entered at __start |
@@ -93,15 +88,6 @@ __secondary_hold_spinloop: | |||
93 | __secondary_hold_acknowledge: | 88 | __secondary_hold_acknowledge: |
94 | .llong 0x0 | 89 | .llong 0x0 |
95 | 90 | ||
96 | #ifdef CONFIG_PPC_ISERIES | ||
97 | /* | ||
98 | * At offset 0x20, there is a pointer to iSeries LPAR data. | ||
99 | * This is required by the hypervisor | ||
100 | */ | ||
101 | . = 0x20 | ||
102 | .llong hvReleaseData-KERNELBASE | ||
103 | #endif /* CONFIG_PPC_ISERIES */ | ||
104 | |||
105 | #ifdef CONFIG_RELOCATABLE | 91 | #ifdef CONFIG_RELOCATABLE |
106 | /* This flag is set to 1 by a loader if the kernel should run | 92 | /* This flag is set to 1 by a loader if the kernel should run |
107 | * at the loaded address instead of the linked address. This | 93 | * at the loaded address instead of the linked address. This |
@@ -582,7 +568,7 @@ _GLOBAL(pmac_secondary_start) | |||
582 | * 1. Processor number | 568 | * 1. Processor number |
583 | * 2. Segment table pointer (virtual address) | 569 | * 2. Segment table pointer (virtual address) |
584 | * On entry the following are set: | 570 | * On entry the following are set: |
585 | * r1 = stack pointer. vaddr for iSeries, raddr (temp stack) for pSeries | 571 | * r1 = stack pointer (real addr of temp stack) |
586 | * r24 = cpu# (in Linux terms) | 572 | * r24 = cpu# (in Linux terms) |
587 | * r13 = paca virtual address | 573 | * r13 = paca virtual address |
588 | * SPRG_PACA = paca virtual address | 574 | * SPRG_PACA = paca virtual address |
@@ -595,7 +581,7 @@ __secondary_start: | |||
595 | /* Set thread priority to MEDIUM */ | 581 | /* Set thread priority to MEDIUM */ |
596 | HMT_MEDIUM | 582 | HMT_MEDIUM |
597 | 583 | ||
598 | /* Initialize the kernel stack. Just a repeat for iSeries. */ | 584 | /* Initialize the kernel stack */ |
599 | LOAD_REG_ADDR(r3, current_set) | 585 | LOAD_REG_ADDR(r3, current_set) |
600 | sldi r28,r24,3 /* get current_set[cpu#] */ | 586 | sldi r28,r24,3 /* get current_set[cpu#] */ |
601 | ldx r14,r3,r28 | 587 | ldx r14,r3,r28 |
@@ -615,20 +601,13 @@ __secondary_start: | |||
615 | li r7,0 | 601 | li r7,0 |
616 | mtlr r7 | 602 | mtlr r7 |
617 | 603 | ||
604 | /* Mark interrupts both hard and soft disabled */ | ||
605 | stb r7,PACAHARDIRQEN(r13) | ||
606 | stb r7,PACASOFTIRQEN(r13) | ||
607 | |||
618 | /* enable MMU and jump to start_secondary */ | 608 | /* enable MMU and jump to start_secondary */ |
619 | LOAD_REG_ADDR(r3, .start_secondary_prolog) | 609 | LOAD_REG_ADDR(r3, .start_secondary_prolog) |
620 | LOAD_REG_IMMEDIATE(r4, MSR_KERNEL) | 610 | LOAD_REG_IMMEDIATE(r4, MSR_KERNEL) |
621 | #ifdef CONFIG_PPC_ISERIES | ||
622 | BEGIN_FW_FTR_SECTION | ||
623 | ori r4,r4,MSR_EE | ||
624 | li r8,1 | ||
625 | stb r8,PACAHARDIRQEN(r13) | ||
626 | END_FW_FTR_SECTION_IFSET(FW_FEATURE_ISERIES) | ||
627 | #endif | ||
628 | BEGIN_FW_FTR_SECTION | ||
629 | stb r7,PACAHARDIRQEN(r13) | ||
630 | END_FW_FTR_SECTION_IFCLR(FW_FEATURE_ISERIES) | ||
631 | stb r7,PACASOFTIRQEN(r13) | ||
632 | 611 | ||
633 | mtspr SPRN_SRR0,r3 | 612 | mtspr SPRN_SRR0,r3 |
634 | mtspr SPRN_SRR1,r4 | 613 | mtspr SPRN_SRR1,r4 |
@@ -774,17 +753,8 @@ _INIT_GLOBAL(start_here_common) | |||
774 | bl .setup_system | 753 | bl .setup_system |
775 | 754 | ||
776 | /* Load up the kernel context */ | 755 | /* Load up the kernel context */ |
777 | 5: | 756 | 5: li r5,0 |
778 | li r5,0 | ||
779 | stb r5,PACASOFTIRQEN(r13) /* Soft Disabled */ | 757 | stb r5,PACASOFTIRQEN(r13) /* Soft Disabled */ |
780 | #ifdef CONFIG_PPC_ISERIES | ||
781 | BEGIN_FW_FTR_SECTION | ||
782 | mfmsr r5 | ||
783 | ori r5,r5,MSR_EE /* Hard Enabled on iSeries*/ | ||
784 | mtmsrd r5 | ||
785 | li r5,1 | ||
786 | END_FW_FTR_SECTION_IFSET(FW_FEATURE_ISERIES) | ||
787 | #endif | ||
788 | stb r5,PACAHARDIRQEN(r13) /* Hard Disabled on others */ | 758 | stb r5,PACAHARDIRQEN(r13) /* Hard Disabled on others */ |
789 | 759 | ||
790 | bl .start_kernel | 760 | bl .start_kernel |