Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. =================================================================== RCS file: /ftp/cvs/cvsroot/src/sys/stand/efiboot/efiacpi.c,v rcsdiff: /ftp/cvs/cvsroot/src/sys/stand/efiboot/efiacpi.c,v: warning: Unknown phrases like `commitid ...;' are present. retrieving revision 1.1 retrieving revision 1.1.2.3 diff -u -p -r1.1 -r1.1.2.3 --- src/sys/stand/efiboot/efiacpi.c 2018/10/12 22:08:04 1.1 +++ src/sys/stand/efiboot/efiacpi.c 2018/11/26 01:52:52 1.1.2.3 @@ -1,4 +1,4 @@ -/* $NetBSD: efiacpi.c,v 1.1 2018/10/12 22:08:04 jmcneill Exp $ */ +/* $NetBSD: efiacpi.c,v 1.1.2.3 2018/11/26 01:52:52 pgoyette Exp $ */ /*- * Copyright (c) 2018 The NetBSD Foundation, Inc. @@ -38,8 +38,10 @@ #define ACPI_FDT_SIZE (64 * 1024) static EFI_GUID Acpi20TableGuid = ACPI_20_TABLE_GUID; +static EFI_GUID Smbios3TableGuid = SMBIOS3_TABLE_GUID; static void *acpi_root = NULL; +static void *smbios3_table = NULL; int efi_acpi_probe(void) @@ -50,6 +52,10 @@ efi_acpi_probe(void) if (EFI_ERROR(status)) return EIO; + status = LibGetSystemConfigurationTable(&Smbios3TableGuid, &smbios3_table); + if (EFI_ERROR(status)) + smbios3_table = NULL; + return 0; } @@ -65,7 +71,10 @@ efi_acpi_show(void) if (!efi_acpi_available()) return; - printf("ACPI: RSDP %p\n", acpi_root); + printf("ACPI: RSDP %p", acpi_root); + if (smbios3_table) + printf(", SMBIOS %p", smbios3_table); + printf("\n"); } int @@ -92,6 +101,11 @@ efi_acpi_create_fdt(void) fdt_add_subnode(fdt, fdt_path_offset(fdt, "/"), "chosen"); fdt_setprop_u64(fdt, fdt_path_offset(fdt, "/chosen"), "netbsd,acpi-root-table", (uint64_t)(uintptr_t)acpi_root); + if (smbios3_table) + fdt_setprop_u64(fdt, fdt_path_offset(fdt, "/chosen"), "netbsd,smbios-table", (uint64_t)(uintptr_t)smbios3_table); +#ifdef EFIBOOT_RUNTIME_ADDRESS + fdt_setprop_u64(fdt, fdt_path_offset(fdt, "/chosen"), "netbsd,uefi-system-table", (uint64_t)(uintptr_t)ST); +#endif fdt_add_subnode(fdt, fdt_path_offset(fdt, "/"), "acpi"); fdt_setprop_string(fdt, fdt_path_offset(fdt, "/acpi"), "compatible", "netbsd,acpi");