Carry RBX through validated PVH loading
@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
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.