]> 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/2_tisci_msgs/security/firewall_api.html
Migrating to SYSFW version v2020.08a
[processor-sdk/pdk.git] / packages / ti / drv / sciclient / soc / sysfw / binaries / system-firmware-public-documentation / 2_tisci_msgs / security / firewall_api.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>Firewall TISCI Description &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 2: TISCI Message Documentation" href="../index.html"/>
42         <link rel="next" title="Secure AP Command Interface" href="sec_ap_data_transfer.html"/>
43         <link rel="prev" title="Processor Boot Management TISCI Description" href="PROC_BOOT.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           
83           
84 <div role="search">
85   <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get">
86     <input type="text" name="q" placeholder="Search docs" />
87     <input type="hidden" name="check_keywords" value="yes" />
88     <input type="hidden" name="area" value="default" />
89   </form>
90 </div>
92           
93         </div>
95         <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
96           
97             
98             
99                 <ul class="current">
100 <li class="toctree-l1"><a class="reference internal" href="../../1_intro/index.html">Chapter 1: Introduction</a></li>
101 <li class="toctree-l1 current"><a class="reference internal" href="../index.html">Chapter 2: TISCI Message Documentation</a><ul class="current">
102 <li class="toctree-l2"><a class="reference internal" href="../general/TISCI_header.html">Texas Instruments System Controller Interface (TISCI)</a></li>
103 <li class="toctree-l2"><a class="reference internal" href="../index.html#general">General</a></li>
104 <li class="toctree-l2"><a class="reference internal" href="../index.html#power-management-pm">Power Management (PM)</a></li>
105 <li class="toctree-l2"><a class="reference internal" href="../index.html#resource-management-rm">Resource Management (RM)</a></li>
106 <li class="toctree-l2 current"><a class="reference internal" href="../index.html#secure-management">Secure Management</a><ul class="current">
107 <li class="toctree-l3"><a class="reference internal" href="sec_cert_format.html">Security X509 Certificate Documentation</a></li>
108 <li class="toctree-l3"><a class="reference internal" href="PROC_BOOT.html">Processor Boot Management TISCI Description</a></li>
109 <li class="toctree-l3 current"><a class="current reference internal" href="#">Firewall TISCI Description</a><ul>
110 <li class="toctree-l4"><a class="reference internal" href="#background-information">Background Information</a></li>
111 <li class="toctree-l4"><a class="reference internal" href="#initial-configuration">Initial Configuration</a></li>
112 <li class="toctree-l4"><a class="reference internal" href="#api-description">API Description</a></li>
113 </ul>
114 </li>
115 <li class="toctree-l3"><a class="reference internal" href="sec_ap_data_transfer.html">Secure AP Command Interface</a></li>
116 <li class="toctree-l3"><a class="reference internal" href="runtime_debug.html">Runtime Debug TISCI Description</a></li>
117 <li class="toctree-l3"><a class="reference internal" href="extended_otp.html">Extended OTP TISCI Description</a></li>
118 <li class="toctree-l3"><a class="reference internal" href="dkek_management.html">Derived KEK TISCI Description</a></li>
119 <li class="toctree-l3"><a class="reference internal" href="security_handover.html">Security Handover Message Description</a></li>
120 </ul>
121 </li>
122 </ul>
123 </li>
124 <li class="toctree-l1"><a class="reference internal" href="../../3_boardcfg/index.html">Chapter 3: Board Configuration</a></li>
125 <li class="toctree-l1"><a class="reference internal" href="../../4_trace/index.html">Chapter 4: Interpreting Trace Data</a></li>
126 <li class="toctree-l1"><a class="reference internal" href="../../5_soc_doc/index.html">Chapter 5: SoC Family Specific Documentation</a></li>
127 <li class="toctree-l1"><a class="reference internal" href="../../6_topic_user_guides/index.html">Chapter 6: Topic User Guides</a></li>
128 </ul>
130             
131           
132         </div>
133       </div>
134     </nav>
136     <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
138       
139       <nav class="wy-nav-top" role="navigation" aria-label="top navigation">
140         <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
141         <a href="../../index.html">TISCI</a>
142       </nav>
145       
146       <div class="wy-nav-content">
147         <div class="rst-content">
148           
150  
154 <div role="navigation" aria-label="breadcrumbs navigation">
155   <ul class="wy-breadcrumbs">
156     <li><a href="../../index.html">Docs</a> &raquo;</li>
157       
158           <li><a href="../index.html">Chapter 2: TISCI Message Documentation</a> &raquo;</li>
159       
160     <li>Firewall TISCI Description</li>
161       <li class="wy-breadcrumbs-aside">
162         
163           
164         
165       </li>
166   </ul>
167   <hr/>
168 </div>
169           <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
170            <div itemprop="articleBody">
171             
172   <div class="section" id="firewall-tisci-description">
173 <h1>Firewall TISCI Description<a class="headerlink" href="#firewall-tisci-description" title="Permalink to this headline">¶</a></h1>
174 <p id="sec-ap-fwl-tisci-desc">This chapter provides information on Firewall API’s provided by system firmware.
175 There are three firewall API as listed below.</p>
176 <table border="1" class="docutils">
177 <colgroup>
178 <col width="23%" />
179 <col width="77%" />
180 </colgroup>
181 <thead valign="bottom">
182 <tr class="row-odd"><th class="head">TISCI Message ID</th>
183 <th class="head">Message Name</th>
184 </tr>
185 </thead>
186 <tbody valign="top">
187 <tr class="row-even"><td>0x9000</td>
188 <td><a class="reference internal" href="#set-firewall-region"><span class="std std-ref">TISCI_MSG_SET_FWL_REGION</span></a>.</td>
189 </tr>
190 <tr class="row-odd"><td>0x9001</td>
191 <td><a class="reference internal" href="#get-firewall-region"><span class="std std-ref">TISCI_MSG_GET_FWL_REGION</span></a>.</td>
192 </tr>
193 <tr class="row-even"><td>0x9002</td>
194 <td><a class="reference internal" href="#change-firewall-owner"><span class="std std-ref">TISCI_MSG_CHANGE_FWL_OWNER</span></a>.</td>
195 </tr>
196 </tbody>
197 </table>
198 <div class="section" id="background-information">
199 <h2>Background Information<a class="headerlink" href="#background-information" title="Permalink to this headline">¶</a></h2>
200 <p>Each firewall in the system is assigned an owner. Ownership is
201 assigned using <cite>Host ID</cite>. Only a owner of a firewall can</p>
202 <ul class="simple">
203 <li>Configure the firewall permissions</li>
204 <li>Query the firewall permissions</li>
205 <li>Transfer the firewall ownership to another owner(host)</li>
206 </ul>
207 </div>
208 <div class="section" id="initial-configuration">
209 <h2>Initial Configuration<a class="headerlink" href="#initial-configuration" title="Permalink to this headline">¶</a></h2>
210 <p>System firmware configures the firewalls in the following manner on startup.</p>
211 <ol class="arabic simple">
212 <li>DMSC internal memories are firewalled. Firewall ownership is assigned to DMSC.</li>
213 <li>Secure proxy and associated resources required for DMSC operation are
214 firewalled. Firewall ownership is assigned to DMSC.</li>
215 <li>All Navss resources not used by DMSC are firewalled and ownership of the
216 firewalls is assigned to Resource Manager(RM). The intent is that RM programs
217 the firewalls for Navss resources based on resource assignment in board
218 configuration.</li>
219 </ol>
220 </div>
221 <div class="section" id="api-description">
222 <h2>API Description<a class="headerlink" href="#api-description" title="Permalink to this headline">¶</a></h2>
223 <div class="section" id="tisci-msg-set-fwl-region-set-firewall-region">
224 <span id="set-firewall-region"></span><h3>TISCI_MSG_SET_FWL_REGION - Set Firewall region<a class="headerlink" href="#tisci-msg-set-fwl-region-set-firewall-region" title="Permalink to this headline">¶</a></h3>
225 <p><strong>Usage</strong>:</p>
226 <table border="1" class="docutils">
227 <colgroup>
228 <col width="75%" />
229 <col width="25%" />
230 </colgroup>
231 <tbody valign="top">
232 <tr class="row-odd"><td><strong>Message Type</strong></td>
233 <td>Normal</td>
234 </tr>
235 <tr class="row-even"><td><strong>Secure Queue Only?</strong></td>
236 <td>No</td>
237 </tr>
238 </tbody>
239 </table>
240 </div>
241 <div class="section" id="tisci-message-id">
242 <h3>TISCI Message ID<a class="headerlink" href="#tisci-message-id" title="Permalink to this headline">¶</a></h3>
243 <p><p><code class="docutils literal"><span class="pre">TISCI_MSG_SET_FWL_REGION</span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span class="pre">(0x9000U)</span></code></p>
244 <p>Message to set a firewall region configuration</p>
245 </p>
246 <p><p><strong>struct tisci_msg_fwl_set_firewall_region_req</strong></p>
247 <p>Request for configuring the firewall permissions.</p>
248 <table border="1" class="docutils">
249 <colgroup>
250 <col width="5%" />
251 <col width="6%" />
252 <col width="90%" />
253 </colgroup>
254 <thead valign="bottom">
255 <tr class="row-odd"><th class="head">Parameter</th>
256 <th class="head">Type</th>
257 <th class="head">Description</th>
258 </tr>
259 </thead>
260 <tbody valign="top">
261 <tr class="row-even"><td>hdr</td>
262 <td>struct tisci_header</td>
263 <td>Common TI-SCI header</td>
264 </tr>
265 <tr class="row-odd"><td>fwl_id</td>
266 <td>u16</td>
267 <td>firewall ID in question. fwl_id is defined in the TRM.</td>
268 </tr>
269 <tr class="row-even"><td>region</td>
270 <td>u16</td>
271 <td>Region or channel number to set config info This field is unused in case of a simple firewall  and must be initialized to zero.  In case of a region based firewall, this field indicates the region in question. (index starting from 0) In case of a channel based firewall, this field indicates the channel in question (index starting from 0)</td>
272 </tr>
273 <tr class="row-odd"><td>n_permission_regs</td>
274 <td>u32</td>
275 <td>Number of permission registers to set</td>
276 </tr>
277 <tr class="row-even"><td>control</td>
278 <td>u32</td>
279 <td>Contents of the firewall CONTROL register to set</td>
280 </tr>
281 <tr class="row-odd"><td>permissions</td>
282 <td>u32</td>
283 <td>Contents of the firewall PERMISSION register to set</td>
284 </tr>
285 <tr class="row-even"><td>start_address</td>
286 <td>soc_phys_addr_t</td>
287 <td>Contents of the firewall START_ADDRESS register to set</td>
288 </tr>
289 <tr class="row-odd"><td>end_address</td>
290 <td>soc_phys_addr_t</td>
291 <td>Contents of the firewall END_ADDRESS register to set</td>
292 </tr>
293 </tbody>
294 </table>
295 </p>
296 <p><p><strong>struct tisci_msg_fwl_set_firewall_region_resp</strong></p>
297 <p>Response for configuring the firewall permissions.</p>
298 <table border="1" class="docutils">
299 <colgroup>
300 <col width="7%" />
301 <col width="11%" />
302 <col width="83%" />
303 </colgroup>
304 <thead valign="bottom">
305 <tr class="row-odd"><th class="head">Parameter</th>
306 <th class="head">Type</th>
307 <th class="head">Description</th>
308 </tr>
309 </thead>
310 <tbody valign="top">
311 <tr class="row-even"><td>hdr</td>
312 <td>struct tisci_header</td>
313 <td>Generic TISCI message header. ACK response indicates that firewall configuration is succesful. NACK response indicates that the configuration was not performed.</td>
314 </tr>
315 </tbody>
316 </table>
317 </p>
318 </div>
319 <div class="section" id="tisci-msg-get-fwl-region-get-firewall-region">
320 <span id="get-firewall-region"></span><h3>TISCI_MSG_GET_FWL_REGION - Get Firewall region<a class="headerlink" href="#tisci-msg-get-fwl-region-get-firewall-region" title="Permalink to this headline">¶</a></h3>
321 <p><strong>Usage</strong>:</p>
322 <table border="1" class="docutils">
323 <colgroup>
324 <col width="75%" />
325 <col width="25%" />
326 </colgroup>
327 <tbody valign="top">
328 <tr class="row-odd"><td><strong>Message Type</strong></td>
329 <td>Normal</td>
330 </tr>
331 <tr class="row-even"><td><strong>Secure Queue Only?</strong></td>
332 <td>No</td>
333 </tr>
334 </tbody>
335 </table>
336 </div>
337 <div class="section" id="id1">
338 <h3>TISCI Message ID<a class="headerlink" href="#id1" title="Permalink to this headline">¶</a></h3>
339 <p><p><code class="docutils literal"><span class="pre">TISCI_MSG_GET_FWL_REGION</span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span class="pre">(0x9001U)</span></code></p>
340 <p>Message to get a firewall region configuration</p>
341 </p>
342 <p><p><strong>struct tisci_msg_fwl_get_firewall_region_req</strong></p>
343 <p>Request for retrieving the firewall permissions.</p>
344 <table border="1" class="docutils">
345 <colgroup>
346 <col width="20%" />
347 <col width="22%" />
348 <col width="58%" />
349 </colgroup>
350 <thead valign="bottom">
351 <tr class="row-odd"><th class="head">Parameter</th>
352 <th class="head">Type</th>
353 <th class="head">Description</th>
354 </tr>
355 </thead>
356 <tbody valign="top">
357 <tr class="row-even"><td>hdr</td>
358 <td>struct tisci_header</td>
359 <td>Generic TISCI message header.</td>
360 </tr>
361 <tr class="row-odd"><td>fwl_id</td>
362 <td>u16</td>
363 <td>firewall ID in question. fwl_id is defined in the TRM.</td>
364 </tr>
365 <tr class="row-even"><td>region</td>
366 <td>u16</td>
367 <td>Region or channel number to set config info</td>
368 </tr>
369 <tr class="row-odd"><td>n_permission_regs</td>
370 <td>u32</td>
371 <td>Number of permission registers to retrieve</td>
372 </tr>
373 </tbody>
374 </table>
375 <p>This field is unused in case of a simple firewall  and must be initialized
376  to zero.  In case of a region based firewall, this field indicates the
377  region in question (index starting from 0). In case of a channel based
378  firewall, this field indicates the channel in question (index starting
379  from 0).</p>
380 </p>
381 <p><p><strong>struct tisci_msg_fwl_get_firewall_region_resp</strong></p>
382 <p>Response for retrieving the firewall permissions.</p>
383 <table border="1" class="docutils">
384 <colgroup>
385 <col width="5%" />
386 <col width="6%" />
387 <col width="90%" />
388 </colgroup>
389 <thead valign="bottom">
390 <tr class="row-odd"><th class="head">Parameter</th>
391 <th class="head">Type</th>
392 <th class="head">Description</th>
393 </tr>
394 </thead>
395 <tbody valign="top">
396 <tr class="row-even"><td>hdr</td>
397 <td>struct tisci_header</td>
398 <td>Generic TISCI message header. A ACK response in the hdr indicates that the message was processed. successfully. A NACK response indicates failure to retrieve firewall permissions.</td>
399 </tr>
400 <tr class="row-odd"><td>fwl_id</td>
401 <td>u16</td>
402 <td>firewall ID in question. fwl_id is defined in the TRM.</td>
403 </tr>
404 <tr class="row-even"><td>region</td>
405 <td>u16</td>
406 <td>Region or channel number to set config info This field is unused in case of a simple firewall  and must be initialized to zero.  In case of a region based firewall, this field indicates the region in question. (index starting from 0) In case of a channel based firewall, this field indicates the channel in question (index starting from 0)</td>
407 </tr>
408 <tr class="row-odd"><td>n_permission_regs</td>
409 <td>u32</td>
410 <td>Number of permission registers retrieved</td>
411 </tr>
412 <tr class="row-even"><td>control</td>
413 <td>u32</td>
414 <td>Contents of the firewall CONTROL register</td>
415 </tr>
416 <tr class="row-odd"><td>permissions</td>
417 <td>u32</td>
418 <td>Contents of the firewall PERMISSION registers</td>
419 </tr>
420 <tr class="row-even"><td>start_address</td>
421 <td>soc_phys_addr_t</td>
422 <td>Contents of the firewall START_ADDRESS register This is not applicable for channelized firewalls.</td>
423 </tr>
424 <tr class="row-odd"><td>end_address</td>
425 <td>soc_phys_addr_t</td>
426 <td>Contents of the firewall END_ADDRESS register This is not applicable for channelized firewalls.</td>
427 </tr>
428 </tbody>
429 </table>
430 </p>
431 </div>
432 <div class="section" id="tisci-msg-change-fwl-owner-change-firewall-owner">
433 <span id="change-firewall-owner"></span><h3>TISCI_MSG_CHANGE_FWL_OWNER - Change Firewall Owner<a class="headerlink" href="#tisci-msg-change-fwl-owner-change-firewall-owner" title="Permalink to this headline">¶</a></h3>
434 <p><strong>Usage</strong>:</p>
435 <table border="1" class="docutils">
436 <colgroup>
437 <col width="75%" />
438 <col width="25%" />
439 </colgroup>
440 <tbody valign="top">
441 <tr class="row-odd"><td><strong>Message Type</strong></td>
442 <td>Normal</td>
443 </tr>
444 <tr class="row-even"><td><strong>Secure Queue Only?</strong></td>
445 <td>No</td>
446 </tr>
447 </tbody>
448 </table>
449 </div>
450 <div class="section" id="id2">
451 <h3>TISCI Message ID<a class="headerlink" href="#id2" title="Permalink to this headline">¶</a></h3>
452 <p><p><code class="docutils literal"><span class="pre">TISCI_MSG_CHANGE_FWL_OWNER</span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span class="pre">(0x9002U)</span></code></p>
453 <p>Message to change firewall region owner</p>
454 </p>
455 <p><p><strong>struct tisci_msg_fwl_change_owner_info_req</strong></p>
456 <p>Request for a change owner operation</p>
457 <table border="1" class="docutils">
458 <colgroup>
459 <col width="17%" />
460 <col width="28%" />
461 <col width="55%" />
462 </colgroup>
463 <thead valign="bottom">
464 <tr class="row-odd"><th class="head">Parameter</th>
465 <th class="head">Type</th>
466 <th class="head">Description</th>
467 </tr>
468 </thead>
469 <tbody valign="top">
470 <tr class="row-even"><td>hdr</td>
471 <td>struct tisci_header</td>
472 <td>Common TI-SCI header</td>
473 </tr>
474 <tr class="row-odd"><td>fwl_id</td>
475 <td>u16</td>
476 <td>firewall ID in question</td>
477 </tr>
478 <tr class="row-even"><td>region</td>
479 <td>u16</td>
480 <td>Region or channel number if applicable</td>
481 </tr>
482 <tr class="row-odd"><td>owner_index</td>
483 <td>u8</td>
484 <td>New owner index to transfer ownership to</td>
485 </tr>
486 </tbody>
487 </table>
488 </p>
489 <p><p><strong>struct tisci_msg_fwl_change_owner_info_resp</strong></p>
490 <p>Response for a change owner operation</p>
491 <table border="1" class="docutils">
492 <colgroup>
493 <col width="12%" />
494 <col width="11%" />
495 <col width="77%" />
496 </colgroup>
497 <thead valign="bottom">
498 <tr class="row-odd"><th class="head">Parameter</th>
499 <th class="head">Type</th>
500 <th class="head">Description</th>
501 </tr>
502 </thead>
503 <tbody valign="top">
504 <tr class="row-even"><td>hdr</td>
505 <td>struct tisci_header</td>
506 <td>Common TI-SCI header ACK response indicates that change owner operation is succesful. NACK response indicates that change owner operation failed.</td>
507 </tr>
508 <tr class="row-odd"><td>fwl_id</td>
509 <td>u16</td>
510 <td>firewall ID specified in request</td>
511 </tr>
512 <tr class="row-even"><td>region</td>
513 <td>u16</td>
514 <td>Region or channel number specified in request</td>
515 </tr>
516 <tr class="row-odd"><td>owner_index</td>
517 <td>u8</td>
518 <td>owner index specified in request</td>
519 </tr>
520 <tr class="row-even"><td>owner_privid</td>
521 <td>u8</td>
522 <td>new owner priv-ID returned by DMSC. This field is currently initialized to zero by DMSC.</td>
523 </tr>
524 <tr class="row-odd"><td>owner_permission_bits</td>
525 <td>u16</td>
526 <td>new owner permission bits returned by DMSC. This field is currently initialized to zero by DMSC.</td>
527 </tr>
528 </tbody>
529 </table>
530 </p>
531 </div>
532 </div>
533 </div>
536            </div>
537           </div>
538           <footer>
539   
540     <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
541       
542         <a href="sec_ap_data_transfer.html" class="btn btn-neutral float-right" title="Secure AP Command Interface" accesskey="n">Next <span class="fa fa-arrow-circle-right"></span></a>
543       
544       
545         <a href="PROC_BOOT.html" class="btn btn-neutral" title="Processor Boot Management TISCI Description" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous</a>
546       
547     </div>
548   
550   <hr/>
552   <div role="contentinfo">
553     <p>
554       <a href="http://www.ti.com/corp/docs/legal/copyright.shtml">&copy; Copyright 2016-2020</a>, Texas Instruments Incorporated. All rights reserved. <br>
555       <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>
557     </p>
558   </div> 
560 </footer>
562         </div>
563       </div>
565     </section>
567   </div>
568   
571   
573     <script type="text/javascript">
574         var DOCUMENTATION_OPTIONS = {
575             URL_ROOT:'../../',
576             VERSION:'',
577             COLLAPSE_INDEX:false,
578             FILE_SUFFIX:'.html',
579             HAS_SOURCE:  true
580         };
581     </script>
582       <script type="text/javascript" src="../../_static/jquery.js"></script>
583       <script type="text/javascript" src="../../_static/underscore.js"></script>
584       <script type="text/javascript" src="../../_static/doctools.js"></script>
585       <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
587     <script src="http://www.ti.com/assets/js/headerfooter/analytics.js" type="text/javascript" charset="utf-8"></script>
589   
591   
592   
593     <script type="text/javascript" src="../../_static/js/theme.js"></script>
594   
596   
597   
598   <script type="text/javascript">
599       jQuery(function () {
600           SphinxRtdTheme.StickyNav.enable();
601         });
603       var menuHeight = window.innerHeight;
605       var contentOffset = $(".wy-nav-content-wrap").offset();
606       var contentHeight = $(".wy-nav-content-wrap").height();
607       var contentBottom = contentOffset.top + contentHeight;
609       function setNavbarTop() {
610           var scrollTop = $(window).scrollTop();
611           var maxTop = scrollTop + menuHeight;
613           // If past the header
614           if (scrollTop > contentOffset.top && maxTop < contentBottom) {
615             stickyTop = scrollTop - contentOffset.top;
616           } else if (maxTop > contentBottom) {
617             stickyTop = scrollTop - contentOffset.top - (maxTop - contentBottom);
618           } else {
619             stickyTop = 0;
620           }
622           $(".wy-nav-side").css("top", stickyTop);
623       }
625       $(document).ready(function() {
626         setNavbarTop();
627         $(window).scroll(function () {
628           setNavbarTop();
629         });
631         $('body').on("mousewheel", function () {
632             // Remove default behavior
633             event.preventDefault();
634             // Scroll without smoothing
635             var wheelDelta = event.wheelDelta;
636             var currentScrollPosition = window.pageYOffset;
637             window.scrollTo(0, currentScrollPosition - wheelDelta);
638         });
639       });
640   </script>
641    
643 </body>
644 </html>