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) \