summaryrefslogtreecommitdiff
path: root/static/freebsd/man8/uefi.8 3.html
blob: 05f980b1298e2fc1e94c53911dedebfa9dca806d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
<table class="head">
  <tr>
    <td class="head-ltitle">UEFI(8)</td>
    <td class="head-vol">System Manager's Manual</td>
    <td class="head-rtitle">UEFI(8)</td>
  </tr>
</table>
<div class="manual-text">
<section class="Sh">
<h1 class="Sh" id="NAME"><a class="permalink" href="#NAME">NAME</a></h1>
<p class="Pp"><code class="Nm">UEFI</code> &#x2014; <span class="Nd">Unified
    Extensible Firmware Interface bootstrapping procedures</span></p>
</section>
<section class="Sh">
<h1 class="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h1>
<p class="Pp">The <code class="Nm">UEFI</code> Unified Extensible Firmware
    Interface provides boot- and run-time services to operating systems.
    <code class="Nm">UEFI</code> is a replacement for the legacy BIOS on the
    i386 and amd64 CPU architectures, and is also used on arm, arm64 and riscv
    architectures.</p>
<p class="Pp">The UEFI specification is the successor to the Extensible Firmware
    Interface (EFI) specification. The terms UEFI and EFI are often used
    interchangeably.</p>
<p class="Pp">The <code class="Nm">UEFI</code> boot process loads system
    bootstrap code located in an EFI System Partition (ESP). The ESP is a GPT or
    MBR partition with a specific identifier that contains an
    <a class="Xr">msdosfs(4)</a> FAT file system with a specified file
    hierarchy.</p>
<table class="Bl-column Bd-indent">
  <tr id="Partition">
    <td><a class="permalink" href="#Partition"><b class="Sy">Partition
      Scheme</b></a></td>
    <td><a class="permalink" href="#ESP"><b class="Sy" id="ESP">ESP
      Identifier</b></a></td>
  </tr>
  <tr>
    <td>GPT</td>
    <td>C12A7328-F81F-11D2-BA4B-00A0C93EC93B</td>
  </tr>
  <tr>
    <td>MBR</td>
    <td>0xEF</td>
  </tr>
</table>
<p class="Pp">The <code class="Nm">UEFI</code> boot process proceeds as
  follows:</p>
<ol class="Bl-enum Bd-indent Bl-compact">
  <li><code class="Nm">UEFI</code> firmware runs at power up and searches for an
      OS loader in the EFI system partition. The path to the loader may be set
      by an EFI environment variable managed by <a class="Xr">efibootmgr(8)</a>.
      If not set, an architecture-specific default is used.
    <table class="Bl-column Bd-indent">
      <tr id="Architecture">
        <td><a class="permalink" href="#Architecture"><b class="Sy">Architecture</b></a></td>
        <td><a class="permalink" href="#Default"><b class="Sy" id="Default">Default
          Path</b></a></td>
      </tr>
      <tr>
        <td>amd64</td>
        <td><span class="Pa">/EFI/BOOT/BOOTX64.EFI</span></td>
      </tr>
      <tr>
        <td>arm</td>
        <td><span class="Pa">/EFI/BOOT/BOOTARM.EFI</span></td>
      </tr>
      <tr>
        <td>arm64</td>
        <td><span class="Pa">/EFI/BOOT/BOOTAA64.EFI</span></td>
      </tr>
      <tr>
        <td>i386</td>
        <td><span class="Pa">/EFI/BOOT/BOOTIA32.EFI</span></td>
      </tr>
      <tr>
        <td>riscv</td>
        <td><span class="Pa">/EFI/BOOT/BOOTRISCV64.EFI</span></td>
      </tr>
    </table>
    <p class="Pp">The default <code class="Nm">UEFI</code> boot configuration
        for <span class="Ux">FreeBSD</span> installs
        <span class="Pa">loader.efi</span> in the default path.</p>
  </li>
  <li><span class="Pa">loader.efi</span> reads boot configuration from
      <span class="Pa">/boot.config</span> or
      <span class="Pa">/boot/config</span>.</li>
  <li><span class="Pa">loader.efi</span> loads and boots the kernel, as
      described in <a class="Xr">loader.efi(8)</a>.</li>
</ol>
<p class="Pp">The <a class="Xr">vt(4)</a> system console is automatically
    selected when booting via <code class="Nm">UEFI</code>.</p>
</section>
<section class="Sh">
<h1 class="Sh" id="FILES"><a class="permalink" href="#FILES">FILES</a></h1>
<p class="Pp"><code class="Nm">UEFI</code> bootstrap</p>
<dl class="Bl-tag Bl-compact">
  <dt><span class="Pa">/boot/loader.efi</span></dt>
  <dd>Final stage bootstrap</dd>
  <dt><span class="Pa">/boot/kernel/kernel</span></dt>
  <dd>Default kernel</dd>
  <dt><span class="Pa">/boot/kernel.old/kernel</span></dt>
  <dd>Typical non-default kernel (optional)</dd>
</dl>
</section>
<section class="Sh">
<h1 class="Sh" id="SEE_ALSO"><a class="permalink" href="#SEE_ALSO">SEE
  ALSO</a></h1>
<p class="Pp"><a class="Xr">msdosfs(4)</a>, <a class="Xr">vt(4)</a>,
    <a class="Xr">boot.config(5)</a>, <a class="Xr">boot(8)</a>,
    <a class="Xr">efibootmgr(8)</a>, <a class="Xr">efidp(8)</a>,
    <a class="Xr">efivar(8)</a>, <a class="Xr">gpart(8)</a>,
    <a class="Xr">loader.efi(8)</a>, <a class="Xr">uefisign(8)</a></p>
</section>
<section class="Sh">
<h1 class="Sh" id="HISTORY"><a class="permalink" href="#HISTORY">HISTORY</a></h1>
<p class="Pp">EFI boot support for the ia64 architecture first appeared in
    <span class="Ux">FreeBSD 5.0</span>. <code class="Nm">UEFI</code> boot
    support for amd64 first appeared in <span class="Ux">FreeBSD 10.1</span>;
    for arm64 in <span class="Ux">FreeBSD 11.0</span>; for armv7 in
    <span class="Ux">FreeBSD 12.0</span>; and for riscv in
    <span class="Ux">FreeBSD 13.0</span>.</p>
</section>
<section class="Sh">
<h1 class="Sh" id="BUGS"><a class="permalink" href="#BUGS">BUGS</a></h1>
<p class="Pp">There is no support for 32-bit i386 booting via UEFI.</p>
</section>
</div>
<table class="foot">
  <tr>
    <td class="foot-date">August 31, 2023</td>
    <td class="foot-os">FreeBSD 15.0</td>
  </tr>
</table>