

<!DOCTYPE html>

<html lang="en-US">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=Edge">

  <link rel="stylesheet" href="/opensma-guide-tutorial/assets/css/just-the-docs-default.css">

  <link rel="stylesheet" href="/opensma-guide-tutorial/assets/css/just-the-docs-head-nav.css" id="jtd-head-nav-stylesheet">

  <style id="jtd-nav-activation">
  
    .site-nav ul li a {
      background-image: none;
    }

  </style>

  

  
    <script src="/opensma-guide-tutorial/assets/js/vendor/lunr.min.js"></script>
  

  <script src="/opensma-guide-tutorial/assets/js/just-the-docs.js"></script>

  <meta name="viewport" content="width=device-width, initial-scale=1">

  



  <!-- Begin Jekyll SEO tag v2.9.0 -->
<title>NVIDIA OpenSMA Firmware Guide | A source-traced, chapter-by-chapter guide to NVIDIA’s OpenSMA open-source SMA firmware for the NXP MCXN556S microcontroller — every architectural claim carries a file:line citation into the github.com/NVIDIA/OpenSMA tree at a pinned baseline.</title>
<meta name="generator" content="Jekyll v4.4.1" />
<meta property="og:title" content="NVIDIA OpenSMA Firmware Guide" />
<meta property="og:locale" content="en_US" />
<meta name="description" content="A source-traced, chapter-by-chapter guide to NVIDIA’s OpenSMA open-source SMA firmware for the NXP MCXN556S microcontroller — every architectural claim carries a file:line citation into the github.com/NVIDIA/OpenSMA tree at a pinned baseline." />
<meta name="twitter:description" property="og:description" content="A source-traced, chapter-by-chapter guide to NVIDIA’s OpenSMA open-source SMA firmware for the NXP MCXN556S microcontroller — every architectural claim carries a file:line citation into the github.com/NVIDIA/OpenSMA tree at a pinned baseline." />
<link rel="canonical" href="/opensma-guide-tutorial/assets/css/just-the-docs-head-nav.css" />
<meta property="og:url" content="/opensma-guide-tutorial/assets/css/just-the-docs-head-nav.css" />
<meta property="og:site_name" content="NVIDIA OpenSMA Firmware Guide" />
<meta property="og:type" content="website" />
<meta name="twitter:card" content="summary" />
<meta name="twitter:title" content="NVIDIA OpenSMA Firmware Guide" />
<script type="application/ld+json">
{"@context":"https://schema.org","@type":"WebPage","description":"A source-traced, chapter-by-chapter guide to NVIDIA’s OpenSMA open-source SMA firmware for the NXP MCXN556S microcontroller — every architectural claim carries a file:line citation into the github.com/NVIDIA/OpenSMA tree at a pinned baseline.","headline":"NVIDIA OpenSMA Firmware Guide","url":"/opensma-guide-tutorial/assets/css/just-the-docs-head-nav.css"}</script>
<!-- End Jekyll SEO tag -->


  <!--
  Visual polish on top of Just the Docs's bundled dark scheme.
  Modeled on https://michaeltien8901.github.io/uefi-guide-tutorial/.
  Mermaid diagrams get a paper-tone background and dark text/lines so
  they stay readable against the dark body. Tables get explicit borders
  for the same reason.
-->

<!-- Table styling for visibility against the dark body. -->
<style>
  table {
    border-collapse: collapse !important;
    border: 1px solid #6b7280 !important;
  }
  table th,
  table td {
    border: 1px solid #6b7280 !important;
    padding: 8px 12px !important;
  }
  table th {
    background-color: rgba(107, 114, 128, 0.3) !important;
    font-weight: 600 !important;
  }
  table tbody tr:nth-child(even) {
    background-color: rgba(107, 114, 128, 0.1) !important;
  }
  table tbody tr:hover {
    background-color: rgba(107, 114, 128, 0.2) !important;
  }
</style>

<!-- Mermaid diagrams: paper-tone background, dark text and lines.
     CSS overrides apply regardless of the mermaid theme variables, so
     diagrams render the same way no matter how the body is themed. -->
