From 70409217e7a747d8d0113583648b6ac28f256ae9 Mon Sep 17 00:00:00 2001 From: Yidi Lin Date: Tue, 31 Jan 2023 15:09:24 +0800 Subject: libpayload: Add VBOOT_SHA_ARMV8_CE config Add Kconfig option for VBOOT_SHA_ARMV8_CE, which will use ARMv8 Crypto Extension for SHA256[1] instead of software implementation. [1] https://crrev.com/c/4170144 BUG=b:263514393 BRANCH=corsola TEST='vboot kernel verification' gets 111 msecs improvement on Tentacruel. Before: 1100:finished vboot kernel verification 905,150 (123,518) After: 1100:finished vboot kernel verification 787,277 (12,254) Cq-Depend: chromium:4170144, chromium:4242678 Change-Id: If92830830a0658dfad2a066e9efa624783865cf2 Signed-off-by: Yidi Lin Reviewed-on: https://review.coreboot.org/c/coreboot/+/72710 Tested-by: build bot (Jenkins) Reviewed-by: Yu-Ping Wu --- payloads/libpayload/vboot/Kconfig | 8 ++++++++ payloads/libpayload/vboot/Makefile.inc | 1 + 2 files changed, 9 insertions(+) (limited to 'payloads') diff --git a/payloads/libpayload/vboot/Kconfig b/payloads/libpayload/vboot/Kconfig index e712fbbb66..3b02155fc3 100644 --- a/payloads/libpayload/vboot/Kconfig +++ b/payloads/libpayload/vboot/Kconfig @@ -24,4 +24,12 @@ config VBOOT_X86_SHA_EXT This option enables SHA256 implementation using x86 SHA processor extension instructions: sha256msg1, sha256msg2, sha256rnds2. +config VBOOT_SHA_ARMV8_CE + bool "SHA256 implementation using ARMv8 Crypto Extension" + default y if CHROMEOS + default n + depends on ARCH_ARM64 + help + This option enables SHA256 implementation using ARMv8 Crypto Extension. + endif diff --git a/payloads/libpayload/vboot/Makefile.inc b/payloads/libpayload/vboot/Makefile.inc index 3ec3278be2..5677df9e8c 100644 --- a/payloads/libpayload/vboot/Makefile.inc +++ b/payloads/libpayload/vboot/Makefile.inc @@ -37,6 +37,7 @@ $(VBOOT_FW_LIB): $(obj)/libpayload-config.h $(MAKE) -C "$(VBOOT_SOURCE)" \ TPM2_MODE=$(call kconfig-to-binary, $(CONFIG_LP_VBOOT_TPM2_MODE)) \ X86_SHA_EXT=$(call kconfig-to-binary, $(CONFIG_LP_VBOOT_X86_SHA_EXT)) \ + ARMV8_CRYPTO_EXT=$(call kconfig-to-binary, $(CONFIG_LP_VBOOT_SHA_ARMV8_CE)) \ UNROLL_LOOPS=1 \ BUILD="$(VBOOT_BUILD_DIR)" \ V=$(V) \ -- cgit v1.2.1