

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    

    
    <title>Bootloader &mdash; Apache Mynewt latest documentation</title>
    

    
    
      <link rel="shortcut icon" href="../../../_static/mynewt-logo-only-newt32x32.png"/>
    

    

    <link rel="stylesheet" href="../../../_static/css/theme.css" type="text/css" />

    
      <link rel="stylesheet" href="../../../_static/css/sphinx_theme.css" type="text/css" />
    
      <link rel="stylesheet" href="../../../_static/css/bootstrap-3.0.3.min.css" type="text/css" />
    
      <link rel="stylesheet" href="../../../_static/css/v2.css" type="text/css" />
    
      <link rel="stylesheet" href="../../../_static/css/custom.css" type="text/css" />
    
      <link rel="stylesheet" href="../../../_static/css/restructuredtext.css" type="text/css" />
    

    

    <link rel="stylesheet" href="../../../_static/css/overrides.css" type="text/css" />
          <link rel="index" title="Index"
                href="../../../genindex.html"/>
          <link rel="search" title="Search" href="../../../search.html"/>
      <link rel="top" title="Apache Mynewt latest documentation" href="../../../index.html"/>
          <link rel="up" title="OS User Guide" href="../../os_user_guide.html"/>
          <link rel="next" title="Split Images" href="../split/split.html"/>
          <link rel="prev" title="Using HAL in Your Libraries" href="../hal/hal_in_libraries.html"/> 

    
    <script src="../../../_static/js/modernizr.min.js"></script>

    
    <script>
    (function(i, s, o, g, r, a, m) {
	i["GoogleAnalyticsObject"] = r;
	(i[r] =
		i[r] ||
		function() {
			(i[r].q = i[r].q || []).push(arguments);
		}),
		(i[r].l = 1 * new Date());
	(a = s.createElement(o)), (m = s.getElementsByTagName(o)[0]);
	a.async = 1;
	a.src = g;
	m.parentNode.insertBefore(a, m);
})(window, document, "script", "//www.google-analytics.com/analytics.js", "ga");

ga("create", "UA-72162311-1", "auto");
ga("send", "pageview");
</script>
    

  </head>

  <body class="not-front page-documentation" role="document" >
    <div id="wrapper">
      <div class="container">
    <div id="banner" class="row v2-main-banner">
        <a class="logo-cell" href="/">
            <img class="logo" src="../../../_static/img/logo.png">
        </a>
        <div class="tagline-cell">
            <h4 class="tagline">An OS to build, deploy and securely manage billions of devices</h4>
        </div>
        <div class="news-cell">
            <div class="well">
                <h4>Latest News:</h4> <a href="/download">Apache Mynewt 1.12.0, Apache NimBLE 1.7.0 </a> released April 4, 2024)
            </div>
        </div>
    </div>
</div>
      
<header>
    <nav id="navbar" class="navbar navbar-inverse" role="navigation">
        <div class="container">
            <!-- Collapsed navigation -->
            <div class="navbar-header">
                <!-- Expander button -->
                <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
                    <span class="sr-only">Toggle navigation</span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                </button>

            </div>

            <!-- Expanded navigation -->
            <div class="navbar-collapse collapse">
                <!-- Main navigation -->
                <ul class="nav navbar-nav navbar-right">
                    <li>
                        <a href="/"><i class="fa fa-home" style="font-size: larger;"></i></a>
                    </li>
                    <li class="important">
                        <a href="/quick-start/">Quick Start</a>
                    </li>
                    <li>
                        <a href="/about/">About</a>
                    </li>
                    <li>
                        <a href="/talks/">Talks</a>
                    </li>
                    <li class="active">
                        <a href="/documentation/">Documentation</a>
                    </li>
                    <li>
                        <a href="/download/">Download</a>
                    </li>
                    <li>
                        <a href="/community/">Community</a>
                    </li>
                    <li>
                        <a href="/events/">Events</a>
                    </li>
                </ul>

                <!-- Search, Navigation and Repo links -->
                <ul class="nav navbar-nav navbar-right">
                    
                </ul>
            </div>
        </div>
    </nav>
</header>
      <!-- STARTS MAIN CONTENT -->
      <div id="main-content">
        





<div id="breadcrumb">
  <div class="container">
    <a href="/documentation/">Docs</a> /
    
      <a href="../../os_user_guide.html">OS User Guide</a> /
    
    Bootloader
    
  <div class="sourcelink">
    <a href="https://github.com/apache/mynewt-core/edit/master/docs/os/modules/bootloader/bootloader.rst" class="icon icon-github"
           rel="nofollow"> Edit on GitHub</a>
</div>
  </div>
</div>
        <!-- STARTS CONTAINER -->
        <div class="container">
          <!-- STARTS .content -->
          <div id="content" class="row">
            
            <!-- STARTS .container-sidebar -->
<div class="container-sidebar col-xs-12 col-sm-3">
  <div id="docSidebar" class="sticky-container">
    <div role="search" class="sphinx-search">
  <form id="rtd-search-form" class="wy-form" action="../../../search.html" method="get">
    <input type="text" name="q" placeholder="Search documentation" class="search-documentation" />
    <input type="hidden" name="check_keywords" value="yes" />
    <input type="hidden" name="area" value="default" />
  </form>
