Navigation

  • index
  • next |
  • previous |
  • skiboot 5f16bcb documentation »
  • Device Tree »
  • Nvlink Device Tree Bindings

Nvlink Device Tree Bindings¶

See OPAL/Skiboot Nvlink Interface Documentation 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>;
    };
  };
};

GPU memory bindings¶

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¶

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

Table of Contents

  • Nvlink Device Tree Bindings
    • GPU memory bindings
    • Emulated PCI device bindings

Previous topic

P9 memory hierarchy

Next topic

Nest (NX) Accelerator Coprocessor

This Page

  • Show Source

Quick search

Navigation

  • index
  • next |
  • previous |
  • skiboot 5f16bcb documentation »
  • Device Tree »
  • Nvlink Device Tree Bindings
© Copyright 2016-2017, IBM, others. Created using Sphinx 7.2.6.