<style>
  .mermaid,
  pre.mermaid,
  .language-mermaid,
  code.language-mermaid {
    background-color: #d5d0c8 !important;
    border-radius: 8px !important;
    padding: 16px !important;
    margin: 16px 0 !important;
    display: block !important;
  }

  /* All text in mermaid: dark slate. */
  .mermaid text,
  .mermaid tspan,
  .mermaid .nodeLabel,
  .mermaid .label,
  .mermaid .edgeLabel,
  .mermaid .cluster-label,
  .mermaid .messageText,
  .mermaid .loopText,
  .mermaid .noteText,
  .mermaid .labelText,
  .mermaid .actor {
    fill: #2c3e50 !important;
    color: #2c3e50 !important;
  }

  /* All lines and arrows: dark slate. */
  .mermaid path,
  .mermaid .edgePath path,
  .mermaid .flowchart-link,
  .mermaid .messageLine0,
  .mermaid .messageLine1,
  .mermaid .relation {
    stroke: #3f4756 !important;
  }

  /* Flowchart edges: thicker so they read against the paper tone. */
  .mermaid .edgePath path,
  .mermaid .flowchart-link {
    stroke-width: 1.5px !important;
  }

  /* Edge labels: opaque light "chip" so the text never fights with the
     lines it crosses. Matches the node tone below. */
  .mermaid .edgeLabel,
  .mermaid .edgeLabel p,
  .mermaid .edgeLabel span,
  .mermaid .edgeLabel div,
  .mermaid .edgeLabels div,
  .mermaid .edgeLabel rect {
    background-color: #ece8e0 !important;
    fill: #ece8e0 !important;
  }
  .mermaid .edgeLabel foreignObject > div {
    border-radius: 4px !important;
    padding: 1px 3px !important;
  }

  /* Sequence-diagram actor lifelines: force visible. */
  line[id^="actor"] {
    stroke: #000000 !important;
    stroke-width: 0.5px !important;
  }

  /* Sequence-diagram message lines: thicker and higher-contrast. */
  .mermaid .messageText {
    fill: #2c3e50 !important;
  }
  .mermaid .messageLine0,
  .mermaid .messageLine1 {
    stroke: #4a5568 !important;
    stroke-width: 1.5px !important;
  }
  .mermaid marker path,
  .mermaid .arrowheadPath {
    fill: #4a5568 !important;
    stroke: #4a5568 !important;
  }

  /* Node backgrounds: light paper "chip" — the lightest layer so nodes
     pop against the diagram background and subgraph clusters. */
  .mermaid .node rect,
  .mermaid .node circle,
  .mermaid .node ellipse,
  .mermaid .node polygon,
  .mermaid .node path {
    fill: #ece8e0 !important;
    stroke: #6f6a5c !important;
  }

  /* Cluster (subgraph) backgrounds: a touch darker than the diagram
     background, with a firm border, so groupings read as panels. */
  .mermaid .cluster rect {
    fill: #cdc8bd !important;
    stroke: #5f5a4d !important;
    stroke-width: 1.25px !important;
  }

  /* Sequence-diagram actor boxes. */
  .mermaid .actor-box,
  .mermaid rect.actor {
    fill: #c5c0b8 !important;
    stroke: #8a8578 !important;
  }

  /* Notes: slightly warmer. */
  .mermaid .note {
    fill: #ddd8c8 !important;
    stroke: #a89878 !important;
  }
</style>

<!-- Site title: "NVIDIA OpenSMA Firmware Guide" is wider than the
     fixed sidebar, so allow it to wrap onto two lines (rather than
     forcing one line, which overflowed/clipped at top-left) and trim
     the font slightly. -->
<style>
  /* Just-the-Docs renders the title as <a class="site-title">. */
  .site-title,
  .site-button .site-title,
  a.site-title {
    font-size: 0.9rem !important;
    line-height: 1.25 !important;
    /* Wrap instead of nowrap so the title always fits the sidebar. */
    white-space: normal !important;
    overflow-wrap: break-word !important;
    overflow: visible !important;
    padding-top: 0.4rem !important;
    padding-bottom: 0.4rem !important;
  }

  /* Let the header/button grow to the wrapped title rather than clip. */
  .site-header,
  .site-header .site-button,
  .site-title-wrapper {
    overflow: visible !important;
    height: auto !important;
    min-height: 3.75rem !important;
  }

  /* A touch smaller on very narrow viewports. */
  @media (max-width: 50rem) {
    .site-title,
    .site-button .site-title,
    a.site-title {
      font-size: 0.85rem !important;
    }
  }
</style>

<!-- Fix sequence diagram lifelines after mermaid renders. Just the
     Docs's auto-mermaid runs late; the actor lines sometimes need a
     second pass to pick up the stroke override. -->
