aboutsummaryrefslogtreecommitdiffstats
path: root/roms/skiboot/doc/device-tree/nvlink.rst
diff options
context:
space:
mode:
Diffstat (limited to 'roms/skiboot/doc/device-tree/nvlink.rst')
-rw-r--r--roms/skiboot/doc/device-tree/nvlink.rst157
1 files changed, 157 insertions, 0 deletions
diff --git a/roms/skiboot/doc/device-tree/nvlink.rst b/roms/skiboot/doc/device-tree/nvlink.rst
new file mode 100644
index 000000000..9f3fecb9b
--- /dev/null
+++ b/roms/skiboot/doc/device-tree/nvlink.rst
@@ -0,0 +1,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>;
+ };
+ };