• Michael Roth's avatar
    x86/boot: Add a pointer to Confidential Computing blob in bootparams · 8c9c509b
    Michael Roth authored
    The previously defined Confidential Computing blob is provided to the
    kernel via a setup_data structure or EFI config table entry. Currently,
    these are both checked for by boot/compressed kernel to access the CPUID
    table address within it for use with SEV-SNP CPUID enforcement.
    
    To also enable that enforcement for the run-time kernel, similar
    access to the CPUID table is needed early on while it's still using
    the identity-mapped page table set up by boot/compressed, where global
    pointers need to be accessed via fixup_pointer().
    
    This isn't much of an issue for accessing setup_data, and the EFI config
    table helper code currently used in boot/compressed *could* be used in
    this case as well since they both rely on identity-mapping. However, it
    has some reliance on EFI helpers/string constants that would need to be
    accessed via fixup_pointer(), and fixing it up while making it shareable
    between boot/compressed and run-time kernel is fragile and introduces a
    good bit of ugliness.
    
    Instead, add a boot_params->cc_blob_address pointer that the
    boot/compressed kernel can initialize so that the run-time kernel can
    access the CC blob from there instead of re-scanning the EFI config
    table.
    
    Also document these in Documentation/x86/zero-page.rst. While there,
    add missing documentation for the acpi_rsdp_addr field, which serves a
    similar purpose in providing the run-time kernel a pointer to the ACPI
    RSDP table so that it does not need to [re-]scan the EFI configuration
    table.
    
      [ bp: Fix typos, massage commit message. ]
    Signed-off-by: default avatarMichael Roth <michael.roth@amd.com>
    Signed-off-by: default avatarBrijesh Singh <brijesh.singh@amd.com>
    Signed-off-by: default avatarBorislav Petkov <bp@suse.de>
    Link: https://lore.kernel.org/r/20220307213356.2797205-34-brijesh.singh@amd.com
    8c9c509b
bootparam.h 8.1 KB