mirror of
https://github.com/torvalds/linux.git
synced 2026-05-28 09:04:39 +02:00
Merge branch 'efi-sbat' into efi/next
This commit is contained in:
commit
857faddd16
|
|
@ -281,6 +281,30 @@ config EFI_EMBEDDED_FIRMWARE
|
|||
bool
|
||||
select CRYPTO_LIB_SHA256
|
||||
|
||||
config EFI_SBAT
|
||||
def_bool y if EFI_SBAT_FILE!=""
|
||||
|
||||
config EFI_SBAT_FILE
|
||||
string "Embedded SBAT section file path"
|
||||
depends on EFI_ZBOOT
|
||||
help
|
||||
SBAT section provides a way to improve SecureBoot revocations of UEFI
|
||||
binaries by introducing a generation-based mechanism. With SBAT, older
|
||||
UEFI binaries can be prevented from booting by bumping the minimal
|
||||
required generation for the specific component in the bootloader.
|
||||
|
||||
Note: SBAT information is distribution specific, i.e. the owner of the
|
||||
signing SecureBoot certificate must define the SBAT policy. Linux
|
||||
kernel upstream does not define SBAT components and their generations.
|
||||
|
||||
See https://github.com/rhboot/shim/blob/main/SBAT.md for the additional
|
||||
details.
|
||||
|
||||
Specify a file with SBAT data which is going to be embedded as '.sbat'
|
||||
section into the kernel.
|
||||
|
||||
If unsure, leave blank.
|
||||
|
||||
endmenu
|
||||
|
||||
config UEFI_CPER
|
||||
|
|
|
|||
|
|
@ -44,6 +44,10 @@ AFLAGS_zboot-header.o += -DMACHINE_TYPE=IMAGE_FILE_MACHINE_$(EFI_ZBOOT_MACH_TYPE
|
|||
$(obj)/zboot-header.o: $(srctree)/drivers/firmware/efi/libstub/zboot-header.S FORCE
|
||||
$(call if_changed_rule,as_o_S)
|
||||
|
||||
ifneq ($(CONFIG_EFI_SBAT_FILE),)
|
||||
$(obj)/zboot-header.o: $(CONFIG_EFI_SBAT_FILE)
|
||||
endif
|
||||
|
||||
ZBOOT_DEPS := $(obj)/zboot-header.o $(objtree)/drivers/firmware/efi/libstub/lib.a
|
||||
|
||||
LDFLAGS_vmlinuz.efi.elf := -T $(srctree)/drivers/firmware/efi/libstub/zboot.lds
|
||||
|
|
|
|||
|
|
@ -123,11 +123,29 @@ __efistub_efi_zboot_header:
|
|||
IMAGE_SCN_MEM_READ | \
|
||||
IMAGE_SCN_MEM_EXECUTE
|
||||
|
||||
#ifdef CONFIG_EFI_SBAT
|
||||
.ascii ".sbat\0\0\0"
|
||||
.long __sbat_size
|
||||
.long _sbat - .Ldoshdr
|
||||
.long __sbat_size
|
||||
.long _sbat - .Ldoshdr
|
||||
|
||||
.long 0, 0
|
||||
.short 0, 0
|
||||
.long IMAGE_SCN_CNT_INITIALIZED_DATA | \
|
||||
IMAGE_SCN_MEM_READ | \
|
||||
IMAGE_SCN_MEM_DISCARDABLE
|
||||
|
||||
.pushsection ".sbat", "a", @progbits
|
||||
.incbin CONFIG_EFI_SBAT_FILE
|
||||
.popsection
|
||||
#endif
|
||||
|
||||
.ascii ".data\0\0\0"
|
||||
.long __data_size
|
||||
.long _etext - .Ldoshdr
|
||||
.long _data - .Ldoshdr
|
||||
.long __data_rawsize
|
||||
.long _etext - .Ldoshdr
|
||||
.long _data - .Ldoshdr
|
||||
|
||||
.long 0, 0
|
||||
.short 0, 0
|
||||
|
|
|
|||
|
|
@ -29,7 +29,17 @@ SECTIONS
|
|||
. = _etext;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_EFI_SBAT
|
||||
.sbat : ALIGN(4096) {
|
||||
_sbat = .;
|
||||
*(.sbat)
|
||||
_esbat = ALIGN(4096);
|
||||
. = _esbat;
|
||||
}
|
||||
#endif
|
||||
|
||||
.data : ALIGN(4096) {
|
||||
_data = .;
|
||||
*(.data* .init.data*)
|
||||
_edata = ALIGN(512);
|
||||
. = _edata;
|
||||
|
|
@ -52,3 +62,4 @@ PROVIDE(__efistub__gzdata_size =
|
|||
|
||||
PROVIDE(__data_rawsize = ABSOLUTE(_edata - _etext));
|
||||
PROVIDE(__data_size = ABSOLUTE(_end - _etext));
|
||||
PROVIDE(__sbat_size = ABSOLUTE(_esbat - _sbat));
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user