</div>
    <!-- Note: only works when deployed -->
<select class="form-control" onchange="if (this.value) window.location.href=this.value">
  <option value="/latest" selected>
    Version: latest
  </option>
  <option value="/v1_12_0" >
    Version: 1.12.0
  </option>
  <option value="/v1_11_0" >
    Version: 1.11.0
  </option>
  <option value="/v1_10_0" >
    Version: 1.10.0
  </option>
  <option value="/v1_9_0" >
    Version: 1.9.0
  </option>
  <option value="/v1_8_0" >
    Version: 1.8.0
  </option>
  <option value="/v1_7_0" >
    Version: 1.7.0
  </option>
  <option value="/v1_6_0" >
    Version: 1.6.0
  </option>
  <option value="/v1_5_0" >
    Version: 1.5.0
  </option>
  <option value="/v1_4_0" >
    Version: 1.4.0
  </option>
  <option value="/v1_3_0/os/introduction" >
    Version: 1.3.0
  </option>
  <option value="/v1_2_0/os/introduction" >
    Version: 1.2.0
  </option>
  <option value="/v1_1_0/os/introduction" >
    Version: 1.1.0
  </option>
  <option value="/v1_0_0/os/introduction" >
    Version: 1.0.0
  </option>
  <option value="/v0_9_0/os/introduction" >
    Version: 0.9.0
  </option>
</select>
    <div class="region region-sidebar">
      <div class="docs-menu">
      
        
        
            <ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../../../index.html">Introduction</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../get_started/index.html">Setup &amp; Get Started</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../concepts.html">Concepts</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../tutorials/tutorials.html">Tutorials</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../external_links.html">Third-party Resources</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="../../os_user_guide.html">OS User Guide</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="../../core_os/mynewt_os.html">Kernel</a></li>
<li class="toctree-l2"><a class="reference internal" href="../system_modules.html">System</a></li>
<li class="toctree-l2"><a class="reference internal" href="../hal/hal.html">Hardware Abstraction</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">Secure Bootloader</a></li>
<li class="toctree-l2"><a class="reference internal" href="../split/split.html">Split Images</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../core_os/porting/port_os.html">Porting Guide</a></li>
<li class="toctree-l2"><a class="reference internal" href="../baselibc.html">Baselibc</a></li>
<li class="toctree-l2"><a class="reference internal" href="../drivers/driver.html">Drivers</a></li>
<li class="toctree-l2"><a class="reference internal" href="../devmgmt/newtmgr.html">Device Management with Newt Manager</a></li>
<li class="toctree-l2"><a class="reference internal" href="../mcumgr/mcumgr.html">Device Management with MCUmgr</a></li>
<li class="toctree-l2"><a class="reference internal" href="../imgmgr/imgmgr.html">Image Manager</a></li>
<li class="toctree-l2"><a class="reference internal" href="../sysinitconfig/sysinitconfig.html">Compile-Time Configuration</a></li>
<li class="toctree-l2"><a class="reference internal" href="../sysinitdown/sysinitdown.html">System Initialization and Shutdown</a></li>
<li class="toctree-l2"><a class="reference internal" href="../extcmd/extcmd.html">Build-Time Hooks</a></li>
<li class="toctree-l2"><a class="reference internal" href="../fs/fs.html">File System</a></li>
<li class="toctree-l2"><a class="reference internal" href="../fcb/fcb.html">Flash Circular Buffer</a></li>
<li class="toctree-l2"><a class="reference internal" href="../sensor_framework/sensor_framework.html">Sensor Framework</a></li>
<li class="toctree-l2"><a class="reference internal" href="../testutil/testutil.html">Test Utilities</a></li>
<li class="toctree-l2"><a class="reference internal" href="../json/json.html">JSON</a></li>
<li class="toctree-l2"><a class="reference internal" href="../mfg/mfg.html">Manufacturing support</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../bsp/index.html">Board support</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../../network/index.html">BLE User Guide</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../newt/index.html">Newt Tool Guide</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../newtmgr/index.html">Newt Manager Guide</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../mynewt_faq/index.html">Mynewt FAQ</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../misc/index.html">Appendix</a></li>
</ul>

        
      
      </div>
    </div>
  </div>
  <!-- ENDS STICKY CONTAINER -->
</div>
<!-- ENDS .container-sidebar -->

            <div class="col-xs-12 col-sm-9">
              

              
              <div class="">
                <div class="rst-content">
                  <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
                   <div itemprop="articleBody">
                    
  <div class="section" id="bootloader">
