summaryrefslogtreecommitdiff
path: root/common/dtb_grow.c
diff options
context:
space:
mode:
authorBradley Morgan <brads@mainlining.org>2026-10-04 05:59:26 +0000
committerBradley Morgan <brads@mainlining.org>2026-10-04 05:59:26 +0000
commit4256361421a2d857e8a1d5cdef45bdbcfef477ad (patch)
tree7aee83d4194098f49f2ad84f5080e1b6155d7638 /common/dtb_grow.c
parent0567dd7e947d10a237405e4a9d965c57dd6b473e (diff)
tashaboot: el3 secure monitor
The resident firmware layer real machines ship, the thing the gic group lesson pointed at. The reset path configures EL3, SP_EL3 on its own region, the monitor vectors in VBAR_EL3, then hands the next stage non-secure EL2 in the manual's boot state and never comes back except through exceptions. Secondaries that enter at EL3 get the monitor before they park, a firmware call on any PE must land in a handler, and SCR_EL3.NS is set to match the primary so a released PE does not come up secure while the kernel runs non-secure. The SMC conduit traps into the lower EL AArch64 sync slot and dispatches through the same PSCI C code the hvc path uses, SMCCC register convention kept whole across the trap. On the emulator here the machine's own firmware shadow stands in front of the conduit, its PSCI answers before the monitor sees the call, and its secure memory map traps the kernel's flash probe after init starts. The monitor mechanics, the entry, the vectors, the stack, the eret, the SMC layout, are live on every secure boot, the call dispatch itself is the hardware receipt. receipt: secure boot through the monitor to four cpus and the init exec, plain boot unchanged to the busybox shell.
Diffstat (limited to 'common/dtb_grow.c')
0 files changed, 0 insertions, 0 deletions