aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/kernel/head_64.S
diff options
context:
space:
mode:
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>2012-02-27 21:44:58 -0500
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>2012-03-08 18:54:59 -0500
commit4f8cf36f48b4648a5231e9fc8e49faea377246f4 (patch)
treed69d81d09fc2b0d30553ea7ff60dd4871dd6a091 /arch/powerpc/kernel/head_64.S
parentb0787660260604ba63621881851de0032279819b (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.S44
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
622BEGIN_FW_FTR_SECTION
623 ori r4,r4,MSR_EE
624 li r8,1
625 stb r8,PACAHARDIRQEN(r13)
626END_FW_FTR_SECTION_IFSET(FW_FEATURE_ISERIES)
627#endif
628BEGIN_FW_FTR_SECTION
629 stb r7,PACAHARDIRQEN(r13)
630END_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 */
7775: 7565: 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
781BEGIN_FW_FTR_SECTION
782 mfmsr r5
783 ori r5,r5,MSR_EE /* Hard Enabled on iSeries*/
784 mtmsrd r5
785 li r5,1
786END_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