MCUXpresso_MIMXRT1052xxxxB/docs/MCUXpresso SDK API Referenc.../a00011.html

958 lines
60 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: BEE: Bus Encryption Engine</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('a00011.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="#nested-classes">Data Structures</a> &#124;
<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">BEE: Bus Encryption Engine</div> </div>
</div><!--header-->
<div class="contents">
<a name="details" id="details"></a><h2 class="groupheader">Overview</h2>
<p>The MCUXpresso SDK provides a peripheral driver for the Bus Encryption Engine (BEE) module.</p>
<p>The BEE module is implemented as an on-the-fly decryption engine. The main features of the BEE module are:</p>
<ul>
<li>Standard AXI interconnection</li>
<li>On-the-fly AES-128 decryption, supporting ECB and CTR mode</li>
<li>Aliased memory space support. Address remapping for up to two individual regions</li>
<li>Independent AES Key management for those two individual regions</li>
<li>Bus access pattern optimization with the aid of local store and forward buffer</li>
<li>Non-secured access filtering based on security label of the access</li>
<li>Illegal access check and filtering.</li>
</ul>
<p>The known hardware limitations of the BEE module are as follows:</p>
<ul>
<li>Only supports 128 bits data width AXI interconnection</li>
<li>Only supports 16-byte burst access size. For a single transaction, the minimum supported access size is limited to 4 bytes.</li>
<li>Granularity of the address bias is 128 KB per step</li>
</ul>
<h1><a class="anchor" id="BEEInit"></a>
BEE Driver Initialization and Configuration</h1>
<p>The function <a class="el" href="a00011.html#ga3d52a4156aba0653ab32d8916ced6803" title="Resets BEE module to factory default values. ">BEE_Init()</a> initializes the BEE to default values. The function <a class="el" href="a00011.html#gaeca7aeaa01f87978efc7c216cd7bb5e5" title="Loads default values to the BEE region configuration structure. ">BEE_GetDefaultConfig()</a> loads default values to the BEE configuration structure. The default values are described below.</p>
<p>See the driver examples codes located at &lt;SDK_ROOT&gt;/boards/&lt;BOARD&gt;/driver_examples/bee. The function <a class="el" href="a00011.html#ga6a7d90cf1243d7cc3df27ce14769fc20" title="Resets BEE module, clears keys for both regions and disables clock to the BEE. ">BEE_Deinit()</a> performs a hardware reset of BEE module and disables clocks. Configuration and keys from software for both regions are cleared.</p>
<h1><a class="anchor" id="BEEEnable"></a>
Enable &amp; Disable BEE</h1>
<p>The function <a class="el" href="a00011.html#gaf62faab6a2f1750c1140caf6aa93e8eb" title="Enables BEE decryption. ">BEE_Enable()</a> enables decryption using BEE. The function <a class="el" href="a00011.html#ga6283ed8e0a7504b9bccfc79e204522e7" title="Disables BEE decryption. ">BEE_Disable()</a> disables decryption using BEE.</p>
<h1><a class="anchor" id="BEESet"></a>
Set BEE region config and key</h1>
<p>The function <a class="el" href="a00011.html#ga9744f40ce0f27c8b6dcabce8fda252b5" title="Sets BEE configuration. ">BEE_SetConfig()</a> sets BEE settings according to given configuration structure. The structure is described below.</p>
<p>See the driver examples codes located at &lt;SDK_ROOT&gt;/boards/&lt;BOARD&gt;/driver_examples/bee. The function <a class="el" href="a00011.html#gab46f30a09b9b92665ff197ab7cdb78cd" title="Loads the AES key for selected region into BEE key registers. ">BEE_SetRegionKey()</a> loads given AES key to BEE register for the given region. The key must be 32-bit aligned and stored in little-endian format. Note that eFuse BEE_KEYx_SEL must be set accordingly to be able to load and use the key loaded in BEE registers. Otherwise, the key cannot be loaded and BEE uses the key from OTPMK or SW_GP2.</p>
<p>The function <a class="el" href="a00011.html#gaa638564cda2e20d4891534c9542eaa39" title="Loads the nonce for selected region into BEE nonce registers. ">BEE_SetRegionNonce()</a> loads given AES nonce (used only for AES CTR mode) to BEE register for the given region. The nonce must be 32-bit aligned and stored in little-endian format.</p>
<h1><a class="anchor" id="BEEStatus"></a>
Status</h1>
<p>Provides functions to get and clear the BEE status.</p>
<p>The function <a class="el" href="a00011.html#ga68a9f0f1fd8f8db579c283db82e6c5f8" title="Gets the BEE status flags. ">BEE_GetStatusFlags()</a> returns status of BEE peripheral. The function <a class="el" href="a00011.html#ga19f4a79958527498bfb0d95c649e84bf" title="Clears the BEE status flags. ">BEE_ClearStatusFlags()</a> clears the BEE status flags.</p>
<h2><a class="anchor" id="BEEEx"></a>
BEE example</h2>
<p>Refer to the driver examples codes located at &lt;SDK_ROOT&gt;/boards/&lt;BOARD&gt;/driver_examples/bee </p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:a00319"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00011.html#a00319">_bee_region_config</a></td></tr>
<tr class="memdesc:a00319"><td class="mdescLeft">&#160;</td><td class="mdescRight">BEE region configuration structure. <a href="a00011.html#a00319">More...</a><br/></td></tr>
<tr class="separator:a00319"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:ga12e215f1c5f129a5cdc758474c413902"><td class="memItemLeft" align="right" valign="top">typedef enum <a class="el" href="a00011.html#gaa371b6f1f37738eae58825f68f6b5c6e">_bee_aes_mode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00011.html#ga12e215f1c5f129a5cdc758474c413902">bee_aes_mode_t</a></td></tr>
<tr class="memdesc:ga12e215f1c5f129a5cdc758474c413902"><td class="mdescLeft">&#160;</td><td class="mdescRight">BEE aes mode. <a href="#ga12e215f1c5f129a5cdc758474c413902">More...</a><br/></td></tr>
<tr class="separator:ga12e215f1c5f129a5cdc758474c413902"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5bf231788885148f51c8b718ad72dc0e"><td class="memItemLeft" align="right" valign="top">typedef enum <a class="el" href="a00011.html#ga7900808e0b74dc06031980525fd5a3a7">_bee_region</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00011.html#ga5bf231788885148f51c8b718ad72dc0e">bee_region_t</a></td></tr>
<tr class="memdesc:ga5bf231788885148f51c8b718ad72dc0e"><td class="mdescLeft">&#160;</td><td class="mdescRight">BEE region. <a href="#ga5bf231788885148f51c8b718ad72dc0e">More...</a><br/></td></tr>
<tr class="separator:ga5bf231788885148f51c8b718ad72dc0e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga66b37aad248772347f38556375fa2b26"><td class="memItemLeft" align="right" valign="top">typedef enum <a class="el" href="a00011.html#ga1cd78ef104eabbdb0f85d14013b362c9">_bee_ac_prot_enable</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00011.html#ga66b37aad248772347f38556375fa2b26">bee_ac_prot_enable</a></td></tr>
<tr class="memdesc:ga66b37aad248772347f38556375fa2b26"><td class="mdescLeft">&#160;</td><td class="mdescRight">BEE ac prot enable. <a href="#ga66b37aad248772347f38556375fa2b26">More...</a><br/></td></tr>
<tr class="separator:ga66b37aad248772347f38556375fa2b26"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga39952e85a1ee308382c7907124e6599d"><td class="memItemLeft" align="right" valign="top">typedef enum <br class="typebreak"/>
<a class="el" href="a00011.html#ga1e5efbd3d1be2ab19083a186220134b0">_bee_endian_swap_enable</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00011.html#ga39952e85a1ee308382c7907124e6599d">bee_endian_swap_enable</a></td></tr>
<tr class="memdesc:ga39952e85a1ee308382c7907124e6599d"><td class="mdescLeft">&#160;</td><td class="mdescRight">BEE endian swap enable. <a href="#ga39952e85a1ee308382c7907124e6599d">More...</a><br/></td></tr>
<tr class="separator:ga39952e85a1ee308382c7907124e6599d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga86624b8e0eac431ececb0a342532283e"><td class="memItemLeft" align="right" valign="top">typedef enum <a class="el" href="a00011.html#ga3d5f3c2eaea4e9b885ddaaa320c21078">_bee_security_level</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00011.html#ga86624b8e0eac431ececb0a342532283e">bee_security_level</a></td></tr>
<tr class="memdesc:ga86624b8e0eac431ececb0a342532283e"><td class="mdescLeft">&#160;</td><td class="mdescRight">BEE security level. <a href="#ga86624b8e0eac431ececb0a342532283e">More...</a><br/></td></tr>
<tr class="separator:ga86624b8e0eac431ececb0a342532283e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5f7ae311d6de0fd7a6e2ad59f4662d5f"><td class="memItemLeft" align="right" valign="top">typedef enum <a class="el" href="a00011.html#ga114907e401f0f84fc69214f3b300910b">_bee_status_flags</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00011.html#ga5f7ae311d6de0fd7a6e2ad59f4662d5f">bee_status_flags_t</a></td></tr>
<tr class="memdesc:ga5f7ae311d6de0fd7a6e2ad59f4662d5f"><td class="mdescLeft">&#160;</td><td class="mdescRight">BEE status flags. <a href="#ga5f7ae311d6de0fd7a6e2ad59f4662d5f">More...</a><br/></td></tr>
<tr class="separator:ga5f7ae311d6de0fd7a6e2ad59f4662d5f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga36c5b0b63e8531a0dc877cd959a265dd"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="a00011.html#a00319">_bee_region_config</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00011.html#ga36c5b0b63e8531a0dc877cd959a265dd">bee_region_config_t</a></td></tr>
<tr class="memdesc:ga36c5b0b63e8531a0dc877cd959a265dd"><td class="mdescLeft">&#160;</td><td class="mdescRight">BEE region configuration structure. <a href="#ga36c5b0b63e8531a0dc877cd959a265dd">More...</a><br/></td></tr>
<tr class="separator:ga36c5b0b63e8531a0dc877cd959a265dd"><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:gaa371b6f1f37738eae58825f68f6b5c6e"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00011.html#gaa371b6f1f37738eae58825f68f6b5c6e">_bee_aes_mode</a> { <br/>
&#160;&#160;<a class="el" href="a00011.html#ggaa371b6f1f37738eae58825f68f6b5c6eae52b46a003475a448e988945a23b65a9">kBEE_AesEcbMode</a> = 0U,
<br/>
&#160;&#160;<a class="el" href="a00011.html#ggaa371b6f1f37738eae58825f68f6b5c6ea2343e45e7a54c317b02b36f84b1b8c01">kBEE_AesCtrMode</a> = 1U
<br/>
}</td></tr>
<tr class="memdesc:gaa371b6f1f37738eae58825f68f6b5c6e"><td class="mdescLeft">&#160;</td><td class="mdescRight">BEE aes mode. <a href="a00011.html#gaa371b6f1f37738eae58825f68f6b5c6e">More...</a><br/></td></tr>
<tr class="separator:gaa371b6f1f37738eae58825f68f6b5c6e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7900808e0b74dc06031980525fd5a3a7"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00011.html#ga7900808e0b74dc06031980525fd5a3a7">_bee_region</a> { <br/>
&#160;&#160;<a class="el" href="a00011.html#gga7900808e0b74dc06031980525fd5a3a7ae94acd2a2ae18f5fff22674a73331747">kBEE_Region0</a> = 0U,
<br/>
&#160;&#160;<a class="el" href="a00011.html#gga7900808e0b74dc06031980525fd5a3a7a267f83f6596867c02f61330a9fe4303b">kBEE_Region1</a> = 1U
<br/>
}</td></tr>
<tr class="memdesc:ga7900808e0b74dc06031980525fd5a3a7"><td class="mdescLeft">&#160;</td><td class="mdescRight">BEE region. <a href="a00011.html#ga7900808e0b74dc06031980525fd5a3a7">More...</a><br/></td></tr>
<tr class="separator:ga7900808e0b74dc06031980525fd5a3a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1cd78ef104eabbdb0f85d14013b362c9"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00011.html#ga1cd78ef104eabbdb0f85d14013b362c9">_bee_ac_prot_enable</a> { <br/>
&#160;&#160;<a class="el" href="a00011.html#gga1cd78ef104eabbdb0f85d14013b362c9a414bc55656378147df63f914f19f8f9a">kBEE_AccessProtDisabled</a> = 0U,
<br/>
&#160;&#160;<a class="el" href="a00011.html#gga1cd78ef104eabbdb0f85d14013b362c9a0018c2487ed37c32f1adcf4d22f5520a">kBEE_AccessProtEnabled</a> = 1U
<br/>
}</td></tr>
<tr class="memdesc:ga1cd78ef104eabbdb0f85d14013b362c9"><td class="mdescLeft">&#160;</td><td class="mdescRight">BEE ac prot enable. <a href="a00011.html#ga1cd78ef104eabbdb0f85d14013b362c9">More...</a><br/></td></tr>
<tr class="separator:ga1cd78ef104eabbdb0f85d14013b362c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1e5efbd3d1be2ab19083a186220134b0"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00011.html#ga1e5efbd3d1be2ab19083a186220134b0">_bee_endian_swap_enable</a> { <br/>
&#160;&#160;<a class="el" href="a00011.html#gga1e5efbd3d1be2ab19083a186220134b0a9f1b957a5659415d684c9d8a26130c9a">kBEE_EndianSwapDisabled</a> = 1U,
<br/>
&#160;&#160;<a class="el" href="a00011.html#gga1e5efbd3d1be2ab19083a186220134b0aae7a7427057b6f11a4aec827faeeaa95">kBEE_EndianSwapEnabled</a> = 0U
<br/>
}</td></tr>
<tr class="memdesc:ga1e5efbd3d1be2ab19083a186220134b0"><td class="mdescLeft">&#160;</td><td class="mdescRight">BEE endian swap enable. <a href="a00011.html#ga1e5efbd3d1be2ab19083a186220134b0">More...</a><br/></td></tr>
<tr class="separator:ga1e5efbd3d1be2ab19083a186220134b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3d5f3c2eaea4e9b885ddaaa320c21078"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00011.html#ga3d5f3c2eaea4e9b885ddaaa320c21078">_bee_security_level</a> { <br/>
&#160;&#160;<a class="el" href="a00011.html#gga3d5f3c2eaea4e9b885ddaaa320c21078a1ff0f0d48b15ce491a9fe7828fa55277">kBEE_SecurityLevel0</a> = 0U,
<br/>
&#160;&#160;<a class="el" href="a00011.html#gga3d5f3c2eaea4e9b885ddaaa320c21078a0105c172f2c88c17a64e6d2613a8c363">kBEE_SecurityLevel1</a> = 1U,
<br/>
&#160;&#160;<a class="el" href="a00011.html#gga3d5f3c2eaea4e9b885ddaaa320c21078ad384339d7ba535855dd016c669142663">kBEE_SecurityLevel2</a> = 2U,
<br/>
&#160;&#160;<a class="el" href="a00011.html#gga3d5f3c2eaea4e9b885ddaaa320c21078aa3bf99fa6c53e50aee203417eb797334">kBEE_SecurityLevel3</a> = 3U
<br/>
}</td></tr>
<tr class="memdesc:ga3d5f3c2eaea4e9b885ddaaa320c21078"><td class="mdescLeft">&#160;</td><td class="mdescRight">BEE security level. <a href="a00011.html#ga3d5f3c2eaea4e9b885ddaaa320c21078">More...</a><br/></td></tr>
<tr class="separator:ga3d5f3c2eaea4e9b885ddaaa320c21078"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga114907e401f0f84fc69214f3b300910b"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00011.html#ga114907e401f0f84fc69214f3b300910b">_bee_status_flags</a> { <br/>
&#160;&#160;<a class="el" href="a00011.html#gga114907e401f0f84fc69214f3b300910ba8a4ab1c7e89e71fbb3f2ea03da60e56e">kBEE_DisableAbortFlag</a> = 1U,
<br/>
&#160;&#160;<a class="el" href="a00011.html#gga114907e401f0f84fc69214f3b300910ba1b886204e75690116eed7deca4646845">kBEE_Reg0ReadSecViolation</a> = 2U,
<br/>
&#160;&#160;<a class="el" href="a00011.html#gga114907e401f0f84fc69214f3b300910ba524ac8b7f3fbd8a1dc068f8c995bcbf1">kBEE_ReadIllegalAccess</a> = 4U,
<br/>
&#160;&#160;<a class="el" href="a00011.html#gga114907e401f0f84fc69214f3b300910ba996c753929bc10c0668b41ec1087d402">kBEE_Reg1ReadSecViolation</a> = 8U,
<br/>
&#160;&#160;<a class="el" href="a00011.html#gga114907e401f0f84fc69214f3b300910babcc7d1d64f326052b3a20e9a857fb5d2">kBEE_Reg0AccessViolation</a> = 16U,
<br/>
&#160;&#160;<a class="el" href="a00011.html#gga114907e401f0f84fc69214f3b300910ba4a6c82013e492f079dbfc0b4f25d713c">kBEE_Reg1AccessViolation</a> = 32U,
<br/>
&#160;&#160;<a class="el" href="a00011.html#gga114907e401f0f84fc69214f3b300910ba850124e92d5e1d37be862c4f2363c9c8">kBEE_IdleFlag</a> = BEE_STATUS_BEE_IDLE_MASK
<br/>
}</td></tr>
<tr class="memdesc:ga114907e401f0f84fc69214f3b300910b"><td class="mdescLeft">&#160;</td><td class="mdescRight">BEE status flags. <a href="a00011.html#ga114907e401f0f84fc69214f3b300910b">More...</a><br/></td></tr>
<tr class="separator:ga114907e401f0f84fc69214f3b300910b"><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:ga3d52a4156aba0653ab32d8916ced6803"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00011.html#ga3d52a4156aba0653ab32d8916ced6803">BEE_Init</a> (BEE_Type *base)</td></tr>
<tr class="memdesc:ga3d52a4156aba0653ab32d8916ced6803"><td class="mdescLeft">&#160;</td><td class="mdescRight">Resets BEE module to factory default values. <a href="#ga3d52a4156aba0653ab32d8916ced6803">More...</a><br/></td></tr>
<tr class="separator:ga3d52a4156aba0653ab32d8916ced6803"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6a7d90cf1243d7cc3df27ce14769fc20"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00011.html#ga6a7d90cf1243d7cc3df27ce14769fc20">BEE_Deinit</a> (BEE_Type *base)</td></tr>
<tr class="memdesc:ga6a7d90cf1243d7cc3df27ce14769fc20"><td class="mdescLeft">&#160;</td><td class="mdescRight">Resets BEE module, clears keys for both regions and disables clock to the BEE. <a href="#ga6a7d90cf1243d7cc3df27ce14769fc20">More...</a><br/></td></tr>
<tr class="separator:ga6a7d90cf1243d7cc3df27ce14769fc20"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf62faab6a2f1750c1140caf6aa93e8eb"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00011.html#gaf62faab6a2f1750c1140caf6aa93e8eb">BEE_Enable</a> (BEE_Type *base)</td></tr>
<tr class="memdesc:gaf62faab6a2f1750c1140caf6aa93e8eb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enables BEE decryption. <a href="#gaf62faab6a2f1750c1140caf6aa93e8eb">More...</a><br/></td></tr>
<tr class="separator:gaf62faab6a2f1750c1140caf6aa93e8eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6283ed8e0a7504b9bccfc79e204522e7"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00011.html#ga6283ed8e0a7504b9bccfc79e204522e7">BEE_Disable</a> (BEE_Type *base)</td></tr>
<tr class="memdesc:ga6283ed8e0a7504b9bccfc79e204522e7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Disables BEE decryption. <a href="#ga6283ed8e0a7504b9bccfc79e204522e7">More...</a><br/></td></tr>
<tr class="separator:ga6283ed8e0a7504b9bccfc79e204522e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaeca7aeaa01f87978efc7c216cd7bb5e5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00011.html#gaeca7aeaa01f87978efc7c216cd7bb5e5">BEE_GetDefaultConfig</a> (<a class="el" href="a00011.html#ga36c5b0b63e8531a0dc877cd959a265dd">bee_region_config_t</a> *config)</td></tr>
<tr class="memdesc:gaeca7aeaa01f87978efc7c216cd7bb5e5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Loads default values to the BEE region configuration structure. <a href="#gaeca7aeaa01f87978efc7c216cd7bb5e5">More...</a><br/></td></tr>
<tr class="separator:gaeca7aeaa01f87978efc7c216cd7bb5e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9744f40ce0f27c8b6dcabce8fda252b5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00011.html#ga9744f40ce0f27c8b6dcabce8fda252b5">BEE_SetConfig</a> (BEE_Type *base, const <a class="el" href="a00011.html#ga36c5b0b63e8531a0dc877cd959a265dd">bee_region_config_t</a> *config)</td></tr>
<tr class="memdesc:ga9744f40ce0f27c8b6dcabce8fda252b5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets BEE configuration. <a href="#ga9744f40ce0f27c8b6dcabce8fda252b5">More...</a><br/></td></tr>
<tr class="separator:ga9744f40ce0f27c8b6dcabce8fda252b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab46f30a09b9b92665ff197ab7cdb78cd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00272.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00011.html#gab46f30a09b9b92665ff197ab7cdb78cd">BEE_SetRegionKey</a> (BEE_Type *base, <a class="el" href="a00011.html#ga5bf231788885148f51c8b718ad72dc0e">bee_region_t</a> region, const uint8_t *key, size_t keySize)</td></tr>
<tr class="memdesc:gab46f30a09b9b92665ff197ab7cdb78cd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Loads the AES key for selected region into BEE key registers. <a href="#gab46f30a09b9b92665ff197ab7cdb78cd">More...</a><br/></td></tr>
<tr class="separator:gab46f30a09b9b92665ff197ab7cdb78cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa638564cda2e20d4891534c9542eaa39"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00272.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00011.html#gaa638564cda2e20d4891534c9542eaa39">BEE_SetRegionNonce</a> (BEE_Type *base, <a class="el" href="a00011.html#ga5bf231788885148f51c8b718ad72dc0e">bee_region_t</a> region, const uint8_t *nonce, size_t nonceSize)</td></tr>
<tr class="memdesc:gaa638564cda2e20d4891534c9542eaa39"><td class="mdescLeft">&#160;</td><td class="mdescRight">Loads the nonce for selected region into BEE nonce registers. <a href="#gaa638564cda2e20d4891534c9542eaa39">More...</a><br/></td></tr>
<tr class="separator:gaa638564cda2e20d4891534c9542eaa39"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga68a9f0f1fd8f8db579c283db82e6c5f8"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00011.html#ga68a9f0f1fd8f8db579c283db82e6c5f8">BEE_GetStatusFlags</a> (BEE_Type *base)</td></tr>
<tr class="memdesc:ga68a9f0f1fd8f8db579c283db82e6c5f8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the BEE status flags. <a href="#ga68a9f0f1fd8f8db579c283db82e6c5f8">More...</a><br/></td></tr>
<tr class="separator:ga68a9f0f1fd8f8db579c283db82e6c5f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga19f4a79958527498bfb0d95c649e84bf"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00011.html#ga19f4a79958527498bfb0d95c649e84bf">BEE_ClearStatusFlags</a> (BEE_Type *base, uint32_t mask)</td></tr>
<tr class="memdesc:ga19f4a79958527498bfb0d95c649e84bf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clears the BEE status flags. <a href="#ga19f4a79958527498bfb0d95c649e84bf">More...</a><br/></td></tr>
<tr class="separator:ga19f4a79958527498bfb0d95c649e84bf"><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:ga2e7cd17d2050f7390d7a48066ad2634e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00011.html#ga2e7cd17d2050f7390d7a48066ad2634e">FSL_BEE_DRIVER_VERSION</a>&#160;&#160;&#160;(<a class="el" href="a00272.html#ga812138aa3315b0c6953c1a26130bcc37">MAKE_VERSION</a>(2, 0, 2))</td></tr>
<tr class="memdesc:ga2e7cd17d2050f7390d7a48066ad2634e"><td class="mdescLeft">&#160;</td><td class="mdescRight">BEE driver version. <a href="#ga2e7cd17d2050f7390d7a48066ad2634e">More...</a><br/></td></tr>
<tr class="separator:ga2e7cd17d2050f7390d7a48066ad2634e"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<hr/><h2 class="groupheader">Data Structure Documentation</h2>
<a name="a00319" id="a00319"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct _bee_region_config</td>
</tr>
</table>
</div><div class="memdoc">
<div class="textblock"></div><table class="memberdecls">
<tr><td colspan="2"><h3>Data Fields</h3></td></tr>
<tr class="memitem:a6b11c37ab7b7470872f666bda09fb354"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6b11c37ab7b7470872f666bda09fb354"></a>
<a class="el" href="a00011.html#ga12e215f1c5f129a5cdc758474c413902">bee_aes_mode_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00011.html#a6b11c37ab7b7470872f666bda09fb354">region0Mode</a></td></tr>
<tr class="memdesc:a6b11c37ab7b7470872f666bda09fb354"><td class="mdescLeft">&#160;</td><td class="mdescRight">AES mode used for encryption/decryption for region 0. <br/></td></tr>
<tr class="separator:a6b11c37ab7b7470872f666bda09fb354"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3e948d5d1dcde94f436606e11a32f186"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3e948d5d1dcde94f436606e11a32f186"></a>
<a class="el" href="a00011.html#ga12e215f1c5f129a5cdc758474c413902">bee_aes_mode_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00011.html#a3e948d5d1dcde94f436606e11a32f186">region1Mode</a></td></tr>
<tr class="memdesc:a3e948d5d1dcde94f436606e11a32f186"><td class="mdescLeft">&#160;</td><td class="mdescRight">AES mode used for encryption/decryption for region 1. <br/></td></tr>
<tr class="separator:a3e948d5d1dcde94f436606e11a32f186"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a93ac3523da7d15654f4676218d08608a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a93ac3523da7d15654f4676218d08608a"></a>
uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00011.html#a93ac3523da7d15654f4676218d08608a">region0AddrOffset</a></td></tr>
<tr class="memdesc:a93ac3523da7d15654f4676218d08608a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Region 0 address offset. <br/></td></tr>
<tr class="separator:a93ac3523da7d15654f4676218d08608a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aac171df8bd2f179dbde73a746aabb87a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aac171df8bd2f179dbde73a746aabb87a"></a>
uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00011.html#aac171df8bd2f179dbde73a746aabb87a">region1AddrOffset</a></td></tr>
<tr class="memdesc:aac171df8bd2f179dbde73a746aabb87a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Region 1 address offset. <br/></td></tr>
<tr class="separator:aac171df8bd2f179dbde73a746aabb87a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2ecb9d88fd5f89c12724f51715bc03b4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2ecb9d88fd5f89c12724f51715bc03b4"></a>
<a class="el" href="a00011.html#ga86624b8e0eac431ececb0a342532283e">bee_security_level</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00011.html#a2ecb9d88fd5f89c12724f51715bc03b4">region0SecLevel</a></td></tr>
<tr class="memdesc:a2ecb9d88fd5f89c12724f51715bc03b4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Region 0 security level. <br/></td></tr>
<tr class="separator:a2ecb9d88fd5f89c12724f51715bc03b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2f5ffc4363ded9c84f568f1e04ea66cd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2f5ffc4363ded9c84f568f1e04ea66cd"></a>
<a class="el" href="a00011.html#ga86624b8e0eac431ececb0a342532283e">bee_security_level</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00011.html#a2f5ffc4363ded9c84f568f1e04ea66cd">region1SecLevel</a></td></tr>
<tr class="memdesc:a2f5ffc4363ded9c84f568f1e04ea66cd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Region 1 security level. <br/></td></tr>
<tr class="separator:a2f5ffc4363ded9c84f568f1e04ea66cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae44970b3524a4236ee48c0331d52c7c0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae44970b3524a4236ee48c0331d52c7c0"></a>
uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00011.html#ae44970b3524a4236ee48c0331d52c7c0">region1Bot</a></td></tr>
<tr class="memdesc:ae44970b3524a4236ee48c0331d52c7c0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Region 1 bottom address. <br/></td></tr>
<tr class="separator:ae44970b3524a4236ee48c0331d52c7c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae1303a4e6788fdedc7adb7f52d1a7916"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae1303a4e6788fdedc7adb7f52d1a7916"></a>
uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00011.html#ae1303a4e6788fdedc7adb7f52d1a7916">region1Top</a></td></tr>
<tr class="memdesc:ae1303a4e6788fdedc7adb7f52d1a7916"><td class="mdescLeft">&#160;</td><td class="mdescRight">Region 1 top address. <br/></td></tr>
<tr class="separator:ae1303a4e6788fdedc7adb7f52d1a7916"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab31dc30af7934028a8a9746a8091304e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab31dc30af7934028a8a9746a8091304e"></a>
<a class="el" href="a00011.html#ga66b37aad248772347f38556375fa2b26">bee_ac_prot_enable</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00011.html#ab31dc30af7934028a8a9746a8091304e">accessPermission</a></td></tr>
<tr class="memdesc:ab31dc30af7934028a8a9746a8091304e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Access permission control enable/disable. <br/></td></tr>
<tr class="separator:ab31dc30af7934028a8a9746a8091304e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3ca2d371b5ad3a631526e5ccfd442b98"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3ca2d371b5ad3a631526e5ccfd442b98"></a>
<a class="el" href="a00011.html#ga39952e85a1ee308382c7907124e6599d">bee_endian_swap_enable</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00011.html#a3ca2d371b5ad3a631526e5ccfd442b98">endianSwapEn</a></td></tr>
<tr class="memdesc:a3ca2d371b5ad3a631526e5ccfd442b98"><td class="mdescLeft">&#160;</td><td class="mdescRight">Endian swap enable/disable. <br/></td></tr>
<tr class="separator:a3ca2d371b5ad3a631526e5ccfd442b98"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
</div>
</div>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="ga2e7cd17d2050f7390d7a48066ad2634e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define FSL_BEE_DRIVER_VERSION&#160;&#160;&#160;(<a class="el" href="a00272.html#ga812138aa3315b0c6953c1a26130bcc37">MAKE_VERSION</a>(2, 0, 2))</td>
</tr>
</table>
</div><div class="memdoc">
<p>Version 2.0.2.</p>
<p>Current version: 2.0.2</p>
<p>Change log:</p>
<ul>
<li>2.0.2<ul>
<li>Bug Fixes<ul>
<li>Fixed MISRA issue.</li>
</ul>
</li>
</ul>
</li>
<li>2.0.1<ul>
<li>Bug Fixes<ul>
<li>Fixed bug in key user key loading sequence. BEE must be enabled during loading of user key.</li>
<li>Fixed typos in comments.</li>
</ul>
</li>
<li>New Features<ul>
<li>Added configuration setting for endian swap, access permission and region security level.</li>
</ul>
</li>
<li>Improvements<ul>
<li>Setting of AES nonce was moved from <a class="el" href="a00011.html#gab46f30a09b9b92665ff197ab7cdb78cd" title="Loads the AES key for selected region into BEE key registers. ">BEE_SetRegionKey()</a> into separate <a class="el" href="a00011.html#gaa638564cda2e20d4891534c9542eaa39" title="Loads the nonce for selected region into BEE nonce registers. ">BEE_SetRegionNonce()</a> function.<ul>
<li>Changed handling of region settings. Both regions are configured simultaneously by <a class="el" href="a00011.html#ga9744f40ce0f27c8b6dcabce8fda252b5" title="Sets BEE configuration. ">BEE_SetConfig()</a> function. Configuration of FAC start and end address using IOMUXC_GPRs was moved to application.</li>
</ul>
</li>
<li>Default value for region address offset was changed to 0.</li>
</ul>
</li>
</ul>
</li>
<li>2.0.0<ul>
<li>Initial version </li>
</ul>
</li>
</ul>
</div>
</div>
<h2 class="groupheader">Typedef Documentation</h2>
<a class="anchor" id="ga12e215f1c5f129a5cdc758474c413902"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef enum <a class="el" href="a00011.html#gaa371b6f1f37738eae58825f68f6b5c6e">_bee_aes_mode</a> <a class="el" href="a00011.html#ga12e215f1c5f129a5cdc758474c413902">bee_aes_mode_t</a></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga5bf231788885148f51c8b718ad72dc0e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef enum <a class="el" href="a00011.html#ga7900808e0b74dc06031980525fd5a3a7">_bee_region</a> <a class="el" href="a00011.html#ga5bf231788885148f51c8b718ad72dc0e">bee_region_t</a></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga66b37aad248772347f38556375fa2b26"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef enum <a class="el" href="a00011.html#ga1cd78ef104eabbdb0f85d14013b362c9">_bee_ac_prot_enable</a> <a class="el" href="a00011.html#ga66b37aad248772347f38556375fa2b26">bee_ac_prot_enable</a></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga39952e85a1ee308382c7907124e6599d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef enum <a class="el" href="a00011.html#ga1e5efbd3d1be2ab19083a186220134b0">_bee_endian_swap_enable</a> <a class="el" href="a00011.html#ga39952e85a1ee308382c7907124e6599d">bee_endian_swap_enable</a></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga86624b8e0eac431ececb0a342532283e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef enum <a class="el" href="a00011.html#ga3d5f3c2eaea4e9b885ddaaa320c21078">_bee_security_level</a> <a class="el" href="a00011.html#ga86624b8e0eac431ececb0a342532283e">bee_security_level</a></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga5f7ae311d6de0fd7a6e2ad59f4662d5f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef enum <a class="el" href="a00011.html#ga114907e401f0f84fc69214f3b300910b">_bee_status_flags</a> <a class="el" href="a00011.html#ga5f7ae311d6de0fd7a6e2ad59f4662d5f">bee_status_flags_t</a></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga36c5b0b63e8531a0dc877cd959a265dd"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef struct <a class="el" href="a00011.html#a00319">_bee_region_config</a> <a class="el" href="a00011.html#ga36c5b0b63e8531a0dc877cd959a265dd">bee_region_config_t</a></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a class="anchor" id="gaa371b6f1f37738eae58825f68f6b5c6e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="a00011.html#gaa371b6f1f37738eae58825f68f6b5c6e">_bee_aes_mode</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="ggaa371b6f1f37738eae58825f68f6b5c6eae52b46a003475a448e988945a23b65a9"></a>kBEE_AesEcbMode</em>&nbsp;</td><td class="fielddoc">
<p>AES ECB Mode. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggaa371b6f1f37738eae58825f68f6b5c6ea2343e45e7a54c317b02b36f84b1b8c01"></a>kBEE_AesCtrMode</em>&nbsp;</td><td class="fielddoc">
<p>AES CTR Mode. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="ga7900808e0b74dc06031980525fd5a3a7"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="a00011.html#ga7900808e0b74dc06031980525fd5a3a7">_bee_region</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="gga7900808e0b74dc06031980525fd5a3a7ae94acd2a2ae18f5fff22674a73331747"></a>kBEE_Region0</em>&nbsp;</td><td class="fielddoc">
<p>BEE region 0. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga7900808e0b74dc06031980525fd5a3a7a267f83f6596867c02f61330a9fe4303b"></a>kBEE_Region1</em>&nbsp;</td><td class="fielddoc">
<p>BEE region 1. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="ga1cd78ef104eabbdb0f85d14013b362c9"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="a00011.html#ga1cd78ef104eabbdb0f85d14013b362c9">_bee_ac_prot_enable</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="gga1cd78ef104eabbdb0f85d14013b362c9a414bc55656378147df63f914f19f8f9a"></a>kBEE_AccessProtDisabled</em>&nbsp;</td><td class="fielddoc">
<p>BEE access permission control disabled. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga1cd78ef104eabbdb0f85d14013b362c9a0018c2487ed37c32f1adcf4d22f5520a"></a>kBEE_AccessProtEnabled</em>&nbsp;</td><td class="fielddoc">
<p>BEE access permission control enabled. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="ga1e5efbd3d1be2ab19083a186220134b0"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="a00011.html#ga1e5efbd3d1be2ab19083a186220134b0">_bee_endian_swap_enable</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="gga1e5efbd3d1be2ab19083a186220134b0a9f1b957a5659415d684c9d8a26130c9a"></a>kBEE_EndianSwapDisabled</em>&nbsp;</td><td class="fielddoc">
<p>BEE endian swap disabled. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga1e5efbd3d1be2ab19083a186220134b0aae7a7427057b6f11a4aec827faeeaa95"></a>kBEE_EndianSwapEnabled</em>&nbsp;</td><td class="fielddoc">
<p>BEE endian swap enabled. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="ga3d5f3c2eaea4e9b885ddaaa320c21078"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="a00011.html#ga3d5f3c2eaea4e9b885ddaaa320c21078">_bee_security_level</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="gga3d5f3c2eaea4e9b885ddaaa320c21078a1ff0f0d48b15ce491a9fe7828fa55277"></a>kBEE_SecurityLevel0</em>&nbsp;</td><td class="fielddoc">
<p>BEE security level 0. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga3d5f3c2eaea4e9b885ddaaa320c21078a0105c172f2c88c17a64e6d2613a8c363"></a>kBEE_SecurityLevel1</em>&nbsp;</td><td class="fielddoc">
<p>BEE security level 1. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga3d5f3c2eaea4e9b885ddaaa320c21078ad384339d7ba535855dd016c669142663"></a>kBEE_SecurityLevel2</em>&nbsp;</td><td class="fielddoc">
<p>BEE security level 2. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga3d5f3c2eaea4e9b885ddaaa320c21078aa3bf99fa6c53e50aee203417eb797334"></a>kBEE_SecurityLevel3</em>&nbsp;</td><td class="fielddoc">
<p>BEE security level 3. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="ga114907e401f0f84fc69214f3b300910b"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="a00011.html#ga114907e401f0f84fc69214f3b300910b">_bee_status_flags</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="gga114907e401f0f84fc69214f3b300910ba8a4ab1c7e89e71fbb3f2ea03da60e56e"></a>kBEE_DisableAbortFlag</em>&nbsp;</td><td class="fielddoc">
<p>Disable abort flag. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga114907e401f0f84fc69214f3b300910ba1b886204e75690116eed7deca4646845"></a>kBEE_Reg0ReadSecViolation</em>&nbsp;</td><td class="fielddoc">
<p>Region-0 read channel security violation. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga114907e401f0f84fc69214f3b300910ba524ac8b7f3fbd8a1dc068f8c995bcbf1"></a>kBEE_ReadIllegalAccess</em>&nbsp;</td><td class="fielddoc">
<p>Read channel illegal access detected. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga114907e401f0f84fc69214f3b300910ba996c753929bc10c0668b41ec1087d402"></a>kBEE_Reg1ReadSecViolation</em>&nbsp;</td><td class="fielddoc">
<p>Region-1 read channel security violation. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga114907e401f0f84fc69214f3b300910babcc7d1d64f326052b3a20e9a857fb5d2"></a>kBEE_Reg0AccessViolation</em>&nbsp;</td><td class="fielddoc">
<p>Protected region-0 access violation. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga114907e401f0f84fc69214f3b300910ba4a6c82013e492f079dbfc0b4f25d713c"></a>kBEE_Reg1AccessViolation</em>&nbsp;</td><td class="fielddoc">
<p>Protected region-1 access violation. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga114907e401f0f84fc69214f3b300910ba850124e92d5e1d37be862c4f2363c9c8"></a>kBEE_IdleFlag</em>&nbsp;</td><td class="fielddoc">
<p>Idle flag. </p>
</td></tr>
</table>
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="ga3d52a4156aba0653ab32d8916ced6803"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void BEE_Init </td>
<td>(</td>
<td class="paramtype">BEE_Type *&#160;</td>
<td class="paramname"><em>base</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function performs hardware reset of BEE module. Attributes and keys from software for both regions are cleared.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>BEE peripheral address. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga6a7d90cf1243d7cc3df27ce14769fc20"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void BEE_Deinit </td>
<td>(</td>
<td class="paramtype">BEE_Type *&#160;</td>
<td class="paramname"><em>base</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function performs hardware reset of BEE module and disables clocks. Attributes and keys from software for both regions are cleared.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>BEE peripheral address. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gaf62faab6a2f1750c1140caf6aa93e8eb"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void BEE_Enable </td>
<td>(</td>
<td class="paramtype">BEE_Type *&#160;</td>
<td class="paramname"><em>base</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>This function enables decryption using BEE.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>BEE peripheral address. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga6283ed8e0a7504b9bccfc79e204522e7"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void BEE_Disable </td>
<td>(</td>
<td class="paramtype">BEE_Type *&#160;</td>
<td class="paramname"><em>base</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>This function disables decryption using BEE.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>BEE peripheral address. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gaeca7aeaa01f87978efc7c216cd7bb5e5"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void BEE_GetDefaultConfig </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00011.html#ga36c5b0b63e8531a0dc877cd959a265dd">bee_region_config_t</a> *&#160;</td>
<td class="paramname"><em>config</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Loads default values to the BEE region configuration structure. The default values are as follows: </p>
<div class="fragment"><div class="line">* config-&gt;region0Mode = <a class="code" href="a00011.html#ggaa371b6f1f37738eae58825f68f6b5c6ea2343e45e7a54c317b02b36f84b1b8c01">kBEE_AesCtrMode</a>;</div>
<div class="line">* config-&gt;region1Mode = <a class="code" href="a00011.html#ggaa371b6f1f37738eae58825f68f6b5c6ea2343e45e7a54c317b02b36f84b1b8c01">kBEE_AesCtrMode</a>;</div>
<div class="line">* config-&gt;region0AddrOffset = 0U;</div>
<div class="line">* config-&gt;region1AddrOffset = 0U;</div>
<div class="line">* config-&gt;region0SecLevel = <a class="code" href="a00011.html#gga3d5f3c2eaea4e9b885ddaaa320c21078aa3bf99fa6c53e50aee203417eb797334">kBEE_SecurityLevel3</a>;</div>
<div class="line">* config-&gt;region1SecLevel = <a class="code" href="a00011.html#gga3d5f3c2eaea4e9b885ddaaa320c21078aa3bf99fa6c53e50aee203417eb797334">kBEE_SecurityLevel3</a>;</div>
<div class="line">* config-&gt;region1Bot = 0U;</div>
<div class="line">* config-&gt;region1Top = 0U;</div>
<div class="line">* config-&gt;accessPermission = <a class="code" href="a00011.html#gga1cd78ef104eabbdb0f85d14013b362c9a414bc55656378147df63f914f19f8f9a">kBEE_AccessProtDisabled</a>;</div>
<div class="line">* config-&gt;endianSwapEn = <a class="code" href="a00011.html#gga1e5efbd3d1be2ab19083a186220134b0aae7a7427057b6f11a4aec827faeeaa95">kBEE_EndianSwapEnabled</a>;</div>
<div class="line">* </div>
</div><!-- fragment --><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">config</td><td>Configuration structure for BEE peripheral. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga9744f40ce0f27c8b6dcabce8fda252b5"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void BEE_SetConfig </td>
<td>(</td>
<td class="paramtype">BEE_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="a00011.html#ga36c5b0b63e8531a0dc877cd959a265dd">bee_region_config_t</a> *&#160;</td>
<td class="paramname"><em>config</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function sets BEE peripheral and BEE region settings accorging to given configuration structure.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>BEE peripheral address. </td></tr>
<tr><td class="paramname">config</td><td>Configuration structure for BEE. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gab46f30a09b9b92665ff197ab7cdb78cd"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00272.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a> BEE_SetRegionKey </td>
<td>(</td>
<td class="paramtype">BEE_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="a00011.html#ga5bf231788885148f51c8b718ad72dc0e">bee_region_t</a>&#160;</td>
<td class="paramname"><em>region</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const uint8_t *&#160;</td>
<td class="paramname"><em>key</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>keySize</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function loads given AES key to BEE register for the given region. The key must be 32-bit aligned and stored in little-endian format.</p>
<p>Please note, that eFuse BEE_KEYx_SEL must be set accordingly to be able to load and use key loaded in BEE registers. Otherwise, key cannot loaded and BEE will use key from OTPMK or SW_GP2.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>BEE peripheral address. </td></tr>
<tr><td class="paramname">region</td><td>Selection of the BEE region to be configured. </td></tr>
<tr><td class="paramname">key</td><td>AES key (in little-endian format). </td></tr>
<tr><td class="paramname">keySize</td><td>Size of AES key. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gaa638564cda2e20d4891534c9542eaa39"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00272.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a> BEE_SetRegionNonce </td>
<td>(</td>
<td class="paramtype">BEE_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="a00011.html#ga5bf231788885148f51c8b718ad72dc0e">bee_region_t</a>&#160;</td>
<td class="paramname"><em>region</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const uint8_t *&#160;</td>
<td class="paramname"><em>nonce</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>nonceSize</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function loads given nonce(only AES CTR mode) to BEE register for the given region. The nonce must be 32-bit aligned and stored in little-endian format.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>BEE peripheral address. </td></tr>
<tr><td class="paramname">region</td><td>Selection of the BEE region to be configured. </td></tr>
<tr><td class="paramname">nonce</td><td>AES nonce (in little-endian format). </td></tr>
<tr><td class="paramname">nonceSize</td><td>Size of AES nonce. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga68a9f0f1fd8f8db579c283db82e6c5f8"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint32_t BEE_GetStatusFlags </td>
<td>(</td>
<td class="paramtype">BEE_Type *&#160;</td>
<td class="paramname"><em>base</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function returns status of BEE peripheral.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>BEE peripheral address.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The status flags. This is the logical OR of members of the enumeration <a class="el" href="a00011.html#ga5f7ae311d6de0fd7a6e2ad59f4662d5f" title="BEE status flags. ">bee_status_flags_t</a> </dd></dl>
</div>
</div>
<a class="anchor" id="ga19f4a79958527498bfb0d95c649e84bf"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void BEE_ClearStatusFlags </td>
<td>(</td>
<td class="paramtype">BEE_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>mask</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>BEE peripheral base address. </td></tr>
<tr><td class="paramname">mask</td><td>The status flags to clear. This is a logical OR of members of the enumeration <a class="el" href="a00011.html#ga5f7ae311d6de0fd7a6e2ad59f4662d5f" title="BEE status flags. ">bee_status_flags_t</a> </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>