aboutsummaryrefslogtreecommitdiff
path: root/doc/device-tree
diff options
context:
space:
mode:
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>2016-08-09 16:38:14 +1000
committerStewart Smith <stewart@linux.vnet.ibm.com>2016-08-11 19:54:22 +1000
commitd0a3ec6aea455d8b564f62679ff6f69f91ea7896 (patch)
treee1420cf1654e1dfd60ebc5dd8712a6f6f740933d /doc/device-tree
parentc8fc681aa2ed5dc5584518d213eeecb2eef7b22c (diff)
downloadskiboot-d0a3ec6aea455d8b564f62679ff6f69f91ea7896.zip
skiboot-d0a3ec6aea455d8b564f62679ff6f69f91ea7896.tar.gz
skiboot-d0a3ec6aea455d8b564f62679ff6f69f91ea7896.tar.bz2
psi: On p9, create an interrupt-map for routing PSI interrupts
This will provide the global IRQ numbers for all 16 PSI inputs (though we don't really care about 0 here). We can then express them in the device-tree as relative to the PSI bridge. Among others, that allows us to express the external interrupt and the LPC interrupt using a fixed numbering scheme. The example device-tree is updated to route them all to the LPC0 input which corresponds to what the LPC code does at the moment. Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
Diffstat (limited to 'doc/device-tree')
-rw-r--r--doc/device-tree/examples/power9-phb4.dts28
1 files changed, 27 insertions, 1 deletions
diff --git a/doc/device-tree/examples/power9-phb4.dts b/doc/device-tree/examples/power9-phb4.dts
index 8da1cbc..a845a86 100644
--- a/doc/device-tree/examples/power9-phb4.dts
+++ b/doc/device-tree/examples/power9-phb4.dts
@@ -153,9 +153,18 @@
compatible = "ibm,power9-xive-x";
};
- psihb@5012900 {
+ PSI_X0 : psihb@5012900 {
reg = <0x5012900 0x100>;
compatible = "ibm,power9-psihb-x", "ibm,psihb-x";
+
+ /* This acts as an interrupt remapper for the 16
+ * interrupts coming into the PSI HB.
+ * OPAL will generate the corresponding interrupt-map
+ * property with the final XIVE numbers
+ */
+ #interrupt-cells = <1>;
+ #address-cells = <0>;
+ #interrupt-map-mask = < 0xff >;
};
};
@@ -185,6 +194,23 @@
ranges = < 3 0 0xf0000000 0x10000000 /* FW space */
0 0 0xe0000000 0x10000000 /* MEM space */
1 0 0xd0010000 0x00010000 /* IO space */ >;
+
+ /* We currently only support level interrupts on the LPC,
+ * we use 1 cell.
+ */
+ #interrupt-cells = <1>;
+
+ /* Route the LPC interrupts to one of the 4 supported
+ * PSI interrupt inputs [7...10].
+ */
+ interrupt-map = < 0 0 4 &PSI_X0 7
+ 0 0 10 &PSI_X0 7>;
+ interrupt-map-mask = < 0 0 0xff >;
+
+ /*
+ * Devices on the LPC bus go here
+ */
+
serial@i3f8 {
compatible = "ns16550";
reg = < 1 0x3f8 0x10 >;