aboutsummaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorAndrew Donnellan <andrew.donnellan@au1.ibm.com>2018-03-01 18:57:19 +1100
committerStewart Smith <stewart@linux.vnet.ibm.com>2018-03-01 20:17:54 -0600
commitbd6194f5a8647e2e8671a76f7af65244fa0d30e7 (patch)
tree771be156e0d8700654860d920c2a5ad2e79eebd5 /doc
parentf2e637b802e31867591c48b28e02b40b1fb9e642 (diff)
downloadskiboot-bd6194f5a8647e2e8671a76f7af65244fa0d30e7.zip
skiboot-bd6194f5a8647e2e8671a76f7af65244fa0d30e7.tar.gz
skiboot-bd6194f5a8647e2e8671a76f7af65244fa0d30e7.tar.bz2
doc/device-tree: Add OpenCAPI device tree bindings
Suggested-by: Stewart Smith <stewart@linux.vnet.ibm.com> Signed-off-by: Andrew Donnellan <andrew.donnellan@au1.ibm.com> Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
Diffstat (limited to 'doc')
-rw-r--r--doc/device-tree/opencapi.rst69
1 files changed, 69 insertions, 0 deletions
diff --git a/doc/device-tree/opencapi.rst b/doc/device-tree/opencapi.rst
new file mode 100644
index 0000000..b24b29c
--- /dev/null
+++ b/doc/device-tree/opencapi.rst
@@ -0,0 +1,69 @@
+.. _device-tree/opencapi:
+
+=============================
+OpenCAPI Device Tree Bindings
+=============================
+
+NPU bindings
+------------
+
+The NPU nodes are similar to those in :doc:`nvlink`.
+
+We distinguish between OpenCAPI and NVLink links using the
+`ibm.npu-link-opencapi` compatible string. NPUs with a mixture of
+OpenCAPI and NVLink links are currently unsupported.
+
+.. code-block:: dts
+
+ xscom@603fc00000000 {
+ npu@5011000 {
+ compatible = "ibm,power9-npu";
+ phandle = <0xe6>;
+ ibm,phb-index = <0x7>;
+ reg = <0x5011000 0x2c>;
+ ibm,npu-index = <0x0>;
+ ibm,npu-links = <0x2>; /* Number of links wired up to this npu. */
+
+ link@2 {
+ compatible = "ibm,npu-link-opencapi";
+ ibm,npu-group-id = <0x1>;
+ ibm,npu-lane-mask = <0xf1e000>; /* Mask specifying which IBM PHY lanes
+ * are used for this link. 24-bit,
+ * lane 0 is most significant bit */
+ ibm,npu-phy = <0x80000000 0x9010c3f>; /* SCOM address of the IBM PHY
+ * controlling this link. */
+ ibm,npu-link-index = <0x2>; /* Hardware link index.
+ * Used to calculate various address offsets. */
+ phandle = <0xe7>;
+ };
+
+ link@3 {
+ compatible = "ibm,npu-link-opencapi";
+ ibm,npu-group-id = <0x2>;
+ ibm,npu-lane-mask = <0x78f>;
+ ibm,npu-phy = <0x80000000 0x9010c3f>;
+ ibm,npu-link-index = <0x3>;
+ phandle = <0xe8>;
+ };
+ };
+ };
+
+PCI device bindings
+-------------------
+
+The PCI devices mostly look like regular PCI devices (see :doc:`pci`),
+but have a few additional fields to allow the devices to be associated
+with the relevant NPU. These fields are presently not consumed by
+anything but may be used in future.
+
+.. code-block:: dts
+
+ pciex@600e800000000 {
+ /* OpenCAPI specific properties */
+ compatible = "ibm,power9-npu-opencapi-pciex", "ibm,ioda2-npu2-opencapi-phb";
+ ibm,npcq = <0xe6>; /* phandle to the NPU node */
+ ibm,npu-index = <0x0>;
+ ibm,links = <0x1>;
+ /* Generic PCI fields here */
+ }
+