<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-toradex.git/drivers/ntb/ntb_regs.h, branch v4.1.25</title>
<subtitle>Linux kernel for Apalis and Colibri modules</subtitle>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/'/>
<entry>
<title>ntb: Adding split BAR support for Haswell platforms</title>
<updated>2014-10-17T11:08:51+00:00</updated>
<author>
<name>Dave Jiang</name>
<email>dave.jiang@intel.com</email>
</author>
<published>2014-08-28T20:53:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=ab760a0c5667519b375ea9c5ab3a23501c4817ef'/>
<id>ab760a0c5667519b375ea9c5ab3a23501c4817ef</id>
<content type='text'>
On the Haswell platform, a split BAR option to allow creation of 2
32bit BARs (4 and 5) from the 64bit BAR 4. Adding support for this
new option.

Signed-off-by: Dave Jiang &lt;dave.jiang@intel.com&gt;
Signed-off-by: Jon Mason &lt;jdmason@kudzu.us&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
On the Haswell platform, a split BAR option to allow creation of 2
32bit BARs (4 and 5) from the 64bit BAR 4. Adding support for this
new option.

Signed-off-by: Dave Jiang &lt;dave.jiang@intel.com&gt;
Signed-off-by: Jon Mason &lt;jdmason@kudzu.us&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>NTB: debugfs device entry</title>
<updated>2014-10-17T11:08:50+00:00</updated>
<author>
<name>Jon Mason</name>
<email>jon.mason@intel.com</email>
</author>
<published>2014-04-07T17:55:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=6465d02ee15f7a45339b7e7859d0a0f22100ca87'/>
<id>6465d02ee15f7a45339b7e7859d0a0f22100ca87</id>
<content type='text'>
Create a debugfs entry for the NTB device to log the basic device info,
as well as display the error count on a number of registers.

Signed-off-by: Jon Mason &lt;jon.mason@intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Create a debugfs entry for the NTB device to log the basic device info,
as well as display the error count on a number of registers.

Signed-off-by: Jon Mason &lt;jon.mason@intel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>NTB: Enable Snoop on Primary Side</title>
<updated>2013-11-20T16:57:33+00:00</updated>
<author>
<name>Jon Mason</name>
<email>jon.mason@intel.com</email>
</author>
<published>2013-10-04T00:24:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=78958433db077b339f3a039890148561086574e4'/>
<id>78958433db077b339f3a039890148561086574e4</id>
<content type='text'>
Enable Snoop from Primary to Secondary side on BAR23 and BAR45 on all
TLPs.  Previously, Snoop was only enabled from Secondary to Primary
side.  This can have a performance improvement on some workloads.

Also, make the code more obvious about how the link is being enabled.

Signed-off-by: Jon Mason &lt;jon.mason@intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Enable Snoop from Primary to Secondary side on BAR23 and BAR45 on all
TLPs.  Previously, Snoop was only enabled from Secondary to Primary
side.  This can have a performance improvement on some workloads.

Also, make the code more obvious about how the link is being enabled.

Signed-off-by: Jon Mason &lt;jon.mason@intel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>NTB: remove duplicate defines</title>
<updated>2013-11-20T16:57:33+00:00</updated>
<author>
<name>Michael Opdenacker</name>
<email>michael.opdenacker@free-electrons.com</email>
</author>
<published>2013-10-21T05:19:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=dcf81964e129da6140ff98a1a772044c62a7aa2e'/>
<id>dcf81964e129da6140ff98a1a772044c62a7aa2e</id>
<content type='text'>
Remove duplicate defines in drivers/ntb/ntb_regs.h

Signed-off-by: Michael Opdenacker &lt;michael.opdenacker@free-electrons.com&gt;
Signed-off-by: Jon Mason &lt;jon.mason@intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Remove duplicate defines in drivers/ntb/ntb_regs.h

Signed-off-by: Michael Opdenacker &lt;michael.opdenacker@free-electrons.com&gt;
Signed-off-by: Jon Mason &lt;jon.mason@intel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>NTB: Xeon Doorbell errata workaround</title>
<updated>2013-11-20T16:57:30+00:00</updated>
<author>
<name>Jon Mason</name>
<email>jon.mason@intel.com</email>
</author>
<published>2013-09-06T23:51:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=c529aa30337b928bd6bc34293608cb3d4505856e'/>
<id>c529aa30337b928bd6bc34293608cb3d4505856e</id>
<content type='text'>
Modifications to the 14th bit of the B2BDOORBELL register will not be
mirrored to the remote system due to a hardware issue.  To get around
the issue, shrink the number of available doorbell bits by 1.  The max
number of doorbells was being used as a way to referencing the Link
Doorbell bit.  Since this would no longer work, the driver must now
explicitly reference that bit.

