<feed xmlns='http://www.w3.org/2005/Atom'>
<title>nvidia-tegra-modules.git/drivers/nvlink/Makefile, branch gpu-paging</title>
<subtitle>NVIDIA's kernel modules to support tegra chips (used in Jetson boards)</subtitle>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/nvidia-tegra-modules.git/'/>
<entry>
<title>nvlink: Add nvlink_enumerate to bringup nvlink</title>
<updated>2018-01-20T03:49:01+00:00</updated>
<author>
<name>Tejal Kudav</name>
<email>tkudav@nvidia.com</email>
</author>
<published>2017-12-21T11:10:24+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/nvidia-tegra-modules.git/commit/?id=544501bc7618d42408b036e5eef5aad55f36f5ae'/>
<id>544501bc7618d42408b036e5eef5aad55f36f5ae</id>
<content type='text'>
The master device in nvlink topology will call nvlink_enumerate
to initialize both the endpoint devices and transition the link
to safe and eventually to High speed. Nvlink_enumerate will
co-ordinate the state transitions between the two endpoints and
get the link ready for data transfer over high speed. The callbacks
registered by master and slave for device and link level initialization
will be called sequentially. init_state is maintained to allow us to
call nvlink_enumerate multiple times. Based on the init state and the
link mode, only necessary steps will be executed.

Move the interface definitions to /include.
Some APIs and struct definition need to exposed to dGPU or other
endpoint driver. These represent the interface between the core
nvlink driver and the endpoint drivers. As nvlink driver is tegra
specific, we move the file to /include/linux/platform/tegra folder.

JIRA NVLINK-66
JIRA NVLINK-67
JIRA NVLINK-70
JIRA NVLINK-73
JIRA NVLINK-79
JIRA NVLINK-103
JIRA NVLINK-110
JIRA NVLINK-114

Change-Id: I7907825e4344833344ad6aaa6f2017b58b258649
Signed-off-by: Tejal Kudav &lt;tkudav@nvidia.com&gt;
Reviewed-on: https://git-master.nvidia.com/r/1640795
Reviewed-by: svc-mobile-coverity &lt;svc-mobile-coverity@nvidia.com&gt;
GVS: Gerrit_Virtual_Submit
Reviewed-by: Adeel Raza &lt;araza@nvidia.com&gt;
Reviewed-by: mobile promotions &lt;svcmobile_promotions@nvidia.com&gt;
Tested-by: mobile promotions &lt;svcmobile_promotions@nvidia.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The master device in nvlink topology will call nvlink_enumerate
to initialize both the endpoint devices and transition the link
to safe and eventually to High speed. Nvlink_enumerate will
co-ordinate the state transitions between the two endpoints and
get the link ready for data transfer over high speed. The callbacks
registered by master and slave for device and link level initialization
will be called sequentially. init_state is maintained to allow us to
call nvlink_enumerate multiple times. Based on the init state and the
link mode, only necessary steps will be executed.

Move the interface definitions to /include.
Some APIs and struct definition need to exposed to dGPU or other
endpoint driver. These represent the interface between the core
nvlink driver and the endpoint drivers. As nvlink driver is tegra
specific, we move the file to /include/linux/platform/tegra folder.

JIRA NVLINK-66
JIRA NVLINK-67
JIRA NVLINK-70
JIRA NVLINK-73
JIRA NVLINK-79
JIRA NVLINK-103
JIRA NVLINK-110
JIRA NVLINK-114

