security/vboot: Add Kconfig symbol to set hashing block size

Generally, this size probably doesn't matter very much, but in the
case of picasso's psp_verstage, the hash is being calculated by
hardware using relatively expensive system calls.  By increasing the
block size, we can save roughly 140ms of boot and resume time.

TEST=Build & boot see that boot time has decreased.
BRANCH=Zork
BUG=b:169217270 - Zork: SHA calculation in vboot takes too long

Signed-off-by: Martin Roth <martinroth@chromium.org>
Change-Id: I68eecbbdfadcbf14288dc6e849397724fb66e0b2
Reviewed-on: https://review.coreboot.org/c/coreboot/+/46901
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Furquan Shaikh <furquan@google.com>
Reviewed-by: Kangheui Won <khwon@chromium.org>
This commit is contained in:
Martin Roth
2020-10-28 11:38:57 -06:00
committed by Felix Held
parent 83729bd430
commit 8839b7f109
2 changed files with 12 additions and 3 deletions

View File

@@ -19,8 +19,6 @@
/* The max hash size to expect is for SHA512. */
#define VBOOT_MAX_HASH_SIZE VB2_SHA512_DIGEST_SIZE
#define TODO_BLOCK_SIZE 1024
/* exports */
vb2_error_t vb2ex_read_resource(struct vb2_context *ctx,
@@ -144,7 +142,7 @@ static vb2_error_t hash_body(struct vb2_context *ctx,
{
uint64_t load_ts;
uint32_t remaining;
uint8_t block[TODO_BLOCK_SIZE];
uint8_t block[CONFIG_VBOOT_HASH_BLOCK_SIZE];
uint8_t hash_digest[VBOOT_MAX_HASH_SIZE];
const size_t hash_digest_sz = sizeof(hash_digest);
size_t block_size = sizeof(block);