]> Git Repo - J-linux.git/commitdiff
Merge tag 'efi-next-for-v6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/efi/efi
authorLinus Torvalds <[email protected]>
Tue, 16 Jul 2024 19:22:07 +0000 (12:22 -0700)
committerLinus Torvalds <[email protected]>
Tue, 16 Jul 2024 19:22:07 +0000 (12:22 -0700)
Pull EFI updates from Ard Biesheuvel:
 "Note the removal of the EFI fake memory map support - this is believed
  to be unused and no longer worth supporting. However, we could easily
  bring it back if needed.

  With recent developments regarding confidential VMs and unaccepted
  memory, combined with kexec, creating a known inaccurate view of the
  firmware's memory map and handing it to the OS is a feature we can
  live without, hence the removal. Alternatively, I could imagine making
  this feature mutually exclusive with those confidential VM related
  features, but let's try simply removing it first.

  Summary:

   - Drop support for the 'fake' EFI memory map on x86

   - Add an SMBIOS based tweak to the EFI stub instructing the firmware
     on x86 Macbook Pros to keep both GPUs enabled

   - Replace 0-sized array with flexible array in EFI memory attributes
     table handling

   - Drop redundant BSS clearing when booting via the native PE
     entrypoint on x86

   - Avoid returning EFI_SUCCESS when aborting on an out-of-memory
     condition

   - Cosmetic tweak for arm64 KASLR loading logic"

* tag 'efi-next-for-v6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/efi/efi:
  efi: Replace efi_memory_attributes_table_t 0-sized array with flexible array
  efi: Rename efi_early_memdesc_ptr() to efi_memdesc_ptr()
  arm64/efistub: Clean up KASLR logic
  x86/efistub: Drop redundant clearing of BSS
  x86/efistub: Avoid returning EFI_SUCCESS on error
  x86/efistub: Call Apple set_os protocol on dual GPU Intel Macs
  x86/efistub: Enable SMBIOS protocol handling for x86
  efistub/smbios: Simplify SMBIOS enumeration API
  x86/efi: Drop support for fake EFI memory maps

1  2 
Documentation/admin-guide/kernel-parameters.txt
arch/x86/Kconfig
arch/x86/kernel/setup.c

