Page MenuHomeFreeBSD

arm64/vmm: Make remaining registers use hypctx_*_sys_reg
Needs ReviewPublic

Authored by kajetan.puchalski_arm.com on Apr 21 2026, 11:09 AM.
Tags
None
Referenced Files
Unknown Object (File)
Fri, Jun 5, 2:48 PM
Unknown Object (File)
Fri, Jun 5, 7:29 AM
Unknown Object (File)
Fri, Jun 5, 3:24 AM
Unknown Object (File)
Thu, Jun 4, 11:04 AM
Unknown Object (File)
Mon, Jun 1, 3:51 AM
Unknown Object (File)
Thu, May 28, 10:46 PM
Unknown Object (File)
Thu, May 28, 10:46 PM
Unknown Object (File)
Thu, May 28, 4:52 PM
Subscribers

Details

Reviewers
andrew
manu
Group Reviewers
arm64
Summary

Move vgic, timer and trapframe registers into sys_regs to handle them
in the same way as all the other registers.

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 73282
Build 70165: 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

sys/arm64/vmm/hyp.h
113–115 ↗(On Diff #177461)

We should create and use hyp_genassym.c if we need access to the enum from assembly.

sys/arm64/vmm/arm64.h
65–71

We might need to think about these to not break CHERI

87

Extra whitespace change