vboot: add VBOOT_X86_SHA256_ACCELERATION config
Add Kconfig option for VBOOT_X86_SHA256_ACCELERATION, which will
use x86-sha extension for SHA256 instead of software implementation.
TEST=Able to call vb2ex_hwcrypto_digest_init() and perform SHA
using HW crypto engine.
Change-Id: Idc8be8711c69f4ebc489cd37cc3749c0b257c610
Signed-off-by: Subrata Banik <subrata.banik@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/55611
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Julius Werner <jwerner@chromium.org>
diff --git a/src/security/vboot/Kconfig b/src/security/vboot/Kconfig
index 0368758..7cbeea3 100644
--- a/src/security/vboot/Kconfig
+++ b/src/security/vboot/Kconfig
@@ -274,6 +274,14 @@
software sync needs to also support it. This setting tells vboot to
perform EFS software sync.
+config VBOOT_X86_SHA256_ACCELERATION
+ bool "Use sha extension for sha256 hash calculation"
+ default n
+ depends on ARCH_X86
+ help
+ Use sha256msg1, sha256msg2, sha256rnds2 instruction to accelerate
+ SHA hash calculation in vboot.
+
menu "GBB configuration"
config GBB_HWID
diff --git a/src/security/vboot/Makefile.inc b/src/security/vboot/Makefile.inc
index 47830f3..d604d1c 100644
--- a/src/security/vboot/Makefile.inc
+++ b/src/security/vboot/Makefile.inc
@@ -28,6 +28,7 @@
CC="$$(CC_$(1))" \
CFLAGS="$$(VBOOT_CFLAGS_$(1))" VBOOT2="y" \
EC_EFS="$(CONFIG_VBOOT_EC_EFS)" \
+ X86_SHA_EXT="$(CONFIG_VBOOT_X86_SHA256_ACCELERATION)" \
$(MAKE) -C $(VBOOT_SOURCE) \
BUILD=$$(abspath $$(dir $$(VBOOT_LIB_$(1)))) \
V=$(V) \