HomeFreeBSD

bhyve: add config option to load ACPI tables into memory

Description

bhyve: add config option to load ACPI tables into memory

For backward compatibility, the ACPI tables are loaded into the guest
memory. Windows scans the memory, finds the ACPI tables and uses them.
It ignores the ACPI tables provided by the UEFI. We are patching the
ACPI tables in the guest memory, so that's mostly fine. However, Windows
will break when the ACPI tables become to large or when we add entries
which can't be patched by bhyve. One example of an unpatchable entry, is
a TPM log. The TPM log has to be allocated by the guest firmware. As the
address of the TPM log is unpredictable, bhyve can't assign it in the
memory version of the ACPI tables. Additionally, this makes it
impossible for bhyve to calculate a correct checksum of the table.

By default ACPI tables are still loaded into guest memory for backward
compatibility. The new acpi_tables_in_memory config value can be set to
false to avoid this behaviour.

Reviewed by: markj
MFC after: 1 week
Sponsored by: Beckhoff Automation GmbH & Co. KG
Differential Revision: https://reviews.freebsd.org/D39979

Details

Provenance
corvinkAuthored on Jul 27 2022, 12:47 PM
Reviewer
markj
Differential Revision
D39979: bhyve: add config option to load ACPI tables into memory
Parents
rG3250c9d52728: libcrypto: Update assembly build glue for x86 for OpenSSL 3.0.
Branches
Unknown
Tags
Unknown