l4re-base-25.08.0

This commit is contained in:
2025-09-12 15:55:45 +02:00
commit d959eaab98
37938 changed files with 9382688 additions and 0 deletions

View File

@@ -0,0 +1,234 @@
<!-- HTML header for doxygen 1.9.1-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.15.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>L4Re Operating System Framework: Bootstrap, the L4 kernel bootstrapper</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
<link href="l4re-awesome.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="L4Re_rgb_logo_quer_hg_h55.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">L4Re Operating System Framework
</div>
<div id="projectbrief">Interface and Usage Documentation</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.15.0 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search/",'.html');
</script>
<script type="text/javascript">
$(function() { codefold.init(); });
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search',true);
$(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(function(){initNavTree('bootstrap.html','',''); });
</script>
<div id="container">
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div><div class="header">
<div class="headertitle"><div class="title">Bootstrap, the L4 kernel bootstrapper </div></div>
</div><!--header-->
<div class="contents">
<div class="textblock"><h2>Bootstrap Command Line Options </h2>
<p><span class="tt">bootstrap</span> and the kernel can be configured through command line switches. <span class="tt">bootstrap</span> is responsible for parsing both command lines: <span class="tt">bootstrap</span> options are the ones directly given to bootstrap, whereas kernel options are those directly given to the kernel, respectively.</p>
<p>When using Multiboot boot, the first module directly after bootstrap is considered the kernel: An example using GRUB2 might look like this: </p><pre class="fragment">multiboot /path/to/bootstrap bootstrap -bs-boolean-opt -bs-opt-with-argument=foo
module /path/to/fiasco fiasco -kernel-opt-with-argument=bar -kernel-boolean-opt
</pre><dl class="section note"><dt>Note</dt><dd>The exact way to provide the command line to <span class="tt">bootstrap</span> is platform-dependent. On platforms supporting booting via Multiboot Specification the command line can be specified in the boot configuration (currently x86/amd64 only, e.g. using GRUB) whereas other platforms need the command line to be compiled into the <span class="tt">bootstrap</span> binary.</dd>
<dd>
Platforms utilising flattened device trees usually also allow specifying a command line through the DT. This mechanism is <b>not</b> currently supported in <span class="tt">bootstrap</span>!</dd></dl>
<p>&#160;</p>
<dl class="section note"><dt>Note</dt><dd><span class="tt">bootstrap</span> will ignore options it does not understand. For most cases, this also holds true if an option's arguments cannot be understood.</dd></dl>
<h3><span class="tt">bootstrap</span> options</h3>
<p>Command line options directly understood by <span class="tt">bootstrap</span> itself are as follows (passed via <span class="tt">bootstrap</span> command line):</p>
<ul>
<li><p class="startli"><span class="tt">-comirq=&lt;irqno&gt;</span> (x86/amd64 only)</p>
<p class="startli">If serial logging is enabled (default on), <span class="tt">&lt;irqno&gt;</span> defines which IRQ to use for serial port communication. This option is ignored if <span class="tt">-noserial</span> is also specified (see below).</p>
</li>
<li><p class="startli"><span class="tt">-comport=&lt;portspec&gt;</span> (x86/amd64 only)</p>
<p class="startli">If serial logging is enabled (default on), <span class="tt">&lt;portspec&gt;</span> defines which serial port to use, being one of:</p><ul>
<li><p class="startli"><span class="tt">&lt;number&gt;</span></p>
<p class="startli">Use legacy port <span class="tt">&lt;number&gt;</span>, e.g. use <span class="tt">-comport=1</span> for the port commonly known as <em>COM1</em>, or</p>
</li>
<li><p class="startli"><span class="tt">pci:&lt;card&gt;:&lt;port&gt;</span></p>
<p class="startli">Use serial port number <span class="tt">&lt;port&gt;</span> at PCI card number <span class="tt">&lt;card&gt;</span>, e.g. use <span class="tt">-comport=pci:0:1</span> for the second port on the first PCI card.</p>
</li>
<li><p class="startli"><span class="tt">pci:probe</span></p>
<p class="startli">Use this to have <span class="tt">bootstrap</span> autodiscover all PCI serial lines. On each discovered line a message will be displayed, telling the correct <span class="tt">&lt;portspec&gt;</span> to be given to use the respective line.</p>
</li>
</ul>
<dl class="section note"><dt>Note</dt><dd><span class="tt">bootstrap</span> does not support specifying the serial port's baudrate and always uses 115200 bps.</dd></dl>
</li>
<li><p class="startli"><span class="tt">-noserial</span></p>
<p class="startli">Disable serial logging.</p>
</li>
<li><p class="startli"><span class="tt">-wait</span></p>
<p class="startli">Wait for key press at early startup.</p>
<dl class="section note"><dt>Note</dt><dd>This is not to be confused with the kernel's <span class="tt">-wait</span> option, see below.</dd></dl>
</li>
<li><p class="startli"><span class="tt">-maxmem=&lt;mbytes&gt;</span></p>
<p class="startli">Limit the available memory to at most <span class="tt">&lt;mbytes&gt;</span> MiB.</p>
</li>
<li><p class="startli"><span class="tt">-mem=&lt;size&gt;@&lt;offset&gt;</span></p>
<p class="startli">Add a region of memory of <span class="tt">&lt;size&gt;</span> at <span class="tt">&lt;offset&gt;</span> to the system's memory map. Both <span class="tt">&lt;size&gt;</span> and <span class="tt">&lt;offset&gt;</span> may be suffixed by either <span class="tt">G</span>, <span class="tt">M</span>, or <span class="tt">K</span>/<span class="tt">k</span> to denote GiB, MiB, or KiB, respectively.</p>
<p class="startli">This option may be specified multiple times. If the option is not given, a platform-specific method for determining the memory layout will be used, if available.</p>
</li>
<li><p class="startli"><span class="tt">-presetmem=&lt;intval&gt;</span></p>
<p class="startli">Initialise memory regions with <span class="tt">&lt;intval&gt;</span> before starting the kernel.</p>
</li>
<li><p class="startli"><span class="tt">-modaddr=&lt;paddr&gt;</span></p>
<p class="startli">Relocate modules to the physical address <span class="tt">&lt;paddr&gt;</span>. Use this when utilising a version of GRUB that lacks support for the <span class="tt">modaddr</span> command.</p>
</li>
</ul>
<h3>Kernel Options</h3>
<p>Command line options for the kernel (passed on kernel command line, i.e. to first module) <span class="tt">bootstrap</span> understands are as follows.</p>
<dl class="section note"><dt>Note</dt><dd>Availability of individual options might depend on used platform and/or actual kernel configuration.</dd></dl>
<ul>
<li><p class="startli"><span class="tt">-wait</span></p>
<p class="startli">Enter debugger directly after startup, prior to executing any task.</p>
</li>
<li><p class="startli"><span class="tt">-serial_esc</span></p>
<p class="startli">Enable entering the debugger over serial line by pressing <span class="tt">Esc</span>.</p>
</li>
<li><p class="startli"><span class="tt">-noserial</span></p>
<p class="startli">Disable serial logging.</p>
<dl class="section note"><dt>Note</dt><dd>If this is given as kernel command line argument, it does not affect <span class="tt">bootstrap</span> but only the kernel.</dd></dl>
</li>
<li><p class="startli"><span class="tt">-noscreen</span></p>
<p class="startli">Disable VGA console.</p>
</li>
<li><p class="startli"><span class="tt">-esc</span></p>
<p class="startli">Enable entering the debugger by pressing <span class="tt">Esc</span> on attached keyboard.</p>
</li>
<li><p class="startli"><span class="tt">-nojdb</span></p>
<p class="startli">Disable the kernel debugger.</p>
</li>
<li><p class="startli"><span class="tt">-nohlt</span></p>
<p class="startli">Enable quirk for broken HLT instruction.</p>
</li>
<li><p class="startli"><span class="tt">-apic</span></p>
<p class="startli">Use Advanced Programmable Interrupt Controller (APIC) if available and known to be well-behaving.</p>
</li>
<li><p class="startli"><span class="tt">-loadcnt</span></p>
<p class="startli">Use load counter for performance counting.</p>
</li>
<li><p class="startli"><span class="tt">-watchdog</span></p>
<p class="startli">Enable watchdog timer.</p>
</li>
<li><p class="startli"><span class="tt">-irq0</span></p>
<p class="startli">Allow IRQ 0 to be used by userland. This enables some sanity checks to ensure IRQ 0 is not used by the kernel, e.g. for profiling or scheduling purposes. This only has an effect on x86.</p>
</li>
<li><p class="startli"><span class="tt">-nosfn</span></p>
<p class="startli">Disable SFN (special fully nested) mode of interrupt controller. This only has an effect on x86 with PIC8259 interrupt controller.</p>
</li>
<li><p class="startli"><span class="tt">-jdb_never_stop</span></p>
<p class="startli">Prevent system from stopping to enter JDB. This only has an effect on x86.</p>
</li>
<li><p class="startli"><span class="tt">-kmemsize=&lt;KB&gt;</span></p>
<p class="startli">Reserve <span class="tt">&lt;KB&gt;</span> KiB of memory for the kernel.</p>
</li>
<li><p class="startli"><span class="tt">-tbuf_entries=&lt;number&gt;</span></p>
<p class="startli">Specify the <span class="tt">&lt;number&gt;</span> of trace buffer entries.</p>
</li>
<li><p class="startli"><span class="tt">-out_buf=&lt;length&gt;</span></p>
<p class="startli">Specify length of console buffer to be <span class="tt">&lt;length&gt;</span> bytes.</p>
</li>
<li><p class="startli"><span class="tt">-jdb_cmd=&lt;ctrlseq&gt;</span></p>
<p class="startli">Execute JDB command sequence <span class="tt">&lt;ctrlseq&gt;</span> right after start-up. If <span class="tt">-wait</span> is also given, <span class="tt">&lt;ctrlseq&gt;</span> is executed right before entering JDB.</p>
</li>
</ul>
<h3>Module options</h3>
<p>Bootstrap supports module attributes for sigma0 and the roottask. They need to be specified in modules.list, e.g.: </p><pre class="fragment">sigma0[attr:nodes=4-7] ...
</pre><p>Attributes are not supported when using multi-boot on platforms that support it. The following attributes are supported:</p>
<ul>
<li><p class="startli"><span class="tt">nodes</span></p>
<p class="startli">This is a colon separated list of AMP node ranges. A range can also be a single number. Examples:</p><ul>
<li><span class="tt">nodes=1</span> &ndash; Only node 1</li>
<li><span class="tt">nodes=1-3</span> &ndash; Nodes 1 to 3 (inclusive)</li>
<li><span class="tt">nodes=0:2-3</span> &ndash; Nodes 0, 2 and 3</li>
</ul>
<p class="startli">If not present, the sigma0/roottask module is applicable to all AMP nodes.</p>
</li>
<li><p class="startli"><span class="tt">reloc</span></p>
<p class="startli">Normally the sigma0 or roottask images are loaded at the preferred load address if the RAM is available at the desired location. If this is not possible, they will be reloacted to some free RAM region. Setting the "reloc" module attribute to a non-empty string will always request the dynamic relocation.</p>
<p class="startli">This attribute can be used on no-MMU systems to maximize the size of contiguous free RAM regions. </p>
</li>
</ul>
</div></div><!-- contents -->
</div><!-- PageDoc -->
</div><!-- doc-content -->
</div><!-- container -->
<!-- HTML footer for doxygen 1.9.1-->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated on <span class="timestamp"></span> for L4Re Operating System Framework by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.15.0 </li>
</ul>
</div>
</body>
</html>