This does not affect the xeon_errata_workaround case, as it is not using
the b2bdoorbell register.

Signed-off-by: Jon Mason &lt;jon.mason@intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Modifications to the 14th bit of the B2BDOORBELL register will not be
mirrored to the remote system due to a hardware issue.  To get around
the issue, shrink the number of available doorbell bits by 1.  The max
number of doorbells was being used as a way to referencing the Link
Doorbell bit.  Since this would no longer work, the driver must now
explicitly reference that bit.

This does not affect the xeon_errata_workaround case, as it is not using
the b2bdoorbell register.

Signed-off-by: Jon Mason &lt;jon.mason@intel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>NTB: Remove References of non-B2B BWD HW</title>
<updated>2013-09-05T18:07:59+00:00</updated>
<author>
<name>Jon Mason</name>
<email>jon.mason@intel.com</email>
</author>
<published>2013-07-15T22:33:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=b1ef004303fba92cd28ed32dd3caed3438238f76'/>
<id>b1ef004303fba92cd28ed32dd3caed3438238f76</id>
<content type='text'>
NTB-RP is not a supported configuration on BWD hardware.  Remove the
code attempting to set it up.

Signed-off-by: Jon Mason &lt;jon.mason@intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
NTB-RP is not a supported configuration on BWD hardware.  Remove the
code attempting to set it up.

Signed-off-by: Jon Mason &lt;jon.mason@intel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>NTB: NTB-RP support</title>
<updated>2013-09-05T18:07:58+00:00</updated>
<author>
<name>Jon Mason</name>
<email>jon.mason@intel.com</email>
</author>
<published>2013-07-15T23:43:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=ed6c24eda97b6bdcd013dbd91cc5c8b02de507e9'/>
<id>ed6c24eda97b6bdcd013dbd91cc5c8b02de507e9</id>
<content type='text'>
Add support for Non-Transparent Bridge connected to a PCI-E Root Port on
the remote system (also known as NTB-RP mode).  This allows for a NTB
enabled system to be connected to a non-NTB enabled system/slot.

Modifications to the registers and BARs/MWs on the Secondary side by the
remote system are reflected into registers on the Primary side for the
local system.  Similarly, modifications of registers and BARs/MWs on
Primary side by the local system are reflected into registers on the
Secondary side for the Remote System.  This allows communication between
the 2 sides via these registers and BARs/MWs.

Note: there is not a fix for the Xeon Errata (that was already worked
around in NTB-B2B mode) for NTB-RP mode.  Due to this limitation, NTB-RP
will not work on the Secondary side with the Xeon Errata workaround
enabled.  To get around this, disable the workaround via the
xeon_errata_workaround=0 modparm.  However, this can cause the hang
described in the errata.

Signed-off-by: Jon Mason &lt;jon.mason@intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add support for Non-Transparent Bridge connected to a PCI-E Root Port on
the remote system (also known as NTB-RP mode).  This allows for a NTB
enabled system to be connected to a non-NTB enabled system/slot.

Modifications to the registers and BARs/MWs on the Secondary side by the
remote system are reflected into registers on the Primary side for the
local system.  Similarly, modifications of registers and BARs/MWs on
Primary side by the local system are reflected into registers on the
Secondary side for the Remote System.  This allows communication between
the 2 sides via these registers and BARs/MWs.

Note: there is not a fix for the Xeon Errata (that was already worked
around in NTB-B2B mode) for NTB-RP mode.  Due to this limitation, NTB-RP
will not work on the Secondary side with the Xeon Errata workaround
enabled.  To get around this, disable the workaround via the
xeon_errata_workaround=0 modparm.  However, this can cause the hang
described in the errata.

