Skip to content

MsvmPkg/AARCH64: Make Hyper-V optional#89

Open
jstarks wants to merge 1 commit into
microsoft:mainfrom
jstarks:no_hv
Open

MsvmPkg/AARCH64: Make Hyper-V optional#89
jstarks wants to merge 1 commit into
microsoft:mainfrom
jstarks:no_hv

Conversation

@jstarks

@jstarks jstarks commented Jun 19, 2026

Copy link
Copy Markdown
Member

Add PcdHvEnabled so the AARCH64 firmware can boot on platforms without Hyper-V.

The loader passes an MSVM_SEC_PLATFORM_TYPE value in x2 at SEC entry (HyperV=0, Generic=1). SEC validates the value and installs a PPI. PlatformPei reads the PPI and sets PcdHvEnabled, which gates:

  • SetGuestOsId hypercall in SEC
  • EfiHvDxe initialization (exits early when disabled)
  • CrashLib VP register writes (PSCI reset and BiosDevice diagnostics still function)
  • Hypervisor vendor identity in FACP

Config.c validates that VMBus is not enabled when Hv is disabled.

Also restructure EventLogDxe to locate the IVM protocol before installing its own protocols, and delete SecEntry.masm (MSVC ARM64 toolchain is no longer supported).

@jstarks

jstarks commented Jun 19, 2026

Copy link
Copy Markdown
Member Author

This needs #86 to actually work.

Add PcdHvEnabled so the AARCH64 firmware can boot on platforms without
Hyper-V.

The loader passes an MSVM_SEC_PLATFORM_TYPE value in x2 at SEC entry
(HyperV=0, Generic=1). SEC validates the value and installs a PPI.
PlatformPei reads the PPI and sets PcdHvEnabled, which gates:

- SetGuestOsId hypercall in SEC
- EfiHvDxe initialization (exits early when disabled)
- CrashLib VP register writes (PSCI reset and BiosDevice diagnostics
  still function)
- Hypervisor vendor identity in FACP

Config.c validates that VMBus is not enabled when Hv is disabled.

Also restructure EventLogDxe to locate the IVM protocol before
installing its own protocols, and delete SecEntry.masm (MSVC ARM64
toolchain is no longer supported).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant