
This patch updates the doxygen for the drivers axicdma,axidma, axipcie,axietherent,axipmon to include .h files in the listof files provided in the index.html file. Signed-off-by: Kedareswara rao Appana <appanad@xilinx.com>
518 lines
24 KiB
HTML
518 lines
24 KiB
HTML
<html>
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
|
|
<title>
|
|
Xilinx Driver can v3_0: xaxicdma.c File Reference
|
|
</title>
|
|
<link href="doxygen_kalyanidocs/doc/css/driver_api_doxygen.css" rel="stylesheet" type="text/css">
|
|
</head>
|
|
<h3 class="PageHeader">Xilinx Processor IP Library</h3>
|
|
<hl>Software Drivers</hl>
|
|
<hr class="whs1">
|
|
|
|
<!-- Generated by Doxygen 1.6.1 -->
|
|
<div class="navigation" id="top">
|
|
<div class="tabs">
|
|
<ul>
|
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
|
<li><a href="annotated.html"><span>Classes</span></a></li>
|
|
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
|
</ul>
|
|
</div>
|
|
<div class="tabs">
|
|
<ul>
|
|
<li><a href="files.html"><span>File List</span></a></li>
|
|
<li><a href="globals.html"><span>File Members</span></a></li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
<div class="contents">
|
|
<h1>xaxicdma.c File Reference</h1><code>#include "<a class="el" href="xaxicdma_8h.html">xaxicdma.h</a>"</code><br/>
|
|
<code>#include "<a class="el" href="xaxicdma__i_8h.html">xaxicdma_i.h</a>"</code><br/>
|
|
<table border="0" cellpadding="0" cellspacing="0">
|
|
<tr><td colspan="2"><h2>Functions</h2></td></tr>
|
|
<tr><td class="memItemLeft" align="right" valign="top">u32 </td><td class="memItemRight" valign="bottom"><a class="el" href="xaxicdma_8c.html#ae1fbdb8f7ad8926f744c771e07814f72">XAxiCdma_GetError</a> (<a class="el" href="struct_x_axi_cdma.html">XAxiCdma</a> *InstancePtr)</td></tr>
|
|
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="xaxicdma_8c.html#aaf97cc8317af0bf1678973925beff0c5">XAxiCdma_Reset</a> (<a class="el" href="struct_x_axi_cdma.html">XAxiCdma</a> *InstancePtr)</td></tr>
|
|
<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="xaxicdma_8c.html#a2575375744593bd55425365dde7744e5">XAxiCdma_ResetIsDone</a> (<a class="el" href="struct_x_axi_cdma.html">XAxiCdma</a> *InstancePtr)</td></tr>
|
|
<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="xaxicdma_8c.html#a6da52831640e9c242f626ec8b7478aa4">XAxiCdma_CfgInitialize</a> (<a class="el" href="struct_x_axi_cdma.html">XAxiCdma</a> *InstancePtr, <a class="el" href="struct_x_axi_cdma___config.html">XAxiCdma_Config</a> *CfgPtr, u32 EffectiveAddr)</td></tr>
|
|
<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="xaxicdma_8c.html#aee6e140ed15cd9b7e49145e01220115a">XAxiCdma_IsBusy</a> (<a class="el" href="struct_x_axi_cdma.html">XAxiCdma</a> *InstancePtr)</td></tr>
|
|
<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="xaxicdma_8c.html#a54594f4f6f6e171b1b6b395f9155c02a">XAxiCdma_IsSimpleMode</a> (<a class="el" href="struct_x_axi_cdma.html">XAxiCdma</a> *InstancePtr)</td></tr>
|
|
<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="xaxicdma_8c.html#a815f36efce97dba797f67f9acbbb761d">XAxiCdma_SelectKeyHole</a> (<a class="el" href="struct_x_axi_cdma.html">XAxiCdma</a> *InstancePtr, u32 Direction, u32 Select)</td></tr>
|
|
<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="xaxicdma_8c.html#ad3e8a630132ac5e8e2f71589846f9411">XAxiCdma_SwitchMode</a> (<a class="el" href="struct_x_axi_cdma.html">XAxiCdma</a> *InstancePtr, int Mode)</td></tr>
|
|
<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="xaxicdma_8c.html#a888113a7abef88ef9d980f629e3d31d1">XAxiCdma_SimpleTransfer</a> (<a class="el" href="struct_x_axi_cdma.html">XAxiCdma</a> *InstancePtr, u32 SrcAddr, u32 DstAddr, int Length, <a class="el" href="xaxicdma_8h.html#a190041f3a52f247fbc91a93041095aac">XAxiCdma_CallBackFn</a> SimpleCallBack, void *CallBackRef)</td></tr>
|
|
<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="xaxicdma_8c.html#a91adf55050cb617cee00b0ba2f0d754e">XAxiCdma_SetCoalesce</a> (<a class="el" href="struct_x_axi_cdma.html">XAxiCdma</a> *InstancePtr, u32 Counter, u32 Delay)</td></tr>
|
|
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="xaxicdma_8c.html#a92087f03877293982f895e8178557f6a">XAxiCdma_GetCoalesce</a> (<a class="el" href="struct_x_axi_cdma.html">XAxiCdma</a> *InstancePtr, u32 *CounterPtr, u32 *DelayPtr)</td></tr>
|
|
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="xaxicdma_8c.html#a3287c31f1aa41a1e4a535af134324524">XAxiCdma_DumpRegisters</a> (<a class="el" href="struct_x_axi_cdma.html">XAxiCdma</a> *InstancePtr)</td></tr>
|
|
</table>
|
|
<hr/><a name="_details"></a><h2>Detailed Description</h2>
|
|
<p>The implementation of the API of Xilinx CDMA engine.</p>
|
|
<pre>
|
|
MODIFICATION HISTORY:</pre><pre> Ver Who Date Changes
|
|
----- ---- -------- -------------------------------------------------------
|
|
1.00a jz 04/18/10 First release
|
|
2.01a rkv 01/25/11 Replaced with "\r\n" in place on "\n\r" in printf
|
|
statements Changed XAxiCdma_CfgInitialize to use
|
|
EffectiveAddress.
|
|
2.02a srt 01/18/13 Added support for Key Hole feature (CR: 687217).
|
|
</pre> <hr/><h2>Function Documentation</h2>
|
|
<a class="anchor" id="a6da52831640e9c242f626ec8b7478aa4"></a><!-- doxytag: member="xaxicdma.c::XAxiCdma_CfgInitialize" ref="a6da52831640e9c242f626ec8b7478aa4" args="(XAxiCdma *InstancePtr, XAxiCdma_Config *CfgPtr, u32 EffectiveAddr)" -->
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int XAxiCdma_CfgInitialize </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="struct_x_axi_cdma.html">XAxiCdma</a> * </td>
|
|
<td class="paramname"> <em>InstancePtr</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="struct_x_axi_cdma___config.html">XAxiCdma_Config</a> * </td>
|
|
<td class="paramname"> <em>CfgPtr</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">u32 </td>
|
|
<td class="paramname"> <em>EffectiveAddr</em></td><td> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="memdoc">
|
|
<p>This function initializes the driver. It should be called before any other function calls to the driver.</p>
|
|
<p>It sets up the driver according to the hardware build. It resets the hardware at the end.</p>
|
|
<dl><dt><b>Parameters:</b></dt><dd>
|
|
<table border="0" cellspacing="2" cellpadding="0">
|
|
<tr><td valign="top"></td><td valign="top"><em>InstancePtr</em> </td><td>is the driver instance that is working on </td></tr>
|
|
<tr><td valign="top"></td><td valign="top"><em>CfgPtr</em> </td><td>is the pointer to the hardware configuration structure </td></tr>
|
|
<tr><td valign="top"></td><td valign="top"><em>EffectiveAddr</em> </td><td>is the virtual address of the hardware instance. If address translation is not in use, please use the physical address</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="return"><dt><b>Returns:</b></dt><dd><ul>
|
|
<li>XST_SUCCESS for success</li>
|
|
<li>XST_INVALID_PARAM if word length is less than 4</li>
|
|
<li>XST_FAILURE for reset failure</li>
|
|
</ul>
|
|
</dd></dl>
|
|
<dl class="note"><dt><b>Note:</b></dt><dd>None. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="a3287c31f1aa41a1e4a535af134324524"></a><!-- doxytag: member="xaxicdma.c::XAxiCdma_DumpRegisters" ref="a3287c31f1aa41a1e4a535af134324524" args="(XAxiCdma *InstancePtr)" -->
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void XAxiCdma_DumpRegisters </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="struct_x_axi_cdma.html">XAxiCdma</a> * </td>
|
|
<td class="paramname"> <em>InstancePtr</em></td>
|
|
<td> ) </td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="memdoc">
|
|
<p>This function dumps the registers of this DMA instance</p>
|
|
<dl><dt><b>Parameters:</b></dt><dd>
|
|
<table border="0" cellspacing="2" cellpadding="0">
|
|
<tr><td valign="top"></td><td valign="top"><em>InstancePtr</em> </td><td>is the driver instance we are working on</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="return"><dt><b>Returns:</b></dt><dd>None</dd></dl>
|
|
<dl class="note"><dt><b>Note:</b></dt><dd>None. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="a92087f03877293982f895e8178557f6a"></a><!-- doxytag: member="xaxicdma.c::XAxiCdma_GetCoalesce" ref="a92087f03877293982f895e8178557f6a" args="(XAxiCdma *InstancePtr, u32 *CounterPtr, u32 *DelayPtr)" -->
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void XAxiCdma_GetCoalesce </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="struct_x_axi_cdma.html">XAxiCdma</a> * </td>
|
|
<td class="paramname"> <em>InstancePtr</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">u32 * </td>
|
|
<td class="paramname"> <em>CounterPtr</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">u32 * </td>
|
|
<td class="paramname"> <em>DelayPtr</em></td><td> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="memdoc">
|
|
<p>This function gets the current setting of the interrupt coalescing threshold counter and the delay counter.</p>
|
|
<dl><dt><b>Parameters:</b></dt><dd>
|
|
<table border="0" cellspacing="2" cellpadding="0">
|
|
<tr><td valign="top"></td><td valign="top"><em>InstancePtr</em> </td><td>is the driver instance we are working on </td></tr>
|
|
<tr><td valign="top"></td><td valign="top"><em>CounterPtr</em> </td><td>is the return value for the coalescing counter setting </td></tr>
|
|
<tr><td valign="top"></td><td valign="top"><em>DelayPtr</em> </td><td>is the return value for the delay counter setting</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="return"><dt><b>Returns:</b></dt><dd>A zero coalescing threshold indicates invalid results</dd></dl>
|
|
<dl class="note"><dt><b>Note:</b></dt><dd>None. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="ae1fbdb8f7ad8926f744c771e07814f72"></a><!-- doxytag: member="xaxicdma.c::XAxiCdma_GetError" ref="ae1fbdb8f7ad8926f744c771e07814f72" args="(XAxiCdma *InstancePtr)" -->
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">u32 XAxiCdma_GetError </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="struct_x_axi_cdma.html">XAxiCdma</a> * </td>
|
|
<td class="paramname"> <em>InstancePtr</em></td>
|
|
<td> ) </td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="memdoc">
|
|
<p>This function gets the status on error bits.</p>
|
|
<dl><dt><b>Parameters:</b></dt><dd>
|
|
<table border="0" cellspacing="2" cellpadding="0">
|
|
<tr><td valign="top"></td><td valign="top"><em>InstancePtr</em> </td><td>is the driver instance we are working on</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="return"><dt><b>Returns:</b></dt><dd>The error bits in the status register. Zero indicates no errors.</dd></dl>
|
|
<dl class="note"><dt><b>Note:</b></dt><dd>None. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="aee6e140ed15cd9b7e49145e01220115a"></a><!-- doxytag: member="xaxicdma.c::XAxiCdma_IsBusy" ref="aee6e140ed15cd9b7e49145e01220115a" args="(XAxiCdma *InstancePtr)" -->
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int XAxiCdma_IsBusy </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="struct_x_axi_cdma.html">XAxiCdma</a> * </td>
|
|
<td class="paramname"> <em>InstancePtr</em></td>
|
|
<td> ) </td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="memdoc">
|
|
<p>This function checks whether the hardware is doing transfer</p>
|
|
<dl><dt><b>Parameters:</b></dt><dd>
|
|
<table border="0" cellspacing="2" cellpadding="0">
|
|
<tr><td valign="top"></td><td valign="top"><em>InstancePtr</em> </td><td>is the driver instance we are working on</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="return"><dt><b>Returns:</b></dt><dd><ul>
|
|
<li>1 if the hardware is doing a transfer</li>
|
|
<li>0 if the hardware is idle</li>
|
|
</ul>
|
|
</dd></dl>
|
|
<dl class="note"><dt><b>Note:</b></dt><dd>None. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="a54594f4f6f6e171b1b6b395f9155c02a"></a><!-- doxytag: member="xaxicdma.c::XAxiCdma_IsSimpleMode" ref="a54594f4f6f6e171b1b6b395f9155c02a" args="(XAxiCdma *InstancePtr)" -->
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int XAxiCdma_IsSimpleMode </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="struct_x_axi_cdma.html">XAxiCdma</a> * </td>
|
|
<td class="paramname"> <em>InstancePtr</em></td>
|
|
<td> ) </td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="memdoc">
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="aaf97cc8317af0bf1678973925beff0c5"></a><!-- doxytag: member="xaxicdma.c::XAxiCdma_Reset" ref="aaf97cc8317af0bf1678973925beff0c5" args="(XAxiCdma *InstancePtr)" -->
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void XAxiCdma_Reset </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="struct_x_axi_cdma.html">XAxiCdma</a> * </td>
|
|
<td class="paramname"> <em>InstancePtr</em></td>
|
|
<td> ) </td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="memdoc">
|
|
<p>This function conducts hardware reset</p>
|
|
<p>Current transfer will finish gracefully. However, all queued SG transfers that have not started will be flushed from the hardware.</p>
|
|
<dl><dt><b>Parameters:</b></dt><dd>
|
|
<table border="0" cellspacing="2" cellpadding="0">
|
|
<tr><td valign="top"></td><td valign="top"><em>InstancePtr</em> </td><td>is the driver instance we are working on</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="return"><dt><b>Returns:</b></dt><dd>None</dd></dl>
|
|
<dl class="note"><dt><b>Note:</b></dt><dd>None. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="a2575375744593bd55425365dde7744e5"></a><!-- doxytag: member="xaxicdma.c::XAxiCdma_ResetIsDone" ref="a2575375744593bd55425365dde7744e5" args="(XAxiCdma *InstancePtr)" -->
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int XAxiCdma_ResetIsDone </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="struct_x_axi_cdma.html">XAxiCdma</a> * </td>
|
|
<td class="paramname"> <em>InstancePtr</em></td>
|
|
<td> ) </td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="memdoc">
|
|
<p>This function checks whether the hardware reset is done</p>
|
|
<dl><dt><b>Parameters:</b></dt><dd>
|
|
<table border="0" cellspacing="2" cellpadding="0">
|
|
<tr><td valign="top"></td><td valign="top"><em>InstancePtr</em> </td><td>is the driver instance we are working on</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="return"><dt><b>Returns:</b></dt><dd><ul>
|
|
<li>1 if the reset has finished successfully</li>
|
|
<li>0 if the reset is not done</li>
|
|
</ul>
|
|
</dd></dl>
|
|
<dl class="note"><dt><b>Note:</b></dt><dd>None. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="a815f36efce97dba797f67f9acbbb761d"></a><!-- doxytag: member="xaxicdma.c::XAxiCdma_SelectKeyHole" ref="a815f36efce97dba797f67f9acbbb761d" args="(XAxiCdma *InstancePtr, u32 Direction, u32 Select)" -->
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int XAxiCdma_SelectKeyHole </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="struct_x_axi_cdma.html">XAxiCdma</a> * </td>
|
|
<td class="paramname"> <em>InstancePtr</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">u32 </td>
|
|
<td class="paramname"> <em>Direction</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">u32 </td>
|
|
<td class="paramname"> <em>Select</em></td><td> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="memdoc">
|
|
<p>This function configures KeyHole Write/Read Feature</p>
|
|
<dl><dt><b>Parameters:</b></dt><dd>
|
|
<table border="0" cellspacing="2" cellpadding="0">
|
|
<tr><td valign="top"></td><td valign="top"><em>InstancePtr</em> </td><td>is the driver instance we are working on</td></tr>
|
|
<tr><td valign="top"></td><td valign="top"><em>Direction</em> </td><td>is WRITE/READ Select is the option to enable (TRUE) or disable (FALSE).</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="return"><dt><b>Returns:</b></dt><dd>- XST_SUCCESS for success<ul>
|
|
<li>XST_DEVICE_BUSY when transfer is in progress</li>
|
|
<li>XST_NO_FEATURE when not configured with feature</li>
|
|
</ul>
|
|
</dd></dl>
|
|
<dl class="note"><dt><b>Note:</b></dt><dd>None. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="a91adf55050cb617cee00b0ba2f0d754e"></a><!-- doxytag: member="xaxicdma.c::XAxiCdma_SetCoalesce" ref="a91adf55050cb617cee00b0ba2f0d754e" args="(XAxiCdma *InstancePtr, u32 Counter, u32 Delay)" -->
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int XAxiCdma_SetCoalesce </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="struct_x_axi_cdma.html">XAxiCdma</a> * </td>
|
|
<td class="paramname"> <em>InstancePtr</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">u32 </td>
|
|
<td class="paramname"> <em>Counter</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">u32 </td>
|
|
<td class="paramname"> <em>Delay</em></td><td> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="memdoc">
|
|
<p>This function tries to set the interrupt coalescing threshold counter and the delay counter. If to set only one of the counters, set the value of the other counter to be XAXICDMA_COALESCE_NO_CHANGE.</p>
|
|
<dl><dt><b>Parameters:</b></dt><dd>
|
|
<table border="0" cellspacing="2" cellpadding="0">
|
|
<tr><td valign="top"></td><td valign="top"><em>InstancePtr</em> </td><td>is the driver instance we are working on </td></tr>
|
|
<tr><td valign="top"></td><td valign="top"><em>Counter</em> </td><td>is the coalescing threshold to set to, the valid range is 1 to XAXICDMA_COALESCE_MAX. </td></tr>
|
|
<tr><td valign="top"></td><td valign="top"><em>Delay</em> </td><td>is the delay timeout counter to set to, the valid range is 0 to XAXICDMA_DELAY_MAX. Setting a value of 0 disables the delay interrupt.</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="return"><dt><b>Returns:</b></dt><dd><ul>
|
|
<li>XST_SUCCESS for success</li>
|
|
<li>XST_FAILURE if hardware is in invalid state, for example, reset failed</li>
|
|
<li>XST_INVALID_PARAM if one of the counters is not in the valid range</li>
|
|
</ul>
|
|
</dd></dl>
|
|
<dl class="note"><dt><b>Note:</b></dt><dd>None. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="a888113a7abef88ef9d980f629e3d31d1"></a><!-- doxytag: member="xaxicdma.c::XAxiCdma_SimpleTransfer" ref="a888113a7abef88ef9d980f629e3d31d1" args="(XAxiCdma *InstancePtr, u32 SrcAddr, u32 DstAddr, int Length, XAxiCdma_CallBackFn SimpleCallBack, void *CallBackRef)" -->
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int XAxiCdma_SimpleTransfer </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="struct_x_axi_cdma.html">XAxiCdma</a> * </td>
|
|
<td class="paramname"> <em>InstancePtr</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">u32 </td>
|
|
<td class="paramname"> <em>SrcAddr</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">u32 </td>
|
|
<td class="paramname"> <em>DstAddr</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">int </td>
|
|
<td class="paramname"> <em>Length</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="xaxicdma_8h.html#a190041f3a52f247fbc91a93041095aac">XAxiCdma_CallBackFn</a> </td>
|
|
<td class="paramname"> <em>SimpleCallBack</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">void * </td>
|
|
<td class="paramname"> <em>CallBackRef</em></td><td> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="memdoc">
|
|
<p>This function does one simple transfer submission</p>
|
|
<p>It checks in the following sequence:</p>
|
|
<ul>
|
|
<li>if engine is busy, cannot submit</li>
|
|
<li>if software is still handling the completion of the previous simple transfer, cannot submit</li>
|
|
<li>if engine is in SG mode and cannot switch to simple mode, cannot submit</li>
|
|
</ul>
|
|
<dl><dt><b>Parameters:</b></dt><dd>
|
|
<table border="0" cellspacing="2" cellpadding="0">
|
|
<tr><td valign="top"></td><td valign="top"><em>InstancePtr</em> </td><td>is the pointer to the driver instance </td></tr>
|
|
<tr><td valign="top"></td><td valign="top"><em>SrcAddr</em> </td><td>is the address of the source buffer </td></tr>
|
|
<tr><td valign="top"></td><td valign="top"><em>DstAddr</em> </td><td>is the address of the destination buffer </td></tr>
|
|
<tr><td valign="top"></td><td valign="top"><em>Length</em> </td><td>is the length of the transfer </td></tr>
|
|
<tr><td valign="top"></td><td valign="top"><em>SimpleCallBack</em> </td><td>is the callback function for the simple transfer </td></tr>
|
|
<tr><td valign="top"></td><td valign="top"><em>CallBackRef</em> </td><td>is the callback reference pointer</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="return"><dt><b>Returns:</b></dt><dd><ul>
|
|
<li>XST_SUCCESS for success of submission</li>
|
|
<li>XST_FAILURE for submission failure, maybe caused by: Another simple transfer is still going . Another SG transfer is still going</li>
|
|
<li>XST_INVALID_PARAM if: Length out of valid range [1:8M] Or, address not aligned when DRE is not built in</li>
|
|
</ul>
|
|
</dd></dl>
|
|
<dl class="note"><dt><b>Note:</b></dt><dd>Only set the callback function if using interrupt to signal the completion.If used in polling mode, please set the callback function to be NULL. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="ad3e8a630132ac5e8e2f71589846f9411"></a><!-- doxytag: member="xaxicdma.c::XAxiCdma_SwitchMode" ref="ad3e8a630132ac5e8e2f71589846f9411" args="(XAxiCdma *InstancePtr, int Mode)" -->
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int XAxiCdma_SwitchMode </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="struct_x_axi_cdma.html">XAxiCdma</a> * </td>
|
|
<td class="paramname"> <em>InstancePtr</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">int </td>
|
|
<td class="paramname"> <em>Mode</em></td><td> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="memdoc">
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<p class="Copyright">
|
|
Copyright © 1995-2014 Xilinx, Inc. All rights reserved.
|
|
</p>
|
|
</body>
|
|
</html>
|