1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157
|
.. _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>;
};
};
|