Lines Matching refs:kernel
4 On the x86 platform, the Linux kernel uses a rather complicated boot
6 well as the desire in the early days to have the kernel itself be a
18 boot loader and the kernel. setup.S made relocatable,
36 Protocol 2.05: (Kernel 2.6.20) Make protected mode kernel relocatable.
66 The traditional memory map for the kernel loader, used for Image or
74 | Stack/heap | For use by the kernel real-mode code.
76 | Kernel setup | The kernel real-mode code.
78 | Kernel boot sector | The kernel legacy boot sector.
80 | Protected-mode kernel | The bulk of the kernel image.
92 When using bzImage, the protected-mode kernel was relocated to
93 0x100000 ("high memory"), and the kernel real-mode block (boot sector,
96 2.01 the 0x90000+ memory range is still used internally by the kernel;
114 For a modern bzImage kernel with boot protocol version >= 2.02, a
118 | Protected-mode kernel |
126 | Stack/heap | For use by the kernel real-mode code.
128 | Kernel setup | The kernel real-mode code.
129 | Kernel boot sector | The kernel legacy boot sector.
146 In the following text, and anywhere in the kernel boot sequence, "a
150 The first step in loading a Linux kernel should be to load the
173 020E/2 2.00+ kernel_version Pointer to kernel version string
184 0228/4 2.02+ cmd_line_ptr 32-bit pointer to the kernel command line
186 0230/4 2.05+ kernel_alignment Physical addr alignment required for kernel
187 0234/1 2.05+ relocatable_kernel Whether kernel is relocatable or not
190 0238/4 2.06+ cmdline_size Maximum size of the kernel command line
193 0248/4 2.08+ payload_offset Offset of kernel payload
194 024C/4 2.08+ payload_length Length of kernel payload
205 field are unusable, which means the size of a bzImage kernel
211 the boot protocol version is "old". Loading an old kernel, the
216 Real-mode kernel must be located at 0x90000.
226 For each field, some are information from the kernel to the bootloader
232 (obligatory). Boot loaders who want to load the kernel at a
263 wide, and therefore cannot be trusted for the size of a kernel if
267 Type: kernel internal
340 human-readable kernel version number string, less 0x200. This can
341 be used to display the kernel version to the user. This value
344 For example, if this value is set to 0x1c00, the kernel version
345 number string can be found at offset 0x1e00 in the kernel file.
409 Bit 1 (kernel internal): KASLR_FLAG
410 - Used internally by the compressed kernel to communicate
411 KASLR status to kernel proper.
418 This requests to the kernel (decompressor and early
419 kernel) to not write early messages that require
439 When using protocol 2.00 or 2.01, if the real mode kernel is not
442 the kernel command line) moved in addition to the real-mode kernel
456 address of the kernel, and can be used by the boot loader to
464 relocatable kernel at a nonstandard address it will have to modify
484 Type: kernel internal
532 Set this field to the linear address of the kernel command line.
533 The kernel command line can be located anywhere between the end of
540 zero, the kernel will assume that your boot loader does not support
560 Alignment unit required by the kernel (if relocatable_kernel is
561 true.) A relocatable kernel that is loaded at an alignment
563 kernel initialization.
565 Starting with protocol version 2.10, this reflects the kernel
575 If this field is nonzero, the protected-mode part of the kernel can
586 alignment required, as opposed to preferred, by the kernel to boot.
593 misaligned kernel. Therefore, a loader should typically try each
604 - If 1, this kernel has the legacy 64-bit entry point at 0x200.
607 - If 1, kernel/boot_params/cmdline/ramdisk can be above 4G.
610 - If 1, the kernel supports the 32-bit EFI handoff entry point
614 - If 1, the kernel supports the 64-bit EFI handoff entry point
618 - If 1, the kernel supports kexec EFI boot with EFI runtime support.
639 This field allows the bootloader to inform the kernel we are in one
713 kernel. A relocating bootloader should attempt to load at this
716 A non-relocatable kernel will unconditionally move itself and to run
724 at the kernel runtime start address that the kernel needs before it
726 as the total amount of memory the kernel needs to boot, but it can
728 address for the kernel.
730 The kernel runtime start address is determined by the following algorithm:
741 This field is the offset from the beginning of the kernel image to
743 handover protocol to boot the kernel should jump to this offset.
759 The kernel command line has become an important way for the boot
760 loader to communicate with the kernel. Some of its options are also
764 The kernel command line is a null-terminated string. The maximum
767 long will be automatically truncated by the kernel.
770 kernel command line is given by the header field cmd_line_ptr (see
774 If the protocol version is *not* 2.02 or higher, the kernel
781 of the kernel command line (relative to the start of the
782 real-mode kernel).
784 The kernel command line *must* be within the memory region
792 memory allocated for the kernel command line. This needs to be done
802 - When loading a zImage kernel ((loadflags & 0x01) == 0).
803 - When loading a 2.01 or earlier boot protocol kernel.
817 The kernel command line should not be located below the real-mode
828 0x0000-0x7fff Real mode kernel
834 0x0000-0x7fff Real mode kernel
873 /* Very old kernel */
880 /* A very old kernel MUST have its real-mode code
884 /* Copy the real-mode kernel */
899 The 32-bit (non-real-mode) kernel starts at offset (setup_sects+1)*512
900 in the kernel file (again, if setup_sects == 0 the real value is 4.)
904 The kernel is a bzImage kernel if the protocol >= 2.00 and the 0x01
920 They should normally not be deleted from the kernel command line even
921 though not all of them are actually meaningful to the kernel. Boot
924 Documentation/kernel-parameters.txt to make sure they will not
925 conflict with actual kernel options now or in the future.
932 vid_mode field, as it is used by the kernel before the command
939 memory to the kernel. This affects the possible placement of
941 memory. Note that this is an option to *both* the kernel and
957 The kernel was booted without explicit user intervention.
967 The kernel is started by jumping to the kernel entry point, which is
969 kernel. This means that if you loaded your real-mode kernel code at
970 0x90000, the kernel entry point is 9020:0000.
973 kernel code (0x9000 if the code is loaded at 0x90000), sp should be
976 the kernel, it is recommended that the boot loader sets fs = gs = ds =
981 /* Note: in the case of the "old" kernel protocol, base_ptr must
988 /* Set up the real-mode kernel stack */
993 jmp_far(seg+0x20, 0); /* Run the kernel */
996 switch off the floppy motor before running the kernel, since the
997 kernel boot leaves interrupts off and thus the motor will not be
998 switched off, especially if the loaded kernel has the floppy driver as
1007 following hooks that, if set, are invoked by the kernel at the
1021 transition to protected mode, but before the kernel is
1034 LinuxBIOS, etc, and kexec, the 16-bit real mode setup code in kernel
1038 In 32-bit boot protocol, the first step in loading a Linux kernel
1042 from offset 0x01f1 of kernel image on should be loaded into struct
1054 32/64-bit kernel in the same way as that of 16-bit boot protocol.
1056 In 32-bit boot protocol, the kernel is started by jumping to the
1057 32-bit kernel entry point, which is the start address of loaded
1058 32/64-bit kernel.
1070 For machine with 64bit cpus and 64bit kernel, we could use 64bit bootloader
1073 In 64-bit boot protocol, the first step in loading a Linux kernel
1077 Then, the setup header at offset 0x01f1 of kernel image on should be
1089 64-bit kernel in the same way as that of 16-bit boot protocol, but
1090 kernel could be loaded above 4G.
1092 In 64-bit boot protocol, the kernel is started by jumping to the
1093 64-bit kernel entry point, which is the start address of loaded
1094 64-bit kernel plus 0x200.
1098 kernel and zero page and command line buffer get ident mapping;
1109 boot stub. The boot loader is required to load the kernel/initrd(s)