提交 6277e374 编写于 作者: A Ard Biesheuvel

efi: Add definition of EFI_MEMORY_CPU_CRYPTO and ability to report it

Incorporate the definition of EFI_MEMORY_CPU_CRYPTO from the UEFI
specification v2.8, and wire it into our memory map dumping routine
as well.

To make a bit of space in the output buffer, which is provided by
the various callers, shorten the descriptive names of the memory
types.
Reviewed-by: NLaszlo Ersek <lersek@redhat.com>
Signed-off-by: NArd Biesheuvel <ardb@kernel.org>
上级 46908326
...@@ -714,7 +714,7 @@ void __init efi_systab_report_header(const efi_table_hdr_t *systab_hdr, ...@@ -714,7 +714,7 @@ void __init efi_systab_report_header(const efi_table_hdr_t *systab_hdr,
vendor); vendor);
} }
static __initdata char memory_type_name[][20] = { static __initdata char memory_type_name[][13] = {
"Reserved", "Reserved",
"Loader Code", "Loader Code",
"Loader Data", "Loader Data",
...@@ -722,14 +722,14 @@ static __initdata char memory_type_name[][20] = { ...@@ -722,14 +722,14 @@ static __initdata char memory_type_name[][20] = {
"Boot Data", "Boot Data",
"Runtime Code", "Runtime Code",
"Runtime Data", "Runtime Data",
"Conventional Memory", "Conventional",
"Unusable Memory", "Unusable",
"ACPI Reclaim Memory", "ACPI Reclaim",
"ACPI Memory NVS", "ACPI Mem NVS",
"Memory Mapped I/O", "MMIO",
"MMIO Port Space", "MMIO Port",
"PAL Code", "PAL Code",
"Persistent Memory", "Persistent",
}; };
char * __init efi_md_typeattr_format(char *buf, size_t size, char * __init efi_md_typeattr_format(char *buf, size_t size,
...@@ -756,26 +756,27 @@ char * __init efi_md_typeattr_format(char *buf, size_t size, ...@@ -756,26 +756,27 @@ char * __init efi_md_typeattr_format(char *buf, size_t size,
if (attr & ~(EFI_MEMORY_UC | EFI_MEMORY_WC | EFI_MEMORY_WT | if (attr & ~(EFI_MEMORY_UC | EFI_MEMORY_WC | EFI_MEMORY_WT |
EFI_MEMORY_WB | EFI_MEMORY_UCE | EFI_MEMORY_RO | EFI_MEMORY_WB | EFI_MEMORY_UCE | EFI_MEMORY_RO |
EFI_MEMORY_WP | EFI_MEMORY_RP | EFI_MEMORY_XP | EFI_MEMORY_WP | EFI_MEMORY_RP | EFI_MEMORY_XP |
EFI_MEMORY_NV | EFI_MEMORY_SP | EFI_MEMORY_NV | EFI_MEMORY_SP | EFI_MEMORY_CPU_CRYPTO |
EFI_MEMORY_RUNTIME | EFI_MEMORY_MORE_RELIABLE)) EFI_MEMORY_RUNTIME | EFI_MEMORY_MORE_RELIABLE))
snprintf(pos, size, "|attr=0x%016llx]", snprintf(pos, size, "|attr=0x%016llx]",
(unsigned long long)attr); (unsigned long long)attr);
else else
snprintf(pos, size, snprintf(pos, size,
"|%3s|%2s|%2s|%2s|%2s|%2s|%2s|%2s|%3s|%2s|%2s|%2s|%2s]", "|%3s|%2s|%2s|%2s|%2s|%2s|%2s|%2s|%2s|%3s|%2s|%2s|%2s|%2s]",
attr & EFI_MEMORY_RUNTIME ? "RUN" : "", attr & EFI_MEMORY_RUNTIME ? "RUN" : "",
attr & EFI_MEMORY_MORE_RELIABLE ? "MR" : "", attr & EFI_MEMORY_MORE_RELIABLE ? "MR" : "",
attr & EFI_MEMORY_SP ? "SP" : "", attr & EFI_MEMORY_CPU_CRYPTO ? "CC" : "",
attr & EFI_MEMORY_NV ? "NV" : "", attr & EFI_MEMORY_SP ? "SP" : "",
attr & EFI_MEMORY_XP ? "XP" : "", attr & EFI_MEMORY_NV ? "NV" : "",
attr & EFI_MEMORY_RP ? "RP" : "", attr & EFI_MEMORY_XP ? "XP" : "",
attr & EFI_MEMORY_WP ? "WP" : "", attr & EFI_MEMORY_RP ? "RP" : "",
attr & EFI_MEMORY_RO ? "RO" : "", attr & EFI_MEMORY_WP ? "WP" : "",
attr & EFI_MEMORY_UCE ? "UCE" : "", attr & EFI_MEMORY_RO ? "RO" : "",
attr & EFI_MEMORY_WB ? "WB" : "", attr & EFI_MEMORY_UCE ? "UCE" : "",
attr & EFI_MEMORY_WT ? "WT" : "", attr & EFI_MEMORY_WB ? "WB" : "",
attr & EFI_MEMORY_WC ? "WC" : "", attr & EFI_MEMORY_WT ? "WT" : "",
attr & EFI_MEMORY_UC ? "UC" : ""); attr & EFI_MEMORY_WC ? "WC" : "",
attr & EFI_MEMORY_UC ? "UC" : "");
return buf; return buf;
} }
......
...@@ -122,6 +122,7 @@ typedef struct { ...@@ -122,6 +122,7 @@ typedef struct {
((u64)0x0000000000010000ULL) /* higher reliability */ ((u64)0x0000000000010000ULL) /* higher reliability */
#define EFI_MEMORY_RO ((u64)0x0000000000020000ULL) /* read-only */ #define EFI_MEMORY_RO ((u64)0x0000000000020000ULL) /* read-only */
#define EFI_MEMORY_SP ((u64)0x0000000000040000ULL) /* soft reserved */ #define EFI_MEMORY_SP ((u64)0x0000000000040000ULL) /* soft reserved */
#define EFI_MEMORY_CPU_CRYPTO ((u64)0x0000000000080000ULL) /* supports encryption */
#define EFI_MEMORY_RUNTIME ((u64)0x8000000000000000ULL) /* range requires runtime mapping */ #define EFI_MEMORY_RUNTIME ((u64)0x8000000000000000ULL) /* range requires runtime mapping */
#define EFI_MEMORY_DESCRIPTOR_VERSION 1 #define EFI_MEMORY_DESCRIPTOR_VERSION 1
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册