summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorJeremy Kerr <jk@ozlabs.org>2015-02-27 17:11:06 +0800
committerStewart Smith <stewart@linux.vnet.ibm.com>2015-03-04 13:06:11 +1100
commite0b0971df339db785cbee4dd5ab0977aefece805 (patch)
tree53bf8230f317ae6dd3d5f95a6082750d3a79197c /include
parent9fca7b3ed4297c4de6ab38a39480b3873ad9eab8 (diff)
downloadblackbird-skiboot-e0b0971df339db785cbee4dd5ab0977aefece805.tar.gz
blackbird-skiboot-e0b0971df339db785cbee4dd5ab0977aefece805.zip
hw/prd: Add firmware PRD handling subsystem
This change adds Processor Recovery Diagnostics (PRD) code to skiboot firmware. This allows certain hardware RAS events to be handled by a userspace application. The core of the PRD code is a messaging interface to the kernel (and onwards to userspace). PRD events are logged with the prd.c code, and sent to the kernel as opal_msg messages. For responses to these messages, the kernel will reply using a new OPAL call, opal_prd_msg. Only one message is outstanding at a time; we collect events from hardware interrupts (hooked up by subsequent patches), and set per-processor event bits. Once an event has been consumed by the kernel, we clear that event from out pending set, and send any further pending events. Certain events (hardware attentions from the psi layer) need to be masked at interrupt time. For these, we have an acknowledgement facility to clear the mask once the userspace PRD application has cleared the source of the error. Includes multiple contributions from: Neelesh Gupta <neelegup@linux.vnet.ibm.com> Vaidyanathan Srinivasan <svaidy@linux.vnet.ibm.com> Signed-off-by: Jeremy Kerr <jk@ozlabs.org> Signed-off-by: Neelesh Gupta <neelegup@linux.vnet.ibm.com> Signed-off-by: Vaidyanathan Srinivasan <svaidy@linux.vnet.ibm.com> Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
Diffstat (limited to 'include')
-rw-r--r--include/skiboot.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/include/skiboot.h b/include/skiboot.h
index 146ff80a..9dfe0e76 100644
--- a/include/skiboot.h
+++ b/include/skiboot.h
@@ -218,6 +218,12 @@ extern void occ_send_dummy_interrupt(void);
/* OCC load support */
extern void occ_poke_load_queue(void);
+/* PRD */
+extern void prd_psi_interrupt(uint32_t proc);
+extern void prd_tmgt_interrupt(uint32_t proc);
+extern void prd_occ_reset(uint32_t proc);
+extern void prd_init(void);
+
/* Flatten device-tree */
extern void *create_dtb(const struct dt_node *root);
OpenPOWER on IntegriCloud