• Linus Torvalds's avatar
    Merge tag 'x86-boot-2024-03-12' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · b29f3771
    Linus Torvalds authored
    Pull x86 boot updates from Ingo Molnar:
    
     - Continuing work by Ard Biesheuvel to improve the x86 early startup
       code, with the long-term goal to make it position independent:
    
          - Get rid of early accesses to global objects, either by moving
            them to the stack, deferring the access until later, or dropping
            the globals entirely
    
          - Move all code that runs early via the 1:1 mapping into
            .head.text, and move code that does not out of it, so that build
            time checks can be added later to ensure that no inadvertent
            absolute references were emitted into code that does not
            tolerate them
    
          - Remove fixup_pointer() and occurrences of __pa_symbol(), which
            rely on the compiler emitting absolute references, which is not
            guaranteed
    
     - Improve the early console code
    
     - Add early console message about ignored NMIs, so that users are at
       least warned about their existence - even if we cannot do anything
       about them
    
     - Improve the kexec code's kernel load address handling
    
     - Enable more X86S (simplified x86) bits
    
     - Simplify early boot GDT handling
    
     - Micro-optimize the boot code a bit
    
     - Misc cleanups
    
    * tag 'x86-boot-2024-03-12' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (22 commits)
      x86/sev: Move early startup code into .head.text section
      x86/sme: Move early SME kernel encryption handling into .head.text
      x86/boot: Move mem_encrypt= parsing to the decompressor
      efi/libstub: Add generic support for parsing mem_encrypt=
      x86/startup_64: Simplify virtual switch on primary boot
      x86/startup_64: Simplify calculation of initial page table address
      x86/startup_64: Defer assignment of 5-level paging global variables
      x86/startup_64: Simplify CR4 handling in startup code
      x86/boot: Use 32-bit XOR to clear registers
      efi/x86: Set the PE/COFF header's NX compat flag unconditionally
      x86/boot/64: Load the final kernel GDT during early boot directly, remove startup_gdt[]
      x86/boot/64: Use RIP_REL_REF() to access early_top_pgt[]
      x86/boot/64: Use RIP_REL_REF() to access early page tables
      x86/boot/64: Use RIP_REL_REF() to access '__supported_pte_mask'
      x86/boot/64: Use RIP_REL_REF() to access early_dynamic_pgts[]
      x86/boot/64: Use RIP_REL_REF() to assign 'phys_base'
      x86/boot/64: Simplify global variable accesses in GDT/IDT programming
      x86/trampoline: Bypass compat mode in trampoline_start64() if not needed
      kexec: Allocate kernel above bzImage's pref_address
      x86/boot: Add a message about ignored early NMIs
      ...
    b29f3771
Kconfig 99.9 KB