Imaginarium

The Tabula Bootloader

About Tabula

Tabula is a simple UEFI os-loader that supports all architectures that Imaginarium supports.

Handoff State

Tabula guarantees that the kernel is started with a subset of the Memory Layout used by Imaginarium:

  • The SYSPTE space is allocated top-down for reclaimable data
  • The Persistent Loader Data area is used for persistent mappings
  • The recursive page tables are set up
  • The kernel image is loaded as per its linkerscript in the correct range

A bootstrap stack is allocated in reclaimable space for the bootstrap thread.

The MAIR/PAT are configured to match the memory type enum in the protocol definition file.

Aarch64 is configured to use SP_ELX.

ACPI tables are mapped in reclaimable space, with the FACS mapped in persistent space.

The kernel file, and a separate debug file if present, are loaded and memory-mapped in persistent space.

Protocol

Tabula passes a singly linked list of protocol objects as the first argument to the kernel entry point. If present, the first entry of the list is guaranteed to be the bootloader log list. The order of all other entries is not guaranteed.

For more details about the boot protocol, check the api docs