Skip to main content

Crate squib_arch

Crate squib_arch 

Source
Expand description

aarch64 architecture support for squib.

squib-arch is the single source of truth for every architecture-specific constant and protocol the boot path depends on. It is consumed by the HVF backend (squib-hv), the FDT builder (squib-fdt), the kernel loader (squib-loader), and the VMM boot orchestrator (squib-vmm). If a constant is in this crate, no other crate is allowed to invent it.

See 13-arch-and-boot.md for the full design.

§Modules

  • layout — fixed memory layout (D22) with const overlap-checks and the page geometry.
  • gicIntId newtype that pins the FDT-cell ↔ raw-INTID mapping.
  • esr — ESR_EL2 decoder; never panics on a malformed input.
  • psci — PSCI 1.1 dispatch table; unknown IDs return NOT_SUPPORTED.
  • regs — the Reg enum (X0..X30, SP, PC, PSTATE) and set_boot_regs helper.
  • sysregs — curated sysreg subset (~100 regs we touch).

Re-exports§

pub use esr::EsrDecoded;
pub use esr::decode as decode_esr;
pub use gic::IntId;
pub use gic::IntIdError;
pub use gic::Trigger;
pub use layout::LayoutOverlap;
pub use layout::MEMORY_LAYOUT;
pub use layout::MemoryLayout;
pub use layout::PageGeometry;
pub use psci::PsciFunction;
pub use psci::PsciOutcome;
pub use psci::PsciReturn;
pub use psci::dispatch as dispatch_psci;
pub use regs::BOOT_PSTATE;
pub use regs::BootRegs;
pub use regs::Reg;
pub use sysregs::SysReg;

Modules§

esr
ESR_EL2 syndrome decoder.
gic
GIC interrupt-ID newtype.
layout
aarch64 memory layout — pinned constants for squib’s microvm.
psci
PSCI 1.1 dispatch table.
regs
aarch64 register set + initial-register helper.
sysregs
Curated sysreg subset (~100 registers we touch).