<h1>Bootloader<a class="headerlink" href="#bootloader" title="Permalink to this headline">¶</a></h1>
<p>The “bootloader” is the code that loads the Mynewt OS image into memory
and conducts some checks before allowing the OS to be run. It manages
images for the embedded system and upgrades of those images using
protocols over various interfaces (e.g. serial, BLE, etc.). Typically,
systems with bootloaders have at least two program images coexisting on
the same microcontroller, and hence must include branch code that
performs a check to see if an attempt to update software is already
underway and manage the progress of the process.</p>
<p>The bootloader in the Apache Mynewt project verifies the cryptographic
signature of the firmware image before running it. It maintains a
detailed status log for each stage of the boot process.</p>
<p>The “secure bootloader” should be placed in protected memory on a given
microcontroller.</p>
<p>The Apache Mynewt bootloader is the foundation of <a class="reference external" href="https://github.com/runtimeco/mcuboot/">MCUboot</a>,
a secure bootloader for 32-bit MCUs that has been ported to other Operating Systems as well.</p>
<div class="contents local topic" id="contents">
<ul class="simple">
<li><p><a class="reference internal" href="#limitations" id="id1">Limitations</a></p></li>
<li><p><a class="reference internal" href="#image-format" id="id2">Image Format</a></p></li>
<li><p><a class="reference internal" href="#flash-map" id="id3">Flash Map</a></p></li>
<li><p><a class="reference internal" href="#image-slots" id="id4">Image Slots</a></p></li>
<li><p><a class="reference internal" href="#boot-states" id="id5">Boot States</a></p></li>
<li><p><a class="reference internal" href="#boot-vector" id="id6">Boot Vector</a></p></li>
<li><p><a class="reference internal" href="#high-level-operation" id="id7">High-level Operation</a></p></li>
<li><p><a class="reference internal" href="#image-swapping" id="id8">Image Swapping</a></p></li>
<li><p><a class="reference internal" href="#swap-status" id="id9">Swap Status</a></p></li>
<li><p><a class="reference internal" href="#reset-recovery" id="id10">Reset Recovery</a></p></li>
<li><p><a class="reference internal" href="#integrity-check" id="id11">Integrity Check</a></p></li>
<li><p><a class="reference internal" href="#image-signing-and-verification" id="id12">Image Signing and Verification</a></p></li>
</ul>
</div>
<p>The Mynewt bootloader comprises two packages:</p>
<ul class="simple">
<li><p>The bootutil library (boot/bootutil)</p></li>
<li><p>The boot application (apps/boot)</p></li>
</ul>
<p>The Mynewt code is thus structured so that the generic bootutil library
performs most of the functions of a boot loader. The final step of
actually jumping to the main image is kept out of the bootutil library.
This last step should instead be implemented in an architecture-specific
project. Boot loader functionality is separated in this manner for the
following two reasons:</p>
<ol class="arabic simple">
<li><p>By keeping architecture-dependent code separate, the bootutil library
can be reused among several boot loaders.</p></li>
<li><p>By excluding the last boot step from the library, the bootloader can
be unit tested since a library can be unit tested but an applicant
can’t.</p></li>
</ol>
<div class="section" id="limitations">
<h2><a class="toc-backref" href="#id1">Limitations</a><a class="headerlink" href="#limitations" title="Permalink to this headline">¶</a></h2>
<p>The boot loader currently only supports images with the following
characteristics:</p>
<ul class="simple">
<li><p>Built to run from flash.</p></li>
<li><p>Build to run from a fixed location (i.e., position-independent).</p></li>
</ul>
</div>
<div class="section" id="image-format">
<h2><a class="toc-backref" href="#id2">Image Format</a><a class="headerlink" href="#image-format" title="Permalink to this headline">¶</a></h2>
<p>The following definitions describe the image header format.</p>
<div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="cp">#define IMAGE_MAGIC                 0x96f3b83c</span>
<span class="cp">#define IMAGE_MAGIC_NONE            0xffffffff</span>

<span class="k">struct</span><span class="w"> </span><span class="nc">image_version</span><span class="w"> </span><span class="p">{</span>
<span class="w">    </span><span class="kt">uint8_t</span><span class="w"> </span><span class="n">iv_major</span><span class="p">;</span>
<span class="w">    </span><span class="kt">uint8_t</span><span class="w"> </span><span class="n">iv_minor</span><span class="p">;</span>
<span class="w">    </span><span class="kt">uint16_t</span><span class="w"> </span><span class="n">iv_revision</span><span class="p">;</span>
<span class="w">    </span><span class="kt">uint32_t</span><span class="w"> </span><span class="n">iv_build_num</span><span class="p">;</span>
<span class="p">};</span>

