microsoft / microsoft/openvmm

Carry RBX through validated PVH loading

Open
#4,427 0 comments 0 reactions 1 assignee View on GitHub

@ppenna is already working on this.

Since Sep 15, 2026.

Dominant language
Rust
Stars
1.9k
Forks
238
Avg merge
1d 15h
Merged PRs (30d)
100

Description

Tracking issue: MicroVM support and private snapshot restore.

Motivation

A lightweight x86 guest should be able to enter through the PVH boot protocol
without a general-purpose firmware boot. That requires both validated image loading
and complete initial-register plumbing: the boot-information address carried in
RBX must reach the virtual processor rather than being lost between abstractions.

Proposed Scope

  • Carry the required RBX value through the image-loader, initial-state, and
    supported hypervisor interfaces.
  • Validate PVH image metadata, segment ranges, entry state, and boot-information
    placement before writing guest memory or starting a processor.
  • Reject malformed images, unsupported layouts, and address arithmetic overflow
    with contextual errors, without panicking on input.
  • Keep register plumbing and the PVH loader in one working change so the entry
    contract is testable end to end.
  • Preserve other boot paths and use guest-architecture gating for guest-specific
    behavior.

Acceptance Criteria

  • A valid PVH image produces the expected entrypoint, boot-information address,
    and register state, including RBX.
  • Loader fixtures verify segment contents and address bounds.
  • Truncated metadata, invalid ranges, and overflowing addresses fail before
    guest execution without out-of-bounds writes or panics.
  • Initial-state tests verify RBX reaches each supported backend and that other
    boot modes retain their register behavior.
  • The accepted PVH contract and unsupported cases are documented.

Dependencies

No feature prerequisites. The cold-boot microVM profile will consume the loader
and register plumbing together.

Non-Goals

This issue does not add the full machine profile, device model, CLI mode, or snapshot
support.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.