Detect ACPI 2.0 RSDP as well
authorJack Miller <Jack.Miller@amd.com>
Thu, 11 Apr 2019 22:53:43 +0000 (17:53 -0500)
committerJack Miller <jack@codezen.org>
Fri, 12 Apr 2019 17:05:39 +0000 (12:05 -0500)
Newer versions share a separate GUID from previous ones. Fortunately it
looks like the table parsing hasn't changed. This gets CPUs detected on
modern hardware.

kernel/platforms/efi/setup.c

index e7db02a..0af3b40 100644 (file)
@@ -197,12 +197,18 @@ static union efi_guid acpi_guid = {
         { 0x9a, 0x16, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d }}
 };
 
+static union efi_guid efi_acpi_guid = {
+    .guid = { 0x8868e871, 0xe4f1, 0x11d3,
+        { 0xbc, 0x22, 0x00, 0x80, 0xc7, 0x3c, 0x88, 0x81 }}
+};
+
 void *efi_find_rsdp(struct platform *plat)
 {
     int i;
 
     for (i = 0; i < system_table->num_entries; i++) {
-        if (efi_guid_equal(&system_table->configuration_table[i].guid, &acpi_guid)) {
+        if ((efi_guid_equal(&system_table->configuration_table[i].guid, &efi_acpi_guid)||
+             efi_guid_equal(&system_table->configuration_table[i].guid, &acpi_guid))) {
             char *ret = vsalloc("ACPI", 0, 1);
 
             if (!ret)