<span class="cm">/** Image header.  All fields are in little endian byte order. */</span>
<span class="k">struct</span><span class="w"> </span><span class="nc">image_header</span><span class="w"> </span><span class="p">{</span>
<span class="w">    </span><span class="kt">uint32_t</span><span class="w"> </span><span class="n">ih_magic</span><span class="p">;</span>
<span class="w">    </span><span class="kt">uint16_t</span><span class="w"> </span><span class="n">ih_tlv_size</span><span class="p">;</span><span class="w"> </span><span class="cm">/* Trailing TLVs */</span>
<span class="w">    </span><span class="kt">uint8_t</span><span class="w">  </span><span class="n">ih_key_id</span><span class="p">;</span>
<span class="w">    </span><span class="kt">uint8_t</span><span class="w">  </span><span class="n">_pad1</span><span class="p">;</span>
<span class="w">    </span><span class="kt">uint16_t</span><span class="w"> </span><span class="n">ih_hdr_size</span><span class="p">;</span>
<span class="w">    </span><span class="kt">uint16_t</span><span class="w"> </span><span class="n">_pad2</span><span class="p">;</span>
<span class="w">    </span><span class="kt">uint32_t</span><span class="w"> </span><span class="n">ih_img_size</span><span class="p">;</span><span class="w"> </span><span class="cm">/* Does not include header. */</span>
<span class="w">    </span><span class="kt">uint32_t</span><span class="w"> </span><span class="n">ih_flags</span><span class="p">;</span>
<span class="w">    </span><span class="k">struct</span><span class="w"> </span><span class="nc">image_version</span><span class="w"> </span><span class="n">ih_ver</span><span class="p">;</span>
<span class="w">    </span><span class="kt">uint32_t</span><span class="w"> </span><span class="n">_pad3</span><span class="p">;</span>
<span class="p">};</span>
</pre></div>
</div>
<p>The <code class="docutils literal notranslate"><span class="pre">ih_hdr_size</span></code> field indicates the length of the header, and
therefore the offset of the image itself. This field provides for
backwards compatibility in case of changes to the format of the image
header.</p>
<p>The following are the image header flags available.</p>
<div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="cp">#define IMAGE_F_PIC                    0x00000001</span>
<span class="cp">#define IMAGE_F_SHA256                 0x00000002 </span><span class="cm">/* Image contains hash TLV */</span>
<span class="cp">#define IMAGE_F_PKCS15_RSA2048_SHA256  0x00000004 </span><span class="cm">/* PKCS15 w/RSA and SHA */</span>
<span class="cp">#define IMAGE_F_ECDSA224_SHA256        0x00000008 </span><span class="cm">/* ECDSA256 over SHA256 */</span>
<span class="cp">#define IMAGE_F_NON_BOOTABLE           0x00000010</span>
<span class="cp">#define IMAGE_HEADER_SIZE              32</span>
</pre></div>
</div>
<p>Optional type-length-value records (TLVs) containing image metadata are
placed after the end of the image. For example, security data gets added
as a footer at the end of the image.</p>
<div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="cm">/** Image trailer TLV format. All fields in little endian. */</span>
<span class="k">struct</span><span class="w"> </span><span class="nc">image_tlv</span><span class="w"> </span><span class="p">{</span>
<span class="w">    </span><span class="kt">uint8_t</span><span class="w">  </span><span class="n">it_type</span><span class="p">;</span><span class="w">   </span><span class="cm">/* IMAGE_TLV_[...]. */</span>
<span class="w">    </span><span class="kt">uint8_t</span><span class="w">  </span><span class="n">_pad</span><span class="p">;</span>
<span class="w">    </span><span class="kt">uint16_t</span><span class="w"> </span><span class="n">it_len</span><span class="w">     </span><span class="cm">/* Data length (not including TLV header). */</span>
<span class="p">};</span>

<span class="cm">/*</span>
<span class="cm"> * Image trailer TLV types.</span>
<span class="cm"> */</span>
<span class="cp">#define IMAGE_TLV_SHA256            1   </span><span class="cm">/* SHA256 of image hdr and body */</span>
<span class="cp">#define IMAGE_TLV_RSA2048           2   </span><span class="cm">/* RSA2048 of hash output */</span>
<span class="cp">#define IMAGE_TLV_ECDSA224          3   </span><span class="cm">/* ECDSA of hash output */</span>
</pre></div>
</div>
</div>
<div class="section" id="flash-map">
<h2><a class="toc-backref" href="#id3">Flash Map</a><a class="headerlink" href="#flash-map" title="Permalink to this headline">¶</a></h2>
<p>A Mynewt device’s flash is partitioned according to its <em>flash map</em>. At
a high level, the flash map maps numeric IDs to <em>flash areas</em>. A flash
area is a region of disk with the following properties:</p>
<ol class="arabic simple">
<li><p>An area can be fully erased without affecting any other areas.</p></li>
<li><p>A write to one area does not restrict writes to other areas.</p></li>
</ol>
<p>The boot loader uses the following flash areas:</p>
<div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="cp">#define FLASH_AREA_BOOTLOADER                    0</span>
<span class="cp">#define FLASH_AREA_IMAGE_0                       1</span>
<span class="cp">#define FLASH_AREA_IMAGE_1                       2</span>
<span class="cp">#define FLASH_AREA_IMAGE_SCRATCH                 3</span>
</pre></div>
</div>
</div>
<div class="section" id="image-slots">
<h2><a class="toc-backref" href="#id4">Image Slots</a><a class="headerlink" href="#image-slots" title="Permalink to this headline">¶</a></h2>
<p>A portion of the flash memory is partitioned into two image slots: a
primary slot and a secondary slot. The boot loader will only run an
image from the primary slot, so images must be built such that they can
run from that fixed location in flash. If the boot loader needs to run
the image resident in the secondary slot, it must swap the two images in
flash prior to booting.</p>
<p>In addition to the two image slots, the boot loader requires a scratch
area to allow for reliable image swapping.</p>
</div>
<div class="section" id="boot-states">
<h2><a class="toc-backref" href="#id5">Boot States</a><a class="headerlink" href="#boot-states" title="Permalink to this headline">¶</a></h2>
<p>Logically, you can think of a pair of flags associated with each image
slot: pending and confirmed. On startup, the boot loader determines the
state of the device by inspecting each pair of flags. These flags have
the following meanings:</p>
<ul class="simple">
<li><p>pending: image gets tested on next reboot; absent subsequent confirm
command, revert to original image on second reboot.</p></li>
<li><p>confirmed: always use image unless excluded by a test image.</p></li>
</ul>
<p>In English, when the user wants to run the secondary image, they set the
pending flag for the second slot and reboot the device. On startup, the
boot loader will swap the two images in flash, clear the secondary
slot’s pending flag, and run the newly-copied image in slot 0. This is a
temporary state; if the device reboots again, the boot loader swaps the
images back to their original slots and boots into the original image.
If the user doesn’t want to revert to the original state, they can make
the current state permanent by setting the confirmed flag in slot 0.</p>
<p>Switching to an alternate image is a two-step process (set + confirm) to
prevent a device from becoming “bricked” by bad firmware. If the device
crashes immediately upon booting the second image, the boot loader
reverts to the working image, rather than repeatedly rebooting into the
bad image.</p>
<p>The following set of tables illustrate the three possible states that
the device can be in:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>               | slot-0 | slot-1 |
---------------+--------+--------|
       pending |        |        |
     confirmed |   X    |        |