<script>
  (function () {
    function fixActorLines() {
      var lines = document.querySelectorAll('line[id^="actor"]');
      for (var i = 0; i < lines.length; i++) {
        lines[i].setAttribute('stroke', '#000000');
        lines[i].setAttribute('stroke-width', '0.5px');
      }
    }
    if (document.readyState === 'complete') {
      setTimeout(fixActorLines, 500);
      setTimeout(fixActorLines, 1500);
    } else {
      window.addEventListener('load', function () {
        setTimeout(fixActorLines, 500);
        setTimeout(fixActorLines, 1500);
        setTimeout(fixActorLines, 3000);
      });
    }
  })();
</script>


</head>

<body>
  <a class="skip-to-main" href="#main-content">Skip to main content</a>
  <svg xmlns="http://www.w3.org/2000/svg" class="d-none">
  <symbol id="svg-link" viewBox="0 0 24 24">
  <title>Link</title>
  <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-link">
    <path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path>
  </svg>
</symbol>

  <symbol id="svg-menu" viewBox="0 0 24 24">
  <title>Menu</title>
  <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-menu">
    <line x1="3" y1="12" x2="21" y2="12"></line><line x1="3" y1="6" x2="21" y2="6"></line><line x1="3" y1="18" x2="21" y2="18"></line>
  </svg>
</symbol>

  <symbol id="svg-arrow-right" viewBox="0 0 24 24">
  <title>Expand</title>
  <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-chevron-right">
    <polyline points="9 18 15 12 9 6"></polyline>
  </svg>
</symbol>

  <!-- Feather. MIT License: https://github.com/feathericons/feather/blob/master/LICENSE -->
<symbol id="svg-external-link" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-external-link">
  <title id="svg-external-link-title">(external link)</title>
  <path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"></path><polyline points="15 3 21 3 21 9"></polyline><line x1="10" y1="14" x2="21" y2="3"></line>
</symbol>

  
    <symbol id="svg-doc" viewBox="0 0 24 24">
  <title>Document</title>
  <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-file">
    <path d="M13 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z"></path><polyline points="13 2 13 9 20 9"></polyline>
  </svg>
</symbol>

    <symbol id="svg-search" viewBox="0 0 24 24">
  <title>Search</title>
  <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-search">
    <circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line>
  </svg>
</symbol>

  
  
    <!-- Bootstrap Icons. MIT License: https://github.com/twbs/icons/blob/main/LICENSE.md -->
<symbol id="svg-copy" viewBox="0 0 16 16">
  <title>Copy</title>
  <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-clipboard" viewBox="0 0 16 16">
    <path d="M4 1.5H3a2 2 0 0 0-2 2V14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V3.5a2 2 0 0 0-2-2h-1v1h1a1 1 0 0 1 1 1V14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V3.5a1 1 0 0 1 1-1h1v-1z"/>
    <path d="M9.5 1a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5v-1a.5.5 0 0 1 .5-.5h3zm-3-1A1.5 1.5 0 0 0 5 1.5v1A1.5 1.5 0 0 0 6.5 4h3A1.5 1.5 0 0 0 11 2.5v-1A1.5 1.5 0 0 0 9.5 0h-3z"/>
  </svg>
</symbol>
<symbol id="svg-copied" viewBox="0 0 16 16">
  <title>Copied</title>
  <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-clipboard-check-fill" viewBox="0 0 16 16">
    <path d="M6.5 0A1.5 1.5 0 0 0 5 1.5v1A1.5 1.5 0 0 0 6.5 4h3A1.5 1.5 0 0 0 11 2.5v-1A1.5 1.5 0 0 0 9.5 0h-3Zm3 1a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5v-1a.5.5 0 0 1 .5-.5h3Z"/>
    <path d="M4 1.5H3a2 2 0 0 0-2 2V14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V3.5a2 2 0 0 0-2-2h-1v1A2.5 2.5 0 0 1 9.5 5h-3A2.5 2.5 0 0 1 4 2.5v-1Zm6.854 7.354-3 3a.5.5 0 0 1-.708 0l-1.5-1.5a.5.5 0 0 1 .708-.708L7.5 10.793l2.646-2.647a.5.5 0 0 1 .708.708Z"/>
  </svg>
