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;
 

Reply via email to