---------------+--------+--------&#39;
Image 0 confirmed;               |
No change on reboot              |
---------------------------------&#39;

               | slot-0 | slot-1 |
---------------+--------+--------|
       pending |        |   X    |
     confirmed |   X    |        |
---------------+--------+--------&#39;
Image 0 confirmed;               |
Test image 1 on next reboot      |
---------------------------------&#39;

               | slot-0 | slot-1 |
---------------+--------+--------|
       pending |        |        |
     confirmed |        |   X    |
---------------+--------+--------&#39;
Testing image 0;                 |
Revert to image 1 on next reboot |
---------------------------------&#39;
</pre></div>
</div>
</div>
<div class="section" id="boot-vector">
<h2><a class="toc-backref" href="#id6">Boot Vector</a><a class="headerlink" href="#boot-vector" title="Permalink to this headline">¶</a></h2>
<p>At startup, the boot loader determines which of the above three boot
states a device is in by inspecting the boot vector. The boot vector
consists of two records (called “image trailers”), one written at the
end of each image slot. An image trailer has the following structure:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span> 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~                       MAGIC (16 octets)                       ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~                                                               ~
~             Swap status (128 * min-write-size * 3)            ~
~                                                               ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|   Copy done   |     0xff padding (up to min-write-sz - 1)     ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|   Image OK    |     0xff padding (up to min-write-sz - 1)     ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</pre></div>
</div>
<p>These records are at the end of each image slot. The offset immediately
following such a record represents the start of the next flash area.</p>
<p>Note: <code class="docutils literal notranslate"><span class="pre">min-write-size</span></code> is a property of the flash hardware. If the
hardware allows individual bytes to be written at arbitrary addresses,
then <code class="docutils literal notranslate"><span class="pre">min-write-size</span></code> is 1. If the hardware only allows writes at even
addresses, then <code class="docutils literal notranslate"><span class="pre">min-write-size</span></code> is 2, and so on.</p>
<p>The fields are defined as follows:</p>
<ol class="arabic">
<li><p>MAGIC: The following 16 bytes, written in host-byte-order:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>const uint32_t boot_img_magic[4] = {
    0xf395c277,
    0x7fefd260,
    0x0f505235,
    0x8079b62c,
};
</pre></div>
</div>
</li>
<li><p>Swap status: A series of single-byte records. Each record corresponds
to a flash sector in an image slot. A swap status byte indicate the
location of the corresponding sector data. During an image swap,
image data is moved one sector at a time. The swap status is
necessary for resuming a swap operation if the device rebooted before
a swap operation completed.</p></li>
<li><p>Copy done: A single byte indicating whether the image in this slot is
complete (<code class="docutils literal notranslate"><span class="pre">0x01=done,</span> <span class="pre">0xff=not</span> <span class="pre">done</span></code>).</p></li>
<li><p>Image OK: A single byte indicating whether the image in this slot has
been confirmed as good by the user
(<code class="docutils literal notranslate"><span class="pre">0x01=confirmed;</span> <span class="pre">0xff=not</span> <span class="pre">confirmed</span></code>).</p></li>
</ol>
<p>The boot vector records are structured around the limitations imposed by
flash hardware. As a consequence, they do not have a very intuitive
design, and it is difficult to get a sense of the state of the device
just by looking at the boot vector. It is better to map all the possible
vector states to the swap types (None, Test, Revert) via a set of
tables. These tables are reproduced below. In these tables, the
“pending” and “confirmed” flags are shown for illustrative purposes;
they are not actually present in the boot vector.</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>State I
                 | slot-0 | slot-1 |
