A UEFI system goes through several distinct phases during the boot process.
- Platform Initialization. This early-boot phase is mostly outside
the scope of
uefi-rs. It is described by the UEFI Platform Initialization Specification, which is separate from the main UEFI Specification.
- Boot Services. This is when UEFI drivers and applications are
loaded. Both the
RuntimeServicestables are accessible. This stage typically culminates in running a bootloader that loads an operating system. The stage ends when
SystemTable::exit_boot_servicesis called, putting the system in Runtime mode.
- Runtime. This stage is typically active when running an operating
system such as Linux or Windows. UEFI functionality is much more
limited in the Runtime mode. The
BootServicestable is no longer accessible, but the
RuntimeServicestable is still available. Once the system is in Runtime mode, it cannot return to the Boot Services stage until after a system reset.