aboutsummaryrefslogtreecommitdiff
path: root/doc/device-tree/nvlink.rst
blob: a0aed4f43d6d73e5e95b54f6adda3d4068ac0e38 (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
128
129
130
131
132
133
134
135
136
137
138
139
140
141
.. _device-tree/nvlink:

===========================
Nvlink Device Tree Bindings
===========================

See :ref:`nvlink` for general Nvlink information.

NPU bindings: ::

  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
----------------------------
::

       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>;
                };
        };