[lkml]   [2017]   [Dec]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
Subject[PATCH v1 0/3] x86: SME: BSP/SME microcode update fix
This patch series addresses an issue when SME is active and the BSP
is attempting to check for and load microcode during load_ucode_bsp().
Since the initrd has not been decrypted (yet) and the virtual address
of the initrd treats the memory as encrypted, the CPIO archive parsing
fails to locate the microcode.

This series moves the encryption of the initrd into the early boot code
and encrypts it at the same time that the kernel is encrypted. Since
the initrd is now encrypted, the CPIO archive parsing succeeds in
properly locating the microcode.

The following patches are included in this fix:
- Centralize the use of the PMD flags used in sme_encrypt_kernel() in
preparation for using PTE flags also.
- Prepare sme_encrypt_kernel() to handle PAGE aligned encryption, not
just 2MB large page aligned encryption.
- Encrypt the initrd in sme_encrypt_kernel() when the kernel is being

This patch series is based on tip/master.


Tom Lendacky (3):
x86/mm: Centralize PMD flags in sme_encrypt_kernel()
x86/mm: Prepare sme_encrypt_kernel() for PAGE aligned encryption
x86/mm: Encrypt the initrd earlier for BSP microcode update

arch/x86/include/asm/mem_encrypt.h | 4 -
arch/x86/kernel/head64.c | 4 -
arch/x86/kernel/setup.c | 10 -
arch/x86/mm/mem_encrypt.c | 264 +++++++++++++++++++++++++++---------
arch/x86/mm/mem_encrypt_boot.S | 66 +++++----
5 files changed, 243 insertions(+), 105 deletions(-)

Tom Lendacky

 \ /
  Last update: 2017-12-08 00:34    [W:0.072 / U:9.824 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site