aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMahesh Salgaonkar <mahesh@linux.vnet.ibm.com>2015-10-28 17:35:47 +0530
committerStewart Smith <stewart@linux.vnet.ibm.com>2015-10-30 11:02:44 +1100
commit888abee28e260d38c6de8b38d329ebac6a81fd8f (patch)
treeb7b0af707b093b915791088f5e156794f0ff161b
parentbe37433aac780e06b159c6b16712db4f64ed7abc (diff)
downloadskiboot-888abee28e260d38c6de8b38d329ebac6a81fd8f.zip
skiboot-888abee28e260d38c6de8b38d329ebac6a81fd8f.tar.gz
skiboot-888abee28e260d38c6de8b38d329ebac6a81fd8f.tar.bz2
opal/hmi: Signal PRD about NX unit checkstop.
On NX checkstop OPAL need to signal PRD about it by setting NXDMAENGFIR[38] bit. Otherwise PRD will not be able to do NX unit checkstop error analysis. NXDMAENGFIR[38] is a spare bit and used to report a software initiated attention for NX checkstop. The behavior of this bit and all FIR bits are documented in RAS spreadsheet. Signed-off-by: Mahesh Salgaonkar <mahesh@linux.vnet.ibm.com> Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
-rw-r--r--core/hmi.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/core/hmi.c b/core/hmi.c
index 1bae71a..71a6c7e 100644
--- a/core/hmi.c
+++ b/core/hmi.c
@@ -406,6 +406,17 @@ static void find_nx_checkstop_reason(int flat_chip_id,
hmi_evt->u.xstop_error.xstop_reason
|= nx_pbi_xstop_bits[i].reason;
+ /*
+ * Set NXDMAENGFIR[38] to signal PRD that service action is required.
+ * Without this inject, PRD will not be able to do NX unit checkstop
+ * error analysis. NXDMAENGFIR[38] is a spare bit and used to report
+ * a software initiated attention.
+ *
+ * The behavior of this bit and all FIR bits are documented in
+ * RAS spreadsheet.
+ */
+ xscom_write(flat_chip_id, NX_DMA_ENGINE_FIR, PPC_BIT(38));
+
/* Send an HMI event. */
queue_hmi_event(hmi_evt, 0);
*event_generated = 1;