Change-Id: I7907825e4344833344ad6aaa6f2017b58b258649
Signed-off-by: Tejal Kudav &lt;tkudav@nvidia.com&gt;
Reviewed-on: https://git-master.nvidia.com/r/1640795
Reviewed-by: svc-mobile-coverity &lt;svc-mobile-coverity@nvidia.com&gt;
GVS: Gerrit_Virtual_Submit
Reviewed-by: Adeel Raza &lt;araza@nvidia.com&gt;
Reviewed-by: mobile promotions &lt;svcmobile_promotions@nvidia.com&gt;
Tested-by: mobile promotions &lt;svcmobile_promotions@nvidia.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>nvlink: split T19x endpoint driver</title>
<updated>2017-12-23T22:32:00+00:00</updated>
<author>
<name>Adeel Raza</name>
<email>araza@nvidia.com</email>
</author>
<published>2017-12-22T11:25:19+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/nvidia-tegra-modules.git/commit/?id=fd495c8806e3f0f8a4a82a6b7edaebdc28494725'/>
<id>fd495c8806e3f0f8a4a82a6b7edaebdc28494725</id>
<content type='text'>
Split the T19x NVLINK endpoint driver into the following files:
   - t19x-nvlink-endpt.c - base driver file - This file contains the
     following:
        - Driver boilerplate (probe, remove, module_init, module_exit,
          etc)
        - Register readl/writel functions
	- Device init
   - t19x-nvlink-endpt-debugfs.c:
        - This file creates the debugfs directory for the T19x NVLINK
          endpoint driver.
        - Various debugfs nodes can be added under this directory.
   - t19x-nvlink-endpt-ioctl.c:
        - This file currently contains basic file ops for the T19x
          NVLINK endpoint driver's device file.
        - In the future IOCTLs will be added for this device file.
   - t19x-nvlink-endpt-isr.c:
        - This file currently contains stub functions for interrupt
          handling.
        - These stub functions will be implemented in the future along
          with other interrupt handling code.
   - t19x-nvlink-endpt-link.c:
        - This file will contain link state transition and link training
          code.
   - t19x-nvlink-endpt-minion.c:
        - This file contains code for booting and interacting with the
          MINION microcontroller.
   - t19x-nvlink-endpt.h:
        - This header will be used for sharing
          functions/structures/defines between T19x endpoint driver
          source files.

Change-Id: I469127096a8b2046f6674dc6a42267cfa25f3f2c
Signed-off-by: Adeel Raza &lt;araza@nvidia.com&gt;
Reviewed-on: https://git-master.nvidia.com/r/1624742
Reviewed-by: Petlozu Pravareshwar &lt;petlozup@nvidia.com&gt;
Reviewed-by: Tejal Kudav &lt;tkudav@nvidia.com&gt;
GVS: Gerrit_Virtual_Submit
Tested-by: Vignesh Radhakrishnan &lt;vigneshr@nvidia.com&gt;
Reviewed-by: mobile promotions &lt;svcmobile_promotions@nvidia.com&gt;
Tested-by: mobile promotions &lt;svcmobile_promotions@nvidia.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Split the T19x NVLINK endpoint driver into the following files:
   - t19x-nvlink-endpt.c - base driver file - This file contains the
     following:
        - Driver boilerplate (probe, remove, module_init, module_exit,
          etc)
        - Register readl/writel functions
	- Device init
   - t19x-nvlink-endpt-debugfs.c:
        - This file creates the debugfs directory for the T19x NVLINK
          endpoint driver.
        - Various debugfs nodes can be added under this directory.
   - t19x-nvlink-endpt-ioctl.c:
        - This file currently contains basic file ops for the T19x
          NVLINK endpoint driver's device file.
        - In the future IOCTLs will be added for this device file.
   - t19x-nvlink-endpt-isr.c:
        - This file currently contains stub functions for interrupt
          handling.
        - These stub functions will be implemented in the future along
          with other interrupt handling code.
   - t19x-nvlink-endpt-link.c:
        - This file will contain link state transition and link training
          code.
   - t19x-nvlink-endpt-minion.c:
        - This file contains code for booting and interacting with the
          MINION microcontroller.
   - t19x-nvlink-endpt.h:
        - This header will be used for sharing
          functions/structures/defines between T19x endpoint driver
          source files.

Change-Id: I469127096a8b2046f6674dc6a42267cfa25f3f2c
Signed-off-by: Adeel Raza &lt;araza@nvidia.com&gt;
Reviewed-on: https://git-master.nvidia.com/r/1624742
Reviewed-by: Petlozu Pravareshwar &lt;petlozup@nvidia.com&gt;
Reviewed-by: Tejal Kudav &lt;tkudav@nvidia.com&gt;
GVS: Gerrit_Virtual_Submit
Tested-by: Vignesh Radhakrishnan &lt;vigneshr@nvidia.com&gt;
Reviewed-by: mobile promotions &lt;svcmobile_promotions@nvidia.com&gt;
Tested-by: mobile promotions &lt;svcmobile_promotions@nvidia.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>nvlink: add NVLINK driver stack</title>
<updated>2017-12-06T22:32:26+00:00</updated>
<author>
<name>Adeel Raza</name>
<email>araza@nvidia.com</email>
</author>
<published>2016-12-23T19:31:41+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/nvidia-tegra-modules.git/commit/?id=450d2af3da9b10bb5fdcf62a5f449d13c84c390e'/>
<id>450d2af3da9b10bb5fdcf62a5f449d13c84c390e</id>
<content type='text'>
NVLINK is a high speed serial communication protocol and an interconnect
developed by NVIDIA. NVLINK provides higher bandwidth and lower latency
in comparison to PCIe. This new protocol/interconnect can be used to
connect the Tegra SOC to various external devices. After the NVLINK
connection has been configured, high speed memory accesses can be made
over NVLINK between Tegra and the external device.