index 9d207d53f9b7e66250e583ddef8c982948019c9f,90c64525e7e1386b9166466db74b45978a68d755..243444711129deb083052962d3b031e2142eed82
@@@ -12,7 -12,7 +12,7 @@@
        acpi=           [HW,ACPI,X86,ARM64,RISCV64,EARLY]
                        Advanced Configuration and Power Interface
                        Format: { force | on | off | strict | noirq | rsdt |
 -                                copy_dsdt }
 +                                copy_dsdt | nospcr }
                        force -- enable ACPI if default was off
                        on -- enable ACPI but allow fallback to DT [arm64,riscv64]
                        off -- disable ACPI if default was on
                                strictly ACPI specification compliant.
                        rsdt -- prefer RSDT over (default) XSDT
                        copy_dsdt -- copy DSDT to memory
 -                      For ARM64 and RISCV64, ONLY "acpi=off", "acpi=on" or
 -                      "acpi=force" are available
 +                      nospcr -- disable console in ACPI SPCR table as
 +                              default _serial_ console on ARM64
 +                      For ARM64, ONLY "acpi=off", "acpi=on", "acpi=force" or
 +                      "acpi=nospcr" are available
 +                      For RISCV64, ONLY "acpi=off", "acpi=on" or "acpi=force"
 +                      are available
  
                        See also Documentation/power/runtime_pm.rst, pci=noacpi
  
                        Documentation/networking/netconsole.rst for an
                        alternative.
  
 -              <DEVNAME>:<n>.<n>[,options]
 -                      Use the specified serial port on the serial core bus.
 -                      The addressing uses DEVNAME of the physical serial port
 -                      device, followed by the serial core controller instance,
 -                      and the serial port instance. The options are the same
 -                      as documented for the ttyS addressing above.
 -
 -                      The mapping of the serial ports to the tty instances
 -                      can be viewed with:
 -
 -                      $ ls -d /sys/bus/serial-base/devices/*:*.*/tty/*
 -                      /sys/bus/serial-base/devices/00:04:0.0/tty/ttyS0
 -
 -                      In the above example, the console can be addressed with
 -                      console=00:04:0.0. Note that a console addressed this
 -                      way will only get added when the related device driver
 -                      is ready. The use of an earlycon parameter in addition to
 -                      the console may be desired for console output early on.
 -
                uart[8250],io,<addr>[,options]
                uart[8250],mmio,<addr>[,options]
                uart[8250],mmio16,<addr>[,options]
                        you are really sure that your UEFI does sane gc and
                        fulfills the spec otherwise your board may brick.
  
-       efi_fake_mem=   nn[KMG]@ss[KMG]:aa[,nn[KMG]@ss[KMG]:aa,..] [EFI,X86,EARLY]
-                       Add arbitrary attribute to specific memory range by
-                       updating original EFI memory map.
-                       Region of memory which aa attribute is added to is
-                       from ss to ss+nn.
-                       If efi_fake_mem=2G@4G:0x10000,2G@0x10a0000000:0x10000
-                       is specified, EFI_MEMORY_MORE_RELIABLE(0x10000)
-                       attribute is added to range 0x100000000-0x180000000 and
-                       0x10a0000000-0x1120000000.
-                       If efi_fake_mem=8G@9G:0x40000 is specified, the
-                       EFI_MEMORY_SP(0x40000) attribute is added to
-                       range 0x240000000-0x43fffffff.
-                       Using this parameter you can do debugging of EFI memmap
-                       related features. For example, you can do debugging of
-                       Address Range Mirroring feature even if your box
-                       doesn't support it, or mark specific memory as
-                       "soft reserved".
        efivar_ssdt=    [EFI; X86] Name of an EFI variable that contains an SSDT
                        that is to be dynamically loaded by Linux. If there are
                        multiple variables with the same name but with different
                        deep    - Suspend-To-RAM or equivalent (if supported)
                        See Documentation/admin-guide/pm/sleep-states.rst.
  
 -      mfgpt_irq=      [IA-32] Specify the IRQ to use for the
 -                      Multi-Function General Purpose Timers on AMD Geode
 -                      platforms.
 -
        mfgptfix        [X86-32] Fix MFGPT timers on AMD Geode platforms when
                        the BIOS has incorrectly applied a workaround. TinyBIOS
                        version 0.98 is known to be affected, 0.99 fixes the
                        the ->nocb_bypass queue.  The definition of "too
                        many" is supplied by this kernel boot parameter.
  
 +      rcutree.nohz_full_patience_delay= [KNL]
 +                      On callback-offloaded (rcu_nocbs) CPUs, avoid
 +                      disturbing RCU unless the grace period has
 +                      reached the specified age in milliseconds.
 +                      Defaults to zero.  Large values will be capped
 +                      at five seconds.  All values will be rounded down
 +                      to the nearest value representable by jiffies.
 +
        rcutree.qhimark= [KNL]
                        Set threshold of queued RCU callbacks beyond which
                        batch limiting is disabled.
                        deployment of the HW BHI control and the SW BHB
                        clearing sequence.
  
 -                      on   - (default) Enable the HW or SW mitigation
 -                             as needed.
 -                      off  - Disable the mitigation.
 +                      on     - (default) Enable the HW or SW mitigation as
 +                               needed.  This protects the kernel from
 +                               both syscalls and VMs.
 +                      vmexit - On systems which don't have the HW mitigation
 +                               available, enable the SW mitigation on vmexit
 +                               ONLY.  On such systems, the host kernel is
 +                               protected from VM-originated BHI attacks, but
 +                               may still be vulnerable to syscall attacks.
 +                      off    - Disable the mitigation.
  
        spectre_v2=     [X86,EARLY] Control mitigation of Spectre variant 2
                        (indirect branch speculation) vulnerability.
diff --combined arch/x86/Kconfig
index 125914536825905b76e5f4a0fa8f05bee2d6c832,0c31f65aeb1d5c522f1cdab4272b4be9335c6b56..9778234cf111f9d0d8d172ad5e3b7c5c36c951e5
@@@ -1118,13 -1118,6 +1118,13 @@@ config X86_LOCAL_API
        depends on X86_64 || SMP || X86_32_NON_STANDARD || X86_UP_APIC || PCI_MSI
        select IRQ_DOMAIN_HIERARCHY
  
 +config ACPI_MADT_WAKEUP
 +      def_bool y
 +      depends on X86_64
 +      depends on ACPI
 +      depends on SMP
 +      depends on X86_LOCAL_APIC
 +
  config X86_IO_APIC
        def_bool y
        depends on X86_LOCAL_APIC || X86_UP_IOAPIC
@@@ -2045,26 -2038,6 +2045,6 @@@ config EFI_MIXE
  
          If unsure, say N.
  
- config EFI_FAKE_MEMMAP
-       bool "Enable EFI fake memory map"
-       depends on EFI
-       help
-         Saying Y here will enable "efi_fake_mem" boot option.  By specifying
-         this parameter, you can add arbitrary attribute to specific memory
-         range by updating original (firmware provided) EFI memmap.  This is
-         useful for debugging of EFI memmap related feature, e.g., Address
-         Range Mirroring feature.
- config EFI_MAX_FAKE_MEM
-       int "maximum allowable number of ranges in efi_fake_mem boot option"
-       depends on EFI_FAKE_MEMMAP
-       range 1 128
-       default 8
-       help
-         Maximum allowable number of ranges in efi_fake_mem boot option.
-         Ranges can be set up to this value using comma-separated list.
-         The default value is 8.
  config EFI_RUNTIME_MAP
        bool "Export EFI runtime maps to sysfs" if EXPERT
        depends on EFI
diff --combined arch/x86/kernel/setup.c
index 728927e4ba51edb30fd8ba6dd63a8cbb4efe791a,282e8577ac7b1cd6c70fee9b2475484d56bb34d6..5d34cad9b7b180fed4bd74f947039bc880f1fb53
@@@ -165,7 -165,6 +165,7 @@@ unsigned long saved_video_mode
  static char __initdata command_line[COMMAND_LINE_SIZE];
  #ifdef CONFIG_CMDLINE_BOOL
  static char __initdata builtin_cmdline[COMMAND_LINE_SIZE] = CONFIG_CMDLINE;
 +bool builtin_cmdline_added __ro_after_init;
  #endif
  
  #if defined(CONFIG_EDD) || defined(CONFIG_EDD_MODULE)
@@@ -766,7 -765,6 +766,7 @@@ void __init setup_arch(char **cmdline_p
                strscpy(boot_command_line, builtin_cmdline, COMMAND_LINE_SIZE);
        }
  #endif
 +      builtin_cmdline_added = true;
  #endif
  
        strscpy(command_line, boot_command_line, COMMAND_LINE_SIZE);
        mem_encrypt_setup_arch();
        cc_random_init();
  
-       efi_fake_memmap();
        efi_find_mirror();
        efi_esrt_init();
        efi_mokvar_table_init();
This page took 0.076881 seconds and 4 git commands to generate.