Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752786AbcLGNSH (ORCPT ); Wed, 7 Dec 2016 08:18:07 -0500 Received: from mx1.redhat.com ([209.132.183.28]:34132 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751827AbcLGNSF (ORCPT ); Wed, 7 Dec 2016 08:18:05 -0500 Subject: [PATCH 0/8] efi: Pass secure boot mode to kernel [ver #5] From: David Howells To: matt@codeblueprint.co.uk, ard.biesheuvel@linaro.org Cc: linux-efi@vger.kernel.org, linux-kernel@vger.kernel.org, dhowells@redhat.com, linux-security-module@vger.kernel.org, keyrings@vger.kernel.org, linux-arm-kernel@lists.infradead.org Date: Wed, 07 Dec 2016 13:18:02 +0000 Message-ID: <148111668193.23390.6340512985876251017.stgit@warthog.procyon.org.uk> User-Agent: StGit/0.17.1-dirty MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.29]); Wed, 07 Dec 2016 13:18:05 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2468 Lines: 71 Here's a set of patches that can determine the secure boot state of the UEFI BIOS and pass that along to the main kernel image. This involves generalising ARM's efi_get_secureboot() function and making it mixed-mode safe. Changes: Ver 5: - Fix i386 compilation error (rsi should've been changed to esi). - Fix arm64 compilation error ('sys_table_arg' is a hidden macro parameter). Ver 4: - Use an enum to tell the kernel whether secure boot mode is enabled, disabled, couldn't be determined or wasn't even tried due to not being in EFI mode. - Support the UEFI-2.6 DeployedMode flag. - Don't clear boot_params->secure_boot in x86 sanitize_boot_params(). - Preclear the boot_params->secure_boot on x86 head_*.S entry if we may not go through efi_main(). The patches can be found here also: http://git.kernel.org/cgit/linux/kernel/git/dhowells/linux-fs.git/log/?h=efi-secure-boot at tag: efi-secure-boot-20161207-2 Note that the patches are not terminal on the branch. David --- Ard Biesheuvel (1): efi: use typed function pointers for runtime services table David Howells (5): x86/efi: Allow invocation of arbitrary runtime services arm/efi: Allow invocation of arbitrary runtime services efi: Add SHIM and image security database GUID definitions efi: Get the secure boot status efi: Handle secure boot from UEFI-2.6 Josh Boyer (2): efi: Disable secure boot if shim is in insecure mode efi: Add EFI_SECURE_BOOT bit Documentation/x86/zero-page.txt | 2 + arch/arm/include/asm/efi.h | 1 arch/arm64/include/asm/efi.h | 1 arch/x86/boot/compressed/eboot.c | 3 + arch/x86/boot/compressed/head_32.S | 7 +- arch/x86/boot/compressed/head_64.S | 9 +-- arch/x86/include/asm/bootparam_utils.h | 5 + arch/x86/include/asm/efi.h | 5 + arch/x86/include/uapi/asm/bootparam.h | 3 + arch/x86/kernel/asm-offsets.c | 1 arch/x86/kernel/setup.c | 15 ++++ drivers/firmware/efi/libstub/Makefile | 2 - drivers/firmware/efi/libstub/arm-stub.c | 58 +--------------- drivers/firmware/efi/libstub/secureboot.c | 102 +++++++++++++++++++++++++++++ include/linux/efi.h | 52 ++++++++++----- 15 files changed, 182 insertions(+), 84 deletions(-) create mode 100644 drivers/firmware/efi/libstub/secureboot.c