MCUXpresso_LPC55S69/docs/MCUXpresso SDK API Referenc.../a00240.html

430 lines
24 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.5"/>
<title>MCUXpresso SDK API Reference Manual: casper_driver</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
$(window).load(resizeHeight);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="fs_logo.gif"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">MCUXpresso SDK API Reference Manual
&#160;<span id="projectnumber">Rev 2.15.000</span>
</div>
<div id="projectbrief">NXP Semiconductors</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.5 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="modules.html"><span>API&#160;Reference</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('a00240.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">casper_driver<div class="ingroups"><a class="el" href="a00239.html">CASPER: The Cryptographic Accelerator and Signal Processing Engine with RAM sharing</a></div></div> </div>
</div><!--header-->
<div class="contents">
<a name="details" id="details"></a><h2 class="groupheader">Overview</h2>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:ga70e0187aa8acac29294311518b8bc3fb"><td class="memItemLeft" align="right" valign="top">typedef enum <a class="el" href="a00240.html#gad58a4d789b7a583e7793b2ab3cf698ba">_casper_operation</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00240.html#ga70e0187aa8acac29294311518b8bc3fb">casper_operation_t</a></td></tr>
<tr class="memdesc:ga70e0187aa8acac29294311518b8bc3fb"><td class="mdescLeft">&#160;</td><td class="mdescRight">CASPER operation. <a href="#ga70e0187aa8acac29294311518b8bc3fb">More...</a><br/></td></tr>
<tr class="separator:ga70e0187aa8acac29294311518b8bc3fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaeb3f0a23391e5fed42912a2775e12d44"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaeb3f0a23391e5fed42912a2775e12d44"></a>
typedef enum <a class="el" href="a00240.html#ga4ce07816cd7f6acdead0b975579144e0">_casper_algo_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00240.html#gaeb3f0a23391e5fed42912a2775e12d44">casper_algo_t</a></td></tr>
<tr class="memdesc:gaeb3f0a23391e5fed42912a2775e12d44"><td class="mdescLeft">&#160;</td><td class="mdescRight">Algorithm used for CASPER operation. <br/></td></tr>
<tr class="separator:gaeb3f0a23391e5fed42912a2775e12d44"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:gad58a4d789b7a583e7793b2ab3cf698ba"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00240.html#gad58a4d789b7a583e7793b2ab3cf698ba">_casper_operation</a> { , <br/>
&#160;&#160;<a class="el" href="a00240.html#ggad58a4d789b7a583e7793b2ab3cf698baab5a78d5173f379c5149add08650f14c5">kCASPER_OpMul6464Sum</a>,
<br/>
&#160;&#160;<a class="el" href="a00240.html#ggad58a4d789b7a583e7793b2ab3cf698baad04571c7b185686fd776a80806d6524d">kCASPER_OpMul6464FullSum</a>,
<br/>
&#160;&#160;<a class="el" href="a00240.html#ggad58a4d789b7a583e7793b2ab3cf698baad0fbf9a74a2cb155f031bc3c2caa251f">kCASPER_OpMul6464Reduce</a>,
<br/>
&#160;&#160;<a class="el" href="a00240.html#ggad58a4d789b7a583e7793b2ab3cf698baac73be9788e2abbbf2b011b7a3ad0ee25">kCASPER_OpAdd64</a> = 0x08,
<br/>
&#160;&#160;<a class="el" href="a00240.html#ggad58a4d789b7a583e7793b2ab3cf698baa46c350d401f6bb4c3fac8b5ca7df66b1">kCASPER_OpSub64</a> = 0x09,
<br/>
&#160;&#160;<a class="el" href="a00240.html#ggad58a4d789b7a583e7793b2ab3cf698baac6ffac25f046cb6c565ce7ffa543dbe0">kCASPER_OpDouble64</a> = 0x0A,
<br/>
&#160;&#160;<a class="el" href="a00240.html#ggad58a4d789b7a583e7793b2ab3cf698baa80db615b18d5ed2319c85a4fe6caa2eb">kCASPER_OpXor64</a> = 0x0B,
<br/>
&#160;&#160;<a class="el" href="a00240.html#ggad58a4d789b7a583e7793b2ab3cf698baa007fe02bbaf6b290d2024beaf9618e33">kCASPER_OpRSub64</a> = 0x0C,
<br/>
&#160;&#160;<a class="el" href="a00240.html#ggad58a4d789b7a583e7793b2ab3cf698baa405a717b5a196ce6f0c5167d43f6e08e">kCASPER_OpShiftLeft32</a>,
<br/>
&#160;&#160;<a class="el" href="a00240.html#ggad58a4d789b7a583e7793b2ab3cf698baa61a1a07e6c0adc7b367ef5dc195adc22">kCASPER_OpShiftRight32</a> = 0x11,
<br/>
&#160;&#160;<a class="el" href="a00240.html#ggad58a4d789b7a583e7793b2ab3cf698baa5b64b93e087ab8b9002440b264cad30d">kCASPER_OpCopy</a> = 0x14,
<br/>
&#160;&#160;<a class="el" href="a00240.html#ggad58a4d789b7a583e7793b2ab3cf698baa8e860749586cc0a33405334a931f291e">kCASPER_OpRemask</a> = 0x15,
<br/>
&#160;&#160;<a class="el" href="a00240.html#ggad58a4d789b7a583e7793b2ab3cf698baabdc1e3361e8415354fac33b3993b1491">kCASPER_OpFill</a> = 0x16,
<br/>
&#160;&#160;<a class="el" href="a00240.html#ggad58a4d789b7a583e7793b2ab3cf698baa34940e0777601a076a1715f859228f88">kCASPER_OpZero</a> = 0x17,
<br/>
&#160;&#160;<a class="el" href="a00240.html#ggad58a4d789b7a583e7793b2ab3cf698baa9507d1f5ad0b8219f9bd461eeb27752e">kCASPER_OpCompare</a> = 0x18,
<br/>
&#160;&#160;<a class="el" href="a00240.html#ggad58a4d789b7a583e7793b2ab3cf698baa10df9918e9754e22740900ecc145c43d">kCASPER_OpCompareFast</a> = 0x19
<br/>
}</td></tr>
<tr class="memdesc:gad58a4d789b7a583e7793b2ab3cf698ba"><td class="mdescLeft">&#160;</td><td class="mdescRight">CASPER operation. <a href="a00240.html#gad58a4d789b7a583e7793b2ab3cf698ba">More...</a><br/></td></tr>
<tr class="separator:gad58a4d789b7a583e7793b2ab3cf698ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4ce07816cd7f6acdead0b975579144e0"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00240.html#ga4ce07816cd7f6acdead0b975579144e0">_casper_algo_t</a> { <br/>
&#160;&#160;<a class="el" href="a00240.html#gga4ce07816cd7f6acdead0b975579144e0a8e86050a24be31a0c3e4c7f0fc801045">kCASPER_ECC_P256</a> = 0x01,
<br/>
&#160;&#160;<a class="el" href="a00240.html#gga4ce07816cd7f6acdead0b975579144e0a3fbcdf27711f1c8c8271899ac4aaab89">kCASPER_ECC_P384</a> = 0x02,
<br/>
&#160;&#160;<a class="el" href="a00240.html#gga4ce07816cd7f6acdead0b975579144e0a4a45988d4ca3b926783296346a862ad2">kCASPER_ECC_P521</a> = 0x03
<br/>
}</td></tr>
<tr class="memdesc:ga4ce07816cd7f6acdead0b975579144e0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Algorithm used for CASPER operation. <a href="a00240.html#ga4ce07816cd7f6acdead0b975579144e0">More...</a><br/></td></tr>
<tr class="separator:ga4ce07816cd7f6acdead0b975579144e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:gaa1948fcf9c7301808a765341b4fa72a8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00240.html#gaa1948fcf9c7301808a765341b4fa72a8">CASPER_Init</a> (CASPER_Type *base)</td></tr>
<tr class="memdesc:gaa1948fcf9c7301808a765341b4fa72a8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enables clock and disables reset for CASPER peripheral. <a href="#gaa1948fcf9c7301808a765341b4fa72a8">More...</a><br/></td></tr>
<tr class="separator:gaa1948fcf9c7301808a765341b4fa72a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga44e39a60b2116a93d89fb2d06ec8c290"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00240.html#ga44e39a60b2116a93d89fb2d06ec8c290">CASPER_Deinit</a> (CASPER_Type *base)</td></tr>
<tr class="memdesc:ga44e39a60b2116a93d89fb2d06ec8c290"><td class="mdescLeft">&#160;</td><td class="mdescRight">Disables clock for CASPER peripheral. <a href="#ga44e39a60b2116a93d89fb2d06ec8c290">More...</a><br/></td></tr>
<tr class="separator:ga44e39a60b2116a93d89fb2d06ec8c290"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
Driver version</h2></td></tr>
<tr class="memitem:ga38fa16be20cbb761a11dea0791a186fe"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00240.html#ga38fa16be20cbb761a11dea0791a186fe">FSL_CASPER_DRIVER_VERSION</a>&#160;&#160;&#160;(<a class="el" href="a00242.html#ga812138aa3315b0c6953c1a26130bcc37">MAKE_VERSION</a>(2, 2, 4))</td></tr>
<tr class="memdesc:ga38fa16be20cbb761a11dea0791a186fe"><td class="mdescLeft">&#160;</td><td class="mdescRight">CASPER driver version. <a href="#ga38fa16be20cbb761a11dea0791a186fe">More...</a><br/></td></tr>
<tr class="separator:ga38fa16be20cbb761a11dea0791a186fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="ga38fa16be20cbb761a11dea0791a186fe"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define FSL_CASPER_DRIVER_VERSION&#160;&#160;&#160;(<a class="el" href="a00242.html#ga812138aa3315b0c6953c1a26130bcc37">MAKE_VERSION</a>(2, 2, 4))</td>
</tr>
</table>
</div><div class="memdoc">
<p>Version 2.2.4.</p>
<p>Current version: 2.2.4</p>
<p>Change log:</p>
<ul>
<li>Version 2.0.0<ul>
<li>Initial version</li>
</ul>
</li>
<li>Version 2.0.1<ul>
<li>Bug fix KPSDK-24531 double_scalar_multiplication() result may be all zeroes for some specific input</li>
</ul>
</li>
<li>Version 2.0.2<ul>
<li>Bug fix KPSDK-25015 CASPER_MEMCPY hard-fault on LPC55xx when both source and destination buffers are outside of CASPER_RAM</li>
</ul>
</li>
<li>Version 2.0.3<ul>
<li>Bug fix KPSDK-28107 RSUB, FILL and ZERO operations not implemented in enum _casper_operation.</li>
</ul>
</li>
<li>Version 2.0.4<ul>
<li>For GCC compiler, enforce O1 optimize level, specifically to remove strict-aliasing option. This driver is very specific and requires -fno-strict-aliasing.</li>
</ul>
</li>
<li>Version 2.0.5<ul>
<li>Fix sign-compare warning.</li>
</ul>
</li>
<li>Version 2.0.6<ul>
<li>Fix IAR Pa082 warning.</li>
</ul>
</li>
<li>Version 2.0.7<ul>
<li>Fix MISRA-C 2012 issue.</li>
</ul>
</li>
<li>Version 2.0.8<ul>
<li>Add feature macro for CASPER_RAM_OFFSET.</li>
</ul>
</li>
<li>Version 2.0.9<ul>
<li>Remove unused function Jac_oncurve().</li>
<li>Fix ECC384 build.</li>
</ul>
</li>
<li>Version 2.0.10<ul>
<li>Fix MISRA-C 2012 issue.</li>
</ul>
</li>
<li>Version 2.1.0<ul>
<li>Add ECC NIST P-521 elliptic curve.</li>
</ul>
</li>
<li>Version 2.2.0<ul>
<li>Rework driver to support multiple curves at once.</li>
</ul>
</li>
<li>Version 2.2.1<ul>
<li>Fix MISRA-C 2012 issue.</li>
</ul>
</li>
<li>Version 2.2.2<ul>
<li>Enable hardware interleaving to RAMX0 and RAMX1 for CASPER by feature macro FSL_FEATURE_CASPER_RAM_HW_INTERLEAVE</li>
</ul>
</li>
<li>Version 2.2.3<ul>
<li>Added macro into CASPER_Init and CASPER_Deinit to support devices without clock and reset control.</li>
</ul>
</li>
<li>Version 2.2.4<ul>
<li>Fix MISRA-C 2012 issue. </li>
</ul>
</li>
</ul>
</div>
</div>
<h2 class="groupheader">Typedef Documentation</h2>
<a class="anchor" id="ga70e0187aa8acac29294311518b8bc3fb"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef enum <a class="el" href="a00240.html#gad58a4d789b7a583e7793b2ab3cf698ba">_casper_operation</a> <a class="el" href="a00240.html#ga70e0187aa8acac29294311518b8bc3fb">casper_operation_t</a></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a class="anchor" id="gad58a4d789b7a583e7793b2ab3cf698ba"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="a00240.html#gad58a4d789b7a583e7793b2ab3cf698ba">_casper_operation</a></td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="ggad58a4d789b7a583e7793b2ab3cf698baab5a78d5173f379c5149add08650f14c5"></a>kCASPER_OpMul6464Sum</em>&nbsp;</td><td class="fielddoc">
<p>Walking 1 or more of J loop, doing r=a*b using 64x64=128. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggad58a4d789b7a583e7793b2ab3cf698baad04571c7b185686fd776a80806d6524d"></a>kCASPER_OpMul6464FullSum</em>&nbsp;</td><td class="fielddoc">
<p>Walking 1 or more of J loop, doing c,r=r+a*b using 64x64=128, but assume inner j loop. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggad58a4d789b7a583e7793b2ab3cf698baad0fbf9a74a2cb155f031bc3c2caa251f"></a>kCASPER_OpMul6464Reduce</em>&nbsp;</td><td class="fielddoc">
<p>Walking 1 or more of J loop, doing c,r=r+a*b using 64x64=128, but sum all of w. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggad58a4d789b7a583e7793b2ab3cf698baac73be9788e2abbbf2b011b7a3ad0ee25"></a>kCASPER_OpAdd64</em>&nbsp;</td><td class="fielddoc">
<p>Walking 1 or more of J loop, doing c,r[-1]=r+a*b using 64x64=128, but skip 1st write. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggad58a4d789b7a583e7793b2ab3cf698baa46c350d401f6bb4c3fac8b5ca7df66b1"></a>kCASPER_OpSub64</em>&nbsp;</td><td class="fielddoc">
<p>Walking add with off_AB, and in/out off_RES doing c,r=r+a+c using 64+64=65. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggad58a4d789b7a583e7793b2ab3cf698baac6ffac25f046cb6c565ce7ffa543dbe0"></a>kCASPER_OpDouble64</em>&nbsp;</td><td class="fielddoc">
<p>Walking subtract with off_AB, and in/out off_RES doing r=r-a using 64-64=64, with last borrow implicit if any. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggad58a4d789b7a583e7793b2ab3cf698baa80db615b18d5ed2319c85a4fe6caa2eb"></a>kCASPER_OpXor64</em>&nbsp;</td><td class="fielddoc">
<p>Walking add to self with off_RES doing c,r=r+r+c using 64+64=65. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggad58a4d789b7a583e7793b2ab3cf698baa007fe02bbaf6b290d2024beaf9618e33"></a>kCASPER_OpRSub64</em>&nbsp;</td><td class="fielddoc">
<p>Walking XOR with off_AB, and in/out off_RES doing r=r^a using 64^64=64. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggad58a4d789b7a583e7793b2ab3cf698baa405a717b5a196ce6f0c5167d43f6e08e"></a>kCASPER_OpShiftLeft32</em>&nbsp;</td><td class="fielddoc">
<p>Walking subtract with off_AB, and in/out off_RES using r=a-r. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggad58a4d789b7a583e7793b2ab3cf698baa61a1a07e6c0adc7b367ef5dc195adc22"></a>kCASPER_OpShiftRight32</em>&nbsp;</td><td class="fielddoc">
<p>Walking shift left doing r1,r=(b*D)|r1, where D is 2^amt and is loaded by app (off_CD not used) </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggad58a4d789b7a583e7793b2ab3cf698baa5b64b93e087ab8b9002440b264cad30d"></a>kCASPER_OpCopy</em>&nbsp;</td><td class="fielddoc">
<p>Walking shift right doing r,r1=(b*D)|r1, where D is 2^(32-amt) and is loaded by app (off_CD not used) and off_RES starts at MSW. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggad58a4d789b7a583e7793b2ab3cf698baa8e860749586cc0a33405334a931f291e"></a>kCASPER_OpRemask</em>&nbsp;</td><td class="fielddoc">
<p>Copy from ABoff to resoff, 64b at a time. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggad58a4d789b7a583e7793b2ab3cf698baabdc1e3361e8415354fac33b3993b1491"></a>kCASPER_OpFill</em>&nbsp;</td><td class="fielddoc">
<p>Copy and mask from ABoff to resoff, 64b at a time. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggad58a4d789b7a583e7793b2ab3cf698baa34940e0777601a076a1715f859228f88"></a>kCASPER_OpZero</em>&nbsp;</td><td class="fielddoc">
<p>Fill RESOFF using 64 bits at a time with value in A and B. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggad58a4d789b7a583e7793b2ab3cf698baa9507d1f5ad0b8219f9bd461eeb27752e"></a>kCASPER_OpCompare</em>&nbsp;</td><td class="fielddoc">
<p>Fill RESOFF using 64 bits at a time of 0s. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggad58a4d789b7a583e7793b2ab3cf698baa10df9918e9754e22740900ecc145c43d"></a>kCASPER_OpCompareFast</em>&nbsp;</td><td class="fielddoc">
<p>Compare two arrays, running all the way to the end. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="ga4ce07816cd7f6acdead0b975579144e0"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="a00240.html#ga4ce07816cd7f6acdead0b975579144e0">_casper_algo_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gga4ce07816cd7f6acdead0b975579144e0a8e86050a24be31a0c3e4c7f0fc801045"></a>kCASPER_ECC_P256</em>&nbsp;</td><td class="fielddoc">
<p>ECC_P256. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga4ce07816cd7f6acdead0b975579144e0a3fbcdf27711f1c8c8271899ac4aaab89"></a>kCASPER_ECC_P384</em>&nbsp;</td><td class="fielddoc">
<p>ECC_P384. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga4ce07816cd7f6acdead0b975579144e0a4a45988d4ca3b926783296346a862ad2"></a>kCASPER_ECC_P521</em>&nbsp;</td><td class="fielddoc">
<p>ECC_P521. </p>
</td></tr>
</table>
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="gaa1948fcf9c7301808a765341b4fa72a8"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void CASPER_Init </td>
<td>(</td>
<td class="paramtype">CASPER_Type *&#160;</td>
<td class="paramname"><em>base</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Enable clock and disable reset for CASPER.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>CASPER base address </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga44e39a60b2116a93d89fb2d06ec8c290"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void CASPER_Deinit </td>
<td>(</td>
<td class="paramtype">CASPER_Type *&#160;</td>
<td class="paramname"><em>base</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Disable clock and enable reset.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>CASPER base address </td></tr>
</table>
</dd>
</dl>
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- HTML footer for doxygen 1.8.5-->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul class="foot">
<li class="footer">&copy; 2016 NXP Semiconductors. All rights reserved.
</li>
</ul>
</div>
</body>
</html>