vboot: add VBOOT_X86_RSA_ACCELERATION config
Add `VBOOT_X86_RSA_ACCELERATION' Kconfig option to enable SSE2 instruction set implementation of modulus exponentiation which is part of the RSA signature verification process. BUG=b:312709384 TEST=Able to use SSE2 accelerated implementation on rex0 Change-Id: Ib6e39eb9f592f36ad3dca76c8eaf2fe334704265 Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/79289 Reviewed-by: Julius Werner <jwerner@chromium.org> Reviewed-by: Yu-Ping Wu <yupingso@google.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
committed by
Yu-Ping Wu
parent
0c8e54100b
commit
b6dfcb7d18
@@ -301,6 +301,15 @@ config VBOOT_X86_SHA256_ACCELERATION
|
|||||||
Use sha256msg1, sha256msg2, sha256rnds2 instruction to accelerate
|
Use sha256msg1, sha256msg2, sha256rnds2 instruction to accelerate
|
||||||
SHA hash calculation in vboot.
|
SHA hash calculation in vboot.
|
||||||
|
|
||||||
|
config VBOOT_X86_RSA_ACCELERATION
|
||||||
|
bool "Use SSE2 instructions for RSA signature verification"
|
||||||
|
default n
|
||||||
|
depends on ARCH_X86
|
||||||
|
help
|
||||||
|
Use paddq, pmuludq, psrlq, punpckldq and punpcklqdq SSE2
|
||||||
|
instructions to accelerate the modulus exponentiation which
|
||||||
|
is part of the RSA signature verification process.
|
||||||
|
|
||||||
config VBOOT_ARMV8_CE_SHA256_ACCELERATION
|
config VBOOT_ARMV8_CE_SHA256_ACCELERATION
|
||||||
bool "Use ARMv8 Crypto Extension for sha256 hash calculation"
|
bool "Use ARMv8 Crypto Extension for sha256 hash calculation"
|
||||||
default y if CHROMEOS
|
default y if CHROMEOS
|
||||||
|
@@ -30,6 +30,8 @@ $$(VBOOT_LIB_$(1)): $(obj)/config.h
|
|||||||
EC_EFS="$(CONFIG_VBOOT_EC_EFS)" \
|
EC_EFS="$(CONFIG_VBOOT_EC_EFS)" \
|
||||||
X86_SHA_EXT="$(if $(CONFIG_ARCH_$(call toupper,$(1))_X86_32)$(CONFIG_ARCH_$(call toupper,$(1))_X86_64),$\
|
X86_SHA_EXT="$(if $(CONFIG_ARCH_$(call toupper,$(1))_X86_32)$(CONFIG_ARCH_$(call toupper,$(1))_X86_64),$\
|
||||||
$(CONFIG_VBOOT_X86_SHA256_ACCELERATION))" \
|
$(CONFIG_VBOOT_X86_SHA256_ACCELERATION))" \
|
||||||
|
VB2_X86_RSA_ACCELERATION="$(if $(CONFIG_ARCH_$(call toupper,$(1))_X86_32)$(CONFIG_ARCH_$(call toupper,$(1))_X86_64),$\
|
||||||
|
$(CONFIG_VBOOT_X86_RSA_ACCELERATION))" \
|
||||||
ARMV8_CRYPTO_EXT="$(if $(CONFIG_ARCH_$(call toupper,$(1))_ARMV8_64),$$(CONFIG_VBOOT_ARMV8_CE_SHA256_ACCELERATION))" \
|
ARMV8_CRYPTO_EXT="$(if $(CONFIG_ARCH_$(call toupper,$(1))_ARMV8_64),$$(CONFIG_VBOOT_ARMV8_CE_SHA256_ACCELERATION))" \
|
||||||
$(MAKE) -C $(VBOOT_SOURCE) \
|
$(MAKE) -C $(VBOOT_SOURCE) \
|
||||||
BUILD=$$(abspath $$(dir $$(VBOOT_LIB_$(1)))) \
|
BUILD=$$(abspath $$(dir $$(VBOOT_LIB_$(1)))) \
|
||||||
@@ -129,6 +131,10 @@ ramstage-$(CONFIG_MRC_SAVE_HASH_IN_TPM) += mrc_cache_hash_tpm.c
|
|||||||
|
|
||||||
ramstage-$(CONFIG_SOC_AMD_GFX_CACHE_VBIOS_IN_FMAP) += vbios_cache_hash_tpm.c
|
ramstage-$(CONFIG_SOC_AMD_GFX_CACHE_VBIOS_IN_FMAP) += vbios_cache_hash_tpm.c
|
||||||
|
|
||||||
|
ifeq ($(CONFIG_VBOOT_X86_RSA_ACCELERATION),y)
|
||||||
|
CPPFLAGS_common += -DVB2_X86_RSA_ACCELERATION
|
||||||
|
endif
|
||||||
|
|
||||||
ifeq ($(CONFIG_VBOOT_SEPARATE_VERSTAGE),y)
|
ifeq ($(CONFIG_VBOOT_SEPARATE_VERSTAGE),y)
|
||||||
|
|
||||||
$(eval $(call vboot-for-stage,verstage))
|
$(eval $(call vboot-for-stage,verstage))
|
||||||
|
Reference in New Issue
Block a user