aboutsummaryrefslogtreecommitdiff
path: root/include/xive.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/xive.h')
-rw-r--r--include/xive.h29
1 files changed, 29 insertions, 0 deletions
diff --git a/include/xive.h b/include/xive.h
index 477d380..dc1b25d 100644
--- a/include/xive.h
+++ b/include/xive.h
@@ -63,4 +63,33 @@ void xive_source_mask(struct irq_source *is, uint32_t isn);
void xive_cpu_reset(void);
void xive_late_init(void);
+/*
+ * POWER10
+ */
+
+/*
+ * StoreEOI requires the OS to enforce load-after-store ordering and
+ * the PHB5 should be configured in Address-based trigger mode with PQ
+ * state bit offloading.
+ */
+#define XIVE2_STORE_EOI_ENABLED 1
+
+void xive2_init(void);
+int64_t xive2_reset(void);
+
+uint32_t xive2_alloc_hw_irqs(uint32_t chip_id, uint32_t count, uint32_t align);
+uint32_t xive2_alloc_ipi_irqs(uint32_t chip_id, uint32_t count, uint32_t align);
+uint64_t xive2_get_notify_port(uint32_t chip_id, uint32_t ent);
+__attrconst uint32_t xive2_get_notify_base(uint32_t girq);
+void xive2_register_hw_source(uint32_t base, uint32_t count, uint32_t shift,
+ void *mmio, uint32_t flags, void *data,
+ const struct irq_source_ops *ops);
+void xive2_register_ipi_source(uint32_t base, uint32_t count, void *data,
+ const struct irq_source_ops *ops);
+void xive2_cpu_callin(struct cpu_thread *cpu);
+void *xive2_get_trigger_port(uint32_t girq);
+
+void xive2_cpu_reset(void);
+void xive2_late_init(void);
+
#endif /* XIVE_H */