-----------------+--------+--------|
           magic | Unset  | Unset  |
        image-ok | Any    | N/A    |
-----------------+--------+--------&#39;
         pending |        |        |
      confirmed  |   X    |        |
-----------------+--------+--------&#39;
 swap: none                        |
-----------------------------------&#39;


State II
                 | slot-0 | slot-1 |
-----------------+--------+--------|
           magic | Any    | Good   |
        image-ok | Any    | N/A    |
-----------------+--------+--------&#39;
         pending |        |   X    |
      confirmed  |   X    |        |
-----------------+--------+--------&#39;
 swap: test                        |
-----------------------------------&#39;


State III
                 | slot-0 | slot-1 |
-----------------+--------+--------|
           magic | Good   | Unset  |
        image-ok | 0xff   | N/A    |
-----------------+--------+--------&#39;
         pending |        |        |
      confirmed  |        |   X    |
-----------------+--------+--------&#39;
 swap: revert (test image running) |
-----------------------------------&#39;


State IV
                 | slot-0 | slot-1 |
-----------------+--------+--------|
           magic | Good   | Unset  |
        image-ok | 0x01   | N/A    |
-----------------+--------+--------&#39;
         pending |        |        |
      confirmed  |   X    |        |
-----------------+--------+--------&#39;
 swap: none (confirmed test image) |
-----------------------------------&#39;
</pre></div>
</div>
</div>
<div class="section" id="high-level-operation">
<h2><a class="toc-backref" href="#id7">High-level Operation</a><a class="headerlink" href="#high-level-operation" title="Permalink to this headline">¶</a></h2>
<p>With the terms defined, we can now explore the boot loader’s operation.
First, a high-level overview of the boot process is presented. Then, the
following sections describe each step of the process in more detail.</p>
<p>Procedure:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>A. Inspect swap status region; is an interrupted swap is being resumed?
    Yes: Complete the partial swap operation; skip to step C.
    No: Proceed to step B.

B. Inspect boot vector; is a swap requested?
    Yes.
        1. Is the requested image valid (integrity and security check)?
            Yes.
                a. Perform swap operation.
                b. Persist completion of swap procedure to boot vector.
                c. Proceed to step C.
            No.
                a. Erase invalid image.
                b. Persist failure of swap procedure to boot vector.
                c. Proceed to step C.
    No: Proceed to step C.

C. Boot into image in slot 0.
</pre></div>
</div>
</div>
<div class="section" id="image-swapping">
<h2><a class="toc-backref" href="#id8">Image Swapping</a><a class="headerlink" href="#image-swapping" title="Permalink to this headline">¶</a></h2>
<p>The boot loader swaps the contents of the two image slots for two
reasons:</p>
<ul class="simple">
<li><p>User has issued an “image test” operation; the image in slot-1 should
be run once (state II).</p></li>
<li><p>Test image rebooted without being confirmed; the boot loader should
revert to the original image currently in slot-1 (state III).</p></li>
</ul>
<p>If the boot vector indicates that the image in the secondary slot should
be run, the boot loader needs to copy it to the primary slot. The image
currently in the primary slot also needs to be retained in flash so that
it can be used later. Furthermore, both images need to be recoverable if
the boot loader resets in the middle of the swap operation. The two
images are swapped according to the following procedure:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>1. Determine how many flash sectors each image slot consists of.  This
   number must be the same for both slots.
2. Iterate the list of sector indices in descending order (i.e., starting
   with the greatest index); current element = &quot;index&quot;.
    b. Erase scratch area.
    c. Copy slot1[index] to scratch area.
    d. Write updated swap status (i).

    e. Erase slot1[index]
    f. Copy slot0[index] to slot1[index]
        - If these are the last sectors (i.e., first swap being perfomed),
          copy the full sector *except* the image trailer.
        - Else, copy entire sector contents.
    g. Write updated swap status (ii).

    h. Erase slot0[index].
    i. Copy scratch area slot0[index].
    j. Write updated swap status (iii).

3. Persist completion of swap procedure to slot 0 image trailer.
</pre></div>
</div>
<p>The additional caveats in step 2f are necessary so that the slot 1 image
trailer can be written by the user at a later time. With the image
trailer unwritten, the user can test the image in slot 1 (i.e.,
transition to state II).</p>
<p>The particulars of step 3 vary depending on whether an image is being
tested or reverted:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>* test:
    o Write slot0.copy_done = 1
    (should now be in state III)

* revert:
    o Write slot0.magic = BOOT_MAGIC
    o Write slot0.copy_done = 1
    o Write slot0.image_ok = 1
    (should now be in state IV)
