summaryrefslogtreecommitdiffstats
path: root/core/opal.c
diff options
context:
space:
mode:
authorSam Mendoza-Jonas <sam@mendozajonas.com>2016-06-28 13:07:07 +1000
committerStewart Smith <stewart@linux.vnet.ibm.com>2016-09-22 17:29:22 +1000
commitaabd99c221b42a82f742f701674c7bf95e114437 (patch)
treee36f99d2322fa8eeeb45a657216d2a75550e2d8c /core/opal.c
parent011c0acbce0e15abb55482a67a56d4188cef1147 (diff)
downloadtalos-skiboot-aabd99c221b42a82f742f701674c7bf95e114437.tar.gz
talos-skiboot-aabd99c221b42a82f742f701674c7bf95e114437.zip
core: Create event node to enable irqchip
This allows devices such as IPMI and serial consoles to use dynamic irq numbers and have separate irq numbers in Linux. Signed-off-by: Samuel Mendoza-Jonas <sam@mendozajonas.com> Signed-off-by: Alistair Popple <alistair@popple.id.au> Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
Diffstat (limited to 'core/opal.c')
-rw-r--r--core/opal.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/core/opal.c b/core/opal.c
index 4e720dd4..61a2adb1 100644
--- a/core/opal.c
+++ b/core/opal.c
@@ -138,6 +138,7 @@ void add_opal_node(void)
{
uint64_t base, entry, size;
extern uint32_t opal_entry;
+ struct dt_node *opal_event;
/* XXX TODO: Reorg this. We should create the base OPAL
* node early on, and have the various sub modules populate
@@ -172,6 +173,12 @@ void add_opal_node(void)
dt_add_property_u64(opal_node, "opal-entry-address", entry);
dt_add_property_u64(opal_node, "opal-runtime-size", size);
+ /* Add irqchip interrupt controller */
+ opal_event = dt_new(opal_node, "event");
+ dt_add_property_strings(opal_event, "compatible", "ibm,opal-event");
+ dt_add_property_cells(opal_event, "#interrupt-cells", 0x1);
+ dt_add_property(opal_event, "interrupt-controller", 0, 0);
+
add_opal_firmware_node();
add_associativity_ref_point();
memcons_add_properties();
OpenPOWER on IntegriCloud