summaryrefslogtreecommitdiffstats
path: root/src/kernel/forceattn_p9.S
diff options
context:
space:
mode:
authorNick Bofferding <bofferdn@us.ibm.com>2018-06-26 01:49:20 -0500
committerDaniel M. Crowell <dcrowell@us.ibm.com>2018-06-27 16:32:10 -0400
commitfd642c6bf549be5dc8c8e4877ab64a920ba54be9 (patch)
treefd86a308e6aff9dc5d1242637ffb05550250f487 /src/kernel/forceattn_p9.S
parenta729adbb19660b65ce613392d25309c3b2eb840f (diff)
downloadtalos-hostboot-fd642c6bf549be5dc8c8e4877ab64a920ba54be9.tar.gz
talos-hostboot-fd642c6bf549be5dc8c8e4877ab64a920ba54be9.zip
Invoke P9 TIs correctly
Prior to this change, the assembly code to invoke p9 attentions did not flush the instruction cache, which led to the alternative behavior of the attn instruction, namely invoking the hypervisor emulation assistance interrupt / illegal instruction handler. This caused chaos in the shutdown path, especially after the CPUs come online in istep 16. Change-Id: I7c5bf4342a41136e82326da285eed059d4fb17a3 CQ: SW419736 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/61351 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/kernel/forceattn_p9.S')
-rw-r--r--src/kernel/forceattn_p9.S48
1 files changed, 48 insertions, 0 deletions
diff --git a/src/kernel/forceattn_p9.S b/src/kernel/forceattn_p9.S
new file mode 100644
index 000000000..093908ed8
--- /dev/null
+++ b/src/kernel/forceattn_p9.S
@@ -0,0 +1,48 @@
+# IBM_PROLOG_BEGIN_TAG
+# This is an automatically generated prolog.
+#
+# $Source: src/kernel/forceattn_p9.S $
+#
+# OpenPOWER HostBoot Project
+#
+# Contributors Listed Below - COPYRIGHT 2012,2018
+# [+] International Business Machines Corp.
+#
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# permissions and limitations under the License.
+#
+# IBM_PROLOG_END_TAG
+.include "kernel/ppcconsts.S"
+
+
+.global p9_force_attn
+p9_force_attn:
+# Update HID0 to enable attentions
+ li r0, 3
+ mfspr r9, HID0
+ rldimi r9,r0,60,2 /* Turn on bits 2 (flush icache) + 3 (enable attn) */
+ sync
+ mtspr HID0,r9 /* Enable attentions */
+ mfspr r9, HID0
+ mfspr r9, HID0
+ mfspr r9, HID0
+ mfspr r9, HID0
+ mfspr r9, HID0
+ mfspr r9, HID0
+ isync
+# Invoke attention instruction
+ sync
+ isync
+ rlwimi 31,31,0,4,22 /* MAGIC_SIMICS_SHUTDOWN */
+ attn
+ b 0
OpenPOWER on IntegriCloud