summaryrefslogtreecommitdiffstats
path: root/doc/device-tree/nvlink.rst
blob: 8375dc4e38dfeadc6124a228e85ff9f4d1f9563c (plain)
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
.. _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>;
      };
    };
  };

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 */
  	  	        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>;
                        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>;
                        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>;
                        phandle = <0x100002ff>;
                        class-code = <0x60400>;
                        linux,phandle = <0x100002ff>;
                };
        };
OpenPOWER on IntegriCloud