This patch adds the following NVLINK drivers:
  - Tegra NVLINK endpoint driver:
      - Each endpoint driver is respondible for programming the HW of 1
        NVLINK device.
      - The Tegra NVLINK endpoint driver programs the NVLINK controller
        present in the Tegra SOC.
      - Endpoint drivers register themselves with the NVLINK core
        driver. As part of the registration, the endpoint driver
        provides the core driver a structure of callback functions. The
        core driver uses the callback functiions to control the HW
        programming done by the endpoint driver.
      - Endpoint drivers are unaware of the overall state of the NVLINK
        system. Their only job is to program the HW of their NVLINK
        device.
  - NVLINK core driver:
      - The NVLINK core driver manages the entire NVLINK system.
      - The core driver keeps state informatiion about the NVLINK
        system.
      - The core driver also coordinates HW programming between 2 NVLINK
        endpoints by using the callback functions of the endpoint
        drivers.

Right now the NVLINK driver stack only supports the Tegra loopback
topology. But there are plans in the future to add support for more
topologies.

Jira NVLINK-2
Jira NVLINK-3
Jira NVLINK-4
Jira NVLINK-10
Jira NVLINK-16
Jira NVLINK-23

Change-Id: I5996f8d9211877caf63fa5d3c18745f343c4d2e2
Signed-off-by: Adeel Raza &lt;araza@nvidia.com&gt;
Reviewed-on: https://git-master.nvidia.com/r/1611649
GVS: Gerrit_Virtual_Submit
Reviewed-by: Terje Bergstrom &lt;tbergstrom@nvidia.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
NVLINK is a high speed serial communication protocol and an interconnect
developed by NVIDIA. NVLINK provides higher bandwidth and lower latency
in comparison to PCIe. This new protocol/interconnect can be used to
connect the Tegra SOC to various external devices. After the NVLINK
connection has been configured, high speed memory accesses can be made
over NVLINK between Tegra and the external device.

This patch adds the following NVLINK drivers:
  - Tegra NVLINK endpoint driver:
      - Each endpoint driver is respondible for programming the HW of 1
        NVLINK device.
      - The Tegra NVLINK endpoint driver programs the NVLINK controller
        present in the Tegra SOC.
      - Endpoint drivers register themselves with the NVLINK core
        driver. As part of the registration, the endpoint driver
        provides the core driver a structure of callback functions. The
        core driver uses the callback functiions to control the HW
        programming done by the endpoint driver.
      - Endpoint drivers are unaware of the overall state of the NVLINK
        system. Their only job is to program the HW of their NVLINK
        device.
  - NVLINK core driver:
      - The NVLINK core driver manages the entire NVLINK system.
      - The core driver keeps state informatiion about the NVLINK
        system.
      - The core driver also coordinates HW programming between 2 NVLINK
        endpoints by using the callback functions of the endpoint
        drivers.

Right now the NVLINK driver stack only supports the Tegra loopback
topology. But there are plans in the future to add support for more
topologies.

Jira NVLINK-2
Jira NVLINK-3
Jira NVLINK-4
Jira NVLINK-10
Jira NVLINK-16
Jira NVLINK-23

Change-Id: I5996f8d9211877caf63fa5d3c18745f343c4d2e2
Signed-off-by: Adeel Raza &lt;araza@nvidia.com&gt;
Reviewed-on: https://git-master.nvidia.com/r/1611649
GVS: Gerrit_Virtual_Submit
Reviewed-by: Terje Bergstrom &lt;tbergstrom@nvidia.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
