<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://alexforencich.com/wiki/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="https://alexforencich.com/wiki/feed.php">
        <title>Alex Forencich - en:pcie</title>
        <description></description>
        <link>https://alexforencich.com/wiki/</link>
        <image rdf:resource="https://alexforencich.com/wiki/_media/wiki/dokuwiki.svg" />
       <dc:date>2026-04-22T09:19:27+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://alexforencich.com/wiki/en/pcie/disable-fatal?rev=1588140028&amp;do=diff"/>
                <rdf:li rdf:resource="https://alexforencich.com/wiki/en/pcie/ext-tag-control?rev=1588140000&amp;do=diff"/>
                <rdf:li rdf:resource="https://alexforencich.com/wiki/en/pcie/force-gen2?rev=1588140063&amp;do=diff"/>
                <rdf:li rdf:resource="https://alexforencich.com/wiki/en/pcie/hot-reset-linux?rev=1588139981&amp;do=diff"/>
                <rdf:li rdf:resource="https://alexforencich.com/wiki/en/pcie/set-speed?rev=1588140081&amp;do=diff"/>
                <rdf:li rdf:resource="https://alexforencich.com/wiki/en/pcie/start?rev=1564905922&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="https://alexforencich.com/wiki/_media/wiki/dokuwiki.svg">
        <title>Alex Forencich</title>
        <link>https://alexforencich.com/wiki/</link>
        <url>https://alexforencich.com/wiki/_media/wiki/dokuwiki.svg</url>
    </image>
    <item rdf:about="https://alexforencich.com/wiki/en/pcie/disable-fatal?rev=1588140028&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-04-29T06:00:28+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>PCIe Disable Fatal Error Reporting</title>
        <link>https://alexforencich.com/wiki/en/pcie/disable-fatal?rev=1588140028&amp;do=diff</link>
        <description>PCIe Disable Fatal Error Reporting

When loading a new configuration on a PCIe-connected FPGA, the device can fall off the bus.  This is usually no problem at all so long as drivers are properly unloaded, etc. before reconfiguring the FPGA.  However, some systems complain bitterly when the device falls off the bus, such as a Dell R540:</description>
    </item>
    <item rdf:about="https://alexforencich.com/wiki/en/pcie/ext-tag-control?rev=1588140000&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-04-29T06:00:00+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>PCIe Extended Tag Control</title>
        <link>https://alexforencich.com/wiki/en/pcie/ext-tag-control?rev=1588140000&amp;do=diff</link>
        <description>PCIe Extended Tag Control

This script uses setpci to enable or disable PCI express extended tags on the specified device.


#!/bin/bash

dev=$1
en=$2

if [ -z &quot;$dev&quot; ]; then
    echo &quot;Error: no device specified&quot;
    exit 1
fi

if [ -z &quot;$en&quot; ]; then
    echo &quot;Error: must specify operation&quot;
    exit 1
fi

if [ ! -e &quot;/sys/bus/pci/devices/$dev&quot; ]; then
    dev=&quot;0000:$dev&quot;
fi

if [ ! -e &quot;/sys/bus/pci/devices/$dev&quot; ]; then
    echo &quot;Error: device $dev not found&quot;
    exit 1
fi

ctrl=$(setpci -s $dev C…</description>
    </item>
    <item rdf:about="https://alexforencich.com/wiki/en/pcie/force-gen2?rev=1588140063&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-04-29T06:01:03+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>PCIe Force Gen 2</title>
        <link>https://alexforencich.com/wiki/en/pcie/force-gen2?rev=1588140063&amp;do=diff</link>
        <description>PCIe Force Gen 2

This script uses setpci to force a device to fall back from gen 3 to gen 2 link rate.  This can be useful when using a PCIe protocol analyzer that does not support PCIe gen 3.  It may be necessary to run this script on the switch or root port upstream of the device.</description>
    </item>
    <item rdf:about="https://alexforencich.com/wiki/en/pcie/hot-reset-linux?rev=1588139981&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-04-29T05:59:41+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>PCIe Hot Reset on Linux</title>
        <link>https://alexforencich.com/wiki/en/pcie/hot-reset-linux?rev=1588139981&amp;do=diff</link>
        <description>PCIe Hot Reset on Linux

Resets in PCI express are a bit complex. There are two main types of resets - conventional reset, and function-level reset. There are also two types of conventional resets, fundamental resets and non-fundamental resets. See the PCI express specification for all of the details.</description>
    </item>
    <item rdf:about="https://alexforencich.com/wiki/en/pcie/set-speed?rev=1588140081&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-04-29T06:01:21+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>PCIe Set Speed</title>
        <link>https://alexforencich.com/wiki/en/pcie/set-speed?rev=1588140081&amp;do=diff</link>
        <description>PCIe Set Speed

This script uses setpci to change a device&#039;s target link speed.  This can be useful when using a PCIe protocol analyzer that does not support PCIe gen 3.  It can also be helpful for testing a device at a lower bandwidth.  


#!/bin/bash

dev=$1
speed=$2

if [ -z &quot;$dev&quot; ]; then
    echo &quot;Error: no device specified&quot;
    exit 1
fi

if [ ! -e &quot;/sys/bus/pci/devices/$dev&quot; ]; then
    dev=&quot;0000:$dev&quot;
fi

if [ ! -e &quot;/sys/bus/pci/devices/$dev&quot; ]; then
    echo &quot;Error: device $dev not foun…</description>
    </item>
    <item rdf:about="https://alexforencich.com/wiki/en/pcie/start?rev=1564905922&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-08-04T08:05:22+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>PCI Express Notes</title>
        <link>https://alexforencich.com/wiki/en/pcie/start?rev=1564905922&amp;do=diff</link>
        <description>PCI Express Notes

Here is a compendium of useful tips and tricks I have discovered pertaining to PCI express.
PCIe Hot Reset on LinuxPCIe Extended Tag ControlPCIe Disable Fatal Error ReportingPCIe Force Gen 2PCIe Set Speed</description>
    </item>
</rdf:RDF>
