|
@@ -1180,6 +1180,61 @@ END_FTR_SECTION_IFSET(CPU_FTR_VSX)
|
|
|
.globl __end_handlers
|
|
|
__end_handlers:
|
|
|
|
|
|
+ /* Equivalents to the above handlers for relocation-on interrupt vectors */
|
|
|
+ STD_RELON_EXCEPTION_HV(., 0xe00, h_data_storage)
|
|
|
+ KVM_HANDLER(PACA_EXGEN, EXC_HV, 0xe00)
|
|
|
+ STD_RELON_EXCEPTION_HV(., 0xe20, h_instr_storage)
|
|
|
+ KVM_HANDLER(PACA_EXGEN, EXC_HV, 0xe20)
|
|
|
+ STD_RELON_EXCEPTION_HV(., 0xe40, emulation_assist)
|
|
|
+ KVM_HANDLER(PACA_EXGEN, EXC_HV, 0xe40)
|
|
|
+ STD_RELON_EXCEPTION_HV(., 0xe60, hmi_exception)
|
|
|
+ KVM_HANDLER(PACA_EXGEN, EXC_HV, 0xe60)
|
|
|
+ MASKABLE_RELON_EXCEPTION_HV(., 0xe80, h_doorbell)
|
|
|
+ KVM_HANDLER(PACA_EXGEN, EXC_HV, 0xe80)
|
|
|
+
|
|
|
+ STD_RELON_EXCEPTION_PSERIES(., 0xf00, performance_monitor)
|
|
|
+ STD_RELON_EXCEPTION_PSERIES(., 0xf20, altivec_unavailable)
|
|
|
+ STD_RELON_EXCEPTION_PSERIES(., 0xf40, vsx_unavailable)
|
|
|
+
|
|
|
+#if defined(CONFIG_PPC_PSERIES) || defined(CONFIG_PPC_POWERNV)
|
|
|
+/*
|
|
|
+ * Data area reserved for FWNMI option.
|
|
|
+ * This address (0x7000) is fixed by the RPA.
|
|
|
+ */
|
|
|
+ .= 0x7000
|
|
|
+ .globl fwnmi_data_area
|
|
|
+fwnmi_data_area:
|
|
|
+
|
|
|
+ /* pseries and powernv need to keep the whole page from
|
|
|
+ * 0x7000 to 0x8000 free for use by the firmware
|
|
|
+ */
|
|
|
+ . = 0x8000
|
|
|
+#endif /* defined(CONFIG_PPC_PSERIES) || defined(CONFIG_PPC_POWERNV) */
|
|
|
+
|
|
|
+/* Space for CPU0's segment table */
|
|
|
+ .balign 4096
|
|
|
+ .globl initial_stab
|
|
|
+initial_stab:
|
|
|
+ .space 4096
|
|
|
+
|
|
|
+#ifdef CONFIG_PPC_POWERNV
|
|
|
+_GLOBAL(opal_mc_secondary_handler)
|
|
|
+ HMT_MEDIUM_PPR_DISCARD
|
|
|
+ SET_SCRATCH0(r13)
|
|
|
+ GET_PACA(r13)
|
|
|
+ clrldi r3,r3,2
|
|
|
+ tovirt(r3,r3)
|
|
|
+ std r3,PACA_OPAL_MC_EVT(r13)
|
|
|
+ ld r13,OPAL_MC_SRR0(r3)
|
|
|
+ mtspr SPRN_SRR0,r13
|
|
|
+ ld r13,OPAL_MC_SRR1(r3)
|
|
|
+ mtspr SPRN_SRR1,r13
|
|
|
+ ld r3,OPAL_MC_GPR3(r3)
|
|
|
+ GET_SCRATCH0(r13)
|
|
|
+ b machine_check_pSeries
|
|
|
+#endif /* CONFIG_PPC_POWERNV */
|
|
|
+
|
|
|
+
|
|
|
/*
|
|
|
* Hash table stuff
|
|
|
*/
|
|
@@ -1373,58 +1428,3 @@ _GLOBAL(do_stab_bolted)
|
|
|
ld r13,PACA_EXSLB+EX_R13(r13)
|
|
|
rfid
|
|
|
b . /* prevent speculative execution */
|
|
|
-
|
|
|
-
|
|
|
- /* Equivalents to the above handlers for relocation-on interrupt vectors */
|
|
|
- STD_RELON_EXCEPTION_HV(., 0xe00, h_data_storage)
|
|
|
- KVM_HANDLER(PACA_EXGEN, EXC_HV, 0xe00)
|
|
|
- STD_RELON_EXCEPTION_HV(., 0xe20, h_instr_storage)
|
|
|
- KVM_HANDLER(PACA_EXGEN, EXC_HV, 0xe20)
|
|
|
- STD_RELON_EXCEPTION_HV(., 0xe40, emulation_assist)
|
|
|
- KVM_HANDLER(PACA_EXGEN, EXC_HV, 0xe40)
|
|
|
- STD_RELON_EXCEPTION_HV(., 0xe60, hmi_exception)
|
|
|
- KVM_HANDLER(PACA_EXGEN, EXC_HV, 0xe60)
|
|
|
- MASKABLE_RELON_EXCEPTION_HV(., 0xe80, h_doorbell)
|
|
|
- KVM_HANDLER(PACA_EXGEN, EXC_HV, 0xe80)
|
|
|
-
|
|
|
- STD_RELON_EXCEPTION_PSERIES(., 0xf00, performance_monitor)
|
|
|
- STD_RELON_EXCEPTION_PSERIES(., 0xf20, altivec_unavailable)
|
|
|
- STD_RELON_EXCEPTION_PSERIES(., 0xf40, vsx_unavailable)
|
|
|
-
|
|
|
-#if defined(CONFIG_PPC_PSERIES) || defined(CONFIG_PPC_POWERNV)
|
|
|
-/*
|
|
|
- * Data area reserved for FWNMI option.
|
|
|
- * This address (0x7000) is fixed by the RPA.
|
|
|
- */
|
|
|
- .= 0x7000
|
|
|
- .globl fwnmi_data_area
|
|
|
-fwnmi_data_area:
|
|
|
-
|
|
|
- /* pseries and powernv need to keep the whole page from
|
|
|
- * 0x7000 to 0x8000 free for use by the firmware
|
|
|
- */
|
|
|
- . = 0x8000
|
|
|
-#endif /* defined(CONFIG_PPC_PSERIES) || defined(CONFIG_PPC_POWERNV) */
|
|
|
-
|
|
|
-/* Space for CPU0's segment table */
|
|
|
- .balign 4096
|
|
|
- .globl initial_stab
|
|
|
-initial_stab:
|
|
|
- .space 4096
|
|
|
-
|
|
|
-#ifdef CONFIG_PPC_POWERNV
|
|
|
-_GLOBAL(opal_mc_secondary_handler)
|
|
|
- HMT_MEDIUM_PPR_DISCARD
|
|
|
- SET_SCRATCH0(r13)
|
|
|
- GET_PACA(r13)
|
|
|
- clrldi r3,r3,2
|
|
|
- tovirt(r3,r3)
|
|
|
- std r3,PACA_OPAL_MC_EVT(r13)
|
|
|
- ld r13,OPAL_MC_SRR0(r3)
|
|
|
- mtspr SPRN_SRR0,r13
|
|
|
- ld r13,OPAL_MC_SRR1(r3)
|
|
|
- mtspr SPRN_SRR1,r13
|
|
|
- ld r3,OPAL_MC_GPR3(r3)
|
|
|
- GET_SCRATCH0(r13)
|
|
|
- b machine_check_pSeries
|
|
|
-#endif /* CONFIG_PPC_POWERNV */
|