diff options
author | Andrew Donnellan <andrew.donnellan@au1.ibm.com> | 2018-03-01 18:57:19 +1100 |
---|---|---|
committer | Stewart Smith <stewart@linux.vnet.ibm.com> | 2018-03-01 20:17:54 -0600 |
commit | bd6194f5a8647e2e8671a76f7af65244fa0d30e7 (patch) | |
tree | 771be156e0d8700654860d920c2a5ad2e79eebd5 | |
parent | f2e637b802e31867591c48b28e02b40b1fb9e642 (diff) | |
download | skiboot-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>
-rw-r--r-- | doc/device-tree/opencapi.rst | 69 |
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 */ + } + |