Re: [PATCH v4 00/11] x86: Refactor and consolidate startup code

From: Borislav Petkov
Date: Fri Apr 11 2025 - 15:14:42 EST


On Thu, Apr 10, 2025 at 03:41:18PM +0200, Ard Biesheuvel wrote:
> Ard Biesheuvel (11):
> x86/asm: Make rip_rel_ptr() usable from fPIC code
> x86/boot: Move the early GDT/IDT setup code into startup/
> x86/boot: Move early kernel mapping code into startup/
> x86/boot: Drop RIP_REL_REF() uses from early mapping code
> x86/boot: Move early SME init code into startup/
> x86/boot: Drop RIP_REL_REF() uses from SME startup code
> x86/sev: Prepare for splitting off early SEV code
> x86/sev: Split off startup code from core code
> x86/boot: Move SEV startup code into startup/
> x86/boot: Drop RIP_REL_REF() uses from early SEV code
> x86/asm: Retire RIP_REL_REF()
>
> arch/x86/boot/compressed/Makefile | 2 +-
> arch/x86/boot/compressed/sev.c | 17 +-
> arch/x86/boot/startup/Makefile | 16 +
> arch/x86/boot/startup/gdt_idt.c | 84 +
> arch/x86/boot/startup/map_kernel.c | 225 +++
> arch/x86/{coco/sev/shared.c => boot/startup/sev-shared.c} | 375 +----
> arch/x86/boot/startup/sev-startup.c | 1395 ++++++++++++++++
> arch/x86/{mm/mem_encrypt_identity.c => boot/startup/sme.c} | 19 +-
> arch/x86/coco/sev/Makefile | 19 -
> arch/x86/coco/sev/core.c | 1726 ++++----------------
> arch/x86/include/asm/asm.h | 5 -
> arch/x86/include/asm/coco.h | 2 +-
> arch/x86/include/asm/mem_encrypt.h | 2 +-
> arch/x86/include/asm/sev-internal.h | 112 ++
> arch/x86/include/asm/sev.h | 37 +
> arch/x86/kernel/head64.c | 285 +---
> arch/x86/mm/Makefile | 6 -
> 17 files changed, 2208 insertions(+), 2119 deletions(-)
> create mode 100644 arch/x86/boot/startup/gdt_idt.c
> create mode 100644 arch/x86/boot/startup/map_kernel.c
> rename arch/x86/{coco/sev/shared.c => boot/startup/sev-shared.c} (78%)
> create mode 100644 arch/x86/boot/startup/sev-startup.c
> rename arch/x86/{mm/mem_encrypt_identity.c => boot/startup/sme.c} (97%)
> create mode 100644 arch/x86/include/asm/sev-internal.h

Looks sensible at a glance. The devil's in the detail with that stuff,
ofc, so we will have to test it with as many toolchains and usage
scenarios as possible.

Thx.