Lines Matching full:boot
4 The Linux/x86 Boot Protocol
7 On the x86 platform, the Linux kernel uses a rather complicated boot
14 Currently, the following versions of the Linux/x86 boot protocol exist.
22 boot loader and the kernel. setup.S made relocatable,
44 the boot command line.
46 Protocol 2.07 (Kernel 2.6.24) Added paravirtualised boot protocol.
59 pref_address fields. Added extended boot loader IDs.
74 ("x86/boot: Add ACPI RSDP address to setup_header")
86 features to the boot loader. Due to very limited space available in
89 communicate things to the boot loader is the kernel_info.
107 | Kernel boot sector | The kernel legacy boot sector.
111 | Boot loader | <- Boot sector entry point 0000:7C00
121 0x100000 ("high memory"), and the kernel real-mode block (boot sector,
128 low memory touched by the boot loader -- as low as possible, since
131 memory. The boot loader should use the "INT 12h" BIOS call to verify
135 low, there is usually nothing the boot loader can do but to report an
136 error to the user. The boot loader should therefore be designed to
139 0x90000 segment, the boot loader should make sure not to use memory
142 For a modern bzImage kernel with boot protocol version >= 2.02, a
157 | Kernel boot sector | The kernel legacy boot sector.
159 | Boot loader | <- Boot sector entry point 0000:7C00
168 ... where the address X is as low as the design of the boot loader permits.
174 In the following text, and anywhere in the kernel boot sequence, "a
179 real-mode code (boot sector and setup code) and then examine the
181 32K, although the boot loader may choose to load only the first two
198 0206/2 2.00+ version Boot protocol version supported
199 0208/4 2.00+ realmode_swtch Boot loader hook (see below)
202 0210/1 2.00+ type_of_loader Boot loader identifier
203 0211/1 2.00+ loadflags Boot protocol option flags
205 0214/4 2.00+ code32_start Boot loader hook (see below)
206 0218/4 2.00+ ramdisk_image initrd load address (set by boot loader)
207 021C/4 2.00+ ramdisk_size initrd size (set by boot loader)
210 0226/1 2.02+(3) ext_loader_ver Extended boot loader version
211 0227/1 2.02+(3) ext_loader_type Extended boot loader ID
217 0236/2 2.12+ xloadflags Boot protocol option flags
235 (2) For boot protocol prior to 2.04, the upper two bytes of the syssize
239 (3) Ignored, but safe to set, for boot protocols 2.02-2.09.
242 the boot protocol version is "old". Loading an old kernel, the
263 All general purpose boot loaders should write the fields marked
264 (obligatory). Boot loaders who want to load the kernel at a
266 boot loaders can ignore those fields.
278 0, the real value is 4. The real-mode code consists of the boot
368 Contains the boot protocol version, in (major << 8) + minor format,
379 Boot loader hook (see ADVANCED BOOT LOADER HOOKS below.)
419 If your boot loader has an assigned id (see table below), enter
420 0xTV here, where T is an identifier for the boot loader and V is
423 For boot loader IDs above T = 0xD, write T = 0xE to this field and
434 Assigned boot loader ids (hexadecimal):
446 8 U-Boot
520 The unit is bytes starting with the beginning of the boot sector.
533 address of the kernel, and can be used by the boot loader to
538 1. as a boot loader hook (see Advanced Boot Loader Hooks below.)
594 The use of this field is boot loader specific. If not written, it
628 Fill in this field even if your boot loader does not support a
631 zero, the kernel will assume that your boot loader does not support
642 ramdisk/ramfs contents. For boot protocols 2.02 or earlier, this
674 After loading, the boot loader must set the code32_start field to
675 point to the loaded code, or to a boot loader hook.
685 alignment required, as opposed to preferred, by the kernel to boot.
686 If a boot loader makes use of this field, it should update the
724 - If 1, the kernel supports kexec EFI boot with EFI runtime support.
807 struct setup_data. This is used to define a more extensible boot
831 intermediate stages of the boot process have a way to identify which
847 and stack space can be limited in boot contexts.
893 as the total amount of memory the kernel needs to boot, but it can
894 be used by a relocating boot loader to help select a safe load
908 a boot loader as::
920 the EFI handover protocol entry point. Boot loaders using the EFI
921 handover protocol to boot the kernel should jump to this offset.
960 without revising the boot protocol entirely, breaking backwards compatibility.
1044 From boot protocol version 2.08 onwards the CRC-32 is calculated over
1054 The kernel command line has become an important way for the boot
1056 relevant to the boot loader itself, see "special command line options"
1064 If the boot protocol version is 2.02 or later, the address of the
1099 - When loading a 2.01 or earlier boot protocol kernel.
1102 For the 2.00 and 2.01 boot protocols, the real-mode code
1109 For boot protocol 2.02 or higher, the command line does not have to be
1118 Sample Boot Configuration
1140 Such a boot loader should enter the following fields in the header::
1218 If the command line provided by the boot loader is entered by the
1221 though not all of them are actually meaningful to the kernel. Boot
1222 loader authors who need additional command line options for the boot
1246 obviously bootloader-dependent, and some boot loaders
1249 In addition, some boot loaders add the following options to the
1253 The boot image which was loaded. Again, the meaning of <file>
1259 If these options are added by the boot loader, it is highly
1277 the kernel, it is recommended that the boot loader sets fs = gs = ds =
1297 If your boot sector accesses a floppy drive, it is recommended to
1299 kernel boot leaves interrupts off and thus the motor will not be
1304 Advanced Boot Loader Hooks
1307 If the boot loader runs in a particularly hostile environment (such as
1309 standard memory location requirements. Such a boot loader may use the
1330 that was in this field before your boot loader overwrote it
1334 32-bit Boot Protocol
1339 based on legacy BIOS can not be used, so a 32-bit boot protocol needs
1342 In 32-bit boot protocol, the first step in loading a Linux kernel
1343 should be to setup the boot parameters (struct boot_params,
1353 boot_params as that of 16-bit boot protocol, the boot loader should
1357 After setting up the struct boot_params, the boot loader can load the
1358 32/64-bit kernel in the same way as that of 16-bit boot protocol.
1360 In 32-bit boot protocol, the kernel is started by jumping to the
1372 64-bit Boot Protocol
1376 and we need a 64-bit boot protocol.
1378 In 64-bit boot protocol, the first step in loading a Linux kernel
1379 should be to setup the boot parameters (struct boot_params,
1389 boot_params as that of 16-bit boot protocol, the boot loader should
1393 After setting up the struct boot_params, the boot loader can load
1394 64-bit kernel in the same way as that of 16-bit boot protocol, but
1397 In 64-bit boot protocol, the kernel is started by jumping to the
1414 This protocol allows boot loaders to defer initialisation to the EFI
1415 boot stub. The boot loader is required to load the kernel/initrd(s)
1416 from the boot media and jump to the EFI handover protocol entry point
1420 The boot loader MUST respect the kernel's PE/COFF metadata when it comes
1430 'handle' is the EFI image handle passed to the boot loader by the EFI
1433 UEFI specification. 'bp' is the boot loader-allocated boot params.
1435 The boot loader *must* fill out the following fields in bp::
1452 [0] https://github.com/u-boot/u-boot/commit/ec80b4735a593961fe701cc3a5d717d4739b0fd0