Signed-off-by: Jon Mason &lt;jon.mason@intel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>NTB: BWD Link Recovery</title>
<updated>2013-09-03T21:48:52+00:00</updated>
<author>
<name>Jon Mason</name>
<email>jon.mason@intel.com</email>
</author>
<published>2012-11-17T01:52:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=113bf1c9f1e035129f8631b032669d6ab36a14dd'/>
<id>113bf1c9f1e035129f8631b032669d6ab36a14dd</id>
<content type='text'>
The BWD NTB device will drop the link if an error is encountered on the
point-to-point PCI bridge.  The link will stay down until all errors are
cleared and the link is re-established.  On link down, check to see if
the error is detected, if so do the necessary housekeeping to try and
recover from the error and reestablish the link.

There is a potential race between the 2 NTB devices recovering at the
same time.  If the times are synchronized, the link will not recover and the
driver will be stuck in this loop forever.  Add a random interval to the
recovery time to prevent this race.

Signed-off-by: Jon Mason &lt;jon.mason@intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The BWD NTB device will drop the link if an error is encountered on the
point-to-point PCI bridge.  The link will stay down until all errors are
cleared and the link is re-established.  On link down, check to see if
the error is detected, if so do the necessary housekeeping to try and
recover from the error and reestablish the link.

There is a potential race between the 2 NTB devices recovering at the
same time.  If the times are synchronized, the link will not recover and the
driver will be stuck in this loop forever.  Add a random interval to the
recovery time to prevent this race.

Signed-off-by: Jon Mason &lt;jon.mason@intel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>NTB: Xeon Errata Workaround</title>
<updated>2013-09-03T20:51:51+00:00</updated>
<author>
<name>Jon Mason</name>
<email>jon.mason@intel.com</email>
</author>
<published>2013-04-19T00:07:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=948d3a65b6d164b34309625f57656cb9e8b1a908'/>
<id>948d3a65b6d164b34309625f57656cb9e8b1a908</id>
<content type='text'>
There is a Xeon hardware errata related to writes to SDOORBELL or
B2BDOORBELL in conjunction with inbound access to NTB MMIO Space, which
may hang the system.  To workaround this issue, use one of the memory
windows to access the interrupt and scratch pad registers on the remote
system.  This bypasses the issue, but removes one of the memory windows
from use by the transport.  This reduction of MWs necessitates adding
some logic to determine the number of available MWs.

Since some NTB usage methodologies may have unidirectional traffic, the
ability to disable the workaround via modparm has been added.

See BF113 in
http://www.intel.com/content/dam/www/public/us/en/documents/specification-updates/xeon-c5500-c3500-spec-update.pdf
See BT119 in
http://www.intel.com/content/dam/www/public/us/en/documents/specification-updates/xeon-e5-family-spec-update.pdf

Signed-off-by: Jon Mason &lt;jon.mason@intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
There is a Xeon hardware errata related to writes to SDOORBELL or
B2BDOORBELL in conjunction with inbound access to NTB MMIO Space, which
may hang the system.  To workaround this issue, use one of the memory
windows to access the interrupt and scratch pad registers on the remote
system.  This bypasses the issue, but removes one of the memory windows
from use by the transport.  This reduction of MWs necessitates adding
some logic to determine the number of available MWs.

Since some NTB usage methodologies may have unidirectional traffic, the
ability to disable the workaround via modparm has been added.

See BF113 in
http://www.intel.com/content/dam/www/public/us/en/documents/specification-updates/xeon-c5500-c3500-spec-update.pdf
See BT119 in
http://www.intel.com/content/dam/www/public/us/en/documents/specification-updates/xeon-e5-family-spec-update.pdf

Signed-off-by: Jon Mason &lt;jon.mason@intel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>NTB: Correct Number of Scratch Pad Registers</title>
<updated>2013-09-03T18:13:13+00:00</updated>
<author>
<name>Jon Mason</name>
<email>jon.mason@intel.com</email>
</author>
<published>2013-07-15T22:26:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=87034511519815259e37336f52edf06d114d43b6'/>
<id>87034511519815259e37336f52edf06d114d43b6</id>
<content type='text'>
The NTB Xeon hardware has 16 scratch pad registers and 16 back-to-back
scratch pad registers.  Correct the #define to represent this and update
the variable names to reflect their usage.

Signed-off-by: Jon Mason &lt;jon.mason@intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The NTB Xeon hardware has 16 scratch pad registers and 16 back-to-back
scratch pad registers.  Correct the #define to represent this and update
the variable names to reflect their usage.

Signed-off-by: Jon Mason &lt;jon.mason@intel.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
