1.\" Copyright (c) 2014 The FreeBSD Foundation 2.\" All rights reserved. 3.\" 4.\" Redistribution and use in source and binary forms, with or without 5.\" modification, are permitted provided that the following conditions 6.\" are met: 7.\" 1. Redistributions of source code must retain the above copyright 8.\" notice, this list of conditions and the following disclaimer. 9.\" 2. Redistributions in binary form must reproduce the above copyright 10.\" notice, this list of conditions and the following disclaimer in the 11.\" documentation and/or other materials provided with the distribution. 12.\" 13.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND 14.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 15.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 16.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE 17.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 18.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 19.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 20.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 21.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 22.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 23.\" SUCH DAMAGE. 24.\" 25.\" $FreeBSD$ 26.\" 27.Dd February 11, 2016 28.Dt UEFI 8 29.Os 30.Sh NAME 31.Nm UEFI 32.Nd Unified Extensible Firmware Interface bootstrapping procedures 33.Sh DESCRIPTION 34The 35.Nm 36Unified Extensible Firmware Interface provides boot- and run-time services 37to operating systems. 38.Nm 39is a replacement for the legacy BIOS on the i386 and amd64 CPU architectures, 40and is also used on arm64 and ia64. 41.Pp 42The 43.Nm 44boot process loads system bootstrap code located in an EFI System Partition 45(ESP). 46The ESP is a GPT or MBR partition with a specific identifier that contains an 47.Xr msdosfs 5 48FAT file system with a specified file hierarchy. 49.Bl -column -offset indent ".Sy Partition Scheme" ".Sy ESP Identifier" 50.It Sy "Partition Scheme" Ta Sy "ESP Identifier" 51.It GPT Ta C12A7328-F81F-11D2-BA4B-00A0C93EC93B 52.It MBR Ta 0xEF 53.El 54.Pp 55The 56.Nm 57boot process proceeds as follows: 58.Bl -enum -offset indent -compact 59.It 60.Nm 61firmware runs at power up and searches for an OS loader in the EFI system 62partition. 63The path to the loader may be set by an EFI environment variable. 64If not set, the default is 65.Pa /EFI/BOOT/BOOTX64.EFI . 66The default 67.Nm 68boot configuration for 69.Fx 70installs 71.Pa boot1.efi 72as 73.Pa /EFI/BOOT/BOOTX64.EFI . 74.It 75.Pa boot1.efi 76reads boot configuration from 77.Pa /boot.config 78or 79.Pa /boot/config . 80Unlike other first-stage boot loaders, 81.Pa boot1.efi 82passes the configuration to the next stage boot loader and does not 83itself act on the contents of the file. 84.It 85.Pa boot1.efi 86searches partitions of type 87.Li freebsd-ufs 88and 89.Li freebsd-zfs 90for 91.Pa loader.efi . 92The search begins with partitions on the device from which 93.Pa boot1.efi 94was loaded, and continues with other available partitions. 95If both 96.Li freebsd-ufs 97and 98.Li freebsd-zfs 99partitions exist on the same device the 100.Li freebsd-zfs 101partition is preferred. 102.Pa boot1.efi 103then loads and executes 104.Pa loader.efi . 105.It 106.Pa loader.efi 107loads and boots the kernel, as described in 108.Xr loader 8 . 109.El 110.Pp 111The 112.Xr vt 4 113system console is automatically selected when booting via 114.Nm . 115.Sh FILES 116.Bl -tag -width /boot/loader -compact 117.It Pa /boot/boot1.efi 118First stage 119.Nm 120bootstrap 121.It Pa /boot/boot1.efifat 122.Xr msdosfs 5 123FAT file system image containing 124.Pa boot1.efi 125for use by 126.Xr bsdinstall 8 127and the 128.Ar bootcode 129argument to 130.Xr gpart 8 . 131.It Pa /boot/loader.efi 132Final stage bootstrap 133.It Pa /boot/kernel/kernel 134default kernel 135.It Pa /boot/kernel.old/kernel 136typical non-default kernel (optional) 137.El 138.Sh SEE ALSO 139.Xr vt 4 , 140.Xr boot.config 5 , 141.Xr msdosfs 5 , 142.Xr boot 8 , 143.Xr gpart 8 , 144.Xr uefisign 8 145.Sh HISTORY 146.Nm 147boot support first appeared in 148.Fx 10.1 . 149.Sh AUTHORS 150.An -nosplit 151.Nm 152boot support was developed by 153.An Benno Rice Aq Mt benno@FreeBSD.org , 154.An \&Ed Maste Aq Mt emaste@FreeBSD.org , 155and 156.An Nathan Whitehorn Aq Mt nwhitehorn@FreeBSD.org . 157The 158.Fx 159Foundation sponsored portions of the work. 160.Sh CAVEATS 161EFI environment variables are not supported by 162.Xr loader 8 163or the kernel. 164