efi: Accept ACPI 2 table pointer as config table

Necessary to get SMP working on VMware under EFI these days.
This commit is contained in:
K. Lange 2023-02-17 08:20:43 +09:00
parent 2ffd929032
commit ee7d2e76b4

View File

@ -286,12 +286,20 @@ void boot(void) {
draw_logo(0);
for (unsigned int i = 0; i < ST->NumberOfTableEntries; ++i) {
/* ACPI 1 table pointer. */
if (ST->ConfigurationTable[i].VendorGuid.Data1 == 0xeb9d2d30 &&
ST->ConfigurationTable[i].VendorGuid.Data2 == 0x2d88 &&
ST->ConfigurationTable[i].VendorGuid.Data3 == 0x11d3) {
multiboot_header.config_table = (uintptr_t)ST->ConfigurationTable[i].VendorTable & 0xFFFFffff;
break;
}
/* ACPI 2 table pointer. */
if (ST->ConfigurationTable[i].VendorGuid.Data1 == 0x8868e871 &&
ST->ConfigurationTable[i].VendorGuid.Data2 == 0xe4f1 &&
ST->ConfigurationTable[i].VendorGuid.Data3 == 0x11d3) {
multiboot_header.config_table = (uintptr_t)ST->ConfigurationTable[i].VendorTable & 0xFFFFffff;
break;
}
}
status = uefi_call_wrapper(ST->BootServices->HandleProtocol,