diff options
author | Nick Bofferding <bofferdn@us.ibm.com> | 2018-06-26 01:49:20 -0500 |
---|---|---|
committer | Daniel M. Crowell <dcrowell@us.ibm.com> | 2018-06-27 16:32:10 -0400 |
commit | fd642c6bf549be5dc8c8e4877ab64a920ba54be9 (patch) | |
tree | fd86a308e6aff9dc5d1242637ffb05550250f487 /src/kernel/forceattn_p9.S | |
parent | a729adbb19660b65ce613392d25309c3b2eb840f (diff) | |
download | talos-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.S | 48 |
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 |