
This patch updates the doxygen for the drivers axivdma, can, canps ,devcfg , bram to include .h files in the listof files provided in the index.html file. Signed-off-by: Kedareswara rao Appana <appanad@xilinx.com>
1308 lines
62 KiB
HTML
Executable file
1308 lines
62 KiB
HTML
Executable file
<html>
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
|
|
<title>
|
|
Xilinx Driver axivdma v5_0: xaxivdma.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>xaxivdma.c File Reference</h1><code>#include "<a class="el" href="xaxivdma_8h.html">xaxivdma.h</a>"</code><br/>
|
|
<code>#include "<a class="el" href="xaxivdma__i_8h.html">xaxivdma_i.h</a>"</code><br/>
|
|
<table border="0" cellpadding="0" cellspacing="0">
|
|
<tr><td colspan="2"><h2>Defines</h2></td></tr>
|
|
<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="xaxivdma_8c.html#ad0c16315875917715d0a8c49b07b9688">INITIALIZATION_POLLING</a> 100000</td></tr>
|
|
<tr><td colspan="2"><h2>Functions</h2></td></tr>
|
|
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_x_axi_vdma___channel.html">XAxiVdma_Channel</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="xaxivdma_8c.html#a53d9dd2e9c6d96baa4aef6e1b46d8f0a">XAxiVdma_GetChannel</a> (<a class="el" href="struct_x_axi_vdma.html">XAxiVdma</a> *InstancePtr, u16 Direction)</td></tr>
|
|
<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="xaxivdma_8c.html#a8d11c9609cf957c560fb287af1433374">XAxiVdma_CfgInitialize</a> (<a class="el" href="struct_x_axi_vdma.html">XAxiVdma</a> *InstancePtr, <a class="el" href="struct_x_axi_vdma___config.html">XAxiVdma_Config</a> *CfgPtr, u32 EffectiveAddr)</td></tr>
|
|
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="xaxivdma_8c.html#a8dbd2faa070ca571f049e3b61f9bdb1e">XAxiVdma_Reset</a> (<a class="el" href="struct_x_axi_vdma.html">XAxiVdma</a> *InstancePtr, u16 Direction)</td></tr>
|
|
<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="xaxivdma_8c.html#a3e01bd69f101126d5962f7078ee3e520">XAxiVdma_ResetNotDone</a> (<a class="el" href="struct_x_axi_vdma.html">XAxiVdma</a> *InstancePtr, u16 Direction)</td></tr>
|
|
<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="xaxivdma_8c.html#a0fc5b39aabb8d4f56b0dd2024ea5bff2">XAxiVdma_IsBusy</a> (<a class="el" href="struct_x_axi_vdma.html">XAxiVdma</a> *InstancePtr, u16 Direction)</td></tr>
|
|
<tr><td class="memItemLeft" align="right" valign="top">u32 </td><td class="memItemRight" valign="bottom"><a class="el" href="xaxivdma_8c.html#a9769479907cda3ef95ff1ed394de4629">XAxiVdma_CurrFrameStore</a> (<a class="el" href="struct_x_axi_vdma.html">XAxiVdma</a> *InstancePtr, u16 Direction)</td></tr>
|
|
<tr><td class="memItemLeft" align="right" valign="top">u32 </td><td class="memItemRight" valign="bottom"><a class="el" href="xaxivdma_8c.html#a24f182cf8678e4df6e0e2b19e2f50620">XAxiVdma_GetVersion</a> (<a class="el" href="struct_x_axi_vdma.html">XAxiVdma</a> *InstancePtr)</td></tr>
|
|
<tr><td class="memItemLeft" align="right" valign="top">u32 </td><td class="memItemRight" valign="bottom"><a class="el" href="xaxivdma_8c.html#a15653f0679e3a33efd384598b6c42e08">XAxiVdma_GetStatus</a> (<a class="el" href="struct_x_axi_vdma.html">XAxiVdma</a> *InstancePtr, u16 Direction)</td></tr>
|
|
<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="xaxivdma_8c.html#a741b4b1607c2ee71a3be16ddd8300656">XAxiVdma_SetLineBufThreshold</a> (<a class="el" href="struct_x_axi_vdma.html">XAxiVdma</a> *InstancePtr, int LineBufThreshold, u16 Direction)</td></tr>
|
|
<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="xaxivdma_8c.html#aa3376589f8781eec1f0d619e1a0d3078">XAxiVdma_FsyncSrcSelect</a> (<a class="el" href="struct_x_axi_vdma.html">XAxiVdma</a> *InstancePtr, u32 Source, u16 Direction)</td></tr>
|
|
<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="xaxivdma_8c.html#acf7ed6b0ef406b80e49ff25634f6d5f1">XAxiVdma_GenLockSourceSelect</a> (<a class="el" href="struct_x_axi_vdma.html">XAxiVdma</a> *InstancePtr, u32 Source, u16 Direction)</td></tr>
|
|
<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="xaxivdma_8c.html#af99dd7738b98367397831df26433843a">XAxiVdma_StartParking</a> (<a class="el" href="struct_x_axi_vdma.html">XAxiVdma</a> *InstancePtr, int FrameIndex, u16 Direction)</td></tr>
|
|
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="xaxivdma_8c.html#a8625bbc0ed0ab829f3153160c74bba44">XAxiVdma_StopParking</a> (<a class="el" href="struct_x_axi_vdma.html">XAxiVdma</a> *InstancePtr, u16 Direction)</td></tr>
|
|
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="xaxivdma_8c.html#a4f05c5a75fdf840517c17d687443510d">XAxiVdma_StartFrmCntEnable</a> (<a class="el" href="struct_x_axi_vdma.html">XAxiVdma</a> *InstancePtr, u16 Direction)</td></tr>
|
|
<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="xaxivdma_8c.html#ab14c0b0487aeb3347b289eb58453e75d">XAxiVdma_SetBdAddrs</a> (<a class="el" href="struct_x_axi_vdma.html">XAxiVdma</a> *InstancePtr, u32 BdAddrPhys, u32 BdAddrVirt, int NumBds, u16 Direction)</td></tr>
|
|
<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="xaxivdma_8c.html#a1dc126d885558e03cf06a4d9c05d5668">XAxiVdma_StartWriteFrame</a> (<a class="el" href="struct_x_axi_vdma.html">XAxiVdma</a> *InstancePtr, <a class="el" href="struct_x_axi_vdma___dma_setup.html">XAxiVdma_DmaSetup</a> *DmaConfigPtr)</td></tr>
|
|
<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="xaxivdma_8c.html#ab2646b6aeea2ff64c4b42319ffb49804">XAxiVdma_StartReadFrame</a> (<a class="el" href="struct_x_axi_vdma.html">XAxiVdma</a> *InstancePtr, <a class="el" href="struct_x_axi_vdma___dma_setup.html">XAxiVdma_DmaSetup</a> *DmaConfigPtr)</td></tr>
|
|
<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="xaxivdma_8c.html#a3c50e96d431d9f1ee7d6200266c0dbd3">XAxiVdma_DmaConfig</a> (<a class="el" href="struct_x_axi_vdma.html">XAxiVdma</a> *InstancePtr, u16 Direction, <a class="el" href="struct_x_axi_vdma___dma_setup.html">XAxiVdma_DmaSetup</a> *DmaConfigPtr)</td></tr>
|
|
<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="xaxivdma_8c.html#af610e3b2bee38be4c0da65ead756fbcd">XAxiVdma_DmaSetBufferAddr</a> (<a class="el" href="struct_x_axi_vdma.html">XAxiVdma</a> *InstancePtr, u16 Direction, u32 *BufferAddrSet)</td></tr>
|
|
<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="xaxivdma_8c.html#adf310ae3bd4c0ae9ebf3e445a2fbe444">XAxiVdma_DmaStart</a> (<a class="el" href="struct_x_axi_vdma.html">XAxiVdma</a> *InstancePtr, u16 Direction)</td></tr>
|
|
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="xaxivdma_8c.html#a133b5fd1032db27366382885d6d76484">XAxiVdma_DmaStop</a> (<a class="el" href="struct_x_axi_vdma.html">XAxiVdma</a> *InstancePtr, u16 Direction)</td></tr>
|
|
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="xaxivdma_8c.html#ab51f0d1f195db6af2dd3023e5c80eb5c">XAxiVdma_DmaRegisterDump</a> (<a class="el" href="struct_x_axi_vdma.html">XAxiVdma</a> *InstancePtr, u16 Direction)</td></tr>
|
|
<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="xaxivdma_8c.html#aabe404c2a5c1483bc95be749c7540ba4">XAxiVdma_SetFrameCounter</a> (<a class="el" href="struct_x_axi_vdma.html">XAxiVdma</a> *InstancePtr, <a class="el" href="struct_x_axi_vdma___frame_counter.html">XAxiVdma_FrameCounter</a> *CfgPtr)</td></tr>
|
|
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="xaxivdma_8c.html#abb2cecf1628ce8f7b42ffca3608bdf70">XAxiVdma_GetFrameCounter</a> (<a class="el" href="struct_x_axi_vdma.html">XAxiVdma</a> *InstancePtr, <a class="el" href="struct_x_axi_vdma___frame_counter.html">XAxiVdma_FrameCounter</a> *CfgPtr)</td></tr>
|
|
<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="xaxivdma_8c.html#af331929e09bf1454dc2835b6ecc4ff30">XAxiVdma_SetFrmStore</a> (<a class="el" href="struct_x_axi_vdma.html">XAxiVdma</a> *InstancePtr, u8 FrmStoreNum, u16 Direction)</td></tr>
|
|
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="xaxivdma_8c.html#a83d55bee4a575b0fdd98d1013a26533e">XAxiVdma_GetFrmStore</a> (<a class="el" href="struct_x_axi_vdma.html">XAxiVdma</a> *InstancePtr, u8 *FrmStoreNum, u16 Direction)</td></tr>
|
|
<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="xaxivdma_8c.html#a4d93d3dea2f117948c175371d983a0e1">XAxiVdma_GetDmaChannelErrors</a> (<a class="el" href="struct_x_axi_vdma.html">XAxiVdma</a> *InstancePtr, u16 Direction)</td></tr>
|
|
<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="xaxivdma_8c.html#ac01b1199d15a3a95cafb01f61dd1d0d3">XAxiVdma_ClearDmaChannelErrors</a> (<a class="el" href="struct_x_axi_vdma.html">XAxiVdma</a> *InstancePtr, u16 Direction, u32 ErrorMask)</td></tr>
|
|
</table>
|
|
<hr/><a name="_details"></a><h2>Detailed Description</h2>
|
|
<p>Implementation of the driver API functions for the AXI Video DMA engine.</p>
|
|
<pre>
|
|
MODIFICATION HISTORY:</pre><pre> Ver Who Date Changes
|
|
----- ---- -------- -------------------------------------------------------
|
|
1.00a jz 08/16/10 First release
|
|
2.00a jz 12/10/10 Added support for direct register access mode, v3 core
|
|
2.01a jz 01/19/11 Added ability to re-assign BD addresses
|
|
rkv 03/28/11 Added support for frame store register.
|
|
3.00a srt 08/26/11 Added support for Flush on Frame Sync and dynamic
|
|
programming of Line Buffer Thresholds and added API
|
|
XAxiVdma_SetLineBufThreshold.
|
|
4.00a srt 11/21/11 - XAxiVdma_CfgInitialize API is modified to use the
|
|
EffectiveAddr.</p>
|
|
<ul>
|
|
<li>Added APIs:
|
|
<a class="el" href="xaxivdma_8c.html#aa3376589f8781eec1f0d619e1a0d3078">XAxiVdma_FsyncSrcSelect()</a>
|
|
<a class="el" href="xaxivdma_8c.html#acf7ed6b0ef406b80e49ff25634f6d5f1">XAxiVdma_GenLockSourceSelect()</a>
|
|
4.01a srt 06/13/12 - Added APIs:
|
|
<a class="el" href="xaxivdma_8c.html#a4d93d3dea2f117948c175371d983a0e1">XAxiVdma_GetDmaChannelErrors()</a>
|
|
<a class="el" href="xaxivdma_8c.html#ac01b1199d15a3a95cafb01f61dd1d0d3">XAxiVdma_ClearDmaChannelErrors()</a>
|
|
4.02a srt 09/25/12 - Fixed CR 678734
|
|
XAxiVdma_SetFrmStore function changed to remove
|
|
Reset logic after setting number of frame stores.
|
|
4.03a srt 01/18/13 - Updated logic of GenLockSourceSelect() & FsyncSrcSelect()
|
|
APIs for newer versions of IP (CR: 691052).</li>
|
|
<li>Modified CfgInitialize() API to initialize
|
|
StreamWidth parameters. (CR 691866)
|
|
4.04a srt 03/03/13 - Support for *_ENABLE_DEBUG_INFO_* debug configuration
|
|
parameters (CR: 703738)</li>
|
|
</ul>
|
|
</pre><pre> </pre> <hr/><h2>Define Documentation</h2>
|
|
<a class="anchor" id="ad0c16315875917715d0a8c49b07b9688"></a><!-- doxytag: member="xaxivdma.c::INITIALIZATION_POLLING" ref="ad0c16315875917715d0a8c49b07b9688" args="" -->
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">#define INITIALIZATION_POLLING 100000</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="memdoc">
|
|
|
|
</div>
|
|
</div>
|
|
<hr/><h2>Function Documentation</h2>
|
|
<a class="anchor" id="a8d11c9609cf957c560fb287af1433374"></a><!-- doxytag: member="xaxivdma.c::XAxiVdma_CfgInitialize" ref="a8d11c9609cf957c560fb287af1433374" args="(XAxiVdma *InstancePtr, XAxiVdma_Config *CfgPtr, u32 EffectiveAddr)" -->
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int XAxiVdma_CfgInitialize </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="struct_x_axi_vdma.html">XAxiVdma</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_vdma___config.html">XAxiVdma_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>Initialize the driver with hardware configuration</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 pointer to the DMA engine to work 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 map for the device</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="return"><dt><b>Returns:</b></dt><dd><ul>
|
|
<li>XST_SUCCESS if everything goes fine</li>
|
|
<li>XST_FAILURE if reset the hardware failed, need system reset to recover</li>
|
|
</ul>
|
|
</dd></dl>
|
|
<dl class="note"><dt><b>Note:</b></dt><dd>If channel fails reset, then it will be set as invalid </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="ac01b1199d15a3a95cafb01f61dd1d0d3"></a><!-- doxytag: member="xaxivdma.c::XAxiVdma_ClearDmaChannelErrors" ref="ac01b1199d15a3a95cafb01f61dd1d0d3" args="(XAxiVdma *InstancePtr, u16 Direction, u32 ErrorMask)" -->
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int XAxiVdma_ClearDmaChannelErrors </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="struct_x_axi_vdma.html">XAxiVdma</a> * </td>
|
|
<td class="paramname"> <em>InstancePtr</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">u16 </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>ErrorMask</em></td><td> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="memdoc">
|
|
<p>Clear DMA Channel Errors.</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 <a class="el" href="struct_x_axi_vdma.html">XAxiVdma</a> instance to operate on </td></tr>
|
|
<tr><td valign="top"></td><td valign="top"><em>Direction</em> </td><td>is the channel to work on, use XAXIVDMA_READ/WRITE </td></tr>
|
|
<tr><td valign="top"></td><td valign="top"><em>ErrorMask</em> </td><td>is the mask of error bits to clear</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="return"><dt><b>Returns:</b></dt><dd>- XST_SUCCESS, when error bits are cleared.<ul>
|
|
<li>XST_INVALID_PARAM, when channel pointer is invalid.</li>
|
|
<li>XST_DEVICE_NOT_FOUND, when the channel is not valid.</li>
|
|
</ul>
|
|
</dd></dl>
|
|
<dl class="note"><dt><b>Note:</b></dt><dd>None </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="a9769479907cda3ef95ff1ed394de4629"></a><!-- doxytag: member="xaxivdma.c::XAxiVdma_CurrFrameStore" ref="a9769479907cda3ef95ff1ed394de4629" args="(XAxiVdma *InstancePtr, u16 Direction)" -->
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">u32 XAxiVdma_CurrFrameStore </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="struct_x_axi_vdma.html">XAxiVdma</a> * </td>
|
|
<td class="paramname"> <em>InstancePtr</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">u16 </td>
|
|
<td class="paramname"> <em>Direction</em></td><td> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="memdoc">
|
|
<p>Get the current frame that hardware is working on</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 pointer to the DMA engine to work on </td></tr>
|
|
<tr><td valign="top"></td><td valign="top"><em>Direction</em> </td><td>is the channel to work on, use XAXIVDMA_READ/WRITE</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="return"><dt><b>Returns:</b></dt><dd>The current frame that the hardware is working on</dd></dl>
|
|
<dl class="note"><dt><b>Note:</b></dt><dd>If returned frame number is out of range, then the channel is invalid </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="a3c50e96d431d9f1ee7d6200266c0dbd3"></a><!-- doxytag: member="xaxivdma.c::XAxiVdma_DmaConfig" ref="a3c50e96d431d9f1ee7d6200266c0dbd3" args="(XAxiVdma *InstancePtr, u16 Direction, XAxiVdma_DmaSetup *DmaConfigPtr)" -->
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int XAxiVdma_DmaConfig </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="struct_x_axi_vdma.html">XAxiVdma</a> * </td>
|
|
<td class="paramname"> <em>InstancePtr</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">u16 </td>
|
|
<td class="paramname"> <em>Direction</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="struct_x_axi_vdma___dma_setup.html">XAxiVdma_DmaSetup</a> * </td>
|
|
<td class="paramname"> <em>DmaConfigPtr</em></td><td> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="memdoc">
|
|
<p>Configure one DMA channel using the configuration structure</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 pointer to the DMA engine to work on </td></tr>
|
|
<tr><td valign="top"></td><td valign="top"><em>Direction</em> </td><td>is the DMA channel to work on </td></tr>
|
|
<tr><td valign="top"></td><td valign="top"><em>DmaConfigPtr</em> </td><td>is the pointer to the setup structure</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="return"><dt><b>Returns:</b></dt><dd><ul>
|
|
<li>XST_SUCCESS if successful</li>
|
|
<li>XST_DEVICE_BUSY if the DMA channel is not idle, BDs are still being used</li>
|
|
<li>XST_INVAID_PARAM if buffer address not valid, for example, unaligned address with no DRE built in the hardware, or Direction invalid</li>
|
|
<li>XST_DEVICE_NOT_FOUND if the channel is invalid </li>
|
|
</ul>
|
|
</dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="ab51f0d1f195db6af2dd3023e5c80eb5c"></a><!-- doxytag: member="xaxivdma.c::XAxiVdma_DmaRegisterDump" ref="ab51f0d1f195db6af2dd3023e5c80eb5c" args="(XAxiVdma *InstancePtr, u16 Direction)" -->
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void XAxiVdma_DmaRegisterDump </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="struct_x_axi_vdma.html">XAxiVdma</a> * </td>
|
|
<td class="paramname"> <em>InstancePtr</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">u16 </td>
|
|
<td class="paramname"> <em>Direction</em></td><td> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="memdoc">
|
|
<p>Dump registers of one DMA channel</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 pointer to the DMA engine to work on </td></tr>
|
|
<tr><td valign="top"></td><td valign="top"><em>Direction</em> </td><td>is the DMA channel to work 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>If channel is invalid, then do nothing on that channel </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="af610e3b2bee38be4c0da65ead756fbcd"></a><!-- doxytag: member="xaxivdma.c::XAxiVdma_DmaSetBufferAddr" ref="af610e3b2bee38be4c0da65ead756fbcd" args="(XAxiVdma *InstancePtr, u16 Direction, u32 *BufferAddrSet)" -->
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int XAxiVdma_DmaSetBufferAddr </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="struct_x_axi_vdma.html">XAxiVdma</a> * </td>
|
|
<td class="paramname"> <em>InstancePtr</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">u16 </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>BufferAddrSet</em></td><td> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="memdoc">
|
|
<p>Configure buffer addresses for one DMA channel</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 pointer to the DMA engine to work on </td></tr>
|
|
<tr><td valign="top"></td><td valign="top"><em>Direction</em> </td><td>is the DMA channel to work on </td></tr>
|
|
<tr><td valign="top"></td><td valign="top"><em>BufferAddrSet</em> </td><td>is the set of addresses for the transfers</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="return"><dt><b>Returns:</b></dt><dd><ul>
|
|
<li>XST_SUCCESS if successful</li>
|
|
<li>XST_DEVICE_BUSY if the DMA channel is not idle, BDs are still being used</li>
|
|
<li>XST_INVAID_PARAM if buffer address not valid, for example, unaligned address with no DRE built in the hardware, or Direction invalid</li>
|
|
<li>XST_DEVICE_NOT_FOUND if the channel is invalid </li>
|
|
</ul>
|
|
</dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="adf310ae3bd4c0ae9ebf3e445a2fbe444"></a><!-- doxytag: member="xaxivdma.c::XAxiVdma_DmaStart" ref="adf310ae3bd4c0ae9ebf3e445a2fbe444" args="(XAxiVdma *InstancePtr, u16 Direction)" -->
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int XAxiVdma_DmaStart </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="struct_x_axi_vdma.html">XAxiVdma</a> * </td>
|
|
<td class="paramname"> <em>InstancePtr</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">u16 </td>
|
|
<td class="paramname"> <em>Direction</em></td><td> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="memdoc">
|
|
<p>Start one DMA channel</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 pointer to the DMA engine to work on </td></tr>
|
|
<tr><td valign="top"></td><td valign="top"><em>Direction</em> </td><td>is the DMA channel to work on</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="return"><dt><b>Returns:</b></dt><dd><ul>
|
|
<li>XST_SUCCESS if channel started successfully</li>
|
|
<li>XST_FAILURE otherwise</li>
|
|
<li>XST_DEVICE_NOT_FOUND if the channel is invalid</li>
|
|
<li>XST_INVALID_PARAM if Direction invalid </li>
|
|
</ul>
|
|
</dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="a133b5fd1032db27366382885d6d76484"></a><!-- doxytag: member="xaxivdma.c::XAxiVdma_DmaStop" ref="a133b5fd1032db27366382885d6d76484" args="(XAxiVdma *InstancePtr, u16 Direction)" -->
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void XAxiVdma_DmaStop </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="struct_x_axi_vdma.html">XAxiVdma</a> * </td>
|
|
<td class="paramname"> <em>InstancePtr</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">u16 </td>
|
|
<td class="paramname"> <em>Direction</em></td><td> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="memdoc">
|
|
<p>Stop one DMA channel</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 pointer to the DMA engine to work on </td></tr>
|
|
<tr><td valign="top"></td><td valign="top"><em>Direction</em> </td><td>is the DMA channel to work 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>If channel is invalid, then do nothing on that channel </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="aa3376589f8781eec1f0d619e1a0d3078"></a><!-- doxytag: member="xaxivdma.c::XAxiVdma_FsyncSrcSelect" ref="aa3376589f8781eec1f0d619e1a0d3078" args="(XAxiVdma *InstancePtr, u32 Source, u16 Direction)" -->
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int XAxiVdma_FsyncSrcSelect </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="struct_x_axi_vdma.html">XAxiVdma</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>Source</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">u16 </td>
|
|
<td class="paramname"> <em>Direction</em></td><td> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="memdoc">
|
|
<p>Configure Frame Sync Source and valid only when C_USE_FSYNC is enabled.</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 pointer to the DMA engine to work on </td></tr>
|
|
<tr><td valign="top"></td><td valign="top"><em>Source</em> </td><td>is the value to set the source of Frame Sync </td></tr>
|
|
<tr><td valign="top"></td><td valign="top"><em>Direction</em> </td><td>is the DMA channel to work on</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="return"><dt><b>Returns:</b></dt><dd><ul>
|
|
<li>XST_SUCCESS if successful</li>
|
|
<li>XST_FAILURE if C_USE_FSYNC is disabled. </li>
|
|
</ul>
|
|
</dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="acf7ed6b0ef406b80e49ff25634f6d5f1"></a><!-- doxytag: member="xaxivdma.c::XAxiVdma_GenLockSourceSelect" ref="acf7ed6b0ef406b80e49ff25634f6d5f1" args="(XAxiVdma *InstancePtr, u32 Source, u16 Direction)" -->
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int XAxiVdma_GenLockSourceSelect </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="struct_x_axi_vdma.html">XAxiVdma</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>Source</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">u16 </td>
|
|
<td class="paramname"> <em>Direction</em></td><td> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="memdoc">
|
|
<p>Configure Gen Lock Source</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 pointer to the DMA engine to work on </td></tr>
|
|
<tr><td valign="top"></td><td valign="top"><em>Source</em> </td><td>is the value to set the source of Gen Lock </td></tr>
|
|
<tr><td valign="top"></td><td valign="top"><em>Direction</em> </td><td>is the DMA channel to work on</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="return"><dt><b>Returns:</b></dt><dd><ul>
|
|
<li>XST_SUCCESS if successful</li>
|
|
<li>XST_FAILURE if the channel is in GenLock Master Mode. if C_INCLUDE_INTERNAL_GENLOCK is disabled. </li>
|
|
</ul>
|
|
</dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="a53d9dd2e9c6d96baa4aef6e1b46d8f0a"></a><!-- doxytag: member="xaxivdma.c::XAxiVdma_GetChannel" ref="a53d9dd2e9c6d96baa4aef6e1b46d8f0a" args="(XAxiVdma *InstancePtr, u16 Direction)" -->
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="struct_x_axi_vdma___channel.html">XAxiVdma_Channel</a>* XAxiVdma_GetChannel </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="struct_x_axi_vdma.html">XAxiVdma</a> * </td>
|
|
<td class="paramname"> <em>InstancePtr</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">u16 </td>
|
|
<td class="paramname"> <em>Direction</em></td><td> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="memdoc">
|
|
<p>Get a channel</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 DMA engine to work on </td></tr>
|
|
<tr><td valign="top"></td><td valign="top"><em>Direction</em> </td><td>is the direction for the channel to get</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="return"><dt><b>Returns:</b></dt><dd>The pointer to the channel. Upon error, return NULL.</dd></dl>
|
|
<dl class="note"><dt><b>Note:</b></dt><dd>Since this function is internally used, we assume Direction is valid </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="a4d93d3dea2f117948c175371d983a0e1"></a><!-- doxytag: member="xaxivdma.c::XAxiVdma_GetDmaChannelErrors" ref="a4d93d3dea2f117948c175371d983a0e1" args="(XAxiVdma *InstancePtr, u16 Direction)" -->
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int XAxiVdma_GetDmaChannelErrors </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="struct_x_axi_vdma.html">XAxiVdma</a> * </td>
|
|
<td class="paramname"> <em>InstancePtr</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">u16 </td>
|
|
<td class="paramname"> <em>Direction</em></td><td> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="memdoc">
|
|
<p>Check for DMA Channel Errors.</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 <a class="el" href="struct_x_axi_vdma.html">XAxiVdma</a> instance to operate on </td></tr>
|
|
<tr><td valign="top"></td><td valign="top"><em>Direction</em> </td><td>is the channel to work on, use XAXIVDMA_READ/WRITE</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="return"><dt><b>Returns:</b></dt><dd>- Errors seen on the channel<ul>
|
|
<li>XST_INVALID_PARAM, when channel pointer is invalid.</li>
|
|
<li>XST_DEVICE_NOT_FOUND, when the channel is not valid.</li>
|
|
</ul>
|
|
</dd></dl>
|
|
<dl class="note"><dt><b>Note:</b></dt><dd>None </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="abb2cecf1628ce8f7b42ffca3608bdf70"></a><!-- doxytag: member="xaxivdma.c::XAxiVdma_GetFrameCounter" ref="abb2cecf1628ce8f7b42ffca3608bdf70" args="(XAxiVdma *InstancePtr, XAxiVdma_FrameCounter *CfgPtr)" -->
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void XAxiVdma_GetFrameCounter </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="struct_x_axi_vdma.html">XAxiVdma</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_vdma___frame_counter.html">XAxiVdma_FrameCounter</a> * </td>
|
|
<td class="paramname"> <em>CfgPtr</em></td><td> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="memdoc">
|
|
<p>Get the frame counter and delay counter for both channels</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 pointer to the DMA engine to work on </td></tr>
|
|
<tr><td valign="top"></td><td valign="top"><em>CfgPtr</em> </td><td>is the configuration structure to contain return values</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>If returned frame counter value is 0, then the channel is not valid </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="a83d55bee4a575b0fdd98d1013a26533e"></a><!-- doxytag: member="xaxivdma.c::XAxiVdma_GetFrmStore" ref="a83d55bee4a575b0fdd98d1013a26533e" args="(XAxiVdma *InstancePtr, u8 *FrmStoreNum, u16 Direction)" -->
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void XAxiVdma_GetFrmStore </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="struct_x_axi_vdma.html">XAxiVdma</a> * </td>
|
|
<td class="paramname"> <em>InstancePtr</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">u8 * </td>
|
|
<td class="paramname"> <em>FrmStoreNum</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">u16 </td>
|
|
<td class="paramname"> <em>Direction</em></td><td> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="memdoc">
|
|
<p>Get the number of frame store buffers to use.</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 <a class="el" href="struct_x_axi_vdma.html">XAxiVdma</a> instance to operate on </td></tr>
|
|
<tr><td valign="top"></td><td valign="top"><em>FrmStoreNum</em> </td><td>is the number of frame store buffers to use. </td></tr>
|
|
<tr><td valign="top"></td><td valign="top"><em>Direction</em> </td><td>is the channel to work on, use XAXIVDMA_READ/WRITE</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="a15653f0679e3a33efd384598b6c42e08"></a><!-- doxytag: member="xaxivdma.c::XAxiVdma_GetStatus" ref="a15653f0679e3a33efd384598b6c42e08" args="(XAxiVdma *InstancePtr, u16 Direction)" -->
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">u32 XAxiVdma_GetStatus </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="struct_x_axi_vdma.html">XAxiVdma</a> * </td>
|
|
<td class="paramname"> <em>InstancePtr</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">u16 </td>
|
|
<td class="paramname"> <em>Direction</em></td><td> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="memdoc">
|
|
<p>Get the status of a channel</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 pointer to the DMA engine to work on </td></tr>
|
|
<tr><td valign="top"></td><td valign="top"><em>Direction</em> </td><td>is the channel to work on, use XAXIVDMA_READ/WRITE</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="return"><dt><b>Returns:</b></dt><dd>The status of the channel</dd></dl>
|
|
<dl class="note"><dt><b>Note:</b></dt><dd>An invalid return value indicates that channel is invalid </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="a24f182cf8678e4df6e0e2b19e2f50620"></a><!-- doxytag: member="xaxivdma.c::XAxiVdma_GetVersion" ref="a24f182cf8678e4df6e0e2b19e2f50620" args="(XAxiVdma *InstancePtr)" -->
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">u32 XAxiVdma_GetVersion </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="struct_x_axi_vdma.html">XAxiVdma</a> * </td>
|
|
<td class="paramname"> <em>InstancePtr</em></td>
|
|
<td> ) </td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="memdoc">
|
|
<p>Get the version of 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 pointer to the DMA engine to work on</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="return"><dt><b>Returns:</b></dt><dd>The version of the hardware </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="a0fc5b39aabb8d4f56b0dd2024ea5bff2"></a><!-- doxytag: member="xaxivdma.c::XAxiVdma_IsBusy" ref="a0fc5b39aabb8d4f56b0dd2024ea5bff2" args="(XAxiVdma *InstancePtr, u16 Direction)" -->
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int XAxiVdma_IsBusy </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="struct_x_axi_vdma.html">XAxiVdma</a> * </td>
|
|
<td class="paramname"> <em>InstancePtr</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">u16 </td>
|
|
<td class="paramname"> <em>Direction</em></td><td> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="memdoc">
|
|
<p>Check whether a DMA channel is busy</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 pointer to the DMA engine to work on </td></tr>
|
|
<tr><td valign="top"></td><td valign="top"><em>Direction</em> </td><td>is the channel to work on, use XAXIVDMA_READ/WRITE</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="return"><dt><b>Returns:</b></dt><dd><ul>
|
|
<li>Non-zero if the channel is busy</li>
|
|
<li>Zero if the channel is idle </li>
|
|
</ul>
|
|
</dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="a8dbd2faa070ca571f049e3b61f9bdb1e"></a><!-- doxytag: member="xaxivdma.c::XAxiVdma_Reset" ref="a8dbd2faa070ca571f049e3b61f9bdb1e" args="(XAxiVdma *InstancePtr, u16 Direction)" -->
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void XAxiVdma_Reset </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="struct_x_axi_vdma.html">XAxiVdma</a> * </td>
|
|
<td class="paramname"> <em>InstancePtr</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">u16 </td>
|
|
<td class="paramname"> <em>Direction</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 resets one DMA channel</p>
|
|
<p>The registers will be default values after the reset</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 pointer to the DMA engine to work on </td></tr>
|
|
<tr><td valign="top"></td><td valign="top"><em>Direction</em> </td><td>is the channel to work on, use XAXIVDMA_READ/WRITE</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>Due to undeterminism of system delays, check the reset status through <a class="el" href="xaxivdma_8c.html#a3e01bd69f101126d5962f7078ee3e520">XAxiVdma_ResetNotDone()</a>. If direction is invalid, do nothing. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="a3e01bd69f101126d5962f7078ee3e520"></a><!-- doxytag: member="xaxivdma.c::XAxiVdma_ResetNotDone" ref="a3e01bd69f101126d5962f7078ee3e520" args="(XAxiVdma *InstancePtr, u16 Direction)" -->
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int XAxiVdma_ResetNotDone </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="struct_x_axi_vdma.html">XAxiVdma</a> * </td>
|
|
<td class="paramname"> <em>InstancePtr</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">u16 </td>
|
|
<td class="paramname"> <em>Direction</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 checks one DMA channel for reset completion</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 pointer to the DMA engine to work on </td></tr>
|
|
<tr><td valign="top"></td><td valign="top"><em>Direction</em> </td><td>is the channel to work on, use XAXIVDMA_READ/WRITE</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="return"><dt><b>Returns:</b></dt><dd><ul>
|
|
<li>0 if reset is done</li>
|
|
<li>1 if reset is ongoing</li>
|
|
</ul>
|
|
</dd></dl>
|
|
<dl class="note"><dt><b>Note:</b></dt><dd>We do not check for channel validity, because channel is marked as invalid before reset is done </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="ab14c0b0487aeb3347b289eb58453e75d"></a><!-- doxytag: member="xaxivdma.c::XAxiVdma_SetBdAddrs" ref="ab14c0b0487aeb3347b289eb58453e75d" args="(XAxiVdma *InstancePtr, u32 BdAddrPhys, u32 BdAddrVirt, int NumBds, u16 Direction)" -->
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int XAxiVdma_SetBdAddrs </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="struct_x_axi_vdma.html">XAxiVdma</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>BdAddrPhys</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">u32 </td>
|
|
<td class="paramname"> <em>BdAddrVirt</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">int </td>
|
|
<td class="paramname"> <em>NumBds</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">u16 </td>
|
|
<td class="paramname"> <em>Direction</em></td><td> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="memdoc">
|
|
<p>Set BD addresses to be different.</p>
|
|
<p>In some systems, it is convenient to put BDs into a certain region of the memory. This function enables that.</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 pointer to the DMA engine to work on </td></tr>
|
|
<tr><td valign="top"></td><td valign="top"><em>BdAddrPhys</em> </td><td>is the physical starting address for BDs </td></tr>
|
|
<tr><td valign="top"></td><td valign="top"><em>BdAddrVirt</em> </td><td>is the Virtual starting address for BDs. For systems that do not use MMU, then virtual address is the same as physical address </td></tr>
|
|
<tr><td valign="top"></td><td valign="top"><em>NumBds</em> </td><td>is the number of BDs to setup with. This is required to be the same as the number of frame stores for that channel </td></tr>
|
|
<tr><td valign="top"></td><td valign="top"><em>Direction</em> </td><td>is the channel direction</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="return"><dt><b>Returns:</b></dt><dd><ul>
|
|
<li>XST_SUCCESS for a successful setup</li>
|
|
<li>XST_DEVICE_BUSY if the DMA channel is not idle, BDs are still being used</li>
|
|
<li>XST_INVALID_PARAM if parameters not valid</li>
|
|
<li>XST_DEVICE_NOT_FOUND if the channel is invalid</li>
|
|
</ul>
|
|
</dd></dl>
|
|
<p>We assume that the memory region starting from BdAddrPhys and BdAddrVirt are large enough to hold all the BDs. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="aabe404c2a5c1483bc95be749c7540ba4"></a><!-- doxytag: member="xaxivdma.c::XAxiVdma_SetFrameCounter" ref="aabe404c2a5c1483bc95be749c7540ba4" args="(XAxiVdma *InstancePtr, XAxiVdma_FrameCounter *CfgPtr)" -->
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int XAxiVdma_SetFrameCounter </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="struct_x_axi_vdma.html">XAxiVdma</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_vdma___frame_counter.html">XAxiVdma_FrameCounter</a> * </td>
|
|
<td class="paramname"> <em>CfgPtr</em></td><td> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="memdoc">
|
|
<p>Set the frame counter and delay counter for both channels</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 pointer to the DMA engine to work on </td></tr>
|
|
<tr><td valign="top"></td><td valign="top"><em>CfgPtr</em> </td><td>is the pointer to the configuration structure</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="return"><dt><b>Returns:</b></dt><dd><ul>
|
|
<li>XST_SUCCESS if setup finishes successfully</li>
|
|
<li>XST_INVALID_PARAM if the configuration structure has invalid values</li>
|
|
<li>Others if setting channel frame counter fails</li>
|
|
</ul>
|
|
</dd></dl>
|
|
<dl class="note"><dt><b>Note:</b></dt><dd>If channel is invalid, then do nothing on that channel </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="af331929e09bf1454dc2835b6ecc4ff30"></a><!-- doxytag: member="xaxivdma.c::XAxiVdma_SetFrmStore" ref="af331929e09bf1454dc2835b6ecc4ff30" args="(XAxiVdma *InstancePtr, u8 FrmStoreNum, u16 Direction)" -->
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int XAxiVdma_SetFrmStore </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="struct_x_axi_vdma.html">XAxiVdma</a> * </td>
|
|
<td class="paramname"> <em>InstancePtr</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">u8 </td>
|
|
<td class="paramname"> <em>FrmStoreNum</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">u16 </td>
|
|
<td class="paramname"> <em>Direction</em></td><td> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="memdoc">
|
|
<p>Set the number of frame store buffers to use.</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 <a class="el" href="struct_x_axi_vdma.html">XAxiVdma</a> instance to operate on </td></tr>
|
|
<tr><td valign="top"></td><td valign="top"><em>FrmStoreNum</em> </td><td>is the number of frame store buffers to use. </td></tr>
|
|
<tr><td valign="top"></td><td valign="top"><em>Direction</em> </td><td>is the channel to work on, use XAXIVDMA_READ/WRITE</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="return"><dt><b>Returns:</b></dt><dd>- XST_SUCCESS if operation is successful<ul>
|
|
<li>XST_FAILURE if operation fails.</li>
|
|
<li>XST_NO_FEATURE if access to FrameStore register is disabled </li>
|
|
</ul>
|
|
</dd></dl>
|
|
<dl class="note"><dt><b>Note:</b></dt><dd>None </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="a741b4b1607c2ee71a3be16ddd8300656"></a><!-- doxytag: member="xaxivdma.c::XAxiVdma_SetLineBufThreshold" ref="a741b4b1607c2ee71a3be16ddd8300656" args="(XAxiVdma *InstancePtr, int LineBufThreshold, u16 Direction)" -->
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int XAxiVdma_SetLineBufThreshold </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="struct_x_axi_vdma.html">XAxiVdma</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>LineBufThreshold</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">u16 </td>
|
|
<td class="paramname"> <em>Direction</em></td><td> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="memdoc">
|
|
<p>Configure Line Buffer Threshold</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 pointer to the DMA engine to work on </td></tr>
|
|
<tr><td valign="top"></td><td valign="top"><em>LineBufThreshold</em> </td><td>is the value to set threshold </td></tr>
|
|
<tr><td valign="top"></td><td valign="top"><em>Direction</em> </td><td>is the DMA channel to work on</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="return"><dt><b>Returns:</b></dt><dd><ul>
|
|
<li>XST_SUCCESS if successful</li>
|
|
<li>XST_FAILURE otherwise</li>
|
|
<li>XST_NO_FEATURE if access to Threshold register is disabled </li>
|
|
</ul>
|
|
</dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="a4f05c5a75fdf840517c17d687443510d"></a><!-- doxytag: member="xaxivdma.c::XAxiVdma_StartFrmCntEnable" ref="a4f05c5a75fdf840517c17d687443510d" args="(XAxiVdma *InstancePtr, u16 Direction)" -->
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void XAxiVdma_StartFrmCntEnable </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="struct_x_axi_vdma.html">XAxiVdma</a> * </td>
|
|
<td class="paramname"> <em>InstancePtr</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">u16 </td>
|
|
<td class="paramname"> <em>Direction</em></td><td> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="memdoc">
|
|
<p>Start frame count enable on one channel</p>
|
|
<p>This is needed to start limiting the number of frames to transfer so that software can check the data etc after hardware stops 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 pointer to the DMA engine to work on </td></tr>
|
|
<tr><td valign="top"></td><td valign="top"><em>Direction</em> </td><td>is the channel to work on, use XAXIVDMA_READ/WRITE</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="return"><dt><b>Returns:</b></dt><dd>None </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="af99dd7738b98367397831df26433843a"></a><!-- doxytag: member="xaxivdma.c::XAxiVdma_StartParking" ref="af99dd7738b98367397831df26433843a" args="(XAxiVdma *InstancePtr, int FrameIndex, u16 Direction)" -->
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int XAxiVdma_StartParking </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="struct_x_axi_vdma.html">XAxiVdma</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>FrameIndex</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">u16 </td>
|
|
<td class="paramname"> <em>Direction</em></td><td> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="memdoc">
|
|
<p>Start parking mode on a certain frame</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 pointer to the DMA engine to work on </td></tr>
|
|
<tr><td valign="top"></td><td valign="top"><em>FrameIndex</em> </td><td>is the frame to park on </td></tr>
|
|
<tr><td valign="top"></td><td valign="top"><em>Direction</em> </td><td>is the channel to work on, use XAXIVDMA_READ/WRITE</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="return"><dt><b>Returns:</b></dt><dd><ul>
|
|
<li>XST_SUCCESS if everything is fine</li>
|
|
<li>XST_INVALID_PARAM if . channel is invalid . FrameIndex is invalid . Direction is invalid </li>
|
|
</ul>
|
|
</dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="ab2646b6aeea2ff64c4b42319ffb49804"></a><!-- doxytag: member="xaxivdma.c::XAxiVdma_StartReadFrame" ref="ab2646b6aeea2ff64c4b42319ffb49804" args="(XAxiVdma *InstancePtr, XAxiVdma_DmaSetup *DmaConfigPtr)" -->
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int XAxiVdma_StartReadFrame </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="struct_x_axi_vdma.html">XAxiVdma</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_vdma___dma_setup.html">XAxiVdma_DmaSetup</a> * </td>
|
|
<td class="paramname"> <em>DmaConfigPtr</em></td><td> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="memdoc">
|
|
<p>Start a read operation</p>
|
|
<p>Read corresponds to send data from memory to device</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 pointer to the DMA engine to work on </td></tr>
|
|
<tr><td valign="top"></td><td valign="top"><em>DmaConfigPtr</em> </td><td>is the pointer to the setup structure</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="return"><dt><b>Returns:</b></dt><dd><ul>
|
|
<li>XST_SUCCESS for a successful submission</li>
|
|
<li>XST_DEVICE_BUSY if the DMA channel is not idle, BDs are still being used</li>
|
|
<li>XST_INVAID_PARAM if parameters in config structure not valid</li>
|
|
<li>XST_DEVICE_NOT_FOUND if the channel is invalid </li>
|
|
</ul>
|
|
</dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="a1dc126d885558e03cf06a4d9c05d5668"></a><!-- doxytag: member="xaxivdma.c::XAxiVdma_StartWriteFrame" ref="a1dc126d885558e03cf06a4d9c05d5668" args="(XAxiVdma *InstancePtr, XAxiVdma_DmaSetup *DmaConfigPtr)" -->
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int XAxiVdma_StartWriteFrame </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="struct_x_axi_vdma.html">XAxiVdma</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_vdma___dma_setup.html">XAxiVdma_DmaSetup</a> * </td>
|
|
<td class="paramname"> <em>DmaConfigPtr</em></td><td> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="memdoc">
|
|
<p>Start a write operation</p>
|
|
<p>Write corresponds to send data from device to memory</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 pointer to the DMA engine to work on </td></tr>
|
|
<tr><td valign="top"></td><td valign="top"><em>DmaConfigPtr</em> </td><td>is the pointer to the setup structure</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="return"><dt><b>Returns:</b></dt><dd><ul>
|
|
<li>XST_SUCCESS for a successful submission</li>
|
|
<li>XST_DEVICE_BUSY if the DMA channel is not idle, BDs are still being used</li>
|
|
<li>XST_INVAID_PARAM if parameters in config structure not valid</li>
|
|
<li>XST_DEVICE_NOT_FOUND if the channel is invalid </li>
|
|
</ul>
|
|
</dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="a8625bbc0ed0ab829f3153160c74bba44"></a><!-- doxytag: member="xaxivdma.c::XAxiVdma_StopParking" ref="a8625bbc0ed0ab829f3153160c74bba44" args="(XAxiVdma *InstancePtr, u16 Direction)" -->
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void XAxiVdma_StopParking </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="struct_x_axi_vdma.html">XAxiVdma</a> * </td>
|
|
<td class="paramname"> <em>InstancePtr</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">u16 </td>
|
|
<td class="paramname"> <em>Direction</em></td><td> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="memdoc">
|
|
<p>Exit parking mode, the channel will return to circular buffer mode</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 pointer to the DMA engine to work on </td></tr>
|
|
<tr><td valign="top"></td><td valign="top"><em>Direction</em> </td><td>is the channel to work on, use XAXIVDMA_READ/WRITE</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>If channel is invalid, then do nothing </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<p class="Copyright">
|
|
Copyright © 1995-2014 Xilinx, Inc. All rights reserved.
|
|
</p>
|
|
</body>
|
|
</html>
|