Skip to content

Commit 6277e37

Browse files
committed
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: Laszlo Ersek <lersek@redhat.com> Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
1 parent 4690832 commit 6277e37

2 files changed

Lines changed: 25 additions & 23 deletions

File tree

drivers/firmware/efi/efi.c

Lines changed: 24 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -714,22 +714,22 @@ void __init efi_systab_report_header(const efi_table_hdr_t *systab_hdr,
714714
vendor);
715715
}
716716

717-
static __initdata char memory_type_name[][20] = {
717+
static __initdata char memory_type_name[][13] = {
718718
"Reserved",
719719
"Loader Code",
720720
"Loader Data",
721721
"Boot Code",
722722
"Boot Data",
723723
"Runtime Code",
724724
"Runtime Data",
725-
"Conventional Memory",
726-
"Unusable Memory",
727-
"ACPI Reclaim Memory",
728-
"ACPI Memory NVS",
729-
"Memory Mapped I/O",
730-
"MMIO Port Space",
725+
"Conventional",
726+
"Unusable",
727+
"ACPI Reclaim",
728+
"ACPI Mem NVS",
729+
"MMIO",
730+
"MMIO Port",
731731
"PAL Code",
732-
"Persistent Memory",
732+
"Persistent",
733733
};
734734

735735
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,
756756
if (attr & ~(EFI_MEMORY_UC | EFI_MEMORY_WC | EFI_MEMORY_WT |
757757
EFI_MEMORY_WB | EFI_MEMORY_UCE | EFI_MEMORY_RO |
758758
EFI_MEMORY_WP | EFI_MEMORY_RP | EFI_MEMORY_XP |
759-
EFI_MEMORY_NV | EFI_MEMORY_SP |
759+
EFI_MEMORY_NV | EFI_MEMORY_SP | EFI_MEMORY_CPU_CRYPTO |
760760
EFI_MEMORY_RUNTIME | EFI_MEMORY_MORE_RELIABLE))
761761
snprintf(pos, size, "|attr=0x%016llx]",
762762
(unsigned long long)attr);
763763
else
764764
snprintf(pos, size,
765-
"|%3s|%2s|%2s|%2s|%2s|%2s|%2s|%2s|%3s|%2s|%2s|%2s|%2s]",
766-
attr & EFI_MEMORY_RUNTIME ? "RUN" : "",
767-
attr & EFI_MEMORY_MORE_RELIABLE ? "MR" : "",
768-
attr & EFI_MEMORY_SP ? "SP" : "",
769-
attr & EFI_MEMORY_NV ? "NV" : "",
770-
attr & EFI_MEMORY_XP ? "XP" : "",
771-
attr & EFI_MEMORY_RP ? "RP" : "",
772-
attr & EFI_MEMORY_WP ? "WP" : "",
773-
attr & EFI_MEMORY_RO ? "RO" : "",
774-
attr & EFI_MEMORY_UCE ? "UCE" : "",
775-
attr & EFI_MEMORY_WB ? "WB" : "",
776-
attr & EFI_MEMORY_WT ? "WT" : "",
777-
attr & EFI_MEMORY_WC ? "WC" : "",
778-
attr & EFI_MEMORY_UC ? "UC" : "");
765+
"|%3s|%2s|%2s|%2s|%2s|%2s|%2s|%2s|%2s|%3s|%2s|%2s|%2s|%2s]",
766+
attr & EFI_MEMORY_RUNTIME ? "RUN" : "",
767+
attr & EFI_MEMORY_MORE_RELIABLE ? "MR" : "",
768+
attr & EFI_MEMORY_CPU_CRYPTO ? "CC" : "",
769+
attr & EFI_MEMORY_SP ? "SP" : "",
770+
attr & EFI_MEMORY_NV ? "NV" : "",
771+
attr & EFI_MEMORY_XP ? "XP" : "",
772+
attr & EFI_MEMORY_RP ? "RP" : "",
773+
attr & EFI_MEMORY_WP ? "WP" : "",
774+
attr & EFI_MEMORY_RO ? "RO" : "",
775+
attr & EFI_MEMORY_UCE ? "UCE" : "",
776+
attr & EFI_MEMORY_WB ? "WB" : "",
777+
attr & EFI_MEMORY_WT ? "WT" : "",
778+
attr & EFI_MEMORY_WC ? "WC" : "",
779+
attr & EFI_MEMORY_UC ? "UC" : "");
779780
return buf;
780781
}
781782

include/linux/efi.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,7 @@ typedef struct {
122122
((u64)0x0000000000010000ULL) /* higher reliability */
123123
#define EFI_MEMORY_RO ((u64)0x0000000000020000ULL) /* read-only */
124124
#define EFI_MEMORY_SP ((u64)0x0000000000040000ULL) /* soft reserved */
125+
#define EFI_MEMORY_CPU_CRYPTO ((u64)0x0000000000080000ULL) /* supports encryption */
125126
#define EFI_MEMORY_RUNTIME ((u64)0x8000000000000000ULL) /* range requires runtime mapping */
126127
#define EFI_MEMORY_DESCRIPTOR_VERSION 1
127128

0 commit comments

Comments
 (0)