Expand description

This module contains the definitions for stivale2 boot protocol. The stivale2 boot protocol is an modern version of the legacy stivale protocol which provides the kernel with most of the features one may need. The stivale2 protocol also supports 32-bit systems.

Structs

If this tag is present the bootloader is instructed to enable upport for 5-level paging, if available.

This tag tells the bootloader that the kernel has no requirement for a framebuffer to be initialised. Omitting both the any video header tag and the framebuffer header tag means “force CGA text mode” (where available), and the bootloader will refuse to boot the kernel if it fails to fulfill that request.

This tag is used to get the kernel the command line string that was passed to it by the bootloader.

This tag describes a device tree blob for the platform.

This tag is used to get the EDID information as acquired by the firmware.

This tag is used to get a pointer to the EFI system table if available.

This tag is used to get the current UNIX epoch, as per RTC.

This tag is used to get the info about the firmware.

Bitfield representing the firmware and boot flags passed by the bootloader.

If this tag is present the bootloader is instructed to initialise a graphical framebuffer video mode. Omitting this tag will make the bootloader default to a CGA-compatible text mode, if supported.

If the framebuffer tag was requested through the framebuffer tag header and its supported by the stivale bootloader, this tag is returned to the kernel. This tag provides an interface to the framebuffer.

This tag is used to get the kernel with a pointer to a copy the raw executable file of the kernel that the bootloader loaded.

This tag is used to get the slide that the bootloader applied over the kernel’s load address as a positive offset.

Iterator over all the memory regions provided by the stivale bootloader.

Structure representing a module, containing the information of a module that the bootloader loaded alongside the kernel.

Iterator over all the modules that were loaded.

This tag is used to get the modules that the bootloader loaded alongside the kernel, if any.

This tag tells the bootloader to, in case a framebuffer was requested, make that framebuffer’s caching type write-combining using x86’s MTRR model specific registers. This caching type helps speed up framebuffer writes on real hardware.

StivaleMtrrTagDeprecated

This tag exists if MTRR write-combining for the framebuffer was requested and successfully enabled. See the documentation of [crate::v2::header::StivaleMtrrHeaderTag] for more information.

This tag reports that the kernel has been booted via PXE, and reports the server ip that it was booted from.

This tag is used to get the location of the ACPI RSDP structure in memory.

This tag tells the bootloader to add a random slide to the base address of the higher half direct map (HHDM).

This tag is used to get the location of the SMBIOS entry points in memory.

Bitfield representing the SMP header flags passed to the bootloader.

SMP imformation structure.

If this tag is present the bootloader is instructed to set up a terminal for use by the kernel at runtime. See “Terminal struct tag” below. The framebuffer header tag must be specified when passing this header tag, and this tag may inhibit the WC MTRR framebuffer feature.

If the terminal tag was requested through the terminal tag header and its supported by the stivale bootloader, this tag is returned to the kernel. This tag provides an interface to the stivale terminal.

This tag reports that there is a memory mapped UART port and its address.

If this tag is present the bootloader is instructed to unmap the first page of the virtual address space before passing control to the kernel, for architectures that support paging.

This tag describes the high physical memory location.

Enums

The type of a memory map entry. The entries are guaranteed to be sorted by base address, lowest to highest.