</symbol>

  
</svg>

  
    <header class="side-bar">
  <div class="site-header">
    <a href="/opensma-guide-tutorial/" class="site-title lh-tight">
  NVIDIA OpenSMA Firmware Guide

</a>
    <button id="menu-button" class="site-button btn-reset" aria-label="Menu" aria-expanded="false">
      <svg viewBox="0 0 24 24" class="icon" aria-hidden="true"><use xlink:href="#svg-menu"></use></svg>
    </button>
  </div>

  <nav aria-label="Main" id="site-nav" class="site-nav">
  
  
    <ul class="nav-list"><li class="nav-list-item"><a href="/opensma-guide-tutorial/" class="nav-list-link">Home</a></li><li class="nav-list-item"><a href="/opensma-guide-tutorial/10-setup.html" class="nav-list-link">Setup</a></li><li class="nav-list-item"><a href="/opensma-guide-tutorial/20-architecture.html" class="nav-list-link">Architecture</a></li><li class="nav-list-item"><a href="/opensma-guide-tutorial/30-build-system.html" class="nav-list-link">Build System</a></li><li class="nav-list-item"><button class="nav-list-expander btn-reset" aria-label="Transports & Buses submenu" aria-expanded="false">
        <svg viewBox="0 0 24 24" aria-hidden="true"><use xlink:href="#svg-arrow-right"></use></svg>
      </button><a href="/opensma-guide-tutorial/40-transports.html" class="nav-list-link">Transports & Buses</a><ul class="nav-list"><li class="nav-list-item"><a href="/opensma-guide-tutorial/transports/mctp.html" class="nav-list-link">MCTP transport</a></li><li class="nav-list-item"><a href="/opensma-guide-tutorial/transports/buses.html" class="nav-list-link">Bus drivers</a></li></ul></li><li class="nav-list-item"><button class="nav-list-expander btn-reset" aria-label="Management Protocols submenu" aria-expanded="false">
        <svg viewBox="0 0 24 24" aria-hidden="true"><use xlink:href="#svg-arrow-right"></use></svg>
      </button><a href="/opensma-guide-tutorial/50-management-protocols.html" class="nav-list-link">Management Protocols</a><ul class="nav-list"><li class="nav-list-item"><a href="/opensma-guide-tutorial/protocols/pldm.html" class="nav-list-link">PLDM</a></li><li class="nav-list-item"><a href="/opensma-guide-tutorial/protocols/spdm.html" class="nav-list-link">SPDM</a></li><li class="nav-list-item"><a href="/opensma-guide-tutorial/protocols/other-messaging.html" class="nav-list-link">NHP & LSTP messaging</a></li></ul></li><li class="nav-list-item"><button class="nav-list-expander btn-reset" aria-label="Security & Root-of-Trust submenu" aria-expanded="false">
        <svg viewBox="0 0 24 24" aria-hidden="true"><use xlink:href="#svg-arrow-right"></use></svg>
      </button><a href="/opensma-guide-tutorial/60-security-rot.html" class="nav-list-link">Security & Root-of-Trust</a><ul class="nav-list"><li class="nav-list-item"><a href="/opensma-guide-tutorial/security/vrot-secure-boot.html" class="nav-list-link">vRoT & secure boot</a></li><li class="nav-list-item"><a href="/opensma-guide-tutorial/security/crypto-fw-parser.html" class="nav-list-link">Crypto & firmware parsing</a></li></ul></li><li class="nav-list-item"><button class="nav-list-expander btn-reset" aria-label="Platform Control & Telemetry submenu" aria-expanded="false">
        <svg viewBox="0 0 24 24" aria-hidden="true"><use xlink:href="#svg-arrow-right"></use></svg>
      </button><a href="/opensma-guide-tutorial/70-platform-control.html" class="nav-list-link">Platform Control & Telemetry</a><ul class="nav-list"><li class="nav-list-item"><a href="/opensma-guide-tutorial/platform-control/fan-power-telemetry.html" class="nav-list-link">Fan, power & telemetry</a></li><li class="nav-list-item"><a href="/opensma-guide-tutorial/platform-control/monitoring-data.html" class="nav-list-link">Monitoring & data</a></li></ul></li><li class="nav-list-item"><button class="nav-list-expander btn-reset" aria-label="Platform / BSP & Projects submenu" aria-expanded="false">
        <svg viewBox="0 0 24 24" aria-hidden="true"><use xlink:href="#svg-arrow-right"></use></svg>
      </button><a href="/opensma-guide-tutorial/80-platform-bsp.html" class="nav-list-link">Platform / BSP & Projects</a><ul class="nav-list"><li class="nav-list-item"><a href="/opensma-guide-tutorial/platform-bsp/bsp-boards-projects.html" class="nav-list-link">BSP, boards & projects</a></li></ul></li><li class="nav-list-item"><a href="/opensma-guide-tutorial/90-reference.html" class="nav-list-link">Reference</a></li><li class="nav-list-item"><button class="nav-list-expander btn-reset" aria-label="Appendices submenu" aria-expanded="false">
        <svg viewBox="0 0 24 24" aria-hidden="true"><use xlink:href="#svg-arrow-right"></use></svg>
      </button><a href="/opensma-guide-tutorial/appendices.html" class="nav-list-link">Appendices</a><ul class="nav-list"><li class="nav-list-item"><a href="/opensma-guide-tutorial/appendices/glossary.html" class="nav-list-link">Glossary</a></li><li class="nav-list-item"><a href="/opensma-guide-tutorial/appendices/symbol-index.html" class="nav-list-link">Symbol index</a></li><li class="nav-list-item"><a href="/opensma-guide-tutorial/appendices/trace-methodology.html" class="nav-list-link">Trace methodology</a></li></ul></li><li class="nav-list-item"><a href="/opensma-guide-tutorial/99-source-map.html" class="nav-list-link">Source map</a></li></ul>
  
