Commit 56d5e329 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge tag 'x86-boot-2025-07-29' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull x86 boot updates from Ingo Molnar:

 - Implement support for embedding EFI SBAT data (Secure Boot Advanced
   Targeting: a secure boot image revocation facility) on x86 (Vitaly
   Kuznetsov)

 - Move the efi_enter_virtual_mode() initialization call from the
   generic init code to x86 init code (Alexander Shishkin)

* tag 'x86-boot-2025-07-29' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  x86/efi: Implement support for embedding SBAT data for x86
  x86/efi: Move runtime service initialization to arch/x86
parents 72b8944f 61b57d35
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -71,7 +71,7 @@ $(obj)/vmlinux.bin: $(obj)/compressed/vmlinux FORCE

SETUP_OBJS = $(addprefix $(obj)/,$(setup-y))

sed-zoffset := -e 's/^\([0-9a-fA-F]*\) [a-zA-Z] \(startup_32\|efi.._stub_entry\|efi\(32\)\?_pe_entry\|input_data\|kernel_info\|_end\|_ehead\|_text\|_e\?data\|z_.*\)$$/\#define ZO_\2 0x\1/p'
sed-zoffset := -e 's/^\([0-9a-fA-F]*\) [a-zA-Z] \(startup_32\|efi.._stub_entry\|efi\(32\)\?_pe_entry\|input_data\|kernel_info\|_end\|_ehead\|_text\|_e\?data\|_e\?sbat\|z_.*\)$$/\#define ZO_\2 0x\1/p'

quiet_cmd_zoffset = ZOFFSET $@
      cmd_zoffset = $(NM) $< | sed -n $(sed-zoffset) > $@
+5 −0
Original line number Diff line number Diff line
@@ -106,6 +106,11 @@ vmlinux-objs-$(CONFIG_UNACCEPTED_MEMORY) += $(obj)/mem.o
vmlinux-objs-$(CONFIG_EFI) += $(obj)/efi.o
vmlinux-libs-$(CONFIG_EFI_STUB) += $(objtree)/drivers/firmware/efi/libstub/lib.a
vmlinux-libs-$(CONFIG_X86_64)	+= $(objtree)/arch/x86/boot/startup/lib.a
vmlinux-objs-$(CONFIG_EFI_SBAT) += $(obj)/sbat.o

ifdef CONFIG_EFI_SBAT
$(obj)/sbat.o: $(CONFIG_EFI_SBAT_FILE)
endif

$(obj)/vmlinux: $(vmlinux-objs-y) $(vmlinux-libs-y) FORCE
	$(call if_changed,ld)
+7 −0
Original line number Diff line number Diff line
/* SPDX-License-Identifier: GPL-2.0 */
/*
 * Embed SBAT data in the kernel.
 */
	.pushsection ".sbat", "a", @progbits
	.incbin CONFIG_EFI_SBAT_FILE
	.popsection
+8 −0
Original line number Diff line number Diff line
@@ -43,6 +43,14 @@ SECTIONS
		*(.rodata.*)
		_erodata = . ;
	}
#ifdef CONFIG_EFI_SBAT
	.sbat : ALIGN(0x1000) {
		_sbat = . ;
		*(.sbat)
		_esbat = ALIGN(0x1000);
		. = _esbat;
	}
#endif
	.data :	ALIGN(0x1000) {
		_data = . ;
		*(.data)
+22 −9
Original line number Diff line number Diff line
@@ -179,15 +179,11 @@ pecompat_fstart:
#else
	.set	pecompat_fstart, setup_size
#endif
	.ascii	".text"
	.byte	0
	.byte	0
	.byte	0
	.long	ZO__data
	.long	setup_size
	.long	ZO__data			# Size of initialized data
						# on disk
	.long	setup_size
	.ascii	".text\0\0\0"
	.long	textsize            		# VirtualSize
	.long	setup_size			# VirtualAddress
	.long	textsize			# SizeOfRawData
	.long	setup_size			# PointerToRawData
	.long	0				# PointerToRelocations
	.long	0				# PointerToLineNumbers
	.word	0				# NumberOfRelocations
@@ -196,6 +192,23 @@ pecompat_fstart:
		IMAGE_SCN_MEM_READ		| \
		IMAGE_SCN_MEM_EXECUTE		# Characteristics

#ifdef CONFIG_EFI_SBAT
	.ascii	".sbat\0\0\0"
	.long	ZO__esbat - ZO__sbat            # VirtualSize
	.long	setup_size + ZO__sbat           # VirtualAddress
	.long	ZO__esbat - ZO__sbat            # SizeOfRawData
	.long	setup_size + ZO__sbat           # PointerToRawData

	.long	0, 0, 0
	.long	IMAGE_SCN_CNT_INITIALIZED_DATA	| \
		IMAGE_SCN_MEM_READ		| \
		IMAGE_SCN_MEM_DISCARDABLE	# Characteristics

	.set	textsize, ZO__sbat
#else
	.set	textsize, ZO__data
#endif

	.ascii	".data\0\0\0"
	.long	ZO__end - ZO__data		# VirtualSize
	.long	setup_size + ZO__data		# VirtualAddress
Loading