diff options
author | Che-Liang Chiou <clchiou@chromium.org> | 2011-04-22 16:01:38 +0800 |
---|---|---|
committer | Che-Liang Chiou <clchiou@chromium.org> | 2011-04-22 16:01:38 +0800 |
commit | 8511f7891b5eca7ae93a147964201a4b57210ff6 (patch) | |
tree | d8da31f66723728bc1241006b57044eb32e9ec0b /firmware/lib/tpm_lite/mocked_tlcl.c | |
parent | d5de032ad661c42caca915db810604f9ff3648b7 (diff) | |
download | vboot-8511f7891b5eca7ae93a147964201a4b57210ff6.tar.gz |
Add option to use mocked TPM driver
Some ARM boards, such as Seaboard, have buggy TPM chip that bricks the borad.
This commit adds a option to use mocked TPM driver.
R=rongchang@chromium.org,rspangler@chromium.org,wad@chromium.org
BUG=chromium-os:14239
TEST=Run verified boot on Seaboard
Review URL: http://codereview.chromium.org/6883040
Change-Id: Iae6133f081c2e3d9daa4e14bb711550e2658e9df
Diffstat (limited to 'firmware/lib/tpm_lite/mocked_tlcl.c')
-rw-r--r-- | firmware/lib/tpm_lite/mocked_tlcl.c | 130 |
1 files changed, 130 insertions, 0 deletions
diff --git a/firmware/lib/tpm_lite/mocked_tlcl.c b/firmware/lib/tpm_lite/mocked_tlcl.c new file mode 100644 index 00000000..9f68202f --- /dev/null +++ b/firmware/lib/tpm_lite/mocked_tlcl.c @@ -0,0 +1,130 @@ +/* Copyright (c) 2010-2011 The Chromium OS Authors. All rights reserved. + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#include "tlcl.h" +#include "tlcl_internal.h" + +uint32_t TlclLibInit(void) { + return TlclStubInit(); +} + +uint32_t TlclStartup(void) { + return TPM_SUCCESS; +} + +uint32_t TlclSaveState(void) { + return TPM_SUCCESS; +} + +uint32_t TlclResume(void) { + return TPM_SUCCESS; +} + +uint32_t TlclSelfTestFull(void) { + return TPM_SUCCESS; +} + +uint32_t TlclContinueSelfTest(void) { + return TPM_SUCCESS; +} + +uint32_t TlclDefineSpace(uint32_t index, uint32_t perm, uint32_t size) { + return TPM_SUCCESS; +} + +uint32_t TlclWrite(uint32_t index, const void* data, uint32_t length) { + return TPM_SUCCESS; +} + +uint32_t TlclRead(uint32_t index, void* data, uint32_t length) { + Memset(data, '\0', length); + return TPM_SUCCESS; +} + +uint32_t TlclWriteLock(uint32_t index) { + return TPM_SUCCESS; +} + +uint32_t TlclReadLock(uint32_t index) { + return TPM_SUCCESS; +} + +uint32_t TlclAssertPhysicalPresence(void) { + return TPM_SUCCESS; +} + +uint32_t TlclPhysicalPresenceCMDEnable(void) { + return TPM_SUCCESS; +} + +uint32_t TlclFinalizePhysicalPresence(void) { + return TPM_SUCCESS; +} + +uint32_t TlclAssertPhysicalPresenceResult(void) { + return TPM_SUCCESS; +} + +uint32_t TlclLockPhysicalPresence(void) { + return TPM_SUCCESS; +} + +uint32_t TlclSetNvLocked(void) { + return TPM_SUCCESS; +} + +int TlclIsOwned(void) { + return 0; +} + +uint32_t TlclForceClear(void) { + return TPM_SUCCESS; +} + +uint32_t TlclSetEnable(void) { + return TPM_SUCCESS; +} + +uint32_t TlclClearEnable(void) { + return TPM_SUCCESS; +} + +uint32_t TlclSetDeactivated(uint8_t flag) { + return TPM_SUCCESS; +} + +uint32_t TlclGetPermanentFlags(TPM_PERMANENT_FLAGS* pflags) { + Memset(pflags, '\0', sizeof(*pflags)); + return TPM_SUCCESS; +} + +uint32_t TlclGetSTClearFlags(TPM_STCLEAR_FLAGS* vflags) { + Memset(vflags, '\0', sizeof(*vflags)); + return TPM_SUCCESS; +} + +uint32_t TlclGetFlags(uint8_t* disable, + uint8_t* deactivated, + uint8_t *nvlocked) { + *disable = 0; + *deactivated = 0; + *nvlocked = 0; + return TPM_SUCCESS; +} + +uint32_t TlclSetGlobalLock(void) { + return TPM_SUCCESS; +} + +uint32_t TlclExtend(int pcr_num, const uint8_t* in_digest, + uint8_t* out_digest) { + Memcpy(out_digest, in_digest, kPcrDigestLength); + return TPM_SUCCESS; +} + +uint32_t TlclGetPermissions(uint32_t index, uint32_t* permissions) { + *permissions = 0; + return TPM_SUCCESS; +} |