]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - processor-sdk/pdk.git/blob - packages/ti/drv/sciclient/soc/sysfw/binaries/system-firmware-public-documentation/3_boardcfg/BOARDCFG_PM.html
[OSAL]: Added testcase for task sub module
[processor-sdk/pdk.git] / packages / ti / drv / sciclient / soc / sysfw / binaries / system-firmware-public-documentation / 3_boardcfg / BOARDCFG_PM.html
3 <!DOCTYPE html>
4 <!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
5 <!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
6 <head>
7   <meta charset="utf-8">
8   
9   <meta name="viewport" content="width=device-width, initial-scale=1.0">
10   
11   <title>Power Management Board Configuration &mdash; TISCI User Guide</title>
12   
14   
15   
16     <link rel="shortcut icon" href="../_static/favicon.ico"/>
17   
19   
21   
22   
23     
25   
27   
28   
29     <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
30   
32   
33     <link rel="stylesheet" href="../_static/theme_overrides.css" type="text/css" />
34   
36   
37         <link rel="index" title="Index"
38               href="../genindex.html"/>
39         <link rel="search" title="Search" href="../search.html"/>
40     <link rel="top" title="TISCI User Guide" href="../index.html"/>
41         <link rel="up" title="Chapter 3: Board Configuration" href="index.html"/>
42         <link rel="next" title="Board Configuration with ROM Combined Image format" href="BOARDCFG_COMBINED_IMG_FORMAT.html"/>
43         <link rel="prev" title="Security Board Configuration" href="BOARDCFG_SEC.html"/> 
45   
46   <script src="../_static/js/modernizr.min.js"></script>
48 </head>
50 <body class="wy-body-for-nav" role="document">
51   <header id="tiHeader">
52     <div class="top">
53       <ul>
54         <li id="top_logo">
55           <a href="http://www.ti.com">
56             <img src="../_static/img/ti_logo.png"/>
57           </a>
58         </li>
59       </ul>
60     </div>
61     <div class="nav"></div>
62   </header>
63   <div class="wy-grid-for-nav">
65     
66     <nav data-toggle="wy-nav-shift" class="wy-nav-side">
67       <div class="wy-side-scroll">
68         <div class="wy-side-nav-search">
69           
71           
72             <a href="../index.html" class="icon icon-home"> TISCI
73           
75           
76           </a>
78           
79             
80             
81               <div class="version">
82                 08.04.02
83               </div>
84             
85           
87           
88 <div role="search">
89   <form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
90     <input type="text" name="q" placeholder="Search docs" />
91     <input type="hidden" name="check_keywords" value="yes" />
92     <input type="hidden" name="area" value="default" />
93   </form>
94 </div>
96           
97         </div>
99         <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
100           
101             
102             
103                 <ul class="current">
104 <li class="toctree-l1"><a class="reference internal" href="../1_intro/index.html">Chapter 1: Introduction</a></li>
105 <li class="toctree-l1"><a class="reference internal" href="../2_tisci_msgs/index.html">Chapter 2: TISCI Message Documentation</a></li>
106 <li class="toctree-l1 current"><a class="reference internal" href="index.html">Chapter 3: Board Configuration</a><ul class="current">
107 <li class="toctree-l2"><a class="reference internal" href="BOARDCFG.html">Board Configuration</a></li>
108 <li class="toctree-l2"><a class="reference internal" href="BOARDCFG_RM.html">Resource Management Board Configuration</a></li>
109 <li class="toctree-l2"><a class="reference internal" href="BOARDCFG_SEC.html">Security Board Configuration</a></li>
110 <li class="toctree-l2 current"><a class="current reference internal" href="#">Power Management Board Configuration</a><ul>
111 <li class="toctree-l3"><a class="reference internal" href="#introduction">Introduction</a><ul>
112 <li class="toctree-l4"><a class="reference internal" href="#device-groups-for-power-management-board-configuration">Device Groups for Power Management Board Configuration</a></li>
113 <li class="toctree-l4"><a class="reference internal" href="#tisci-api-for-power-management-board-config">TISCI API for Power Management Board Config</a></li>
114 <li class="toctree-l4"><a class="reference internal" href="#boardcfg-pm-structure">boardcfg_pm structure</a></li>
115 </ul>
116 </li>
117 <li class="toctree-l3"><a class="reference internal" href="#power-management-initialization-after-receiving-board-configuration">Power Management Initialization after receiving board configuration</a><ul>
118 <li class="toctree-l4"><a class="reference internal" href="#board-configuration-receive-and-validate">Board Configuration Receive and Validate</a></li>
119 <li class="toctree-l4"><a class="reference internal" href="#pm-initialization-dmsc-init">PM Initialization - DMSC Init</a></li>
120 <li class="toctree-l4"><a class="reference internal" href="#pm-initialization-clock-init">PM Initialization - Clock Init</a></li>
121 <li class="toctree-l4"><a class="reference internal" href="#pm-initialization-device-init">PM Initialization - Device Init</a></li>
122 <li class="toctree-l4"><a class="reference internal" href="#pm-initialization-clock-messages-init">PM Initialization - Clock Messages Init</a></li>
123 <li class="toctree-l4"><a class="reference internal" href="#pm-initialization-device-messages-init">PM Initialization - Device Messages Init</a></li>
124 <li class="toctree-l4"><a class="reference internal" href="#pm-initialization-core-messages-init">PM Initialization - Core Messages Init</a></li>
125 <li class="toctree-l4"><a class="reference internal" href="#osal-pm-subsystem-init">OSAL PM Subsystem Init</a></li>
126 </ul>
127 </li>
128 </ul>
129 </li>
130 <li class="toctree-l2"><a class="reference internal" href="BOARDCFG_COMBINED_IMG_FORMAT.html">Board Configuration with ROM Combined Image format</a></li>
131 </ul>
132 </li>
133 <li class="toctree-l1"><a class="reference internal" href="../4_trace/index.html">Chapter 4: Interpreting Trace Data</a></li>
134 <li class="toctree-l1"><a class="reference internal" href="../5_soc_doc/index.html">Chapter 5: SoC Family Specific Documentation</a></li>
135 <li class="toctree-l1"><a class="reference internal" href="../6_topic_user_guides/index.html">Chapter 6: Topic User Guides</a></li>
136 </ul>
138             
139           
140         </div>
141       </div>
142     </nav>
144     <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
146       
147       <nav class="wy-nav-top" role="navigation" aria-label="top navigation">
148         <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
149         <a href="../index.html">TISCI</a>
150       </nav>
153       
154       <div class="wy-nav-content">
155         <div class="rst-content">
156           
158  
162 <div role="navigation" aria-label="breadcrumbs navigation">
163   <ul class="wy-breadcrumbs">
164     <li><a href="../index.html">Docs</a> &raquo;</li>
165       
166           <li><a href="index.html">Chapter 3: Board Configuration</a> &raquo;</li>
167       
168     <li>Power Management Board Configuration</li>
169       <li class="wy-breadcrumbs-aside">
170         
171           
172         
173       </li>
174   </ul>
175   <hr/>
176 </div>
177           <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
178            <div itemprop="articleBody">
179             
180   <div class="section" id="power-management-board-configuration">
181 <h1>Power Management Board Configuration<a class="headerlink" href="#power-management-board-configuration" title="Permalink to this headline">¶</a></h1>
182 <div class="section" id="introduction">
183 <span id="pub-boardcfg-pm-intro"></span><h2>Introduction<a class="headerlink" href="#introduction" title="Permalink to this headline">¶</a></h2>
184 <p>The PM board configuration message initializes the PM subsystem.
185 The PM subsystem is not considered functional until after the PM board
186 configuration message is received by DMSC.  The PM board configuration data can
187 be sent any time after the standard boardcfg message (<a class="reference internal" href="BOARDCFG.html#pub-boardcfg-cfg"><span class="std std-ref">Configuration substructure enumeration</span></a>)
188 is received.</p>
189 <p>The system remains in ROM configured PLL and clock configuration till this
190 message is invoked. On invoking this call, the OFC associated with the
191 SoC is configured. This implies that many of PLLs and clock tree will
192 get reconfigured. The OFC settings set by the PM board configuration is as given in
193 <a class="reference internal" href="../5_soc_doc/am65x/pll_data.html"><span class="doc">AM6 PLL Defaults</span></a>. Since the device is capable of deriving the
194 clock from different supported input HFOSC frequencies, System Firmware reads the DEVSTAT
195 to identify the HFOSC frequency and programs the PLLs and Dividers according to the
196 input HFOSC to derive the Original Frequency Combination (OFC). The OFC is a fixed
197 table built into the DMSC System Firmware. This is derived from silicon characterization
198 data. The user is expected to ensure the device is first configured to this OFC
199 frequency and then tweak specific device clock frequencies based on their usecase
200 needs by using the PM messages for <a class="reference internal" href="../2_tisci_msgs/pm/clocks.html#pm-clocks-msg-set-freq"><span class="std std-ref">TISCI_MSG_SET_FREQ</span></a>
201 and <a class="reference internal" href="../2_tisci_msgs/pm/clocks.html#pm-clocks-msg-set-clock-parent"><span class="std std-ref">TISCI_MSG_SET_CLOCK_PARENT</span></a>.</p>
202 <p>It is strongly recommended for proper care to be taken for key peripherals
203 that may be operational and communicating external to SoC. For example,
204 depending on the SoC and product, pinmux can be used to move the IP’s pins
205 into isolation to prevent glitch events from being exported from the IP at
206 the point of reconfiguration of PLLs system wide to the official OFC
207 configuration.</p>
208 <div class="section" id="device-groups-for-power-management-board-configuration">
209 <h3>Device Groups for Power Management Board Configuration<a class="headerlink" href="#device-groups-for-power-management-board-configuration" title="Permalink to this headline">¶</a></h3>
210 <p>The PM board configuration TISCI message allows the user to specify the DEVGRP
211 under which the PM subsystem operates.  A specified DEVGRP defines which PM
212 driver instances are capable of usage by the host applications.  The host
213 application can implement PM subsystem DEVGRP usage by sending a
214 <a class="reference internal" href="#pub-boardcfg-pm-tisci"><span class="std std-ref">TISCI_MSG_PM_BOARD_CONFIG_PM</span></a> message with the
215 boardcfg_pm_devgrp parameter populated with one or more SoC-specific device
216 group values.  The DEVGRP value specifying whole device is mapped to zero so
217 existing PM board configurations not explicitly defining a DEVGRP for the
218 boardcfg_pm_devgrp parameter will be backwards compatible.</p>
219 <p>DEVGRPS are cumulative so if multiple PM board configurations are received,
220 each with a unique DEVGRP defined, all received DEVGRPs will be active.  To
221 support accumulation of DEVGRPs the PM board configuration message can be sent
222 any number of times.</p>
223 </div>
224 <div class="section" id="tisci-api-for-power-management-board-config">
225 <span id="pub-boardcfg-pm-tisci"></span><h3>TISCI API for Power Management Board Config<a class="headerlink" href="#tisci-api-for-power-management-board-config" title="Permalink to this headline">¶</a></h3>
226 <p>The following are the parameters required in the TI-SCI message to pass power management
227 board configuration data to DMSC after DMSC sends boot notification complete.
228 The PM board configuration message is not dependent on receipt of the
229 standard board configuration message.</p>
230 <div class="section" id="usage">
231 <h4>Usage<a class="headerlink" href="#usage" title="Permalink to this headline">¶</a></h4>
232 <table border="1" class="docutils">
233 <colgroup>
234 <col width="75%" />
235 <col width="25%" />
236 </colgroup>
237 <tbody valign="top">
238 <tr class="row-odd"><td><strong>Message Type</strong></td>
239 <td>Normal</td>
240 </tr>
241 <tr class="row-even"><td><strong>Secure Queue Only?</strong></td>
242 <td>No</td>
243 </tr>
244 </tbody>
245 </table>
246 </div>
247 <div class="section" id="tisci-message-id">
248 <h4>TISCI Message ID<a class="headerlink" href="#tisci-message-id" title="Permalink to this headline">¶</a></h4>
249 <p><code class="docutils literal"><span class="pre">TISCI_MSG_BOARD_CONFIG_PM</span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span class="pre">(0x000EU)</span></code></p>
250 </div>
251 <div class="section" id="message-data-structures">
252 <h4>Message Data Structures<a class="headerlink" href="#message-data-structures" title="Permalink to this headline">¶</a></h4>
253 <p><p><strong>struct tisci_msg_board_config_pm_req</strong></p>
254 <p>TISCI_MSG_BOARD_CONFIG_PM request to provide the location and size of the boardcfg Power Management configuration structure.</p>
255 <table border="1" class="docutils">
256 <colgroup>
257 <col width="18%" />
258 <col width="19%" />
259 <col width="63%" />
260 </colgroup>
261 <thead valign="bottom">
262 <tr class="row-odd"><th class="head">Parameter</th>
263 <th class="head">Type</th>
264 <th class="head">Description</th>
265 </tr>
266 </thead>
267 <tbody valign="top">
268 <tr class="row-even"><td>hdr</td>
269 <td>struct tisci_header</td>
270 <td>TISCI header</td>
271 </tr>
272 <tr class="row-odd"><td>boardcfg_pmp_low</td>
273 <td>u32</td>
274 <td>Low 32-bits of physical pointer to boardcfg PM configuration struct.</td>
275 </tr>
276 <tr class="row-even"><td>boardcfg_pmp_high</td>
277 <td>u32</td>
278 <td>High 32-bits of physical pointer to boardcfg PM configuration struct.</td>
279 </tr>
280 <tr class="row-odd"><td>boardcfg_pm_size</td>
281 <td>u16</td>
282 <td>Size of PM configuration data.</td>
283 </tr>
284 <tr class="row-even"><td>boardcfg_pm_devgrp</td>
285 <td>devgrp_t</td>
286 <td>Device group for the PM configuration</td>
287 </tr>
288 </tbody>
289 </table>
290 </p>
291 <p><p><strong>struct tisci_msg_board_config_pm_resp</strong></p>
292 <p>Empty response for TISCI_MSG_BOARD_CONFIG_PM.</p>
293 <table border="1" class="docutils">
294 <colgroup>
295 <col width="27%" />
296 <col width="43%" />
297 <col width="31%" />
298 </colgroup>
299 <thead valign="bottom">
300 <tr class="row-odd"><th class="head">Parameter</th>
301 <th class="head">Type</th>
302 <th class="head">Description</th>
303 </tr>
304 </thead>
305 <tbody valign="top">
306 <tr class="row-even"><td>hdr</td>
307 <td>struct tisci_header</td>
308 <td>TISCI header.</td>
309 </tr>
310 </tbody>
311 </table>
312 <p>Although this message is essentially empty and contains only a header
313  a full data structure is created for consistency in implementation.</p>
314 </p>
315 </div>
316 </div>
317 <div class="section" id="boardcfg-pm-structure">
318 <span id="pub-boardcfg-pm"></span><h3>boardcfg_pm structure<a class="headerlink" href="#boardcfg-pm-structure" title="Permalink to this headline">¶</a></h3>
319 <p>This is a fixed size c-structure which both defines the format of the
320 configuration as well as reserves DMSC memory to store the configuration.
321 However, the boardcfg_pm data structure is <strong>currently empty</strong>.</p>
322 <div class="admonition warning">
323 <p class="first admonition-title">Warning</p>
324 <p class="last">Although currently empty, in order to properly initialize the PM subsystem
325 this message must still be sent with the address and size parameters all
326 configured to 0.</p>
327 </div>
328 <div class="admonition note">
329 <p class="first admonition-title">Note</p>
330 <p class="last">Although currently empty, PM Board configuration requires to be signed and
331 encrypted on HS devices to ensure authenticity and protect secrets. Please
332 refer to <a class="reference internal" href="../6_topic_user_guides/hs_boardcfg_signing.html"><span class="doc">Signing Board Configuration on HS devices</span></a> on how to sign and
333 encrypt board configuration on HS devices.</p>
334 </div>
335 </div>
336 </div>
337 <div class="section" id="power-management-initialization-after-receiving-board-configuration">
338 <h2>Power Management Initialization after receiving board configuration<a class="headerlink" href="#power-management-initialization-after-receiving-board-configuration" title="Permalink to this headline">¶</a></h2>
339 <p>Once the PM board configuration message is received by the System Firmware, it
340 performs the following operations:</p>
341 <div class="section" id="board-configuration-receive-and-validate">
342 <h3>Board Configuration Receive and Validate<a class="headerlink" href="#board-configuration-receive-and-validate" title="Permalink to this headline">¶</a></h3>
343 <p>The first step after receiving the board configuration by the
344 tisci_msg_board_config_pm_handler is to identify which DEVGRP the message is for.</p>
345 <img alt="../_images/PM_BRD_CFG_2.JPG" src="../_images/PM_BRD_CFG_2.JPG" />
346 </div>
347 <div class="section" id="pm-initialization-dmsc-init">
348 <h3>PM Initialization - DMSC Init<a class="headerlink" href="#pm-initialization-dmsc-init" title="Permalink to this headline">¶</a></h3>
349 <p>The next step of the tisci_msg_board_config_pm_handler is to perform the PM
350 initialization. This involves multiple steps starting with DMSC initialization.
351 The DMSC initialization involves unlocking the WKUP and MAIN CTRL MMRs. This is
352 SoC specific.</p>
353 <img alt="../_images/PM_BRD_CFG_3.JPG" src="../_images/PM_BRD_CFG_3.JPG" />
354 </div>
355 <div class="section" id="pm-initialization-clock-init">
356 <h3>PM Initialization - Clock Init<a class="headerlink" href="#pm-initialization-clock-init" title="Permalink to this headline">¶</a></h3>
357 <p>The next step of the tisci_msg_board_config_pm_handler is to perform the clock
358 initialization. As part of this step the code initializes the PLLs and dividers
359 as per the OFC for the input device group. The UART is re-initialized after the
360 PLL is locked. The software reference counts for the clocks initialized at power
361 up is updated.</p>
362 <p>The Clock init initialization sequence is as below:</p>
363 <img alt="../_images/PM_BRD_CFG_4.JPG" src="../_images/PM_BRD_CFG_4.JPG" />
364 </div>
365 <div class="section" id="pm-initialization-device-init">
366 <h3>PM Initialization - Device Init<a class="headerlink" href="#pm-initialization-device-init" title="Permalink to this headline">¶</a></h3>
367 <p>The next step of the tisci_msg_board_config_pm_handler is to perform the device
368 initialization. As part of this step the code loops through all the devices in the
369 devgrp. For each device the PSC connection is verified and the current state of
370 the device PSC is captured. The module clock default flags are initialized in this
371 function. After this the API clears the software state of the modules and clocks
372 enabled at power up.</p>
373 <p>The Device init initialization sequence is as below:</p>
374 <img alt="../_images/PM_BRD_CFG_5.JPG" src="../_images/PM_BRD_CFG_5.JPG" />
375 </div>
376 <div class="section" id="pm-initialization-clock-messages-init">
377 <h3>PM Initialization - Clock Messages Init<a class="headerlink" href="#pm-initialization-clock-messages-init" title="Permalink to this headline">¶</a></h3>
378 <p>The next step of the tisci_msg_board_config_pm_handler is to
379 register the software handler for the</p>
380 <ul class="simple">
381 <li><a class="reference internal" href="../2_tisci_msgs/pm/clocks.html#pm-clocks-msg-set-clock"><span class="std std-ref">TISCI_MSG_SET_CLOCK</span></a> message</li>
382 <li><a class="reference internal" href="../2_tisci_msgs/pm/clocks.html#pm-clocks-msg-get-clock"><span class="std std-ref">TISCI_MSG_GET_CLOCK</span></a> message</li>
383 <li><a class="reference internal" href="../2_tisci_msgs/pm/clocks.html#pm-clocks-msg-set-clock-parent"><span class="std std-ref">TISCI_MSG_SET_CLOCK_PARENT</span></a> message</li>
384 <li><a class="reference internal" href="../2_tisci_msgs/pm/clocks.html#pm-clocks-msg-get-clock-parent"><span class="std std-ref">TISCI_MSG_GET_CLOCK_PARENT</span></a> message</li>
385 <li><a class="reference internal" href="../2_tisci_msgs/pm/clocks.html#pm-clocks-msg-get-num-clock-parents"><span class="std std-ref">TISCI_MSG_GET_NUM_CLOCK_PARENTS</span></a> message</li>
386 <li><a class="reference internal" href="../2_tisci_msgs/pm/clocks.html#pm-clocks-msg-set-freq"><span class="std std-ref">TISCI_MSG_SET_FREQ</span></a> message</li>
387 <li><a class="reference internal" href="../2_tisci_msgs/pm/clocks.html#pm-clocks-msg-query-freq"><span class="std std-ref">TISCI_MSG_QUERY_FREQ</span></a> message</li>
388 <li><a class="reference internal" href="../2_tisci_msgs/pm/clocks.html#pm-clocks-msg-get-freq"><span class="std std-ref">TISCI_MSG_GET_FREQ</span></a> message</li>
389 </ul>
390 <img alt="../_images/PM_BRD_CFG_6.JPG" src="../_images/PM_BRD_CFG_6.JPG" />
391 </div>
392 <div class="section" id="pm-initialization-device-messages-init">
393 <h3>PM Initialization - Device Messages Init<a class="headerlink" href="#pm-initialization-device-messages-init" title="Permalink to this headline">¶</a></h3>
394 <p>The next step of the tisci_msg_board_config_pm_handler is to
395 register the software handler for the</p>
396 <ul class="simple">
397 <li><a class="reference internal" href="../2_tisci_msgs/pm/devices.html#pm-devices-msg-set-device"><span class="std std-ref">TISCI_MSG_SET_DEVICE</span></a> message</li>
398 <li><a class="reference internal" href="../2_tisci_msgs/pm/devices.html#pm-devices-msg-get-device"><span class="std std-ref">TISCI_MSG_GET_DEVICE</span></a> message</li>
399 <li><a class="reference internal" href="../2_tisci_msgs/pm/devices.html#pm-devices-msg-set-device-resets"><span class="std std-ref">TISCI_MSG_SET_DEVICE_RESETS</span></a> message</li>
400 </ul>
401 <img alt="../_images/PM_BRD_CFG_7.JPG" src="../_images/PM_BRD_CFG_7.JPG" />
402 </div>
403 <div class="section" id="pm-initialization-core-messages-init">
404 <h3>PM Initialization - Core Messages Init<a class="headerlink" href="#pm-initialization-core-messages-init" title="Permalink to this headline">¶</a></h3>
405 <p>The next step of the tisci_msg_board_config_pm_handler is to
406 register the software handler for the</p>
407 <ul class="simple">
408 <li><a class="reference internal" href="../2_tisci_msgs/pm/sysreset.html#pm-sysreset-msg-sys-reset"><span class="std std-ref">TISCI_MSG_SYS_RESET</span></a> message</li>
409 </ul>
410 <img alt="../_images/PM_BRD_CFG_8.JPG" src="../_images/PM_BRD_CFG_8.JPG" />
411 </div>
412 <div class="section" id="osal-pm-subsystem-init">
413 <h3>OSAL PM Subsystem Init<a class="headerlink" href="#osal-pm-subsystem-init" title="Permalink to this headline">¶</a></h3>
414 <p>The UART clock dividers are re-programmed to make sure the UART logging function
415 is still available from the system firmware after the PLLs are re-initialized.</p>
416 <p>This is the last step in tisci_msg_board_config_pm_handler where the software
417 state is updated to reflect the power management is initialized and now
418 can accept power management messages.</p>
419 <p>After this step the host response is sent. If for any reason any of the above
420 steps fail the API would return with a NACK.</p>
421 <img alt="../_images/PM_BRD_CFG_9.JPG" src="../_images/PM_BRD_CFG_9.JPG" />
422 </div>
423 </div>
424 </div>
427            </div>
428           </div>
429           <footer>
430   
431     <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
432       
433         <a href="BOARDCFG_COMBINED_IMG_FORMAT.html" class="btn btn-neutral float-right" title="Board Configuration with ROM Combined Image format" accesskey="n">Next <span class="fa fa-arrow-circle-right"></span></a>
434       
435       
436         <a href="BOARDCFG_SEC.html" class="btn btn-neutral" title="Security Board Configuration" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous</a>
437       
438     </div>
439   
441   <hr/>
443   <div role="contentinfo">
444     <p>
445       <a href="http://www.ti.com/corp/docs/legal/copyright.shtml">&copy; Copyright 2016-2022</a>, Texas Instruments Incorporated. All rights reserved. <br>
446       <a href="http://www.ti.com/corp/docs/legal/trademark/trademrk.htm">Trademarks</a> | <a href="http://www.ti.com/corp/docs/legal/privacy.shtml">Privacy policy</a> | <a href="http://www.ti.com/corp/docs/legal/termsofuse.shtml">Terms of use</a> | <a href="http://www.ti.com/lsds/ti/legal/termsofsale.page">Terms of sale</a>
448     </p>
449   </div> 
451 </footer>
453         </div>
454       </div>
456     </section>
458   </div>
459   
462   
464     <script type="text/javascript">
465         var DOCUMENTATION_OPTIONS = {
466             URL_ROOT:'../',
467             VERSION:'08.04.02',
468             COLLAPSE_INDEX:false,
469             FILE_SUFFIX:'.html',
470             HAS_SOURCE:  true
471         };
472     </script>
473       <script type="text/javascript" src="../_static/jquery.js"></script>
474       <script type="text/javascript" src="../_static/underscore.js"></script>
475       <script type="text/javascript" src="../_static/doctools.js"></script>
476       <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
478     <script src="http://www.ti.com/assets/js/headerfooter/analytics.js" type="text/javascript" charset="utf-8"></script>
480   
482   
483   
484     <script type="text/javascript" src="../_static/js/theme.js"></script>
485   
487   
488   
489   <script type="text/javascript">
490       jQuery(function () {
491           SphinxRtdTheme.StickyNav.enable();
492         });
494       var menuHeight = window.innerHeight;
496       var contentOffset = $(".wy-nav-content-wrap").offset();
497       var contentHeight = $(".wy-nav-content-wrap").height();
498       var contentBottom = contentOffset.top + contentHeight;
500       function setNavbarTop() {
501           var scrollTop = $(window).scrollTop();
502           var maxTop = scrollTop + menuHeight;
504           // If past the header
505           if (scrollTop > contentOffset.top && maxTop < contentBottom) {
506             stickyTop = scrollTop - contentOffset.top;
507           } else if (maxTop > contentBottom) {
508             stickyTop = scrollTop - contentOffset.top - (maxTop - contentBottom);
509           } else {
510             stickyTop = 0;
511           }
513           $(".wy-nav-side").css("top", stickyTop);
514       }
516       $(document).ready(function() {
517         setNavbarTop();
518         $(window).scroll(function () {
519           setNavbarTop();
520         });
522         $('body').on("mousewheel", function () {
523             // Remove default behavior
524             event.preventDefault();
525             // Scroll without smoothing
526             var wheelDelta = event.wheelDelta;
527             var currentScrollPosition = window.pageYOffset;
528             window.scrollTo(0, currentScrollPosition - wheelDelta);
529         });
530       });
531   </script>
532    
534 </body>
535 </html>