diff options
author | Sam Mendoza-Jonas <sam@mendozajonas.com> | 2016-06-28 13:07:07 +1000 |
---|---|---|
committer | Stewart Smith <stewart@linux.vnet.ibm.com> | 2016-09-22 17:29:22 +1000 |
commit | aabd99c221b42a82f742f701674c7bf95e114437 (patch) | |
tree | e36f99d2322fa8eeeb45a657216d2a75550e2d8c /core/opal.c | |
parent | 011c0acbce0e15abb55482a67a56d4188cef1147 (diff) | |
download | talos-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.c | 7 |
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(); |