UEFI Glossary

AXL abstracts most UEFI details behind its public API, but some concepts surface in documentation and error messages. This glossary defines terms you may encounter.

AP

Application Processor — any CPU core other than the BSP. APs can be dispatched via the MP Services protocol to run compute-heavy tasks (CRC, decompression, hashing) in parallel. APs cannot call Boot Services, use axl_printf, or access UEFI protocols. Use axl_task_pool_submit() to offload work to APs.

Boot Services

Firmware services available before the OS takes control. Accessed via gBS (the Boot Services table pointer). Includes memory allocation, protocol management, event/timer services, and driver loading. AXL wraps most Boot Services behind its API – direct access is needed only for custom protocol calls.

BSP

Bootstrap Processor — the CPU core that executes firmware initialization and runs the main application. All UEFI Boot Services calls must happen on the BSP. AXL functions that interact with firmware (I/O, networking, protocol calls) run on the BSP.

ConOut

Console Output — the UEFI text output protocol (EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL). axl_printf converts UTF-8 to UCS-2 and writes to ConOut. Available on systems with a display or serial console.

Device Path

A UEFI data structure describing the physical or logical path to a device (e.g., PciRoot(0x0)/Pci(0x1F,0x2)/Sata(0x0)). Used internally by the firmware for boot ordering and device identification.

DXE Driver

Driver Execution Environment driver — a UEFI binary that provides services to other binaries. Built with axl-cc --type driver. Entry point is DriverEntry instead of main. Call axl_driver_init to set up the AXL runtime.

EFI_HANDLE

An opaque pointer identifying a UEFI object (device, driver, application). Handles have protocols installed on them. gImageHandle is the handle of the running application or driver.

EFI_STATUS

The standard UEFI return type — a machine-word integer where 0 = EFI_SUCCESS. AXL functions return int (0 = success, -1 = failure) instead; EFI_STATUS values appear only in direct protocol calls.

GOP

Graphics Output Protocol — the UEFI framebuffer interface. Provides resolution queries, rectangle fill, pixel buffer blit, and screen capture. AXL wraps it via axl_gfx_* functions. Not available on headless or serial-only systems.

OVMF

Open Virtual Machine Firmware — an open-source UEFI firmware implementation for virtual machines (QEMU). Used for testing AXL applications without real hardware.

Protocol

The UEFI spec’s term for what most languages would call an interface bound to a specific instance: a C struct of function pointers (sometimes with inline state), identified by a 128-bit GUID, installed on a handle. Closest analogs: a COM interface (IID-keyed vtable on an object) or a Java / Swift interface implementation (with the implementer-class role played by a handle and the type-identity role played by a GUID). The name is unfortunate — it has nothing to do with wire protocols or network specs — but it is what the spec uses everywhere, so AXL adopts it.

Consumers discover protocols via LocateProtocol / LocateHandleBuffer (and AXL’s name-keyed axl_protocol_find wraps both); drivers publish them via InstallProtocolInterface (or axl_protocol_register). Examples: TCP4, UDP4, GOP (graphics), SimpleNetwork, Shell, SMBIOS.

Runtime Services

Firmware services that remain available after the OS boots. Accessed via gRT. Includes NVRAM variable access (GetVariable/SetVariable), system time, and reset. AXL wraps these via axl_nvstore_* and axl_reset.

Service Binding

A protocol pattern for creating child instances. Used by networking protocols (TCP4, UDP4, DNS4) where each connection needs its own protocol instance. CreateChild allocates a new instance; DestroyChild frees it.

SNP

Simple Network Protocol — the lowest-level NIC interface in UEFI. Provides raw Ethernet frame send/receive. Higher-level protocols (IP4, TCP4, UDP4, DHCP4) are built on top of SNP. axl_net_auto_init loads NIC drivers and brings up the SNP → IP4 → TCP4/UDP4 stack.

System Table

The root UEFI data structure (EFI_SYSTEM_TABLE), passed to every UEFI entry point. Contains pointers to Boot Services, Runtime Services, console I/O, and firmware vendor info. Accessed via gST in AXL.