Files
slimbootloader.github.io/tools/StitchTool.html

188 lines
15 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8" /><meta name="generator" content="Docutils 0.18.1: http://docutils.sourceforge.net/" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Stitch Tool &mdash; Slim Bootloader 1.0 documentation</title>
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="../_static/graphviz.css" type="text/css" />
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
<link rel="shortcut icon" href="../_static/sbl_logo_blue_32x32_icon.ico"/>
<!--[if lt IE 9]>
<script src="../_static/js/html5shiv.min.js"></script>
<![endif]-->
<script src="../_static/jquery.js"></script>
<script src="../_static/_sphinx_javascript_frameworks_compat.js"></script>
<script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js"></script>
<script src="../_static/doctools.js"></script>
<script src="../_static/sphinx_highlight.js"></script>
<script src="../_static/js/theme.js"></script>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="Container Tool" href="GenContainer.html" />
<link rel="prev" title="Build Tool" href="BuildTool.html" />
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="../index.html" class="icon icon-home">
Slim Bootloader
<img src="../_static/sbl_logo_white_200x200.png" class="logo" alt="Logo"/>
</a>
<div class="version">
1.0
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../introduction/index.html">Introduction</a></li>
<li class="toctree-l1"><a class="reference internal" href="../getting-started/index.html">Getting Started</a></li>
<li class="toctree-l1"><a class="reference internal" href="../supported-hardware/index.html">Supported Hardware</a></li>
<li class="toctree-l1"><a class="reference internal" href="../developer-guides/index.html">Developers Guide</a></li>
<li class="toctree-l1"><a class="reference internal" href="../security/index.html">Security Features</a></li>
<li class="toctree-l1"><a class="reference internal" href="../how-tos/index.html">How-Tos</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="index.html">Tools</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="BuildTool.html">Build Tool</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">Stitch Tool</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#ifwi-image-vs-spn-bios-image">IFWI Image vs. SBL BIOS Image</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="GenContainer.html">Container Tool</a></li>
<li class="toctree-l2"><a class="reference internal" href="ConfigTools.html">Configuration Tools</a></li>
<li class="toctree-l2"><a class="reference internal" href="GpioTool.html">Gpio Tool</a></li>
<li class="toctree-l2"><a class="reference internal" href="UcodeUtility.html">uCode Utility</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../tutorials/index.html">Tutorials</a></li>
<li class="toctree-l1"><a class="reference internal" href="../specs/index.html">Specifications</a></li>
<li class="toctree-l1"><a class="reference internal" href="../references/references.html">References and Links</a></li>
<li class="toctree-l1"><a class="reference internal" href="../references/terminology.html">Terminology and Acronyms</a></li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="../index.html">Slim Bootloader</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="Page navigation">
<ul class="wy-breadcrumbs">
<li><a href="../index.html" class="icon icon-home" aria-label="Home"></a></li>
<li class="breadcrumb-item"><a href="index.html">Tools</a></li>
<li class="breadcrumb-item active">Stitch Tool</li>
<li class="wy-breadcrumbs-aside">
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<section id="stitch-tool">
<span id="id1"></span><h1>Stitch Tool<a class="headerlink" href="#stitch-tool" title="Permalink to this heading"></a></h1>
<p><code class="docutils literal notranslate"><span class="pre">StitchLoader.py</span></code> is a utility to replace SBL image in a fully flashable IFWI image. It takes all system firmware components from a working IFWI image and replace the BIOS region with SBL components.</p>
<p>This tool is used to create two output files:</p>
<ul class="simple">
<li><p>IFWI image with SBL (-o option).</p></li>
<li><p>SBL BIOS image for capsule update (-b option). See <a class="reference internal" href="../security/firmware-update.html#firmware-update"><span class="std std-ref">Firmware Update</span></a>.</p></li>
</ul>
<p>The command line options to perform stitching:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">usage</span><span class="p">:</span> <span class="n">StitchLoader</span><span class="o">.</span><span class="n">py</span> <span class="p">[</span><span class="o">-</span><span class="n">h</span><span class="p">]</span> <span class="o">-</span><span class="n">i</span> <span class="n">IFWI_IN</span> <span class="p">[</span><span class="o">-</span><span class="n">o</span> <span class="n">IFWI_OUT</span><span class="p">]</span> <span class="p">[</span><span class="o">-</span><span class="n">b</span> <span class="n">BIOS_OUT</span><span class="p">]</span>
<span class="p">[</span><span class="o">-</span><span class="n">s</span> <span class="n">STITCH_IN</span><span class="p">]</span> <span class="p">[</span><span class="o">-</span><span class="n">p</span> <span class="n">PLAT_DATA</span><span class="p">]</span>
<span class="n">optional</span> <span class="n">arguments</span><span class="p">:</span>
<span class="o">-</span><span class="n">h</span><span class="p">,</span> <span class="o">--</span><span class="n">help</span> <span class="n">show</span> <span class="n">this</span> <span class="n">help</span> <span class="n">message</span> <span class="ow">and</span> <span class="n">exit</span>
<span class="o">-</span><span class="n">i</span> <span class="n">IFWI_IN</span><span class="p">,</span> <span class="o">--</span><span class="nb">input</span><span class="o">-</span><span class="n">ifwi</span><span class="o">-</span><span class="n">file</span> <span class="n">IFWI_IN</span>
<span class="n">Specify</span> <span class="nb">input</span> <span class="n">template</span> <span class="n">IFWI</span> <span class="n">image</span> <span class="n">file</span> <span class="n">path</span>
<span class="o">-</span><span class="n">o</span> <span class="n">IFWI_OUT</span><span class="p">,</span> <span class="o">--</span><span class="n">output</span><span class="o">-</span><span class="n">ifwi</span><span class="o">-</span><span class="n">file</span> <span class="n">IFWI_OUT</span>
<span class="n">Specify</span> <span class="n">generated</span> <span class="n">output</span> <span class="n">IFWI</span> <span class="n">image</span> <span class="n">file</span> <span class="n">path</span>
<span class="o">-</span><span class="n">b</span> <span class="n">BIOS_OUT</span><span class="p">,</span> <span class="o">--</span><span class="n">output</span><span class="o">-</span><span class="n">bios</span><span class="o">-</span><span class="n">region</span> <span class="n">BIOS_OUT</span>
<span class="n">Specify</span> <span class="n">generated</span> <span class="n">output</span> <span class="n">BIOS</span> <span class="n">region</span> <span class="n">image</span> <span class="n">file</span> <span class="n">path</span>
<span class="o">-</span><span class="n">s</span> <span class="n">STITCH_IN</span><span class="p">,</span> <span class="o">--</span><span class="n">sitch</span><span class="o">-</span><span class="nb">zip</span><span class="o">-</span><span class="n">file</span> <span class="n">STITCH_IN</span>
<span class="n">Specify</span> <span class="nb">input</span> <span class="n">sitching</span> <span class="nb">zip</span> <span class="n">package</span> <span class="n">file</span> <span class="n">path</span>
<span class="o">-</span><span class="n">p</span> <span class="n">PLAT_DATA</span><span class="p">,</span> <span class="o">--</span><span class="n">platform</span><span class="o">-</span><span class="n">data</span> <span class="n">PLAT_DATA</span>
<span class="n">Specify</span> <span class="n">a</span> <span class="n">platform</span> <span class="n">specific</span> <span class="n">data</span> <span class="p">(</span><span class="n">HEX</span><span class="p">,</span> <span class="n">DWORD</span><span class="p">)</span> <span class="k">for</span>
<span class="n">customization</span>
</pre></div>
</div>
<p><strong>PLAT_DATA</strong> is a DWORD containing platform data to configure debug UART port number. Format is defined below:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">For</span> <span class="n">Apollo</span> <span class="n">Lake</span><span class="p">:</span>
<span class="n">typedef</span> <span class="n">struct</span> <span class="p">{</span>
<span class="n">UINT8</span> <span class="n">PlatformId</span> <span class="p">:</span> <span class="mi">5</span><span class="p">;</span> <span class="o">/*</span> <span class="n">Platform</span> <span class="n">ID</span> <span class="o">*/</span>
<span class="n">UINT8</span> <span class="n">Reserved1</span> <span class="p">:</span> <span class="mi">3</span><span class="p">;</span>
<span class="n">UINT8</span> <span class="n">DebugUart</span> <span class="p">:</span> <span class="mi">2</span><span class="p">;</span> <span class="o">/*</span> <span class="n">UART</span> <span class="n">port</span> <span class="n">index</span> <span class="o">*/</span>
<span class="n">UINT8</span> <span class="n">Reserved2</span> <span class="p">:</span> <span class="mi">6</span><span class="p">;</span>
<span class="n">UINT8</span> <span class="n">Reserved3</span><span class="p">;</span>
<span class="n">UINT8</span> <span class="n">Marker</span><span class="p">;</span> <span class="o">/*</span> <span class="s1">&#39;AA&#39;</span> <span class="o">*/</span>
<span class="p">}</span> <span class="n">STITCH_DATA</span><span class="p">;</span>
<span class="n">For</span> <span class="n">Coffee</span> <span class="n">Lake</span> <span class="n">Refresh</span> <span class="ow">and</span> <span class="n">Whiskey</span> <span class="n">Lake</span><span class="p">:</span>
<span class="n">typedef</span> <span class="n">struct</span> <span class="p">{</span>
<span class="n">UINT8</span> <span class="n">PlatformId</span> <span class="p">:</span> <span class="mi">5</span><span class="p">;</span> <span class="o">/*</span> <span class="n">Platform</span> <span class="n">ID</span> <span class="o">*/</span>
<span class="n">UINT8</span> <span class="n">Reserved1</span> <span class="p">:</span> <span class="mi">3</span><span class="p">;</span>
<span class="n">UINT8</span> <span class="n">DebugUart</span><span class="p">;</span> <span class="o">/*</span> <span class="n">UART</span> <span class="n">port</span> <span class="n">index</span> <span class="o">*/</span>
<span class="n">UINT8</span> <span class="n">Reserved3</span><span class="p">;</span>
<span class="n">UINT8</span> <span class="n">Marker</span><span class="p">;</span> <span class="o">/*</span> <span class="s1">&#39;AA&#39;</span> <span class="o">*/</span>
<span class="p">}</span> <span class="n">STITCH_DATA</span><span class="p">;</span>
</pre></div>
</div>
<section id="ifwi-image-vs-spn-bios-image">
<h2>IFWI Image vs. SBL BIOS Image<a class="headerlink" href="#ifwi-image-vs-spn-bios-image" title="Permalink to this heading"></a></h2>
<p>IFWI image is used as input to program SPI flash on the hardware, while SBL BIOS image is used as input file to create firmware update capsule image.</p>
</section>
</section>
</div>
</div>
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
<a href="BuildTool.html" class="btn btn-neutral float-left" title="Build Tool" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
<a href="GenContainer.html" class="btn btn-neutral float-right" title="Container Tool" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
</div>
<hr/>
<div role="contentinfo">
<p>&#169; Copyright 2018 - 2024, Intel Corporation.
<span class="lastupdated">Last updated on Jun 07, 2024.
</span></p>
</div>
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<script>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>