| .. _device-tree/nvlink: |
| |
| =========================== |
| Nvlink Device Tree Bindings |
| =========================== |
| |
| See :ref:`nvlink` for general Nvlink information. |
| |
| NPU bindings: |
| |
| .. code-block:: dts |
| |
| xscom@3fc0000000000 { |
| npu@8013c00 { |
| reg = <0x8013c00 0x2c>; |
| compatible = "ibm,power8-npu"; |
| ibm,npu-index = <0x0>; |
| ibm,npu-links = <0x4>; /* Number of links wired up to this npu. */ |
| |
| phandle = <0x100002bc>; |
| linux,phandle = <0x100002bc>; |
| |
| link@0 { |
| ibm,npu-pbcq = <0x1000000b>; /* phandle to the pbcq which connects to the GPU. */ |
| ibm,npu-phy = <0x80000000 0x8010c3f>; /* SCOM address of the IBM PHY controlling this link. */ |
| compatible = "ibm,npu-link"; |
| ibm,npu-lane-mask = <0xff>; /* Mask specifying which IBM PHY lanes are used for this link. */ |
| |
| phandle = <0x100002bd>; |
| ibm,npu-link-index = <0x0>; /* Hardware link index. Naples systems |
| * contain links at index 0,1,4 & 5. |
| * Used to calculate various address offsets. */ |
| |
| linux,phandle = <0x100002bd>; |
| }; |
| |
| link@1 { |
| ibm,npu-pbcq = <0x1000000b>; |
| ibm,npu-phy = <0x80000000 0x8010c3f>; |
| compatible = "ibm,npu-link"; |
| ibm,npu-lane-mask = <0xff00>; |
| phandle = <0x100002be>; |
| ibm,npu-link-index = <0x1>; |
| linux,phandle = <0x100002be>; |
| }; |
| |
| link@4 { |
| ibm,npu-pbcq = <0x1000000a>; |
| ibm,npu-phy = <0x80000000 0x8010c7f>; |
| compatible = "ibm,npu-link"; |
| ibm,npu-lane-mask = <0xff00>; |
| phandle = <0x100002bf>; |
| ibm,npu-link-index = <0x4>; |
| linux,phandle = <0x100002bf>; |
| }; |
| |
| link@5 { |
| ibm,npu-pbcq = <0x1000000a>; |
| ibm,npu-phy = <0x80000000 0x8010c7f>; |
| compatible = "ibm,npu-link"; |
| ibm,npu-lane-mask = <0xff>; |
| phandle = <0x100002c0>; |
| ibm,npu-link-index = <0x5>; |
| linux,phandle = <0x100002c0>; |
| }; |
| }; |
| }; |
| |
| GPU memory bindings |
| ------------------- |
| |
| .. code-block:: dts |
| |
| memory@100000000 { |
| device_type = "memory" |
| compatible = "ibm,coherent-device-memory"; |
| linux,usable-memory = <0x0 0x100000000 0x0 0x0>; |
| |
| ; denotes a region of unplugged system memory |
| |
| reg = <0x0 0x100000000 0x0 0x80000000>; |
| ibm,associativity = <0x4 0x0 0x0 0x0 0x64>; |
| |
| ; numa associativity for the memory once it is hotplugged |
| |
| phandle = <0x10000abc>; |
| linux,phandle = <0x10000abc>; |
| }; |
| |
| Emulated PCI device bindings |
| ---------------------------- |
| |
| .. code-block:: dts |
| |
| pciex@3fff000400000 { |
| ibm,npcq = <0x100002bc>; /* phandle to the NPU node. Used to find associated PCI GPU devices. */ |
| compatible = "ibm,power8-npu-pciex", "ibm,ioda2-npu-phb"; |
| |
| pci@0 { |
| reg = <0x0 0x0 0x0 0x0 0x0>; |
| revision-id = <0x0>; |
| interrupts = <0x1>; |
| device-id = <0x4ea>; |
| ibm,pci-config-space-type = <0x1>; |
| vendor-id = <0x1014>; |
| ibm,gpu = <0x100002f7>; /* phandle pointing the associated GPU PCI device node */ |
| memory-region = <0x10000abc>; /* phandle pointing to the GPU memory */ |
| ibm,nvlink-speed = <0x1>; |
| |
| ; Denotes the speed the link is running at: |
| ; 0x3 == 20 Gbps, 0x8 = 25.78125 Gbps, 0x9 == 25.00000 Gbps |
| |
| phandle = <0x100002fc>; |
| }; |
| |
| pci@1 { |
| reg = <0x800 0x0 0x0 0x0 0x0>; |
| revision-id = <0x0>; |
| interrupts = <0x1>; |
| device-id = <0x4ea>; |
| ibm,pci-config-space-type = <0x1>; |
| vendor-id = <0x1014>; |
| ibm,gpu = <0x100002f5>; |
| memory-region = <0x10000def>; |
| phandle = <0x100002fe>; |
| class-code = <0x60400>; |
| linux,phandle = <0x100002fe>; |
| }; |
| |
| pci@0,1 { |
| reg = <0x100 0x0 0x0 0x0 0x0>; |
| revision-id = <0x0>; |
| interrupts = <0x2>; |
| device-id = <0x4ea>; |
| ibm,pci-config-space-type = <0x1>; |
| vendor-id = <0x1014>; |
| ibm,gpu = <0x100002f7>; |
| memory-region = <0x10000abc>; |
| phandle = <0x100002fd>; |
| class-code = <0x60400>; |
| linux,phandle = <0x100002fd>; |
| }; |
| |
| pci@1,1 { |
| reg = <0x900 0x0 0x0 0x0 0x0>; |
| revision-id = <0x0>; |
| interrupts = <0x2>; |
| device-id = <0x4ea>; |
| ibm,pci-config-space-type = <0x1>; |
| vendor-id = <0x1014>; |
| ibm,gpu = <0x100002f5>; |
| memory-region = <0x10000def>; |
| phandle = <0x100002ff>; |
| class-code = <0x60400>; |
| linux,phandle = <0x100002ff>; |
| }; |
| }; |