</pre></div>
</div>
</div>
<div class="section" id="swap-status">
<h2><a class="toc-backref" href="#id9">Swap Status</a><a class="headerlink" href="#swap-status" title="Permalink to this headline">¶</a></h2>
<p>The swap status region allows the boot loader to recover in case it
restarts in the middle of an image swap operation. The swap status
region consists of a series of single-byte records. These records are
written independently, and therefore must be padded according to the
minimum write size imposed by the flash hardware. In the below figure, a
<code class="docutils literal notranslate"><span class="pre">min-write-size</span></code> of 1 is assumed for simplicity. The structure of the
swap status region is illustrated below. In this figure, a
<code class="docutils literal notranslate"><span class="pre">min-write-size</span></code> of 1 is assumed for simplicity.</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span> 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|sec127,state 0 |sec127,state 1 |sec127,state 2 |sec126,state 0 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|sec126,state 1 |sec126,state 2 |sec125,state 0 |sec125,state 1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|sec125,state 2 |                                               |
+-+-+-+-+-+-+-+-+                                               +
~                                                               ~
~               [Records for indices 124 through 1              ~
~                                                               ~
~               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~               |sec000,state 0 |sec000,state 1 |sec000,state 2 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</pre></div>
</div>
<p>And now, in English…</p>
<p>Each image slot is partitioned into a sequence of flash sectors. If we
were to enumerate the sectors in a single slot, starting at 0, we would
have a list of sector indices. Since there are two image slots, each
sector index would correspond to a pair of sectors. For example, sector
index 0 corresponds to the first sector in slot 0 and the first sector
in slot 1. Furthermore, we impose a limit of 128 indices. If an image
slot consists of more than 128 sectors, the flash layout is not
compatible with this boot loader. Finally, reverse the list of indices
such that the list starts with index 127 and ends with 0. The swap
status region is a representation of this reversed list.</p>
<p>During a swap operation, each sector index transitions through four
separate states:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>0. slot 0: image 0,   slot 1: image 1,   scratch: N/A
1. slot 0: image 0,   slot 1: N/A,       scratch: image 1 (1-&gt;s, erase 1)
2. slot 0: N/A,       slot 1: image 0,   scratch: image 1 (0-&gt;1, erase 0)
3. slot 0: image 1,   slot 1: image 0,   scratch: N/A     (s-&gt;0)
</pre></div>
</div>
<p>Each time a sector index transitions to a new state, the boot loader
writes a record to the swap status region. Logically, the boot loader
only needs one record per sector index to keep track of the current swap
state. However, due to limitations imposed by flash hardware, a record
cannot be overwritten when an index’s state changes. To solve this
problem, the boot loader uses three records per sector index rather than
just one.</p>
<p>Each sector-state pair is represented as a set of three records. The
record values map to the above four states as follows</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>        | rec0 | rec1 | rec2
--------+------+------+------
state 0 | 0xff | 0xff | 0xff
state 1 | 0x01 | 0xff | 0xff
state 2 | 0x01 | 0x02 | 0xff
state 3 | 0x01 | 0x02 | 0x03
</pre></div>
</div>
<p>The swap status region can accommodate 128 sector indices. Hence, the
size of the region, in bytes, is <code class="docutils literal notranslate"><span class="pre">128</span> <span class="pre">*</span> <span class="pre">min-write-size</span> <span class="pre">*</span> <span class="pre">3</span></code>. The
number 128 is chosen somewhat arbitrarily and will likely be made
configurable. The only requirement for the index count is that is is
great enough to account for a maximum-sized image (i.e., at least as
great as the total sector count in an image slot). If a device’s image
slots use less than 128 sectors, the first record that gets written will
be somewhere in the middle of the region. For example, if a slot uses 64
sectors, the first sector index that gets swapped is 63, which
corresponds to the exact halfway point within the region.</p>
</div>
<div class="section" id="reset-recovery">
<h2><a class="toc-backref" href="#id10">Reset Recovery</a><a class="headerlink" href="#reset-recovery" title="Permalink to this headline">¶</a></h2>
<p>If the boot loader resets in the middle of a swap operation, the two
images may be discontiguous in flash. Bootutil recovers from this
condition by using the boot vector to determine how the image parts are
distributed in flash.</p>
<p>The first step is determine where the relevant swap status region is
located. Because this region is embedded within the image slots, its
location in flash changes during a swap operation. The below set of
tables map boot vector contents to swap status location. In these
tables, the “source” field indicates where the swap status region is
located.</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>          | slot-0     | scratch    |
----------+------------+------------|
    magic | Good       | Any        |
copy-done | 0x01       | N/A        |
----------+------------+------------&#39;
source: none                        |
------------------------------------&#39;

          | slot-0     | scratch    |
----------+------------+------------|
    magic | Good       | Any        |
copy-done | 0xff       | N/A        |
----------+------------+------------&#39;
source: slot 0                      |
------------------------------------&#39;

          | slot-0     | scratch    |
----------+------------+------------|
    magic | Any        | Good       |
copy-done | Any        | N/A        |
----------+------------+------------&#39;
source: scratch                     |
------------------------------------&#39;

          | slot-0     | scratch    |
----------+------------+------------|
    magic | Unset      | Any        |
copy-done | 0xff       | N/A        |
----------+------------+------------|
source: varies                      |
------------------------------------+------------------------------+
This represents one of two cases:                                  |
o No swaps ever (no status to read, so no harm in checking).       |
o Mid-revert; status in slot 0.                                    |
-------------------------------------------------------------------&#39;
</pre></div>
</div>
<p>If the swap status region indicates that the images are not contiguous,
bootutil completes the swap operation that was in progress when the
system was reset. In other words, it applies the procedure defined in
the previous section, moving image 1 into slot 0 and image 0 into slot
1. If the boot status file indicates that an image part is present in
the scratch area, this part is copied into the correct location by
starting at step e or step h in the area-swap procedure, depending on
whether the part belongs to image 0 or image 1.</p>
<p>After the swap operation has been completed, the boot loader proceeds as
though it had just been started.</p>
</div>
<div class="section" id="integrity-check">
<h2><a class="toc-backref" href="#id11">Integrity Check</a><a class="headerlink" href="#integrity-check" title="Permalink to this headline">¶</a></h2>
<p>An image is checked for integrity immediately before it gets copied into
the primary slot. If the boot loader doesn’t perform an image swap, then
it doesn’t perform an integrity check.</p>
<p>During the integrity check, the boot loader verifies the following
aspects of an image:</p>
<ul class="simple">
<li><p>32-bit magic number must be correct (0x96f3b83c).</p></li>
<li><p>Image must contain a SHA256 TLV.</p></li>
<li><p>Calculated SHA256 must matche SHA256 TLV contents.</p></li>
<li><p>Image <em>may</em> contain a signature TLV. If it does, its contents must be
verifiable using a key embedded in the boot loader.</p></li>
</ul>
</div>
<div class="section" id="image-signing-and-verification">
<h2><a class="toc-backref" href="#id12">Image Signing and Verification</a><a class="headerlink" href="#image-signing-and-verification" title="Permalink to this headline">¶</a></h2>
<p>As indicated above, the final step of the integrity check is signature
verification. The boot loader can have one or more public keys embedded
in it at build time. During signature verification, the boot loader
verifies that an image was signed with a private key that corresponds to
one of its public keys. The image signature TLV indicates the index of
the key that is has been signed with. The boot loader uses this index to
identify the corresponding public key.</p>
<p>For information on embedding public keys in the boot loader, as well as
producing signed images, see <a class="reference external" href="https://github.com/apache/mynewt-core/blob/master/boot/bootutil/signed_images.md">here</a>.</p>
</div>
</div>


                   </div>
                  </div>
                  
    <div class="rst-footer-buttons row" role="navigation" aria-label="footer navigation">
      
        <a href="../split/split.html" class="btn btn-neutral float-right" title="Split Images" accesskey="n">Next: Split Images <span class="fa fa-arrow-circle-right"></span></a>
      
      
        <a href="../hal/hal_in_libraries.html" class="btn btn-neutral" title="Using HAL in Your Libraries" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous: Using HAL in Your Libraries</a>
      
    </div>

                </div>
              </div>
            </div>
            <!-- ENDS CONTENT SECTION -->
          </div>
          <!-- ENDS .content -->
        </div>
      </div>
      <footer>
  <div class="container">
    <div class="row">
      <div class="col-xs-12">
          
              <p class="copyright">Apache Mynewt is available under Apache License, version 2.0.</p>
          
      </div>
      <div class="col-xs-12">
          <div class="logos">
              <img src="../../../_static/img/asf_logo_wide_small.png" alt="Apache" title="Apache">
              <small class="footnote">
                Apache Mynewt, Mynewt, Apache, the Apache feather logo, and the Apache Mynewt project logo are either
                registered trademarks or trademarks of the Apache Software Foundation in the United States and other countries.
              </small>
              <a href="">
                <img src="../../../_static/img/add_to_slack.png" alt="Slack Icon" title="Join our Slack Community" />
              </a>
          </div>
      </div>
    </div>
  </div>
</footer>
    </div>
    <!-- ENDS #wrapper -->

  

    <script type="text/javascript">
        var DOCUMENTATION_OPTIONS = {
            URL_ROOT:'../../../',
            VERSION:'latest',
            COLLAPSE_INDEX:false,
            FILE_SUFFIX:'.html',
            HAS_SOURCE:  true,
            SOURCELINK_SUFFIX: '.txt',
            LINK_SUFFIX: '.html'
        };
    </script>
      <script type="text/javascript" src="../../../_static/jquery.js"></script>
      <script type="text/javascript" src="../../../_static/underscore.js"></script>
      <script type="text/javascript" src="../../../_static/doctools.js"></script>
      <script type="text/javascript" src="../../../_static/js/bootstrap-3.0.3.min.js"></script>
      <script type="text/javascript" src="../../../_static/js/affix.js"></script>
      <script type="text/javascript" src="../../../_static/js/main.js"></script>

   

  </body>
</html>