<h1>axipcie v3_0</h1><p>This file contains the software API definition of the Xilinx AXI PCIe IP (<aclass="el"href="struct_x_axi_pcie.html">XAxiPcie</a>). This driver provides "C" function interface to application/upper layer to access the hardware.</p>
<p><b>Features</b> The driver provides its user with entry points</p>
<li>To initialize and configure itself and the hardware</li>
<li>To access PCIe configuration space locally</li>
<li>To enable/disable and to report errors (interrupts).</li>
</ul>
<p><b>IP Hardware Configuration</b> The AXI PCIE IP supports only the endpoint for Virtex<65>-6 and Spartan<61>-6 families.</p>
<p>The AXI PCIE IP supports both the endpoint and Root Port for the Kintex<65> 7 devices.</p>
<p><b>Driver Initialization & Configuration</b></p>
<p>The <aclass="el"href="struct_x_axi_pcie___config.html">XAxiPcie_Config</a> structure is used by the driver to configure itself. This configuration structure is typically created by the tool-chain based on HW build properties.</p>
<p>To support multiple runtime loading and initialization strategies employed by various operating systems, the driver instance can be initialized in the following way:</p>
<li>XAxiPcie_LookupConfig(DeviceId) - Use the device identifier to find the static configuration structure defined in <aclass="el"href="xaxipcie__g_8c.html">xaxipcie_g.c</a>. This is setup by the tools. For some operating systems the config structure will be initialized by the software and this call is not needed.</li>
</ul>
<ul>
<li>XAxiPcie_CfgInitialize(InstancePtr, CfgPtr, EffectiveAddr) - Uses a configuration structure provided by the caller. If running in a system with address translation, the provided virtual memory base address replaces the physical address present in the configuration structure.</li>
</ul>
<p><b>Interrupt Management</b></p>
<p>The <aclass="el"href="struct_x_axi_pcie.html">XAxiPcie</a> driver provides interrupt management functions. It allows the caller to enable/disable each individual interrupt as well as get/clear pending interrupts. Implementation of callback handlers is left to the user.</p>