summaryrefslogtreecommitdiff
path: root/src/drivers
diff options
context:
space:
mode:
authorFurquan Shaikh <furquan@chromium.org>2016-11-10 09:49:05 -0800
committerMartin Roth <martinroth@google.com>2016-11-11 22:15:57 +0100
commit8b5d04e1abd1d7c3b9447385b043b0d902d22a54 (patch)
treee59984f678eeefd2632667988a19bcd73478ddc9 /src/drivers
parentffae746c373e6e213636daaf704e619926798841 (diff)
downloadcoreboot-8b5d04e1abd1d7c3b9447385b043b0d902d22a54.tar.xz
lib/tlcl: Ensure tlcl library is initialized only once
Since tlcl library is used other than just vboot driver, ensure that the library is initialized only once per stage. BUG=chrome-os-partner:59355 BRANCH=None TEST=Verified in recovery mode on reef, tlcl library is initialized only once in romstage. Change-Id: I6245fe9ed34f5c174341b7eea8db456b45113287 Signed-off-by: Furquan Shaikh <furquan@chromium.org> Reviewed-on: https://review.coreboot.org/17364 Reviewed-by: Aaron Durbin <adurbin@chromium.org> Tested-by: build bot (Jenkins) Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
Diffstat (limited to 'src/drivers')
-rw-r--r--src/drivers/intel/fsp2_0/memory_init.c21
1 files changed, 2 insertions, 19 deletions
diff --git a/src/drivers/intel/fsp2_0/memory_init.c b/src/drivers/intel/fsp2_0/memory_init.c
index 30da906819..b83356163e 100644
--- a/src/drivers/intel/fsp2_0/memory_init.c
+++ b/src/drivers/intel/fsp2_0/memory_init.c
@@ -12,7 +12,6 @@
*/
#include <antirollback.h>
-#include <arch/early_variables.h>
#include <arch/io.h>
#include <arch/cpu.h>
#include <arch/symbols.h>
@@ -34,22 +33,6 @@
#include <vboot/vboot_common.h>
#include <vb2_api.h>
-static uint8_t tpm_init_done CAR_GLOBAL;
-
-static int mrc_cache_tpm_init(void)
-{
- uint8_t done = car_get_var(tpm_init_done);
-
- if (done)
- return 0;
-
- if (tlcl_lib_init() != VB2_SUCCESS)
- return -1;
-
- car_set_var(tpm_init_done, 1);
- return 0;
-}
-
static void mrc_cache_update_tpm_hash(const uint8_t *data, size_t size)
{
uint8_t data_hash[VB2_SHA256_DIGEST_SIZE];
@@ -74,7 +57,7 @@ static void mrc_cache_update_tpm_hash(const uint8_t *data, size_t size)
return;
/* Initialize TPM driver. */
- if (mrc_cache_tpm_init()) {
+ if (tlcl_lib_init() != VB2_SUCCESS) {
printk(BIOS_ERR, "MRC: TPM driver initialization failed.\n");
return;
}
@@ -206,7 +189,7 @@ static int mrc_cache_verify_tpm_hash(const uint8_t *data, size_t size)
}
/* Initialize TPM driver. */
- if (mrc_cache_tpm_init()) {
+ if (tlcl_lib_init() != VB2_SUCCESS) {
printk(BIOS_ERR, "MRC: TPM driver initialization failed.\n");
return 0;
}