Files
2016-08-09 18:06:35 +02:00

447 lines
25 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.6"/>
<title>Kinetis SDK v.2.0 API Reference Manual: RNGA: Random Number Generator Accelerator 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">Kinetis SDK v.2.0 API Reference Manual
&#160;<span id="projectnumber">Rev. 0</span>
</div>
<div id="projectbrief">Freescale Semiconductor, Inc.</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.6 -->
<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('group__rnga__driver.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="#files">Files</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">RNGA: Random Number Generator Accelerator Driver</div> </div>
</div><!--header-->
<div class="contents">
<a name="details" id="details"></a><h2 class="groupheader">Overview</h2>
<p>The Kinetis SDK provides Peripheral driver for the Random Number Generator Accelerator (RNGA) block of Kinetis devices.</p>
<h1><a class="anchor" id="RNGAInit"></a>
RNGA Initialization</h1>
<ol>
<li>
To initialize the RNGA module, call the <a class="el" href="group__rnga__driver.html#ga4a759e804d2982c1a8e6661178f270e0" title="Initializes the RNGA. ">RNGA_Init()</a> function. This function automatically enables the RNGA module and its clock. <br/>
</li>
<li>
After calling the <a class="el" href="group__rnga__driver.html#ga4a759e804d2982c1a8e6661178f270e0" title="Initializes the RNGA. ">RNGA_Init()</a> function, the RNGA is enabled and the counter starts working. </li>
<li>
To disable the RNGA module, call the <a class="el" href="group__rnga__driver.html#gafe3e397c4aa0064b7c47482763bc0718" title="Shuts down the RNGA. ">RNGA_Deinit()</a> function. </li>
</ol>
<h1><a class="anchor" id="RdRNGA"></a>
Get random data from RNGA</h1>
<ol>
<li>
<a class="el" href="group__rnga__driver.html#ga52cb7fbb2c19a4ba673ae0cfd122b682" title="Gets random data. ">RNGA_GetRandomData()</a> function gets random data from the RNGA module. </li>
</ol>
<h1><a class="anchor" id="RNGAWm"></a>
RNGA Set/Get Working Mode</h1>
<p>The RNGA works either in sleep mode or normal mode </p>
<ol>
<li>
<a class="el" href="group__rnga__driver.html#ga78306e8ba4d5457f699c3466a585007a" title="Sets the RNGA in normal mode or sleep mode. ">RNGA_SetMode()</a> function sets the RNGA mode. </li>
<li>
<a class="el" href="group__rnga__driver.html#ga91f951bc0404d586b597edd0339862d5" title="Gets the RNGA working mode. ">RNGA_GetMode()</a> function gets the RNGA working mode. </li>
</ol>
<h1><a class="anchor" id="SdRNGA"></a>
Seed RNGA</h1>
<ol>
<li>
<a class="el" href="group__rnga__driver.html#ga2926aa60d2cd28690c1215d2d1c852c3" title="Feeds the RNGA module. ">RNGA_Seed()</a> function inputs an entropy value that the RNGA can use to seed the pseudo random algorithm. </li>
</ol>
<p>This example code shows how to initialize and get random data from the RNGA driver:</p>
<div class="fragment"><div class="line">{</div>
<div class="line"> status_t status;</div>
<div class="line"> uint32_t data;</div>
<div class="line"></div>
<div class="line"> <span class="comment">/* Initialize RNGA </span></div>
<div class="line"><span class="comment"> status = RNGA_Init(RNG);</span></div>
<div class="line"><span class="comment"></span></div>
<div class="line"><span class="comment"> /* Read Random data</span></div>
<div class="line"><span class="comment"> status = RNGA_GetRandomData(RNG, data, sizeof(data));</span></div>
<div class="line"><span class="comment"></span></div>
<div class="line"><span class="comment"> if(status == kStatus_Success)</span></div>
<div class="line"><span class="comment"> {</span></div>
<div class="line"><span class="comment"> /* Print data</span></div>
<div class="line"><span class="comment"> PRINTF(&quot;Random = 0x%X\r\n&quot;, i, data );</span></div>
<div class="line"><span class="comment"> PRINTF(&quot;Succeed.\r\n&quot;);</span></div>
<div class="line"><span class="comment"> }</span></div>
<div class="line"><span class="comment"> else</span></div>
<div class="line"><span class="comment"> {</span></div>
<div class="line"><span class="comment"> PRINTF(&quot;RNGA failed! (0x%x)\r\n&quot;, status);</span></div>
<div class="line"><span class="comment"> }</span></div>
<div class="line"><span class="comment"></span></div>
<div class="line"><span class="comment"> /* Deinitialize RNGA</span></div>
<div class="line"><span class="comment"> RNGA_Deinit(RNG);</span></div>
<div class="line"><span class="comment">}</span></div>
</div><!-- fragment --><dl class="section note"><dt>Note</dt><dd>It is important to note there is no known cryptographic proof showing this is a secure method of generating random data. In fact, there may be an attack against this random number generator if its output is used directly in a cryptographic application. The attack is based on the linearity of the internal shift registers. Therefore, it is highly recommended that this random data produced by this module be used as an entropy source to provide an input seed to a NIST-approved pseudo-random-number generator based on DES or SHA-1 and defined in NIST FIPS PUB 186-2 Appendix 3 and NIST FIPS PUB SP 800-90. The requirement is to maximize the entropy of this input seed. In order to do this, when data is extracted from RNGA as quickly as the hardware allows, there are about one or two bits of added entropy per 32-bit word. Any single bit of that word contains that entropy. Therefore, when used as an entropy source, a random number should be generated for each bit of entropy required, and the least significant bit (any bit would be equivalent) of each word retained. The remainder of each random number should then be discarded. Used this way, even with full knowledge of the internal state of RNGA and all prior random numbers, an attacker is not able to predict the values of the extracted bits. Other sources of entropy can be used along with RNGA to generate the seed to the pseudorandom algorithm. The more random sources combined to create the seed, the better. The following is a list of sources that can be easily combined with the output of this module:<ul>
<li>Current time using highest precision possible</li>
<li>Real-time system inputs that can be characterized as "random"</li>
<li>Other entropy supplied directly by the user </li>
</ul>
</dd></dl>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
Files</h2></td></tr>
<tr class="memitem:fsl__rnga_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fsl__rnga_8h.html">fsl_rnga.h</a></td></tr>
<tr class="separator:"><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:gac771277bcdf2d2d5f0c4315d03f5a7b3"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__rnga__driver.html#gac771277bcdf2d2d5f0c4315d03f5a7b3">rnga_mode_t</a> { <br/>
&#160;&#160;<a class="el" href="group__rnga__driver.html#ggac771277bcdf2d2d5f0c4315d03f5a7b3a4b64de7293cc4b514073e78808645f5a">kRNGA_ModeNormal</a> = 0U,
<br/>
&#160;&#160;<a class="el" href="group__rnga__driver.html#ggac771277bcdf2d2d5f0c4315d03f5a7b3aabeca29a2026ebdd3a64c5d125c8759f">kRNGA_ModeSleep</a> = 1U
<br/>
}</td></tr>
<tr class="memdesc:gac771277bcdf2d2d5f0c4315d03f5a7b3"><td class="mdescLeft">&#160;</td><td class="mdescRight">RNGA working mode. <a href="group__rnga__driver.html#gac771277bcdf2d2d5f0c4315d03f5a7b3">More...</a><br/></td></tr>
<tr class="separator:gac771277bcdf2d2d5f0c4315d03f5a7b3"><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:ga4a759e804d2982c1a8e6661178f270e0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__rnga__driver.html#ga4a759e804d2982c1a8e6661178f270e0">RNGA_Init</a> (RNG_Type *base)</td></tr>
<tr class="memdesc:ga4a759e804d2982c1a8e6661178f270e0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes the RNGA. <a href="#ga4a759e804d2982c1a8e6661178f270e0">More...</a><br/></td></tr>
<tr class="separator:ga4a759e804d2982c1a8e6661178f270e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafe3e397c4aa0064b7c47482763bc0718"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__rnga__driver.html#gafe3e397c4aa0064b7c47482763bc0718">RNGA_Deinit</a> (RNG_Type *base)</td></tr>
<tr class="memdesc:gafe3e397c4aa0064b7c47482763bc0718"><td class="mdescLeft">&#160;</td><td class="mdescRight">Shuts down the RNGA. <a href="#gafe3e397c4aa0064b7c47482763bc0718">More...</a><br/></td></tr>
<tr class="separator:gafe3e397c4aa0064b7c47482763bc0718"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga52cb7fbb2c19a4ba673ae0cfd122b682"><td class="memItemLeft" align="right" valign="top">status_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__rnga__driver.html#ga52cb7fbb2c19a4ba673ae0cfd122b682">RNGA_GetRandomData</a> (RNG_Type *base, void *data, size_t data_size)</td></tr>
<tr class="memdesc:ga52cb7fbb2c19a4ba673ae0cfd122b682"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets random data. <a href="#ga52cb7fbb2c19a4ba673ae0cfd122b682">More...</a><br/></td></tr>
<tr class="separator:ga52cb7fbb2c19a4ba673ae0cfd122b682"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2926aa60d2cd28690c1215d2d1c852c3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__rnga__driver.html#ga2926aa60d2cd28690c1215d2d1c852c3">RNGA_Seed</a> (RNG_Type *base, uint32_t seed)</td></tr>
<tr class="memdesc:ga2926aa60d2cd28690c1215d2d1c852c3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Feeds the RNGA module. <a href="#ga2926aa60d2cd28690c1215d2d1c852c3">More...</a><br/></td></tr>
<tr class="separator:ga2926aa60d2cd28690c1215d2d1c852c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga78306e8ba4d5457f699c3466a585007a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__rnga__driver.html#ga78306e8ba4d5457f699c3466a585007a">RNGA_SetMode</a> (RNG_Type *base, <a class="el" href="group__rnga__driver.html#gac771277bcdf2d2d5f0c4315d03f5a7b3">rnga_mode_t</a> mode)</td></tr>
<tr class="memdesc:ga78306e8ba4d5457f699c3466a585007a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the RNGA in normal mode or sleep mode. <a href="#ga78306e8ba4d5457f699c3466a585007a">More...</a><br/></td></tr>
<tr class="separator:ga78306e8ba4d5457f699c3466a585007a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga91f951bc0404d586b597edd0339862d5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__rnga__driver.html#gac771277bcdf2d2d5f0c4315d03f5a7b3">rnga_mode_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__rnga__driver.html#ga91f951bc0404d586b597edd0339862d5">RNGA_GetMode</a> (RNG_Type *base)</td></tr>
<tr class="memdesc:ga91f951bc0404d586b597edd0339862d5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the RNGA working mode. <a href="#ga91f951bc0404d586b597edd0339862d5">More...</a><br/></td></tr>
<tr class="separator:ga91f951bc0404d586b597edd0339862d5"><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:ga57e2069c88ce114dbad53c1bcb2b17a4"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__rnga__driver.html#ga57e2069c88ce114dbad53c1bcb2b17a4">FSL_RNGA_DRIVER_VERSION</a>&#160;&#160;&#160;(<a class="el" href="group__flash__driver.html#ga812138aa3315b0c6953c1a26130bcc37">MAKE_VERSION</a>(2, 0, 1))</td></tr>
<tr class="memdesc:ga57e2069c88ce114dbad53c1bcb2b17a4"><td class="mdescLeft">&#160;</td><td class="mdescRight">RNGA driver version 2.0.1. <a href="#ga57e2069c88ce114dbad53c1bcb2b17a4">More...</a><br/></td></tr>
<tr class="separator:ga57e2069c88ce114dbad53c1bcb2b17a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="ga57e2069c88ce114dbad53c1bcb2b17a4"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define FSL_RNGA_DRIVER_VERSION&#160;&#160;&#160;(<a class="el" href="group__flash__driver.html#ga812138aa3315b0c6953c1a26130bcc37">MAKE_VERSION</a>(2, 0, 1))</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a class="anchor" id="gac771277bcdf2d2d5f0c4315d03f5a7b3"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group__rnga__driver.html#gac771277bcdf2d2d5f0c4315d03f5a7b3">rnga_mode_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="ggac771277bcdf2d2d5f0c4315d03f5a7b3a4b64de7293cc4b514073e78808645f5a"></a>kRNGA_ModeNormal</em>&#160;</td><td class="fielddoc">
<p>Normal Mode. </p>
<p>The ring-oscillator clocks are active; RNGA generates entropy (randomness) from the clocks and stores it in shift registers. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggac771277bcdf2d2d5f0c4315d03f5a7b3aabeca29a2026ebdd3a64c5d125c8759f"></a>kRNGA_ModeSleep</em>&#160;</td><td class="fielddoc">
<p>Sleep Mode. </p>
<p>The ring-oscillator clocks are inactive; RNGA does not generate entropy. </p>
</td></tr>
</table>
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="ga4a759e804d2982c1a8e6661178f270e0"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void RNGA_Init </td>
<td>(</td>
<td class="paramtype">RNG_Type *&#160;</td>
<td class="paramname"><em>base</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function initializes the RNGA. When called, the RNGA entropy generation starts immediately.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>RNGA base address </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gafe3e397c4aa0064b7c47482763bc0718"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void RNGA_Deinit </td>
<td>(</td>
<td class="paramtype">RNG_Type *&#160;</td>
<td class="paramname"><em>base</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function shuts down the RNGA.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>RNGA base address </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga52cb7fbb2c19a4ba673ae0cfd122b682"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">status_t RNGA_GetRandomData </td>
<td>(</td>
<td class="paramtype">RNG_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>data</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>data_size</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function gets random data from the RNGA.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>RNGA base address </td></tr>
<tr><td class="paramname">data</td><td>pointer to user buffer to be filled by random data </td></tr>
<tr><td class="paramname">data_size</td><td>size of data in bytes </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>RNGA status </dd></dl>
</div>
</div>
<a class="anchor" id="ga2926aa60d2cd28690c1215d2d1c852c3"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void RNGA_Seed </td>
<td>(</td>
<td class="paramtype">RNG_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>seed</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function inputs an entropy value that the RNGA uses to seed its pseudo-random algorithm.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>RNGA base address </td></tr>
<tr><td class="paramname">seed</td><td>input seed value </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga78306e8ba4d5457f699c3466a585007a"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void RNGA_SetMode </td>
<td>(</td>
<td class="paramtype">RNG_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__rnga__driver.html#gac771277bcdf2d2d5f0c4315d03f5a7b3">rnga_mode_t</a>&#160;</td>
<td class="paramname"><em>mode</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function sets the RNGA in sleep mode or normal mode.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>RNGA base address </td></tr>
<tr><td class="paramname">mode</td><td>normal mode or sleep mode </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga91f951bc0404d586b597edd0339862d5"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__rnga__driver.html#gac771277bcdf2d2d5f0c4315d03f5a7b3">rnga_mode_t</a> RNGA_GetMode </td>
<td>(</td>
<td class="paramtype">RNG_Type *&#160;</td>
<td class="paramname"><em>base</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function gets the RNGA working mode.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>RNGA base address </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>normal mode or sleep mode </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>