You've already forked slimbootloader.github.io
mirror of
https://github.com/Dasharo/slimbootloader.github.io.git
synced 2026-03-06 15:26:36 -08:00
202 lines
12 KiB
HTML
202 lines
12 KiB
HTML
<!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>Payloads — 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="OsLoader" href="osloader.html" />
|
||
<link rel="prev" title="Configuration" href="configuration.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 current"><a class="reference internal" href="index.html">Developer’s Guide</a><ul class="current">
|
||
<li class="toctree-l2"><a class="reference internal" href="source-tree.html">Source Tree Structure</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="build-system.html">Build System</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="stitching-ifwi.html">Stitch IFWI Image</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="fsp.html">Firmware Support Package</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="boot-flow.html">Boot Flow</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="boot-flow.html#ldrglobal-loader-global-data">LdrGlobal - Loader Global Data</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="boot-flow.html#end-to-end-call-graph">End-to-End Call Graph</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="boot-flow.html#platform-initialization">Platform Initialization</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="flashmap.html">Flash Map</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="memory-map.html">Memory Map</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="configuration.html">Configuration</a></li>
|
||
<li class="toctree-l2 current"><a class="current reference internal" href="#">Payloads</a><ul>
|
||
<li class="toctree-l3"><a class="reference internal" href="#id1">Payloads</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="#payload-types">Payload Types</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="#multiple-payload-support">Multiple Payload Support</a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l2"><a class="reference internal" href="osloader.html">OsLoader</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="bootimage.html">Boot Image</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="boot-options.html">Boot Options</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="flash-boot.html">Boot from Flash</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="versioning.html">Versioning</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="boot-performance.html">Boot Performance</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="shell.html">Shell Interface</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="debugging-with-cca.html">Source Level Debugging with Intel(R) SVT CCA</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="debugging-with-udk.html">Source Level Debugging with Intel(R) UDK Debugger</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="logging.html">Logging</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="contributions.html">Contribution Guidelines</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="ingredients-update.html">Ingredients upgrade</a></li>
|
||
</ul>
|
||
</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"><a class="reference internal" href="../tools/index.html">Tools</a></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">Developer’s Guide</a></li>
|
||
<li class="breadcrumb-item active">Payloads</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="payloads">
|
||
<span id="payload"></span><h1>Payloads<a class="headerlink" href="#payloads" title="Permalink to this heading"></a></h1>
|
||
<p>SBL payload stage is to boot a target OS. It is a modular design to extend bootloader to perform a purpose-driven functionality that is generally independent of platform hardware.</p>
|
||
<section id="id1">
|
||
<h2>Payloads<a class="headerlink" href="#id1" title="Permalink to this heading"></a></h2>
|
||
<dl>
|
||
<dt>Os Loader (Built-in)</dt><dd><p>A versatile linux loader implementation that boots Linux, ELF, UEFI-PI FV, or PE executables. It also supports launching OSes compliant with the MultiBoot specification.</p>
|
||
<p>When built as an FV formatted payload OS Loader permits the inclusion and launching of a pre-OS payload binary that will hand-off control to an OS after the pre-OS payload finishes execution.</p>
|
||
<p>See <a class="reference internal" href="../how-tos/enable-pre-os-payload.html#enable-pre-os-payload"><span class="std std-ref">Enable Pre-OS Payload Support</span></a> for more details.</p>
|
||
</dd>
|
||
<dt>Firmware Update Payload (Built-in)</dt><dd><p>A special purpose payload to update full boot flash in a secure and fault-tolerant flow.</p>
|
||
</dd>
|
||
<dt>UEFI Payload (External)</dt><dd><p>A EDK II based payload implementation to boot Windows. It provides secure boot, SMM, and UEFI runtime services.</p>
|
||
</dd>
|
||
<dt>Custom Payload</dt><dd><p>SBL supports launching customized payloads that provides purpose-driven functionality.</p>
|
||
</dd>
|
||
</dl>
|
||
</section>
|
||
<section id="payload-types">
|
||
<h2>Payload Types<a class="headerlink" href="#payload-types" title="Permalink to this heading"></a></h2>
|
||
<p>A payload can be <strong>Tightly Coupled</strong> or <strong>Loosely Coupled</strong> with Slim Bootloader depending on if the payload has <strong>code/data dependency</strong> or <strong>data-only dependency</strong> on the bootloader. </p>
|
||
<ul>
|
||
<li><p><strong>Tightly Coupled</strong></p>
|
||
<ul class="simple">
|
||
<li><p>Implementation depends on SBL source code to build. It requires platform specific libraries.</p></li>
|
||
<li><p>Can leverage code interfaces and libraries provided by the bootloader.</p></li>
|
||
<li><p>SBL provides a set of helper libraries like file system support, serial port debug message support, etc. to simplify the development of the payload.</p></li>
|
||
</ul>
|
||
<p>Examples: OsLoader, FirmwareUpdate</p>
|
||
</li>
|
||
<li><p><strong>Loosely Coupled</strong></p>
|
||
<ul class="simple">
|
||
<li><p>A loosely coupled payload on the other hand, depends on platform initialization information passed by the bootloader to continue their initialization and boot process.</p></li>
|
||
<li><p>The platform abstraction is provided through Hand-off-Blocks (HOB) data structures.</p></li>
|
||
<li><p>These payloads are platform agnostic.</p></li>
|
||
</ul>
|
||
<p>Examples: UEFI Payload</p>
|
||
</li>
|
||
</ul>
|
||
</section>
|
||
<section id="multiple-payload-support">
|
||
<h2>Multiple Payload Support<a class="headerlink" href="#multiple-payload-support" title="Permalink to this heading"></a></h2>
|
||
<p>In some use cases, more than one payload is necessary in SBL. However, it is difficult to fit all payloads into limited flash device. For example, UEFI payload image can be over 1MB in size. This feature is designed to support multiple payloads, allowing built-in payload (OsLoader) reside in redundant region, while the <strong>external</strong> payloads in non-redundant region.</p>
|
||
<p>See <a class="reference internal" href="../how-tos/integrate-multiple-payloads.html#integrate-multiple-payloads"><span class="std std-ref">Integrate Multiple Payloads</span></a> for more details.</p>
|
||
<p>See <a class="reference internal" href="../how-tos/add-new-payload.html#create-new-payload"><span class="std std-ref">Create New Payload</span></a> for more details.</p>
|
||
</section>
|
||
</section>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
|
||
<a href="configuration.html" class="btn btn-neutral float-left" title="Configuration" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
|
||
<a href="osloader.html" class="btn btn-neutral float-right" title="OsLoader" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
|
||
</div>
|
||
|
||
<hr/>
|
||
|
||
<div role="contentinfo">
|
||
<p>© Copyright 2018 - 2025, Intel Corporation.
|
||
<span class="lastupdated">Last updated on Jun 27, 2025.
|
||
</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> |