Repository navigation
[DO NOT REVIEW] microvm: enable governed ARM64 cold boot on WHP - #5045
Gautam Ahuja (ahuja-gautam) wants to merge 3 commits into
Conversation
|
This PR modifies files containing For more on why we check whole files, instead of just diffs, check out the Rustonomicon |
|
@microsoft-github-policy-service agree company="Microsoft" |
|
Clarifying the unsafe-code notice: it scans whole modified Rust files. Relative to the rebased PR's base ( AI-authored clarification, posted at the author's request. |
Add the profile-owned ARM64 microVM boot, fixed device and platform-control integration using the existing loaders, device tree and shared device abstractions. Add governed ARM CPU/time admission with native WHP programming and readback, retaining the legacy fingerprint API and x86 behavior. Keep the qualified PA36 contract and cold-boot-only boundary; ARM snapshot capture and restore remain unavailable. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Extend the existing --x-time-abi-verify lifecycle to ARM64 using one shared TimeAbiReport and the existing native admission checks. Report the selected profile, effective register checks and actual WHP address, feature-bank and counter-frequency readbacks without executing the guest. Keep x86 output compatible, reject unsupported ARM fault-injection hooks, and fail closed on missing evidence. This does not establish UTC synchronization or clock authority. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Keep the shared CPU/time report and sample-field conversion within the architecture-selected adapter. Restore native type and clock-status import ownership so target-branch clock changes merge without conflict, retaining one shared report and unchanged field conversion and runtime behavior. No target commits or time-policy changes are incorporated. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
1d6ddec to
6036d7e
Compare
Summary
hvc0console. Preserve x86/Standard defaults, legacy probing, PIO and existing state/wire contracts.CNTVCT_EL0reads around host UTC sampling, rejecting changed epochs, backwards counters and pairing uncertainty above 100 us. ReuseTimeSampleSource, the existing 48-byte v1 codec and shared host-clock publisher; unknown or unrepresentable calibration/correction/error bounds remain unknown, not synchronization guarantees.ARM support remains cold-boot only: no ARM snapshot capture or restore.
Current source
Head
6036d7ee6f56357b18f01b126b9f7463473deddfcontains three linear ARM feature/verifier/report-layout commits above exact upstream5d656d854a8daca0f23833666b0b71229fe2ab73, with no new merge commits. Its tree is4190b02abce965455f2b15c9fa1ab78fffce223a, the verified upstream-plus-feature union.Bounded qualification of this head
virt,virt_whp,openvmm_core,openvmm_entry,vmm_core,vmcore,state_unit,chipset.f77577b4and historical guest inputs, not current-dev NVX qualification; no NVX source or gitlink changed.