aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorChristophe Lombard <clombard@linux.vnet.ibm.com>2021-10-14 17:56:57 +0200
committerVasant Hegde <hegdevasant@linux.vnet.ibm.com>2021-10-19 12:26:01 +0530
commit6ad2feaeb1a44365367ed94989b18f2ed7012d98 (patch)
treea8e6f2a60723f6f7b918a9439b5ffd332e946d14 /include
parenta7eae3eef52a3081f0f2188a10cd4dc1d7b8f1c1 (diff)
downloadskiboot-6ad2feaeb1a44365367ed94989b18f2ed7012d98.zip
skiboot-6ad2feaeb1a44365367ed94989b18f2ed7012d98.tar.gz
skiboot-6ad2feaeb1a44365367ed94989b18f2ed7012d98.tar.bz2
pau: enable interrupt on error
The default action for the errors (unexpected errors on the opencapi link) reported in the PAU FIR2 registe is mostly set to system checkstop. This patch changes the default action of those errors so that the PAU will raise an interrupt instead. Interrupt information are logged so that the error can be debugged and linux can catch the event. Signed-off-by: Christophe Lombard <clombard@linux.vnet.ibm.com> Reviewed-by: Frederic Barrat <fbarrat@linux.ibm.com> Signed-off-by: Vasant Hegde <hegdevasant@linux.vnet.ibm.com>
Diffstat (limited to 'include')
-rw-r--r--include/pau-regs.h12
-rw-r--r--include/pau.h2
2 files changed, 14 insertions, 0 deletions
diff --git a/include/pau-regs.h b/include/pau-regs.h
index e4ff7cc..d98f435 100644
--- a/include/pau-regs.h
+++ b/include/pau-regs.h
@@ -139,6 +139,18 @@
#define PAU_MISC_HOLD (PAU_BLOCK_PAU_MISC + 0x020)
#define PAU_MISC_HOLD_NDL_STALL PPC_BITMASK(0, 3)
#define PAU_MISC_CONFIG (PAU_BLOCK_PAU_MISC + 0x030)
+#define PAU_MISC_CONFIG_IPI_PS PPC_BIT(11)
+#define PAU_MISC_CONFIG_IPI_PS_64K 1
+#define PAU_MISC_CONFIG_IPI_OS PPC_BIT(12)
+#define PAU_MISC_CONFIG_IPI_OS_AIX 0
#define PAU_MISC_CONFIG_OC_MODE PPC_BIT(16)
+#define PAU_MISC_FREEZE_1_CONFIG (PAU_BLOCK_PAU_MISC + 0x048)
+#define PAU_MISC_FENCE_1_CONFIG (PAU_BLOCK_PAU_MISC + 0x058)
+#define PAU_MISC_INT_1_CONFIG (PAU_BLOCK_PAU_MISC + 0x068)
+#define PAU_MISC_INT_BAR (PAU_BLOCK_PAU_MISC + 0x098)
+#define PAU_MISC_INT_BAR_ADDR PPC_BITMASK(0, 39)
+#define PAU_MISC_INT_2_CONFIG (PAU_BLOCK_PAU_MISC + 0x408)
+#define PAU_MISC_INT_2_CONFIG_XFAULT_2_5(n) PPC_BIT(0 + (n))
+#define PAU_MISC_INT_2_CONFIG_XFAULT_0_1(n) PPC_BIT(54 + (n))
#endif /* __PAU_REGS_H */
diff --git a/include/pau.h b/include/pau.h
index 0246a63..b6fabe7 100644
--- a/include/pau.h
+++ b/include/pau.h
@@ -33,6 +33,7 @@ struct pau_dev {
uint32_t index;
struct dt_node *dn;
struct phb phb;
+ uint32_t status;
struct pau_bar ntl_bar;
struct pau_bar genid_bar;
@@ -59,6 +60,7 @@ struct pau {
uint64_t regs[2];
bool mmio_access;
+ uint32_t irq_base;
struct lock lock;
uint32_t links;