</nav>


<div class="d-md-block d-none site-footer">
  
  
    This site uses <a href="https://github.com/just-the-docs/just-the-docs">Just the Docs</a>, a documentation theme for Jekyll.
  
  </div>
</header>

  
  <div class="main" id="top">
    <div id="main-header" class="main-header">
  
    

<div class="search" role="search">
  <div class="search-input-wrap">
    <input type="text" id="search-input" class="search-input" tabindex="0" placeholder="Search NVIDIA OpenSMA Firmware Guide" autocomplete="off">
    <label for="search-input" class="search-label">
      <span class="sr-only">Search NVIDIA OpenSMA Firmware Guide</span>
      <svg viewBox="0 0 24 24" class="search-icon" aria-hidden="true"><use xlink:href="#svg-search"></use></svg>
    </label>
  </div>
  <div id="search-results" class="search-results"></div>
</div>

  
  
  
    <nav aria-label="Auxiliary" class="aux-nav">
  <ul class="aux-nav-list">
    
      <li class="aux-nav-list-item">
        <a href="https://github.com/NVIDIA/OpenSMA" class="site-button"
          
          target="_blank" rel="noopener noreferrer"
          
        >
          OpenSMA on GitHub
        </a>
      </li>
    
      <li class="aux-nav-list-item">
        <a href="https://github.com/MichaelTien8901/opensma-guide-tutorial" class="site-button"
          
          target="_blank" rel="noopener noreferrer"
          
        >
          Guide repository
        </a>
      </li>
    
  </ul>
</nav>

  
</div>

    <div class="main-content-wrap">
      
      <div id="main-content" class="main-content">
        <main>
          
            <hdiv.opaque { background-color: #27262b; }

.site-nav ul li a { background-image: linear-gradient(-90deg, #201f23 0%, rgba(32, 31, 35, 0.8) 80%, rgba(32, 31, 35, 0) 100%); }

          

          
            
          
        </main>
        
<hr>
<footer>
  

  <p class="text-small mb-0">Built with <a href="https://just-the-docs.com">Just the Docs</a>. Source-traced against <a href="https://github.com/NVIDIA/OpenSMA">NVIDIA/OpenSMA</a> at <code>9b183d3</code> (v02.0020.0000). Methodology under <code>appendices/trace-methodology</code>.</p>

  <div class="d-md-none mt-4 fs-2">
    
    
      This site uses <a href="https://github.com/just-the-docs/just-the-docs">Just the Docs</a>, a documentation theme for Jekyll.
    
  </div>
</footer>

      </div>
    </div>
    
      

<div class="search-overlay"></div>

    
  </div>

  
    





<script type="module">
  
  import mermaid from 'https://cdn.jsdelivr.net/npm/mermaid@10.9.1/dist/mermaid.esm.min.mjs';
  

  var config = {}
;
  mermaid.initialize(config);
  mermaid.run({
    querySelector: '.language-mermaid',
  });
</script>



  
</body>
</html>

