From c3a40cce2a9765de6776e2c099d59879e49dfe4b Mon Sep 17 00:00:00 2001
From: Eugeniu Rosca <roscaeugeniu@gmail.com>
Date: Sat, 14 Jul 2018 22:53:31 +0200
Subject: [PATCH] efi: Add EFI_MEMORY_{NV, MORE_RELIABLE, RO} attributes

With this update, the memory attributes are in sync with Linux
kernel v4.18-rc4. They also match page 190 of UEFI 2.7 spec [1].

[1] http://www.uefi.org/sites/default/files/resources/UEFI_Spec_2_7.pdf

Suggested-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Signed-off-by: Eugeniu Rosca <erosca@de.adit-jv.com>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Signed-off-by: Alexander Graf <agraf@suse.de>
---
 cmd/efi.c     | 3 +++
 include/efi.h | 4 ++++
 2 files changed, 7 insertions(+)

diff --git a/cmd/efi.c b/cmd/efi.c
index 92a565f713..366a79a964 100644
--- a/cmd/efi.c
+++ b/cmd/efi.c
@@ -39,6 +39,9 @@ static struct attr_info {
 	{ EFI_MEMORY_WP, "write-protect" },
 	{ EFI_MEMORY_RP, "read-protect" },
 	{ EFI_MEMORY_XP, "execute-protect" },
+	{ EFI_MEMORY_NV, "non-volatile" },
+	{ EFI_MEMORY_MORE_RELIABLE, "higher reliability" },
+	{ EFI_MEMORY_RO, "read-only" },
 	{ EFI_MEMORY_RUNTIME, "needs runtime mapping" }
 };
 
diff --git a/include/efi.h b/include/efi.h
index cfdccd7693..7e7c1cafc2 100644
--- a/include/efi.h
+++ b/include/efi.h
@@ -178,6 +178,10 @@ enum efi_mem_type {
 #define EFI_MEMORY_WP		((u64)0x0000000000001000ULL)	/* write-protect */
 #define EFI_MEMORY_RP		((u64)0x0000000000002000ULL)	/* read-protect */
 #define EFI_MEMORY_XP		((u64)0x0000000000004000ULL)	/* execute-protect */
+#define EFI_MEMORY_NV		((u64)0x0000000000008000ULL)	/* non-volatile */
+#define EFI_MEMORY_MORE_RELIABLE \
+				((u64)0x0000000000010000ULL)	/* higher reliability */
+#define EFI_MEMORY_RO		((u64)0x0000000000020000ULL)	/* read-only */
 #define EFI_MEMORY_RUNTIME	((u64)0x8000000000000000ULL)	/* range requires runtime mapping */
 #define EFI_MEM_DESC_VERSION	1
 
-- 
2.39.5