Skip to content

tdx: init APs with the ACPI mailbox protocol #970

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

babayet2
Copy link
Contributor

@babayet2 babayet2 commented Mar 6, 2025

Mailbox

This is the implementation of #610, initialization of APs with an implementation of the ACPI Mailbox protocol, described in section 5.2.12.19 of the ACPI spec

Changes

Igvmfilegen
The TDX reset vector has been modified to spin on APs until the kernel writes a wakeup command to the mailbox page. The AP then jumps to the wakeup address written by the kernel.

Boot Shim
The kernel expects that APs are ready to be woken up via the wakeup command, meaning that the VPs must be spinning before we jump to the kernel. Starting VPs under a HyperV host VMM is done with hypercalls, but there is no existing method to invoke hypercalls from the shim when TDX-isolated.

In this PR, TDX-specific hypercall initialization and invocation flows are added to the shim.

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