Lines Matching full:boot

1 		     THE LINUX/x86 BOOT PROTOCOL
4 On the x86 platform, the Linux kernel uses a rather complicated boot
11 Currently, the following versions of the Linux/x86 boot protocol exist.
18 boot loader and the kernel. setup.S made relocatable,
40 the boot command line.
42 Protocol 2.07: (Kernel 2.6.24) Added paravirtualised boot protocol.
55 pref_address fields. Added extended boot loader IDs.
71 | Kernel boot sector | The kernel legacy boot sector.
75 | Boot loader | <- Boot sector entry point 0000:7C00
86 0x100000 ("high memory"), and the kernel real-mode block (boot sector,
93 low memory touched by the boot loader -- as low as possible, since
96 memory. The boot loader should use the "INT 12h" BIOS call to verify
100 low, there is usually nothing the boot loader can do but to report an
101 error to the user. The boot loader should therefore be designed to
104 0x90000 segment, the boot loader should make sure not to use memory
107 For a modern bzImage kernel with boot protocol version >= 2.02, a
122 | Kernel boot sector | The kernel legacy boot sector.
124 | Boot loader | <- Boot sector entry point 0000:7C00
133 ... where the address X is as low as the design of the boot loader
139 In the following text, and anywhere in the kernel boot sequence, "a
144 real-mode code (boot sector and setup code) and then examine the
146 32K, although the boot loader may choose to load only the first two
163 0206/2 2.00+ version Boot protocol version supported
164 0208/4 2.00+ realmode_swtch Boot loader hook (see below)
167 0210/1 2.00+ type_of_loader Boot loader identifier
168 0211/1 2.00+ loadflags Boot protocol option flags
170 0214/4 2.00+ code32_start Boot loader hook (see below)
171 0218/4 2.00+ ramdisk_image initrd load address (set by boot loader)
172 021C/4 2.00+ ramdisk_size initrd size (set by boot loader)
175 0226/1 2.02+(3 ext_loader_ver Extended boot loader version
176 0227/1 2.02+(3 ext_loader_type Extended boot loader ID
196 (2) For boot protocol prior to 2.04, the upper two bytes of the syssize
200 (3) Ignored, but safe to set, for boot protocols 2.02-2.09.
203 the boot protocol version is "old". Loading an old kernel, the
223 All general purpose boot loaders should write the fields marked
224 (obligatory). Boot loaders who want to load the kernel at a
226 boot loaders can ignore those fields.
236 0, the real value is 4. The real-mode code consists of the boot
308 Contains the boot protocol version, in (major << 8)+minor format,
317 Boot loader hook (see ADVANCED BOOT LOADER HOOKS below.)
351 If your boot loader has an assigned id (see table below), enter
352 0xTV here, where T is an identifier for the boot loader and V is
355 For boot loader IDs above T = 0xD, write T = 0xE to this field and
366 Assigned boot loader ids:
374 8 U-Boot
426 The unit is bytes starting with the beginning of the boot sector.
437 address of the kernel, and can be used by the boot loader to
442 1. as a boot loader hook (see ADVANCED BOOT LOADER HOOKS below.)
488 The use of this field is boot loader specific. If not written, it
518 Fill in this field even if your boot loader does not support a
521 zero, the kernel will assume that your boot loader does not support
530 ramdisk/ramfs contents. For boot protocols 2.02 or earlier, this
558 After loading, the boot loader must set the code32_start field to
559 point to the loaded code, or to a boot loader hook.
567 alignment required, as opposed to preferred, by the kernel to boot.
568 If a boot loader makes use of this field, it should update the
642 struct setup_data. This is used to define a more extensible boot
682 as the total amount of memory the kernel needs to boot, but it can
683 be used by a relocating boot loader to help select a safe load
696 From boot protocol version 2.08 onwards the CRC-32 is calculated over
705 The kernel command line has become an important way for the boot
707 relevant to the boot loader itself, see "special command line options"
715 If the boot protocol version is 2.02 or later, the address of the
749 - When loading a 2.01 or earlier boot protocol kernel.
751 -> For the 2.00 and 2.01 boot protocols, the real-mode code
758 For boot protocol 2.02 or higher, the command line does not have to be
767 **** SAMPLE BOOT CONFIGURATION
784 Such a boot loader should enter the following fields in the header:
864 If the command line provided by the boot loader is entered by the
867 though not all of them are actually meaningful to the kernel. Boot
868 loader authors who need additional command line options for the boot
892 obviously bootloader-dependent, and some boot loaders
895 In addition, some boot loaders add the following options to the
899 The boot image which was loaded. Again, the meaning of <file>
905 If these options are added by the boot loader, it is highly
922 the kernel, it is recommended that the boot loader sets fs = gs = ds =
941 If your boot sector accesses a floppy drive, it is recommended to
943 kernel boot leaves interrupts off and thus the motor will not be
948 **** ADVANCED BOOT LOADER HOOKS
950 If the boot loader runs in a particularly hostile environment (such as
952 standard memory location requirements. Such a boot loader may use the
973 that was in this field before your boot loader overwrote it
977 **** 32-bit BOOT PROTOCOL
981 based on legacy BIOS can not be used, so a 32-bit boot protocol needs
984 In 32-bit boot protocol, the first step in loading a Linux kernel
985 should be to setup the boot parameters (struct boot_params,
995 boot_params as that of 16-bit boot protocol, the boot loader should
999 After setupping the struct boot_params, the boot loader can load the
1000 32/64-bit kernel in the same way as that of 16-bit boot protocol.
1002 In 32-bit boot protocol, the kernel is started by jumping to the