Module Name: src Committed By: nonaka Date: Tue Feb 14 13:29:09 UTC 2017
Modified Files: src/sys/arch/i386/stand/efiboot: efimemory.c src/sys/arch/x86/acpi: acpi_machdep.c src/sys/arch/x86/include: efi.h src/sys/arch/x86/x86: efi.c x86_machdep.c src/sys/external/bsd/gnu-efi/dist/inc: efidef.h Log Message: Handle persistent memory. Currently only debug output. To generate a diff of this commit: cvs rdiff -u -r1.3 -r1.4 src/sys/arch/i386/stand/efiboot/efimemory.c cvs rdiff -u -r1.17 -r1.18 src/sys/arch/x86/acpi/acpi_machdep.c cvs rdiff -u -r1.4 -r1.5 src/sys/arch/x86/include/efi.h cvs rdiff -u -r1.7 -r1.8 src/sys/arch/x86/x86/efi.c cvs rdiff -u -r1.88 -r1.89 src/sys/arch/x86/x86/x86_machdep.c cvs rdiff -u -r1.1.1.1 -r1.2 src/sys/external/bsd/gnu-efi/dist/inc/efidef.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/arch/i386/stand/efiboot/efimemory.c diff -u src/sys/arch/i386/stand/efiboot/efimemory.c:1.3 src/sys/arch/i386/stand/efiboot/efimemory.c:1.4 --- src/sys/arch/i386/stand/efiboot/efimemory.c:1.3 Sat Feb 11 10:13:46 2017 +++ src/sys/arch/i386/stand/efiboot/efimemory.c Tue Feb 14 13:29:09 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: efimemory.c,v 1.3 2017/02/11 10:13:46 nonaka Exp $ */ +/* $NetBSD: efimemory.c,v 1.4 2017/02/14 13:29:09 nonaka Exp $ */ /*- * Copyright (c) 2016 Kimihiro Nonaka <non...@netbsd.org> @@ -35,7 +35,15 @@ static const char *memtypes[] = { "available", "reserved", "ACPI reclaimable", - "ACPI NVS" + "ACPI NVS", + "unusable", + "disabled", + "Persistent", + "undefined (8)", + "undefined (9)", + "undefined (10)", + "undefined (11)", + "Persistent (Legacy)" }; static const char *efimemtypes[] = { @@ -53,6 +61,7 @@ static const char *efimemtypes[] = { "MemoryMappedIO", "MemoryMappedIOPortSpace", "PalCode", + "PersistentMemory", }; static int @@ -74,6 +83,9 @@ getmemtype(EFI_MEMORY_DESCRIPTOR *md) case EfiACPIMemoryNVS: return BIM_NVS; + case EfiPersistentMemory: + return BIM_PMEM; + case EfiReservedMemoryType: case EfiRuntimeServicesCode: case EfiRuntimeServicesData: @@ -82,9 +94,9 @@ getmemtype(EFI_MEMORY_DESCRIPTOR *md) case EfiMemoryMappedIOPortSpace: case EfiPalCode: case EfiMaxMemoryType: + default: return BIM_Reserved; } - return BIM_Reserved; } EFI_MEMORY_DESCRIPTOR * Index: src/sys/arch/x86/acpi/acpi_machdep.c diff -u src/sys/arch/x86/acpi/acpi_machdep.c:1.17 src/sys/arch/x86/acpi/acpi_machdep.c:1.18 --- src/sys/arch/x86/acpi/acpi_machdep.c:1.17 Tue Feb 14 13:23:50 2017 +++ src/sys/arch/x86/acpi/acpi_machdep.c Tue Feb 14 13:29:09 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: acpi_machdep.c,v 1.17 2017/02/14 13:23:50 nonaka Exp $ */ +/* $NetBSD: acpi_machdep.c,v 1.18 2017/02/14 13:29:09 nonaka Exp $ */ /* * Copyright 2001 Wasabi Systems, Inc. @@ -40,7 +40,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: acpi_machdep.c,v 1.17 2017/02/14 13:23:50 nonaka Exp $"); +__KERNEL_RCSID(0, "$NetBSD: acpi_machdep.c,v 1.18 2017/02/14 13:29:09 nonaka Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -395,6 +395,8 @@ acpi_md_mcfg_validate(uint64_t addr, int (type == BIM_Reserved) ? "Reserved" : (type == BIM_ACPI) ? "ACPI" : (type == BIM_NVS) ? "NVS" : + (type == BIM_PMEM) ? "Persistent" : + (type == BIM_PRAM) ? "Persistent (Legacy)" : "unknown"); switch (type) { Index: src/sys/arch/x86/include/efi.h diff -u src/sys/arch/x86/include/efi.h:1.4 src/sys/arch/x86/include/efi.h:1.5 --- src/sys/arch/x86/include/efi.h:1.4 Tue Feb 14 13:23:50 2017 +++ src/sys/arch/x86/include/efi.h Tue Feb 14 13:29:09 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: efi.h,v 1.4 2017/02/14 13:23:50 nonaka Exp $ */ +/* $NetBSD: efi.h,v 1.5 2017/02/14 13:29:09 nonaka Exp $ */ /*- * Copyright (c) 2004 Marcel Moolenaar @@ -74,6 +74,7 @@ struct efi_md { #define EFI_MD_TYPE_IOMEM 11 /* Memory-mapped I/O. */ #define EFI_MD_TYPE_IOPORT 12 /* I/O port space. */ #define EFI_MD_TYPE_PALCODE 13 /* PAL */ +#define EFI_MD_TYPE_PMEM 14 /* Persistent memory. */ uint32_t __pad; uint64_t md_phys; uint64_t md_virt; Index: src/sys/arch/x86/x86/efi.c diff -u src/sys/arch/x86/x86/efi.c:1.7 src/sys/arch/x86/x86/efi.c:1.8 --- src/sys/arch/x86/x86/efi.c:1.7 Tue Feb 14 13:23:50 2017 +++ src/sys/arch/x86/x86/efi.c Tue Feb 14 13:29:09 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: efi.c,v 1.7 2017/02/14 13:23:50 nonaka Exp $ */ +/* $NetBSD: efi.c,v 1.8 2017/02/14 13:29:09 nonaka Exp $ */ /*- * Copyright (c) 2016 The NetBSD Foundation, Inc. @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: efi.c,v 1.7 2017/02/14 13:23:50 nonaka Exp $"); +__KERNEL_RCSID(0, "$NetBSD: efi.c,v 1.8 2017/02/14 13:29:09 nonaka Exp $"); #include <sys/kmem.h> #include <sys/param.h> @@ -320,6 +320,9 @@ efi_getbiosmemtype(uint32_t type, uint64 case EFI_MD_TYPE_FIRMWARE: return BIM_NVS; + case EFI_MD_TYPE_PMEM: + return BIM_PMEM; + case EFI_MD_TYPE_NULL: case EFI_MD_TYPE_RT_CODE: case EFI_MD_TYPE_RT_DATA: @@ -327,9 +330,9 @@ efi_getbiosmemtype(uint32_t type, uint64 case EFI_MD_TYPE_IOMEM: case EFI_MD_TYPE_IOPORT: case EFI_MD_TYPE_PALCODE: + default: return BIM_Reserved; } - return BIM_Reserved; } const char * @@ -350,6 +353,7 @@ efi_getmemtype_str(uint32_t type) "MemoryMappedIO", "MemoryMappedIOPortSpace", "PalCode", + "PersistentMemory", }; if (type < __arraycount(efimemtypes)) Index: src/sys/arch/x86/x86/x86_machdep.c diff -u src/sys/arch/x86/x86/x86_machdep.c:1.88 src/sys/arch/x86/x86/x86_machdep.c:1.89 --- src/sys/arch/x86/x86/x86_machdep.c:1.88 Tue Feb 14 13:23:50 2017 +++ src/sys/arch/x86/x86/x86_machdep.c Tue Feb 14 13:29:09 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: x86_machdep.c,v 1.88 2017/02/14 13:23:50 nonaka Exp $ */ +/* $NetBSD: x86_machdep.c,v 1.89 2017/02/14 13:29:09 nonaka Exp $ */ /*- * Copyright (c) 2002, 2006, 2007 YAMAMOTO Takashi, @@ -31,7 +31,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: x86_machdep.c,v 1.88 2017/02/14 13:23:50 nonaka Exp $"); +__KERNEL_RCSID(0, "$NetBSD: x86_machdep.c,v 1.89 2017/02/14 13:29:09 nonaka Exp $"); #include "opt_modular.h" #include "opt_physmem.h" @@ -658,6 +658,8 @@ x86_parse_clusters(struct btinfo_memmap (type == BIM_Reserved) ? "Reserved" : (type == BIM_ACPI) ? "ACPI" : (type == BIM_NVS) ? "NVS" : + (type == BIM_PMEM) ? "Persistent" : + (type == BIM_PRAM) ? "Persistent (Legacy)" : "unknown"); #endif Index: src/sys/external/bsd/gnu-efi/dist/inc/efidef.h diff -u src/sys/external/bsd/gnu-efi/dist/inc/efidef.h:1.1.1.1 src/sys/external/bsd/gnu-efi/dist/inc/efidef.h:1.2 --- src/sys/external/bsd/gnu-efi/dist/inc/efidef.h:1.1.1.1 Tue Apr 1 16:16:07 2014 +++ src/sys/external/bsd/gnu-efi/dist/inc/efidef.h Tue Feb 14 13:29:09 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: efidef.h,v 1.1.1.1 2014/04/01 16:16:07 jakllsch Exp $ */ +/* $NetBSD: efidef.h,v 1.2 2017/02/14 13:29:09 nonaka Exp $ */ #ifndef _EFI_DEF_H #define _EFI_DEF_H @@ -162,6 +162,7 @@ typedef enum { EfiMemoryMappedIO, EfiMemoryMappedIOPortSpace, EfiPalCode, + EfiPersistentMemory, EfiMaxMemoryType } EFI_MEMORY_TYPE;