Files
slimbootloader.github.io/how-tos/boot-vxworks.html

333 lines
18 KiB
HTML
Raw Permalink 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>Boot VxWorks &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="Boot Zephyr" href="boot-zephyr.html" />
<link rel="prev" title="Boot Ubuntu" href="boot-ubuntu.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 current"><a class="reference internal" href="index.html">How-Tos</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="customize-build.html">Customize Build</a></li>
<li class="toctree-l2"><a class="reference internal" href="change-boot-option.html">Change Boot Options</a></li>
<li class="toctree-l2"><a class="reference internal" href="enable-verified-boot.html">Enable Verified Boot</a></li>
<li class="toctree-l2"><a class="reference internal" href="enable-intel-tcc.html">Intel® TCC enable</a></li>
<li class="toctree-l2"><a class="reference internal" href="enable-intel-tsn.html">TSN</a></li>
<li class="toctree-l2"><a class="reference internal" href="enable-tsn-gbe-sgmii.html">Enable TSN GbE SGMII</a></li>
<li class="toctree-l2"><a class="reference internal" href="enable-pre-os-payload.html">Enable Pre-OS Payload Support</a></li>
<li class="toctree-l2"><a class="reference internal" href="reduce-debug-message.html">Reduce debug messages</a></li>
<li class="toctree-l2"><a class="reference internal" href="add-new-library.html">Add New Library</a></li>
<li class="toctree-l2"><a class="reference internal" href="add-new-payload.html">Create New Payload</a></li>
<li class="toctree-l2"><a class="reference internal" href="add-new-payload.html#helloworld-payload">HelloWorld Payload</a></li>
<li class="toctree-l2"><a class="reference internal" href="integrate-multiple-payloads.html">Integrate Multiple Payloads</a></li>
<li class="toctree-l2"><a class="reference internal" href="create-container-boot-image.html">Create Container Boot Image</a></li>
<li class="toctree-l2"><a class="reference internal" href="create-ias-boot-image.html">Create IAS Boot Image</a></li>
<li class="toctree-l2"><a class="reference internal" href="boot-windows.html">Boot Windows with UEFI Payload</a></li>
<li class="toctree-l2"><a class="reference internal" href="boot-netboot.html">Netboot / PXE boot with UEFI Payload</a></li>
<li class="toctree-l2"><a class="reference internal" href="boot-ubuntu.html">Boot Ubuntu</a></li>
<li class="toctree-l2"><a class="reference internal" href="boot-ubuntu.html#setup-spn-os-container-boot">Setup SBL OS Container Boot</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">Boot VxWorks</a></li>
<li class="toctree-l2"><a class="reference internal" href="boot-zephyr.html">Boot Zephyr</a></li>
<li class="toctree-l2"><a class="reference internal" href="boot-micropython.html">Boot MicroPython</a></li>
<li class="toctree-l2"><a class="reference internal" href="boot-with-linux-payload.html">Boot Linux as a Payload</a></li>
<li class="toctree-l2"><a class="reference internal" href="boot-with-u-boot-payload.html">Boot Linux with U-Boot Payload</a></li>
<li class="toctree-l2"><a class="reference internal" href="boot-pxe-uboot.html">PXE Boot Through U-Boot Payload</a></li>
<li class="toctree-l2"><a class="reference internal" href="configure-memory-down.html">Configure Memory Down</a></li>
<li class="toctree-l2"><a class="reference internal" href="collect-time-logs.html">Capture Boot Time Data</a></li>
<li class="toctree-l2"><a class="reference internal" href="configure_gpio.html">GPIO / CFIO Configuration</a></li>
<li class="toctree-l2"><a class="reference internal" href="configure_gpio.html#run-gengpiodata-tool">Run GenGpioData Tool</a></li>
<li class="toctree-l2"><a class="reference internal" href="add-fastboot.html">Add Fastboot Support</a></li>
<li class="toctree-l2"><a class="reference internal" href="boot-acrn.html">Boot ACRN Hypervisor</a></li>
</ul>
</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">How-Tos</a></li>
<li class="breadcrumb-item active">Boot VxWorks</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="boot-vxworks">
<span id="id1"></span><h1>Boot VxWorks<a class="headerlink" href="#boot-vxworks" title="Permalink to this heading"></a></h1>
<p>This page provides instructions for creating a bootable VxWorks image in container format and setting up the boot option in SBL.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>See <a class="reference internal" href="../tools/GenContainer.html#gen-container-tool"><span class="std std-ref">Container Tool</span></a> for more details on container format.</p>
</div>
<p><strong>Step 1:</strong> Download <a href="https://github.com/slimbootloader/slimbootloader/blob/master/BootloaderCorePkg/Tools/GenContainer.py" target="_blank">GenContainer.py</a> and <a href="https://github.com/slimbootloader/slimbootloader/blob/master/BootloaderCorePkg/Tools/CommonUtility.py" target="_blank">CommonUtility.py</a> to the same working directory to use the container tool.</p>
<p><strong>Step 2:</strong> Get a VxWorks kernel.</p>
<blockquote>
<div><p>Obtain a VxWorks kernel binary. The binary should be in ELF format and multiboot compliant.</p>
</div></blockquote>
<p><strong>Step 3:</strong> Generate <code class="docutils literal notranslate"><span class="pre">container.bin</span></code> file</p>
<p>Run:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">GenContainer</span><span class="o">.</span><span class="n">py</span> <span class="n">create</span> <span class="o">-</span><span class="n">t</span> <span class="n">NORMAL</span> <span class="o">-</span><span class="n">cl</span> <span class="n">VXWK</span><span class="p">:</span><span class="o">&lt;</span><span class="n">VxWorks</span> <span class="n">kernel</span><span class="o">&gt;</span> <span class="o">-</span><span class="n">k</span> <span class="n">SblKeys</span>\<span class="n">OS1_TestKey_Pub_RSA2048_priv</span><span class="o">.</span><span class="n">pem</span> <span class="o">-</span><span class="n">o</span> <span class="n">container</span><span class="o">.</span><span class="n">bin</span>
</pre></div>
</div>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>SblKeys\OS1_TestKey_Pub_RSA2048_priv.pem is given as an example key used for signing SBL OS container binaries.</p>
</div>
<p>Sample output messages:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">Container</span> <span class="s1">&#39;BOOT&#39;</span> <span class="n">was</span> <span class="n">created</span> <span class="n">successfully</span> <span class="n">at</span><span class="p">:</span>
<span class="o">/</span><span class="n">home</span><span class="o">/</span><span class="n">user</span><span class="o">/</span><span class="n">container</span><span class="o">.</span><span class="n">bin</span>
</pre></div>
</div>
<p><strong>Step 4:</strong> Copy <code class="docutils literal notranslate"><span class="pre">container.bin</span></code> onto the intended boot medias boot partition.</p>
<p>Depending on the boot media being used, <code class="docutils literal notranslate"><span class="pre">container.bin</span></code> should be copied to the <strong>root</strong> directory on the boot device.</p>
<p><strong>Step 5:</strong> Configure the boot option entry to load <code class="docutils literal notranslate"><span class="pre">container.bin</span></code> from the boot partition</p>
<p>Make sure the boot option is configured to the location of <code class="docutils literal notranslate"><span class="pre">container.bin</span></code> on the boot device. E.g., if <code class="docutils literal notranslate"><span class="pre">container.bin</span></code> is located on the first FAT32 partition on a USB, the boot option entry should look like the following:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>- !expand { BOOT_OPTION_TMPL : [ 0 , 0 , 0 , 5 , 0 , 0 , 0 , 0 , &#39;container.bin&#39; ] }
</pre></div>
</div>
<p>See <a class="reference internal" href="change-boot-option.html#change-boot-options"><span class="std std-ref">Change Boot Options</span></a> for more details.</p>
<p><strong>Step 6:</strong> Build, stitch, flash and boot</p>
<p>Follow <a class="reference internal" href="../supported-hardware/index.html#supported-hardware"><span class="std std-ref">Supported Hardware</span></a> to build a flashable image for the target platform.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>If the target boot option is not the first entry, enter SBL shell first to switch it to the first one.</p>
</div>
<p>Example boot messages:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>Idx|ImgType|DevType|DevNum|Flags|HwPart|FsType|SwPart|File/Lbaoffset
0| 0| USB | 0 | 0 | 0 | FAT | 0 | container.bin
1| 0| NVME | 0 | 10 | 0 | EXT2 | 1 | /boot/sbl_os
5| 0| SATA | 0 | 10 | 0 | EXT2 | 1 | /boot/sbl_os
======== Try Booting with Boot Option 0 ========
BootMediumPciBase(0x1400)
Getting boot image from USB
Init USB XHCI - Success
Enumerate Bus - Success
Found 2 USB devices on bus
Use the 1st mass storage device
Found 1 mass storage devices
Try to find boot partition
Partition type: MBR (1 logical partitions)
Find partition success
Init File system
Detected FAT on HwDev 0 Part 0
BootSlot = 0x0
File &#39;container.bin&#39; size 8686432
Get file &#39;container.bin&#39; (size:0x848B60) success.
LoadBootImage ImageType-0 Image
ParseBootImage ImageType-0
Registering container BOOT
HASH verification for usage (0x00000800) with Hash Alg (0x1): Success
SignType (0x1) SignSize (0x100) SignHashAlg (0x1)
RSA verification for usage (0x00000800): Success
HASH verification for usage (0x00000000) with Hash Alg (0x1): Success
CONTAINER size = 0x848B60, image type = 0xF3, # of components = 2
COMP:VXWK Success
Unregister done - Success!
One multiboot file in boot image file ....
SetupBootImage ImageType-0
Boot image is Multiboot format...
Mb: LoadAddr=0x408000, LoadEnd=0xB55DA0 , BssEnd=0xBF4F20, Size=0x74DDA0
Dump normal boot image info:
Dump MB info @780D61C0:
- Flags: 1245
- MemLower: 280 (640K)
- MemUpper: 600C00 (6294528K)
- BootDevicePart3: 0
- BootDevicePart2: 0
- BootDevicePart1: 0
- BootDeviceDrive: 0
- Cmdline addr: 77851000
cmd = &#39;console=ttyS0,115200&#39;
- ModsCount: 0
- ModsAddr: 0
- ElfshdrNum: 0
- ElfshdrSize: 0
- ElfshdrAddr: 0
- ElfshdrShndx: 0
- MmapLength: 168
- MmapAddr: 780D6810
0: 0000000000000000--00000000000A0000 1
18: 00000000000A0000--0000000000060000 2
30: 0000000000100000--00000000780E0000 1
48: 00000000781E0000--0000000000500000 2
60: 00000000786E0000--0000000000068000 3
78: 0000000078748000--0000000000008000 4
90: 0000000078750000--0000000000500000 2
A8: 0000000078C50000--00000000003B0000 2
C0: 0000000079000000--0000000002000000 2
D8: 000000007B000000--0000000000800000 2
F0: 000000007B800000--0000000000800000 2
108: 000000007C000000--0000000003C00000 2
120: 00000000FED20000--0000000000060000 2
138: 00000000FF66F000--0000000000991000 2
150: 0000000100000000--0000000180400000 1
- DrivesLength: 0
- DrivesAddr: 0
- ConfigTable: 00000000
- LoaderName: 789E3088
&#39;Slim BootLoader&#39;
- ApmTable: 00000000
- VbeControlInfo: 00000000
- VbeModeInfo: 00000000
- VbeInterfaceSeg: 0
- VbeInterfaceOff: 0
- VbeInterfaceLen: 0
Dump multiboot boot state:
- EntryPoint: 408000
- Eax: 2BADB002
- Ebx: 780D61C0
- Esi: 0
- Edi: 0
Payload normal heap: 0x4000000 (0x8AF000 used)
Payload reserved heap: 0x500000 (0x0 used)
Payload stack: 0x20000 (0xA08 used)
Jumping into ELF or Multiboot image entry point...
...
Starting MB Kernel ...
Target Name: vxTarget
Instantiating /ata1a as rawFs, device = 0x20001
Instantiating /ata1c as rawFs, device = 0x40001
Instantiating /ata1d as rawFs, device = 0x50001
_________ _________
\77777777\ /77777777/
\77777777\ /77777777/
\77777777\ /77777777/
\77777777\ /77777777/
\77777777\ \7777777/
\77777777\ \77777/ VxWorks 7 SMP 64-bit
\77777777\ \777/
\77777777\ \7/ Core Kernel version: 3.1.2.1
\77777777\ - Build date: Jul 7 2020 10:30:42
\77777777\
\7777777/ Copyright Wind River Systems, Inc.
\77777/ - 1984-2020
\777/ /7\
\7/ /777\
- -------
Board: x86 Processor (ACPI_BOOT_OP) SMP/SMT
CPU Count: 8
OS Memory Size: ~8004MB
ED&amp;R Policy Mode: Deployed
Debug Agent: Not started
Stop Mode Agent: Not started
ERROR: ipcom_drv_eth_init: drvname:gei, drvunit: 0
Adding 13696 symbols for standalone.
-&gt;
</pre></div>
</div>
</section>
</div>
</div>
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
<a href="boot-ubuntu.html" class="btn btn-neutral float-left" title="Boot Ubuntu" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
<a href="boot-zephyr.html" class="btn btn-neutral float-right" title="Boot Zephyr" 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 - 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>