igvmfilegen: bump igvm to microsoft/igvm main and adapt callers#3907
Merged
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
Updates OpenVMM’s IGVM integration to track the upstream microsoft/igvm repository (instead of crates.io) and adapts local loaders/generators to newly introduced IGVM directive/register variants and the updated SNP VMSA sizing expectations.
Changes:
- Bump workspace
igvm/igvm_defsdependencies from0.4.0to a pinned Git revision. - Update AArch64 register plumbing to support new
X2–X7variants. - Adjust
igvmfilegenSNP VP-context import to accept smaller (architectural) VMSA input by zero-padding to the paddedigvm::snp_defs::SevVmsasize.
Reviewed changes
Copilot reviewed 5 out of 6 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
vmm_core/vm_loader/src/initial_regs.rs |
Maps new AArch64 X2–X7 register variants into the initial register state. |
vm/loader/src/importer.rs |
Extends the loader’s AArch64 register enum and IGVM conversions for X2–X7. |
vm/loader/igvmfilegen/src/file_loader.rs |
Relaxes SNP VMSA size handling and pads input to match upstream igvm’s padded SevVmsa. |
openvmm/openvmm_core/src/worker/vm_loaders/igvm.rs |
Adds matching for IgvmDirectiveHeader::AArch64CcaVpContext (currently unsupported). |
Cargo.toml |
Switches igvm / igvm_defs to Git dependencies pinned by rev. |
Cargo.lock |
Locks updated transitive dependency graph from the IGVM Git bump. |
Bump the workspace igvm/igvm_defs dependencies to microsoft/igvm rev e6c3ff1 (current main tip). This pulls in: - PR microsoft#109 which pads `SevVmsa` out to a full 4 KiB page, whereas `x86defs::snp::SevVmsa` produced by the VP context builder is the architectural 1648-byte structure. - PR microsoft#122 which adds CoRIM launch-measurement APIs. - New `AArch64Register` variants (X2-X7) and a new `IgvmDirectiveHeader::AArch64CcaVpContext` variant. Adapt local callers: - igvmfilegen's `import_pages` SNP branch zero-pads the incoming VMSA up to the igvm crate's expected size before calling `SevVmsa::read_from_bytes`, and the strict size check is relaxed to allow any input no larger than the padded size. - `vm/loader` and `vmm_core/vm_loader` mirror the new `AArch64Register` X2-X7 variants. - `openvmm_core`'s IGVM directive matcher adds `AArch64CcaVpContext` arms (todo-stubbed; no callers exercise CCA yet). This is a no-op for current functionality and is a prerequisite for the upcoming CoRIM endorsement support. Signed-off-by: Ming-Wei Shih <mishih@microsoft.com>
chris-oo
approved these changes
Jul 10, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Bump the workspace igvm/igvm_defs dependencies to microsoft/igvm rev 3d1a950116d624746bf3342e09ea0a3416d89dd3 (current main tip). This pulls in:
SevVmsaout to a full 4 KiB page, whereasx86defs::snp::SevVmsaproduced by the VP context builder is the architectural 1648-byte structure.AArch64Registervariants (X2-X7) and a newIgvmDirectiveHeader::AArch64CcaVpContextvariant.Adapt local callers:
import_pagesSNP branch zero-pads the incoming VMSA up to the igvm crate's expected size before callingSevVmsa::read_from_bytes, and the strict size check is relaxed to allow any input no larger than the padded size.vm/loaderandvmm_core/vm_loadermirror the newAArch64RegisterX2-X7 variants.openvmm_core's IGVM directive matcher addsAArch64CcaVpContextarms (todo-stubbed; no callers exercise CCA yet).This is a no-op for current functionality and is a prerequisite for the upcoming CoRIM endorsement support.