Print this page
12195 acpidump failed under EFI
@@ -21,11 +21,11 @@
/*
* Copyright 2009 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*
- * Copyright 2013 Joyent, Inc. All rights reserved.
+ * Copyright 2020 Joyent, Inc.
*/
#include <sys/types.h>
#include <sys/machparam.h>
@@ -1757,26 +1757,23 @@
efi32tagp->mb_pointer);
}
}
/*
- * The ACPI RSDP can be found by scanning the BIOS memory areas or
- * from the EFI system table. The boot loader may pass in the address
- * it found the ACPI tables at.
+ * The multiboot2 info contains a copy of the RSDP; stash a pointer to
+ * it (see find_rsdp() in fakebop).
*/
nacpitagp = (multiboot_tag_new_acpi_t *)
- dboot_multiboot2_find_tag(mb2_info,
- MULTIBOOT_TAG_TYPE_ACPI_NEW);
+ dboot_multiboot2_find_tag(mb2_info, MULTIBOOT_TAG_TYPE_ACPI_NEW);
oacpitagp = (multiboot_tag_old_acpi_t *)
- dboot_multiboot2_find_tag(mb2_info,
- MULTIBOOT_TAG_TYPE_ACPI_OLD);
+ dboot_multiboot2_find_tag(mb2_info, MULTIBOOT_TAG_TYPE_ACPI_OLD);
if (nacpitagp != NULL) {
- bi->bi_acpi_rsdp = (native_ptr_t)(uintptr_t)
+ bi->bi_acpi_rsdp_copy = (native_ptr_t)(uintptr_t)
&nacpitagp->mb_rsdp[0];
} else if (oacpitagp != NULL) {
- bi->bi_acpi_rsdp = (native_ptr_t)(uintptr_t)
+ bi->bi_acpi_rsdp_copy = (native_ptr_t)(uintptr_t)
&oacpitagp->mb_rsdp[0];
}
}
/* print out EFI version string with newline */
@@ -2285,10 +2282,11 @@
DBG((uintptr_t)mb_info);
DBG((uintptr_t)mb2_info);
if (mb2_info != NULL)
DBG(mb2_info->mbi_total_size);
DBG(bi->bi_acpi_rsdp);
+ DBG(bi->bi_acpi_rsdp_copy);
DBG(bi->bi_smbios);
DBG(bi->bi_uefi_arch);
DBG(bi->bi_uefi_systab);
if (bi->bi_uefi_systab && prom_debug) {