950 lines
46 KiB
HTML
950 lines
46 KiB
HTML
![]() |
<html>
|
|||
|
<head>
|
|||
|
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
|
|||
|
<title>
|
|||
|
xdevcfg.c File Reference
|
|||
|
</title>
|
|||
|
<link href="$DriverApiDocsCssPath" 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.4.5 -->
|
|||
|
<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 id="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>
|
|||
|
<h1>xdevcfg.c File Reference</h1><hr><a name="_details"></a><h2>Detailed Description</h2>
|
|||
|
This file contains the implementation of the interface functions for <a class="el" href="struct_x_dcfg.html">XDcfg</a> driver. Refer to the header file xdevcfg.h for more detailed information.<p>
|
|||
|
<pre>
|
|||
|
MODIFICATION HISTORY:</pre><p>
|
|||
|
<pre> Ver Who Date Changes
|
|||
|
----- --- -------- ---------------------------------------------
|
|||
|
1.00a hvm 02/07/11 First release
|
|||
|
2.00a nm 05/31/12 Updated the driver for CR 660835 so that input length for
|
|||
|
source/destination to the XDcfg_InitiateDma, XDcfg_Transfer
|
|||
|
APIs is words (32 bit) and not bytes.
|
|||
|
Updated the notes for XDcfg_InitiateDma/XDcfg_Transfer APIs
|
|||
|
to add information that 2 LSBs of the Source/Destination
|
|||
|
address when equal to 2<>b01 indicate the last DMA command
|
|||
|
of an overall transfer.
|
|||
|
Updated the XDcfg_Transfer function to use the
|
|||
|
Destination Address passed to this API for secure transfers
|
|||
|
instead of using 0xFFFFFFFF for CR 662197. This issue was
|
|||
|
resulting in the failure of secure transfers of
|
|||
|
non-bitstream images.
|
|||
|
2.01a nm 08/27/12 Updated the XDcfg_Transfer API to clear the
|
|||
|
QUARTER_PCAP_RATE_EN bit in the control register for
|
|||
|
non secure writes for CR 675543.
|
|||
|
2.02a nm 01/31/13 Fixed CR# 679335.
|
|||
|
Added Setting and Clearing the internal PCAP loopback.
|
|||
|
Removed code for enabling/disabling AES engine as BootROM
|
|||
|
locks down this setting.
|
|||
|
Fixed CR# 681976.
|
|||
|
Skip Checking the PCFG_INIT in case of non-secure DMA
|
|||
|
loopback.
|
|||
|
Fixed CR# 699558.
|
|||
|
XDcfg_Transfer fails to transfer data in loopback mode.
|
|||
|
2.03a nm 04/19/13 Fixed CR# 703728.
|
|||
|
Updated the register definitions as per the latest TRM
|
|||
|
version UG585 (v1.4) November 16, 2012.
|
|||
|
3.0 kpc 21/02/14 Implemented new function XDcfg_ClearControlRegister
|
|||
|
</pre>
|
|||
|
<p>
|
|||
|
<code>#include "xdevcfg.h"</code><br>
|
|||
|
<table border="0" cellpadding="0" cellspacing="0">
|
|||
|
<tr><td></td></tr>
|
|||
|
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
|
|||
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="xdevcfg_8c.html#b2d64917ea2509c03e055cf9b21f6cfe">XDcfg_CfgInitialize</a> (<a class="el" href="struct_x_dcfg.html">XDcfg</a> *InstancePtr, <a class="el" href="struct_x_dcfg___config.html">XDcfg_Config</a> *ConfigPtr, u32 EffectiveAddress)</td></tr>
|
|||
|
|
|||
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="xdevcfg_8c.html#1bc4390b87c1af3bee89ca7f4dc0ccc5">XDcfg_EnablePCAP</a> (<a class="el" href="struct_x_dcfg.html">XDcfg</a> *InstancePtr)</td></tr>
|
|||
|
|
|||
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="xdevcfg_8c.html#9f23da73a803f888ed3b38062eb5a1b8">XDcfg_DisablePCAP</a> (<a class="el" href="struct_x_dcfg.html">XDcfg</a> *InstancePtr)</td></tr>
|
|||
|
|
|||
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="xdevcfg_8c.html#0c7b7f370a1ccdfcd697cf92c6ea8e9f">XDcfg_SetControlRegister</a> (<a class="el" href="struct_x_dcfg.html">XDcfg</a> *InstancePtr, u32 Mask)</td></tr>
|
|||
|
|
|||
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="xdevcfg_8c.html#bbd7f5f37ec5b7b7cce4204fc15991a6">XDcfg_ClearControlRegister</a> (<a class="el" href="struct_x_dcfg.html">XDcfg</a> *InstancePtr, u32 Mask)</td></tr>
|
|||
|
|
|||
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">u32 </td><td class="memItemRight" valign="bottom"><a class="el" href="xdevcfg_8c.html#f245bffbc3be6efe59eb054ea3e2e346">XDcfg_GetControlRegister</a> (<a class="el" href="struct_x_dcfg.html">XDcfg</a> *InstancePtr)</td></tr>
|
|||
|
|
|||
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="xdevcfg_8c.html#6dfafe59208bda2bfb8908fa96901410">XDcfg_SetLockRegister</a> (<a class="el" href="struct_x_dcfg.html">XDcfg</a> *InstancePtr, u32 Data)</td></tr>
|
|||
|
|
|||
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">u32 </td><td class="memItemRight" valign="bottom"><a class="el" href="xdevcfg_8c.html#7b856088204bfff06018e3d4d025e1f1">XDcfg_GetLockRegister</a> (<a class="el" href="struct_x_dcfg.html">XDcfg</a> *InstancePtr)</td></tr>
|
|||
|
|
|||
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="xdevcfg_8c.html#4996b900c1b53d3c4e0b5b25cdcf15b8">XDcfg_SetConfigRegister</a> (<a class="el" href="struct_x_dcfg.html">XDcfg</a> *InstancePtr, u32 Data)</td></tr>
|
|||
|
|
|||
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">u32 </td><td class="memItemRight" valign="bottom"><a class="el" href="xdevcfg_8c.html#78fad34ff2f121e2416fa26b9a588098">XDcfg_GetConfigRegister</a> (<a class="el" href="struct_x_dcfg.html">XDcfg</a> *InstancePtr)</td></tr>
|
|||
|
|
|||
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="xdevcfg_8c.html#80c9a65eca36aa8d5928c48402ab5757">XDcfg_SetStatusRegister</a> (<a class="el" href="struct_x_dcfg.html">XDcfg</a> *InstancePtr, u32 Data)</td></tr>
|
|||
|
|
|||
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">u32 </td><td class="memItemRight" valign="bottom"><a class="el" href="xdevcfg_8c.html#1e21821106bbecc4ac5463373884399b">XDcfg_GetStatusRegister</a> (<a class="el" href="struct_x_dcfg.html">XDcfg</a> *InstancePtr)</td></tr>
|
|||
|
|
|||
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="xdevcfg_8c.html#f5de1a7bbc4fcb880675267dc5231c3c">XDcfg_SetRomShadowRegister</a> (<a class="el" href="struct_x_dcfg.html">XDcfg</a> *InstancePtr, u32 Data)</td></tr>
|
|||
|
|
|||
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">u32 </td><td class="memItemRight" valign="bottom"><a class="el" href="xdevcfg_8c.html#aa783d64e8126a1a6928afb7d746c160">XDcfg_GetSoftwareIdRegister</a> (<a class="el" href="struct_x_dcfg.html">XDcfg</a> *InstancePtr)</td></tr>
|
|||
|
|
|||
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="xdevcfg_8c.html#3c658601bf10b2faed44d1f084b45cbb">XDcfg_SetMiscControlRegister</a> (<a class="el" href="struct_x_dcfg.html">XDcfg</a> *InstancePtr, u32 Mask)</td></tr>
|
|||
|
|
|||
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">u32 </td><td class="memItemRight" valign="bottom"><a class="el" href="xdevcfg_8c.html#9e809d6b4c49134e7691b96d4476a855">XDcfg_GetMiscControlRegister</a> (<a class="el" href="struct_x_dcfg.html">XDcfg</a> *InstancePtr)</td></tr>
|
|||
|
|
|||
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">u32 </td><td class="memItemRight" valign="bottom"><a class="el" href="xdevcfg_8c.html#03f742888a41d1b96ff67decf1303b98">XDcfg_IsDmaBusy</a> (<a class="el" href="struct_x_dcfg.html">XDcfg</a> *InstancePtr)</td></tr>
|
|||
|
|
|||
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="xdevcfg_8c.html#92d149ae5290cda999102c8dea25f268">XDcfg_InitiateDma</a> (<a class="el" href="struct_x_dcfg.html">XDcfg</a> *InstancePtr, u32 SourcePtr, u32 DestPtr, u32 SrcWordLength, u32 DestWordLength)</td></tr>
|
|||
|
|
|||
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">u32 </td><td class="memItemRight" valign="bottom"><a class="el" href="xdevcfg_8c.html#42e810b4e595310e202a4c347ccb080c">XDcfg_Transfer</a> (<a class="el" href="struct_x_dcfg.html">XDcfg</a> *InstancePtr, void *SourcePtr, u32 SrcWordLength, void *DestPtr, u32 DestWordLength, u32 TransferType)</td></tr>
|
|||
|
|
|||
|
</table>
|
|||
|
<hr><h2>Function Documentation</h2>
|
|||
|
<a class="anchor" name="b2d64917ea2509c03e055cf9b21f6cfe"></a><!-- doxytag: member="xdevcfg.c::XDcfg_CfgInitialize" ref="b2d64917ea2509c03e055cf9b21f6cfe" args="(XDcfg *InstancePtr, XDcfg_Config *ConfigPtr, u32 EffectiveAddress)" --><p>
|
|||
|
<table class="mdTable" cellpadding="2" cellspacing="0">
|
|||
|
<tr>
|
|||
|
<td class="mdRow">
|
|||
|
<table cellpadding="0" cellspacing="0" border="0">
|
|||
|
<tr>
|
|||
|
<td class="md" nowrap valign="top">int XDcfg_CfgInitialize </td>
|
|||
|
<td class="md" valign="top">( </td>
|
|||
|
<td class="md" nowrap valign="top"><a class="el" href="struct_x_dcfg.html">XDcfg</a> * </td>
|
|||
|
<td class="mdname" nowrap> <em>InstancePtr</em>, </td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td class="md" nowrap align="right"></td>
|
|||
|
<td class="md"></td>
|
|||
|
<td class="md" nowrap><a class="el" href="struct_x_dcfg___config.html">XDcfg_Config</a> * </td>
|
|||
|
<td class="mdname" nowrap> <em>ConfigPtr</em>, </td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td class="md" nowrap align="right"></td>
|
|||
|
<td class="md"></td>
|
|||
|
<td class="md" nowrap>u32 </td>
|
|||
|
<td class="mdname" nowrap> <em>EffectiveAddress</em></td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td class="md"></td>
|
|||
|
<td class="md">) </td>
|
|||
|
<td class="md" colspan="2"></td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
<table cellspacing="5" cellpadding="0" border="0">
|
|||
|
<tr>
|
|||
|
<td>
|
|||
|
|
|||
|
</td>
|
|||
|
<td>
|
|||
|
|
|||
|
<p>
|
|||
|
Initialize the Device Config Interface driver. This function must be called before other functions of the driver are called.<p>
|
|||
|
<dl compact><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 a pointer to the <a class="el" href="struct_x_dcfg.html">XDcfg</a> instance. </td></tr>
|
|||
|
<tr><td valign="top"></td><td valign="top"><em>ConfigPtr</em> </td><td>is the config structure. </td></tr>
|
|||
|
<tr><td valign="top"></td><td valign="top"><em>EffectiveAddress</em> </td><td>is the base address for the device. It could be a virtual address if address translation is supported in the system, otherwise it is the physical address.</td></tr>
|
|||
|
</table>
|
|||
|
</dl>
|
|||
|
<dl compact><dt><b>Returns:</b></dt><dd><ul>
|
|||
|
<li>XST_SUCCESS if initialization was successful.</li><li>XST_DEVICE_IS_STARTED if the device has already been started.</li></ul>
|
|||
|
</dd></dl>
|
|||
|
<dl compact><dt><b>Note:</b></dt><dd>The very first APB access to the Device Configuration Interface block needs to be a write to the UNLOCK register with the value of 0x757BDF0D. This step is to be done once after reset, any other APB access has to come after this. The APB access is considered illegal if the step is not done or if it is done incorrectly. Furthermore, if any of efuse_sec_cfg[5:0] is high, the following additional actions would be carried out. In other words, if all bits are low, the following steps are not done. 1. AES is disabled 2. All APB writes disabled 3. SoC debug fully enabled </dd></dl>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
<a class="anchor" name="bbd7f5f37ec5b7b7cce4204fc15991a6"></a><!-- doxytag: member="xdevcfg.c::XDcfg_ClearControlRegister" ref="bbd7f5f37ec5b7b7cce4204fc15991a6" args="(XDcfg *InstancePtr, u32 Mask)" --><p>
|
|||
|
<table class="mdTable" cellpadding="2" cellspacing="0">
|
|||
|
<tr>
|
|||
|
<td class="mdRow">
|
|||
|
<table cellpadding="0" cellspacing="0" border="0">
|
|||
|
<tr>
|
|||
|
<td class="md" nowrap valign="top">void XDcfg_ClearControlRegister </td>
|
|||
|
<td class="md" valign="top">( </td>
|
|||
|
<td class="md" nowrap valign="top"><a class="el" href="struct_x_dcfg.html">XDcfg</a> * </td>
|
|||
|
<td class="mdname" nowrap> <em>InstancePtr</em>, </td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td class="md" nowrap align="right"></td>
|
|||
|
<td class="md"></td>
|
|||
|
<td class="md" nowrap>u32 </td>
|
|||
|
<td class="mdname" nowrap> <em>Mask</em></td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td class="md"></td>
|
|||
|
<td class="md">) </td>
|
|||
|
<td class="md" colspan="2"></td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
<table cellspacing="5" cellpadding="0" border="0">
|
|||
|
<tr>
|
|||
|
<td>
|
|||
|
|
|||
|
</td>
|
|||
|
<td>
|
|||
|
|
|||
|
<p>
|
|||
|
The function Clears the specified bit positions of the Control Register.<p>
|
|||
|
<dl compact><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 a pointer to the <a class="el" href="struct_x_dcfg.html">XDcfg</a> instance. </td></tr>
|
|||
|
<tr><td valign="top"></td><td valign="top"><em>Mask</em> </td><td>is the 32 bit value which holds the bit positions to be cleared.</td></tr>
|
|||
|
</table>
|
|||
|
</dl>
|
|||
|
<dl compact><dt><b>Returns:</b></dt><dd>None.</dd></dl>
|
|||
|
<dl compact><dt><b>Note:</b></dt><dd>None. </dd></dl>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
<a class="anchor" name="9f23da73a803f888ed3b38062eb5a1b8"></a><!-- doxytag: member="xdevcfg.c::XDcfg_DisablePCAP" ref="9f23da73a803f888ed3b38062eb5a1b8" args="(XDcfg *InstancePtr)" --><p>
|
|||
|
<table class="mdTable" cellpadding="2" cellspacing="0">
|
|||
|
<tr>
|
|||
|
<td class="mdRow">
|
|||
|
<table cellpadding="0" cellspacing="0" border="0">
|
|||
|
<tr>
|
|||
|
<td class="md" nowrap valign="top">void XDcfg_DisablePCAP </td>
|
|||
|
<td class="md" valign="top">( </td>
|
|||
|
<td class="md" nowrap valign="top"><a class="el" href="struct_x_dcfg.html">XDcfg</a> * </td>
|
|||
|
<td class="mdname1" valign="top" nowrap> <em>InstancePtr</em> </td>
|
|||
|
<td class="md" valign="top"> ) </td>
|
|||
|
<td class="md" nowrap></td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
<table cellspacing="5" cellpadding="0" border="0">
|
|||
|
<tr>
|
|||
|
<td>
|
|||
|
|
|||
|
</td>
|
|||
|
<td>
|
|||
|
|
|||
|
<p>
|
|||
|
The functions disables the PCAP interface by clearing the PCAP mode bit in the control register.<p>
|
|||
|
<dl compact><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 a pointer to the <a class="el" href="struct_x_dcfg.html">XDcfg</a> instance.</td></tr>
|
|||
|
</table>
|
|||
|
</dl>
|
|||
|
<dl compact><dt><b>Returns:</b></dt><dd>None.</dd></dl>
|
|||
|
<dl compact><dt><b>Note:</b></dt><dd>None. </dd></dl>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
<a class="anchor" name="1bc4390b87c1af3bee89ca7f4dc0ccc5"></a><!-- doxytag: member="xdevcfg.c::XDcfg_EnablePCAP" ref="1bc4390b87c1af3bee89ca7f4dc0ccc5" args="(XDcfg *InstancePtr)" --><p>
|
|||
|
<table class="mdTable" cellpadding="2" cellspacing="0">
|
|||
|
<tr>
|
|||
|
<td class="mdRow">
|
|||
|
<table cellpadding="0" cellspacing="0" border="0">
|
|||
|
<tr>
|
|||
|
<td class="md" nowrap valign="top">void XDcfg_EnablePCAP </td>
|
|||
|
<td class="md" valign="top">( </td>
|
|||
|
<td class="md" nowrap valign="top"><a class="el" href="struct_x_dcfg.html">XDcfg</a> * </td>
|
|||
|
<td class="mdname1" valign="top" nowrap> <em>InstancePtr</em> </td>
|
|||
|
<td class="md" valign="top"> ) </td>
|
|||
|
<td class="md" nowrap></td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
<table cellspacing="5" cellpadding="0" border="0">
|
|||
|
<tr>
|
|||
|
<td>
|
|||
|
|
|||
|
</td>
|
|||
|
<td>
|
|||
|
|
|||
|
<p>
|
|||
|
The functions enables the PCAP interface by setting the PCAP mode bit in the control register.<p>
|
|||
|
<dl compact><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 a pointer to the <a class="el" href="struct_x_dcfg.html">XDcfg</a> instance.</td></tr>
|
|||
|
</table>
|
|||
|
</dl>
|
|||
|
<dl compact><dt><b>Returns:</b></dt><dd>None.</dd></dl>
|
|||
|
<dl compact><dt><b>Note:</b></dt><dd>Enable FPGA programming from PCAP interface. Enabling this bit disables all the external interfaces from programming of FPGA except for ICAP. The user needs to ensure that the FPGA is programmed through either PCAP or ICAP. </dd></dl>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
<a class="anchor" name="78fad34ff2f121e2416fa26b9a588098"></a><!-- doxytag: member="xdevcfg.c::XDcfg_GetConfigRegister" ref="78fad34ff2f121e2416fa26b9a588098" args="(XDcfg *InstancePtr)" --><p>
|
|||
|
<table class="mdTable" cellpadding="2" cellspacing="0">
|
|||
|
<tr>
|
|||
|
<td class="mdRow">
|
|||
|
<table cellpadding="0" cellspacing="0" border="0">
|
|||
|
<tr>
|
|||
|
<td class="md" nowrap valign="top">u32 XDcfg_GetConfigRegister </td>
|
|||
|
<td class="md" valign="top">( </td>
|
|||
|
<td class="md" nowrap valign="top"><a class="el" href="struct_x_dcfg.html">XDcfg</a> * </td>
|
|||
|
<td class="mdname1" valign="top" nowrap> <em>InstancePtr</em> </td>
|
|||
|
<td class="md" valign="top"> ) </td>
|
|||
|
<td class="md" nowrap></td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
<table cellspacing="5" cellpadding="0" border="0">
|
|||
|
<tr>
|
|||
|
<td>
|
|||
|
|
|||
|
</td>
|
|||
|
<td>
|
|||
|
|
|||
|
<p>
|
|||
|
The function reads the contents of the Configuration Register with the given value.<p>
|
|||
|
<dl compact><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 a pointer to the <a class="el" href="struct_x_dcfg.html">XDcfg</a> instance.</td></tr>
|
|||
|
</table>
|
|||
|
</dl>
|
|||
|
<dl compact><dt><b>Returns:</b></dt><dd>A 32-bit value representing the contents of the Config Register. Use the XDCFG_CFG_*_MASK constants defined in <a class="el" href="xdevcfg__hw_8h.html">xdevcfg_hw.h</a> to interpret the returned value.</dd></dl>
|
|||
|
<dl compact><dt><b>Note:</b></dt><dd>None. </dd></dl>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
<a class="anchor" name="f245bffbc3be6efe59eb054ea3e2e346"></a><!-- doxytag: member="xdevcfg.c::XDcfg_GetControlRegister" ref="f245bffbc3be6efe59eb054ea3e2e346" args="(XDcfg *InstancePtr)" --><p>
|
|||
|
<table class="mdTable" cellpadding="2" cellspacing="0">
|
|||
|
<tr>
|
|||
|
<td class="mdRow">
|
|||
|
<table cellpadding="0" cellspacing="0" border="0">
|
|||
|
<tr>
|
|||
|
<td class="md" nowrap valign="top">u32 XDcfg_GetControlRegister </td>
|
|||
|
<td class="md" valign="top">( </td>
|
|||
|
<td class="md" nowrap valign="top"><a class="el" href="struct_x_dcfg.html">XDcfg</a> * </td>
|
|||
|
<td class="mdname1" valign="top" nowrap> <em>InstancePtr</em> </td>
|
|||
|
<td class="md" valign="top"> ) </td>
|
|||
|
<td class="md" nowrap></td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
<table cellspacing="5" cellpadding="0" border="0">
|
|||
|
<tr>
|
|||
|
<td>
|
|||
|
|
|||
|
</td>
|
|||
|
<td>
|
|||
|
|
|||
|
<p>
|
|||
|
The function reads the contents of the Control Register.<p>
|
|||
|
<dl compact><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 a pointer to the <a class="el" href="struct_x_dcfg.html">XDcfg</a> instance.</td></tr>
|
|||
|
</table>
|
|||
|
</dl>
|
|||
|
<dl compact><dt><b>Returns:</b></dt><dd>A 32-bit value representing the contents of the Control Register. Use the XDCFG_CTRL_*_MASK constants defined in <a class="el" href="xdevcfg__hw_8h.html">xdevcfg_hw.h</a> to interpret the returned value.</dd></dl>
|
|||
|
<dl compact><dt><b>Note:</b></dt><dd>None. </dd></dl>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
<a class="anchor" name="7b856088204bfff06018e3d4d025e1f1"></a><!-- doxytag: member="xdevcfg.c::XDcfg_GetLockRegister" ref="7b856088204bfff06018e3d4d025e1f1" args="(XDcfg *InstancePtr)" --><p>
|
|||
|
<table class="mdTable" cellpadding="2" cellspacing="0">
|
|||
|
<tr>
|
|||
|
<td class="mdRow">
|
|||
|
<table cellpadding="0" cellspacing="0" border="0">
|
|||
|
<tr>
|
|||
|
<td class="md" nowrap valign="top">u32 XDcfg_GetLockRegister </td>
|
|||
|
<td class="md" valign="top">( </td>
|
|||
|
<td class="md" nowrap valign="top"><a class="el" href="struct_x_dcfg.html">XDcfg</a> * </td>
|
|||
|
<td class="mdname1" valign="top" nowrap> <em>InstancePtr</em> </td>
|
|||
|
<td class="md" valign="top"> ) </td>
|
|||
|
<td class="md" nowrap></td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
<table cellspacing="5" cellpadding="0" border="0">
|
|||
|
<tr>
|
|||
|
<td>
|
|||
|
|
|||
|
</td>
|
|||
|
<td>
|
|||
|
|
|||
|
<p>
|
|||
|
The function reads the contents of the Lock Register.<p>
|
|||
|
<dl compact><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 a pointer to the <a class="el" href="struct_x_dcfg.html">XDcfg</a> instance.</td></tr>
|
|||
|
</table>
|
|||
|
</dl>
|
|||
|
<dl compact><dt><b>Returns:</b></dt><dd>A 32-bit value representing the contents of the Lock Register. Use the XDCFG_CR_*_MASK constants defined in <a class="el" href="xdevcfg__hw_8h.html">xdevcfg_hw.h</a> to interpret the returned value.</dd></dl>
|
|||
|
<dl compact><dt><b>Note:</b></dt><dd>None. </dd></dl>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
<a class="anchor" name="9e809d6b4c49134e7691b96d4476a855"></a><!-- doxytag: member="xdevcfg.c::XDcfg_GetMiscControlRegister" ref="9e809d6b4c49134e7691b96d4476a855" args="(XDcfg *InstancePtr)" --><p>
|
|||
|
<table class="mdTable" cellpadding="2" cellspacing="0">
|
|||
|
<tr>
|
|||
|
<td class="mdRow">
|
|||
|
<table cellpadding="0" cellspacing="0" border="0">
|
|||
|
<tr>
|
|||
|
<td class="md" nowrap valign="top">u32 XDcfg_GetMiscControlRegister </td>
|
|||
|
<td class="md" valign="top">( </td>
|
|||
|
<td class="md" nowrap valign="top"><a class="el" href="struct_x_dcfg.html">XDcfg</a> * </td>
|
|||
|
<td class="mdname1" valign="top" nowrap> <em>InstancePtr</em> </td>
|
|||
|
<td class="md" valign="top"> ) </td>
|
|||
|
<td class="md" nowrap></td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
<table cellspacing="5" cellpadding="0" border="0">
|
|||
|
<tr>
|
|||
|
<td>
|
|||
|
|
|||
|
</td>
|
|||
|
<td>
|
|||
|
|
|||
|
<p>
|
|||
|
The function reads the contents of the Miscellaneous Control Register.<p>
|
|||
|
<dl compact><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 a pointer to the <a class="el" href="struct_x_dcfg.html">XDcfg</a> instance.</td></tr>
|
|||
|
</table>
|
|||
|
</dl>
|
|||
|
<dl compact><dt><b>Returns:</b></dt><dd>32 Bit boot software ID.</dd></dl>
|
|||
|
<dl compact><dt><b>Note:</b></dt><dd>This register is locked for write once the system enters usermode. Hence API to reading the register only is provided. </dd></dl>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
<a class="anchor" name="aa783d64e8126a1a6928afb7d746c160"></a><!-- doxytag: member="xdevcfg.c::XDcfg_GetSoftwareIdRegister" ref="aa783d64e8126a1a6928afb7d746c160" args="(XDcfg *InstancePtr)" --><p>
|
|||
|
<table class="mdTable" cellpadding="2" cellspacing="0">
|
|||
|
<tr>
|
|||
|
<td class="mdRow">
|
|||
|
<table cellpadding="0" cellspacing="0" border="0">
|
|||
|
<tr>
|
|||
|
<td class="md" nowrap valign="top">u32 XDcfg_GetSoftwareIdRegister </td>
|
|||
|
<td class="md" valign="top">( </td>
|
|||
|
<td class="md" nowrap valign="top"><a class="el" href="struct_x_dcfg.html">XDcfg</a> * </td>
|
|||
|
<td class="mdname1" valign="top" nowrap> <em>InstancePtr</em> </td>
|
|||
|
<td class="md" valign="top"> ) </td>
|
|||
|
<td class="md" nowrap></td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
<table cellspacing="5" cellpadding="0" border="0">
|
|||
|
<tr>
|
|||
|
<td>
|
|||
|
|
|||
|
</td>
|
|||
|
<td>
|
|||
|
|
|||
|
<p>
|
|||
|
The function reads the contents of the Software ID Register.<p>
|
|||
|
<dl compact><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 a pointer to the <a class="el" href="struct_x_dcfg.html">XDcfg</a> instance.</td></tr>
|
|||
|
</table>
|
|||
|
</dl>
|
|||
|
<dl compact><dt><b>Returns:</b></dt><dd>32 Bit boot software ID.</dd></dl>
|
|||
|
<dl compact><dt><b>Note:</b></dt><dd>This register is locked for write once the system enters usermode. Hence API for reading the register only is provided. </dd></dl>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
<a class="anchor" name="1e21821106bbecc4ac5463373884399b"></a><!-- doxytag: member="xdevcfg.c::XDcfg_GetStatusRegister" ref="1e21821106bbecc4ac5463373884399b" args="(XDcfg *InstancePtr)" --><p>
|
|||
|
<table class="mdTable" cellpadding="2" cellspacing="0">
|
|||
|
<tr>
|
|||
|
<td class="mdRow">
|
|||
|
<table cellpadding="0" cellspacing="0" border="0">
|
|||
|
<tr>
|
|||
|
<td class="md" nowrap valign="top">u32 XDcfg_GetStatusRegister </td>
|
|||
|
<td class="md" valign="top">( </td>
|
|||
|
<td class="md" nowrap valign="top"><a class="el" href="struct_x_dcfg.html">XDcfg</a> * </td>
|
|||
|
<td class="mdname1" valign="top" nowrap> <em>InstancePtr</em> </td>
|
|||
|
<td class="md" valign="top"> ) </td>
|
|||
|
<td class="md" nowrap></td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
<table cellspacing="5" cellpadding="0" border="0">
|
|||
|
<tr>
|
|||
|
<td>
|
|||
|
|
|||
|
</td>
|
|||
|
<td>
|
|||
|
|
|||
|
<p>
|
|||
|
The function reads the contents of the Status Register.<p>
|
|||
|
<dl compact><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 a pointer to the <a class="el" href="struct_x_dcfg.html">XDcfg</a> instance.</td></tr>
|
|||
|
</table>
|
|||
|
</dl>
|
|||
|
<dl compact><dt><b>Returns:</b></dt><dd>A 32-bit value representing the contents of the Status Register. Use the XDCFG_STATUS_*_MASK constants defined in <a class="el" href="xdevcfg__hw_8h.html">xdevcfg_hw.h</a> to interpret the returned value.</dd></dl>
|
|||
|
<dl compact><dt><b>Note:</b></dt><dd>None. </dd></dl>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
<a class="anchor" name="92d149ae5290cda999102c8dea25f268"></a><!-- doxytag: member="xdevcfg.c::XDcfg_InitiateDma" ref="92d149ae5290cda999102c8dea25f268" args="(XDcfg *InstancePtr, u32 SourcePtr, u32 DestPtr, u32 SrcWordLength, u32 DestWordLength)" --><p>
|
|||
|
<table class="mdTable" cellpadding="2" cellspacing="0">
|
|||
|
<tr>
|
|||
|
<td class="mdRow">
|
|||
|
<table cellpadding="0" cellspacing="0" border="0">
|
|||
|
<tr>
|
|||
|
<td class="md" nowrap valign="top">void XDcfg_InitiateDma </td>
|
|||
|
<td class="md" valign="top">( </td>
|
|||
|
<td class="md" nowrap valign="top"><a class="el" href="struct_x_dcfg.html">XDcfg</a> * </td>
|
|||
|
<td class="mdname" nowrap> <em>InstancePtr</em>, </td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td class="md" nowrap align="right"></td>
|
|||
|
<td class="md"></td>
|
|||
|
<td class="md" nowrap>u32 </td>
|
|||
|
<td class="mdname" nowrap> <em>SourcePtr</em>, </td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td class="md" nowrap align="right"></td>
|
|||
|
<td class="md"></td>
|
|||
|
<td class="md" nowrap>u32 </td>
|
|||
|
<td class="mdname" nowrap> <em>DestPtr</em>, </td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td class="md" nowrap align="right"></td>
|
|||
|
<td class="md"></td>
|
|||
|
<td class="md" nowrap>u32 </td>
|
|||
|
<td class="mdname" nowrap> <em>SrcWordLength</em>, </td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td class="md" nowrap align="right"></td>
|
|||
|
<td class="md"></td>
|
|||
|
<td class="md" nowrap>u32 </td>
|
|||
|
<td class="mdname" nowrap> <em>DestWordLength</em></td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td class="md"></td>
|
|||
|
<td class="md">) </td>
|
|||
|
<td class="md" colspan="2"></td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
<table cellspacing="5" cellpadding="0" border="0">
|
|||
|
<tr>
|
|||
|
<td>
|
|||
|
|
|||
|
</td>
|
|||
|
<td>
|
|||
|
|
|||
|
<p>
|
|||
|
This function initiates the DMA transfer.<p>
|
|||
|
<dl compact><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 a pointer to the <a class="el" href="struct_x_dcfg.html">XDcfg</a> instance. </td></tr>
|
|||
|
<tr><td valign="top"></td><td valign="top"><em>SourcePtr</em> </td><td>contains a pointer to the source memory where the data is to be transferred from. </td></tr>
|
|||
|
<tr><td valign="top"></td><td valign="top"><em>SrcWordLength</em> </td><td>is the number of words (32 bit) to be transferred for the source transfer. </td></tr>
|
|||
|
<tr><td valign="top"></td><td valign="top"><em>DestPtr</em> </td><td>contains a pointer to the destination memory where the data is to be transferred to. </td></tr>
|
|||
|
<tr><td valign="top"></td><td valign="top"><em>DestWordLength</em> </td><td>is the number of words (32 bit) to be transferred for the Destination transfer.</td></tr>
|
|||
|
</table>
|
|||
|
</dl>
|
|||
|
<dl compact><dt><b>Returns:</b></dt><dd>None.</dd></dl>
|
|||
|
<dl compact><dt><b>Note:</b></dt><dd>It is the responsibility of the caller function to ensure that correct values are passed to this function.</dd></dl>
|
|||
|
The 2 LSBs of the SourcePtr (Source)/ DestPtr (Destination) address when equal to 2<>b01 indicates the last DMA command of an overall transfer. </td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
<a class="anchor" name="03f742888a41d1b96ff67decf1303b98"></a><!-- doxytag: member="xdevcfg.c::XDcfg_IsDmaBusy" ref="03f742888a41d1b96ff67decf1303b98" args="(XDcfg *InstancePtr)" --><p>
|
|||
|
<table class="mdTable" cellpadding="2" cellspacing="0">
|
|||
|
<tr>
|
|||
|
<td class="mdRow">
|
|||
|
<table cellpadding="0" cellspacing="0" border="0">
|
|||
|
<tr>
|
|||
|
<td class="md" nowrap valign="top">u32 XDcfg_IsDmaBusy </td>
|
|||
|
<td class="md" valign="top">( </td>
|
|||
|
<td class="md" nowrap valign="top"><a class="el" href="struct_x_dcfg.html">XDcfg</a> * </td>
|
|||
|
<td class="mdname1" valign="top" nowrap> <em>InstancePtr</em> </td>
|
|||
|
<td class="md" valign="top"> ) </td>
|
|||
|
<td class="md" nowrap></td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
<table cellspacing="5" cellpadding="0" border="0">
|
|||
|
<tr>
|
|||
|
<td>
|
|||
|
|
|||
|
</td>
|
|||
|
<td>
|
|||
|
|
|||
|
<p>
|
|||
|
This function checks if DMA command queue is full.<p>
|
|||
|
<dl compact><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 a pointer to the <a class="el" href="struct_x_dcfg.html">XDcfg</a> instance.</td></tr>
|
|||
|
</table>
|
|||
|
</dl>
|
|||
|
<dl compact><dt><b>Returns:</b></dt><dd>XST_SUCCESS is the DMA is busy XST_FAILURE if the DMA is idle</dd></dl>
|
|||
|
<dl compact><dt><b>Note:</b></dt><dd>The DMA queue has a depth of two. </dd></dl>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
<a class="anchor" name="4996b900c1b53d3c4e0b5b25cdcf15b8"></a><!-- doxytag: member="xdevcfg.c::XDcfg_SetConfigRegister" ref="4996b900c1b53d3c4e0b5b25cdcf15b8" args="(XDcfg *InstancePtr, u32 Data)" --><p>
|
|||
|
<table class="mdTable" cellpadding="2" cellspacing="0">
|
|||
|
<tr>
|
|||
|
<td class="mdRow">
|
|||
|
<table cellpadding="0" cellspacing="0" border="0">
|
|||
|
<tr>
|
|||
|
<td class="md" nowrap valign="top">void XDcfg_SetConfigRegister </td>
|
|||
|
<td class="md" valign="top">( </td>
|
|||
|
<td class="md" nowrap valign="top"><a class="el" href="struct_x_dcfg.html">XDcfg</a> * </td>
|
|||
|
<td class="mdname" nowrap> <em>InstancePtr</em>, </td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td class="md" nowrap align="right"></td>
|
|||
|
<td class="md"></td>
|
|||
|
<td class="md" nowrap>u32 </td>
|
|||
|
<td class="mdname" nowrap> <em>Data</em></td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td class="md"></td>
|
|||
|
<td class="md">) </td>
|
|||
|
<td class="md" colspan="2"></td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
<table cellspacing="5" cellpadding="0" border="0">
|
|||
|
<tr>
|
|||
|
<td>
|
|||
|
|
|||
|
</td>
|
|||
|
<td>
|
|||
|
|
|||
|
<p>
|
|||
|
The function sets the contents of the Configuration Register with the given value.<p>
|
|||
|
<dl compact><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 a pointer to the <a class="el" href="struct_x_dcfg.html">XDcfg</a> instance. </td></tr>
|
|||
|
<tr><td valign="top"></td><td valign="top"><em>Data</em> </td><td>is the 32 bit data to be written to the Register.</td></tr>
|
|||
|
</table>
|
|||
|
</dl>
|
|||
|
<dl compact><dt><b>Returns:</b></dt><dd>None.</dd></dl>
|
|||
|
<dl compact><dt><b>Note:</b></dt><dd>None. </dd></dl>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
<a class="anchor" name="0c7b7f370a1ccdfcd697cf92c6ea8e9f"></a><!-- doxytag: member="xdevcfg.c::XDcfg_SetControlRegister" ref="0c7b7f370a1ccdfcd697cf92c6ea8e9f" args="(XDcfg *InstancePtr, u32 Mask)" --><p>
|
|||
|
<table class="mdTable" cellpadding="2" cellspacing="0">
|
|||
|
<tr>
|
|||
|
<td class="mdRow">
|
|||
|
<table cellpadding="0" cellspacing="0" border="0">
|
|||
|
<tr>
|
|||
|
<td class="md" nowrap valign="top">void XDcfg_SetControlRegister </td>
|
|||
|
<td class="md" valign="top">( </td>
|
|||
|
<td class="md" nowrap valign="top"><a class="el" href="struct_x_dcfg.html">XDcfg</a> * </td>
|
|||
|
<td class="mdname" nowrap> <em>InstancePtr</em>, </td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td class="md" nowrap align="right"></td>
|
|||
|
<td class="md"></td>
|
|||
|
<td class="md" nowrap>u32 </td>
|
|||
|
<td class="mdname" nowrap> <em>Mask</em></td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td class="md"></td>
|
|||
|
<td class="md">) </td>
|
|||
|
<td class="md" colspan="2"></td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
<table cellspacing="5" cellpadding="0" border="0">
|
|||
|
<tr>
|
|||
|
<td>
|
|||
|
|
|||
|
</td>
|
|||
|
<td>
|
|||
|
|
|||
|
<p>
|
|||
|
The function sets the contents of the Control Register.<p>
|
|||
|
<dl compact><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 a pointer to the <a class="el" href="struct_x_dcfg.html">XDcfg</a> instance. </td></tr>
|
|||
|
<tr><td valign="top"></td><td valign="top"><em>Mask</em> </td><td>is the 32 bit mask data to be written to the Register. The mask definitions are defined in the <a class="el" href="xdevcfg__hw_8h.html">xdevcfg_hw.h</a> file.</td></tr>
|
|||
|
</table>
|
|||
|
</dl>
|
|||
|
<dl compact><dt><b>Returns:</b></dt><dd>None.</dd></dl>
|
|||
|
<dl compact><dt><b>Note:</b></dt><dd>None. </dd></dl>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
<a class="anchor" name="6dfafe59208bda2bfb8908fa96901410"></a><!-- doxytag: member="xdevcfg.c::XDcfg_SetLockRegister" ref="6dfafe59208bda2bfb8908fa96901410" args="(XDcfg *InstancePtr, u32 Data)" --><p>
|
|||
|
<table class="mdTable" cellpadding="2" cellspacing="0">
|
|||
|
<tr>
|
|||
|
<td class="mdRow">
|
|||
|
<table cellpadding="0" cellspacing="0" border="0">
|
|||
|
<tr>
|
|||
|
<td class="md" nowrap valign="top">void XDcfg_SetLockRegister </td>
|
|||
|
<td class="md" valign="top">( </td>
|
|||
|
<td class="md" nowrap valign="top"><a class="el" href="struct_x_dcfg.html">XDcfg</a> * </td>
|
|||
|
<td class="mdname" nowrap> <em>InstancePtr</em>, </td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td class="md" nowrap align="right"></td>
|
|||
|
<td class="md"></td>
|
|||
|
<td class="md" nowrap>u32 </td>
|
|||
|
<td class="mdname" nowrap> <em>Data</em></td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td class="md"></td>
|
|||
|
<td class="md">) </td>
|
|||
|
<td class="md" colspan="2"></td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
<table cellspacing="5" cellpadding="0" border="0">
|
|||
|
<tr>
|
|||
|
<td>
|
|||
|
|
|||
|
</td>
|
|||
|
<td>
|
|||
|
|
|||
|
<p>
|
|||
|
The function sets the contents of the Lock Register. These bits can only be set to a 1. They will be cleared after a Power On Reset.<p>
|
|||
|
<dl compact><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 a pointer to the <a class="el" href="struct_x_dcfg.html">XDcfg</a> instance. </td></tr>
|
|||
|
<tr><td valign="top"></td><td valign="top"><em>Data</em> </td><td>is the 32 bit data to be written to the Register.</td></tr>
|
|||
|
</table>
|
|||
|
</dl>
|
|||
|
<dl compact><dt><b>Returns:</b></dt><dd>None.</dd></dl>
|
|||
|
<dl compact><dt><b>Note:</b></dt><dd>None. </dd></dl>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
<a class="anchor" name="3c658601bf10b2faed44d1f084b45cbb"></a><!-- doxytag: member="xdevcfg.c::XDcfg_SetMiscControlRegister" ref="3c658601bf10b2faed44d1f084b45cbb" args="(XDcfg *InstancePtr, u32 Mask)" --><p>
|
|||
|
<table class="mdTable" cellpadding="2" cellspacing="0">
|
|||
|
<tr>
|
|||
|
<td class="mdRow">
|
|||
|
<table cellpadding="0" cellspacing="0" border="0">
|
|||
|
<tr>
|
|||
|
<td class="md" nowrap valign="top">void XDcfg_SetMiscControlRegister </td>
|
|||
|
<td class="md" valign="top">( </td>
|
|||
|
<td class="md" nowrap valign="top"><a class="el" href="struct_x_dcfg.html">XDcfg</a> * </td>
|
|||
|
<td class="mdname" nowrap> <em>InstancePtr</em>, </td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td class="md" nowrap align="right"></td>
|
|||
|
<td class="md"></td>
|
|||
|
<td class="md" nowrap>u32 </td>
|
|||
|
<td class="mdname" nowrap> <em>Mask</em></td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td class="md"></td>
|
|||
|
<td class="md">) </td>
|
|||
|
<td class="md" colspan="2"></td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
<table cellspacing="5" cellpadding="0" border="0">
|
|||
|
<tr>
|
|||
|
<td>
|
|||
|
|
|||
|
</td>
|
|||
|
<td>
|
|||
|
|
|||
|
<p>
|
|||
|
The function sets the bit mask for the feature in Miscellaneous Control Register.<p>
|
|||
|
<dl compact><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 a pointer to the <a class="el" href="struct_x_dcfg.html">XDcfg</a> instance. </td></tr>
|
|||
|
<tr><td valign="top"></td><td valign="top"><em>Mask</em> </td><td>is the bit-mask of the feature to be set.</td></tr>
|
|||
|
</table>
|
|||
|
</dl>
|
|||
|
<dl compact><dt><b>Returns:</b></dt><dd>None.</dd></dl>
|
|||
|
<dl compact><dt><b>Note:</b></dt><dd>None </dd></dl>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
<a class="anchor" name="f5de1a7bbc4fcb880675267dc5231c3c"></a><!-- doxytag: member="xdevcfg.c::XDcfg_SetRomShadowRegister" ref="f5de1a7bbc4fcb880675267dc5231c3c" args="(XDcfg *InstancePtr, u32 Data)" --><p>
|
|||
|
<table class="mdTable" cellpadding="2" cellspacing="0">
|
|||
|
<tr>
|
|||
|
<td class="mdRow">
|
|||
|
<table cellpadding="0" cellspacing="0" border="0">
|
|||
|
<tr>
|
|||
|
<td class="md" nowrap valign="top">void XDcfg_SetRomShadowRegister </td>
|
|||
|
<td class="md" valign="top">( </td>
|
|||
|
<td class="md" nowrap valign="top"><a class="el" href="struct_x_dcfg.html">XDcfg</a> * </td>
|
|||
|
<td class="mdname" nowrap> <em>InstancePtr</em>, </td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td class="md" nowrap align="right"></td>
|
|||
|
<td class="md"></td>
|
|||
|
<td class="md" nowrap>u32 </td>
|
|||
|
<td class="mdname" nowrap> <em>Data</em></td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td class="md"></td>
|
|||
|
<td class="md">) </td>
|
|||
|
<td class="md" colspan="2"></td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
<table cellspacing="5" cellpadding="0" border="0">
|
|||
|
<tr>
|
|||
|
<td>
|
|||
|
|
|||
|
</td>
|
|||
|
<td>
|
|||
|
|
|||
|
<p>
|
|||
|
The function sets the contents of the ROM Shadow Control Register.<p>
|
|||
|
<dl compact><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 a pointer to the <a class="el" href="struct_x_dcfg.html">XDcfg</a> instance. </td></tr>
|
|||
|
<tr><td valign="top"></td><td valign="top"><em>Data</em> </td><td>is the 32 bit data to be written to the Register.</td></tr>
|
|||
|
</table>
|
|||
|
</dl>
|
|||
|
<dl compact><dt><b>Returns:</b></dt><dd>None.</dd></dl>
|
|||
|
<dl compact><dt><b>Note:</b></dt><dd>This register is can only be written and is used to control the RAM shadow of 32 bit 4K page ROM pages in user mode </dd></dl>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
<a class="anchor" name="80c9a65eca36aa8d5928c48402ab5757"></a><!-- doxytag: member="xdevcfg.c::XDcfg_SetStatusRegister" ref="80c9a65eca36aa8d5928c48402ab5757" args="(XDcfg *InstancePtr, u32 Data)" --><p>
|
|||
|
<table class="mdTable" cellpadding="2" cellspacing="0">
|
|||
|
<tr>
|
|||
|
<td class="mdRow">
|
|||
|
<table cellpadding="0" cellspacing="0" border="0">
|
|||
|
<tr>
|
|||
|
<td class="md" nowrap valign="top">void XDcfg_SetStatusRegister </td>
|
|||
|
<td class="md" valign="top">( </td>
|
|||
|
<td class="md" nowrap valign="top"><a class="el" href="struct_x_dcfg.html">XDcfg</a> * </td>
|
|||
|
<td class="mdname" nowrap> <em>InstancePtr</em>, </td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td class="md" nowrap align="right"></td>
|
|||
|
<td class="md"></td>
|
|||
|
<td class="md" nowrap>u32 </td>
|
|||
|
<td class="mdname" nowrap> <em>Data</em></td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td class="md"></td>
|
|||
|
<td class="md">) </td>
|
|||
|
<td class="md" colspan="2"></td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
<table cellspacing="5" cellpadding="0" border="0">
|
|||
|
<tr>
|
|||
|
<td>
|
|||
|
|
|||
|
</td>
|
|||
|
<td>
|
|||
|
|
|||
|
<p>
|
|||
|
The function sets the contents of the Status Register.<p>
|
|||
|
<dl compact><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 a pointer to the <a class="el" href="struct_x_dcfg.html">XDcfg</a> instance. </td></tr>
|
|||
|
<tr><td valign="top"></td><td valign="top"><em>Data</em> </td><td>is the 32 bit data to be written to the Register.</td></tr>
|
|||
|
</table>
|
|||
|
</dl>
|
|||
|
<dl compact><dt><b>Returns:</b></dt><dd>None.</dd></dl>
|
|||
|
<dl compact><dt><b>Note:</b></dt><dd>None. </dd></dl>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
<a class="anchor" name="42e810b4e595310e202a4c347ccb080c"></a><!-- doxytag: member="xdevcfg.c::XDcfg_Transfer" ref="42e810b4e595310e202a4c347ccb080c" args="(XDcfg *InstancePtr, void *SourcePtr, u32 SrcWordLength, void *DestPtr, u32 DestWordLength, u32 TransferType)" --><p>
|
|||
|
<table class="mdTable" cellpadding="2" cellspacing="0">
|
|||
|
<tr>
|
|||
|
<td class="mdRow">
|
|||
|
<table cellpadding="0" cellspacing="0" border="0">
|
|||
|
<tr>
|
|||
|
<td class="md" nowrap valign="top">u32 XDcfg_Transfer </td>
|
|||
|
<td class="md" valign="top">( </td>
|
|||
|
<td class="md" nowrap valign="top"><a class="el" href="struct_x_dcfg.html">XDcfg</a> * </td>
|
|||
|
<td class="mdname" nowrap> <em>InstancePtr</em>, </td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td class="md" nowrap align="right"></td>
|
|||
|
<td class="md"></td>
|
|||
|
<td class="md" nowrap>void * </td>
|
|||
|
<td class="mdname" nowrap> <em>SourcePtr</em>, </td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td class="md" nowrap align="right"></td>
|
|||
|
<td class="md"></td>
|
|||
|
<td class="md" nowrap>u32 </td>
|
|||
|
<td class="mdname" nowrap> <em>SrcWordLength</em>, </td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td class="md" nowrap align="right"></td>
|
|||
|
<td class="md"></td>
|
|||
|
<td class="md" nowrap>void * </td>
|
|||
|
<td class="mdname" nowrap> <em>DestPtr</em>, </td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td class="md" nowrap align="right"></td>
|
|||
|
<td class="md"></td>
|
|||
|
<td class="md" nowrap>u32 </td>
|
|||
|
<td class="mdname" nowrap> <em>DestWordLength</em>, </td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td class="md" nowrap align="right"></td>
|
|||
|
<td class="md"></td>
|
|||
|
<td class="md" nowrap>u32 </td>
|
|||
|
<td class="mdname" nowrap> <em>TransferType</em></td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td class="md"></td>
|
|||
|
<td class="md">) </td>
|
|||
|
<td class="md" colspan="2"></td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
<table cellspacing="5" cellpadding="0" border="0">
|
|||
|
<tr>
|
|||
|
<td>
|
|||
|
|
|||
|
</td>
|
|||
|
<td>
|
|||
|
|
|||
|
<p>
|
|||
|
This function starts the DMA transfer. This function only starts the operation and returns before the operation may be completed. If the interrupt is enabled, an interrupt will be generated when the operation is completed, otherwise it is necessary to poll the Status register to determine when it is completed. It is the responsibility of the caller to determine when the operation is completed by handling the generated interrupt or polling the Status Register.<p>
|
|||
|
<dl compact><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 a pointer to the <a class="el" href="struct_x_dcfg.html">XDcfg</a> instance. </td></tr>
|
|||
|
<tr><td valign="top"></td><td valign="top"><em>SourcePtr</em> </td><td>contains a pointer to the source memory where the data is to be transferred from. </td></tr>
|
|||
|
<tr><td valign="top"></td><td valign="top"><em>SrcWordLength</em> </td><td>is the number of words (32 bit) to be transferred for the source transfer. </td></tr>
|
|||
|
<tr><td valign="top"></td><td valign="top"><em>DestPtr</em> </td><td>contains a pointer to the destination memory where the data is to be transferred to. </td></tr>
|
|||
|
<tr><td valign="top"></td><td valign="top"><em>DestWordLength</em> </td><td>is the number of words (32 bit) to be transferred for the Destination transfer. </td></tr>
|
|||
|
<tr><td valign="top"></td><td valign="top"><em>TransferType</em> </td><td>contains the type of PCAP transfer being requested. The definitions can be found in the xdevcfg.h file. </td></tr>
|
|||
|
</table>
|
|||
|
</dl>
|
|||
|
<dl compact><dt><b>Returns:</b></dt><dd><ul>
|
|||
|
<li>XST_SUCCESS.if DMA transfer initiated successfully</li><li>XST_DEVICE_BUSY if DMA is busy</li><li>XST_INVALID_PARAM if invalid Source / Destination address is sent or an invalid Source / Destination length is sent</li></ul>
|
|||
|
</dd></dl>
|
|||
|
<dl compact><dt><b>Note:</b></dt><dd>It is the responsibility of the caller to ensure that the cache is flushed and invalidated both before the DMA operation is started and after the DMA operation completes if the memory pointed to is cached. The caller must also ensure that the pointers contain physical address rather than a virtual address if address translation is being used.</dd></dl>
|
|||
|
The 2 LSBs of the SourcePtr (Source)/ DestPtr (Destination) address when equal to 2<>b01 indicates the last DMA command of an overall transfer. </td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
Copyright @ 1995-2014 Xilinx, Inc. All rights reserved.
|