1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
//! 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](../../../specs/13-arch-and-boot.md) for the full design.
//!
//! # Modules
//!
//! - [`layout`] — fixed memory layout (D22) with const overlap-checks and the page geometry.
//! - [`gic`] — [`IntId`] 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).
// aarch64 sysreg / PSCI / GIC / FDT identifiers are upper-case by convention; surrounding
// every one with backticks bloats the docs without adding clarity.
pub use ;
pub use ;
pub use ;
pub use ;
pub use ;
pub use SysReg;