Page MenuHomeFreeBSD

arm64/vmm: Move host-side EL2 regs into sys_regs
ClosedPublic

Authored by kajetan.puchalski_arm.com on Apr 21 2026, 11:09 AM.
Tags
None
Referenced Files
F168477608: D56555.id176727.diff
Fri, Aug 28, 2:30 PM
F168476802: D56555.id175978.diff
Fri, Aug 28, 2:24 PM
F168476433: D56555.id179462.diff
Fri, Aug 28, 2:21 PM
F168474580: D56555.id178192.diff
Fri, Aug 28, 2:09 PM
F168474468: D56555.id181364.diff
Fri, Aug 28, 2:08 PM
F168474103: D56555.id176987.diff
Fri, Aug 28, 2:05 PM
F168472911: D56555.id179465.diff
Fri, Aug 28, 1:57 PM
F168472026: D56555.id176319.diff
Fri, Aug 28, 1:52 PM
Subscribers

Details

Summary

Move EL2 host registers that are not visible to the guest into
hypctx->sys_regs. Prefix them with HOST_ to distinguish from EL2
registers which are part of the guest's own state (e.g. in VNCR).

Signed-off-by: Kajetan Puchalski <kajetan.puchalski@arm.com>

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Skipped
Unit
Tests Skipped
Build Status
Buildable 72473
Build 69356: arc lint + arc unit

Event Timeline

Encode VNCR values into enum hypctx_sysreg as 64-bit offsets

Handle non-VHE, store the vncr page as a pointer

Address remaining style review comments

Use Static_assert to ensure correct struct hypctx size

I looks like some lines might be wider than 80 characters

sys/arm64/vmm/vmm_hyp.c
159–160

Style

Put potentially exotic registers in a separate array

Only separate out registers relevant for morello

This revision is now accepted and ready to land.Jul 1 2026, 10:51 AM