| .. _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-type` property. 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>; |
| 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"; |
| ibm,npu-link-type = "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"; |
| ibm,npu-link-type = "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 */ |
| } |
| |