mirror of
https://github.com/Telecominfraproject/OpenCellular.git
synced 2025-11-24 02:05:01 +00:00
Originally, we didn't trust the firmware to provide these functions from a standard library. Now, with coreboot, we do. BUG=chromium:611535 BRANCH=none TEST=make runtests; emerge-kevin coreboot depthcharge Change-Id: I4e624c40085f2b665275a38624340b2f6aabcf11 Signed-off-by: Randall Spangler <rspangler@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/399120 Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org>
201 lines
3.2 KiB
C
201 lines
3.2 KiB
C
/* Copyright (c) 2012 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 "sysincludes.h"
|
|
|
|
#include "tlcl.h"
|
|
#include "tlcl_internal.h"
|
|
#include "utility.h"
|
|
#include "vboot_api.h"
|
|
|
|
uint32_t TlclLibInit(void)
|
|
{
|
|
return VbExTpmInit();
|
|
}
|
|
|
|
uint32_t TlclLibClose(void)
|
|
{
|
|
return TPM_SUCCESS;
|
|
}
|
|
|
|
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 TlclPCRRead(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;
|
|
}
|
|
|
|
uint32_t TlclGetOwnership(uint8_t* owned)
|
|
{
|
|
*owned = 0;
|
|
return TPM_SUCCESS;
|
|
}
|
|
|
|
uint32_t TlclGetRandom(uint8_t* data, uint32_t length, uint32_t *size)
|
|
{
|
|
*size = length;
|
|
/* http://dilbert.com/strips/comic/2001-10-25/ */
|
|
memset(data, '\x9', *size);
|
|
return TPM_SUCCESS;
|
|
}
|
|
|
|
int TlclPacketSize(const uint8_t* packet)
|
|
{
|
|
uint32_t size;
|
|
FromTpmUint32(packet + sizeof(uint16_t), &size);
|
|
return (int) size;
|
|
}
|
|
|
|
uint32_t TlclSendReceive(const uint8_t* request, uint8_t* response,
|
|
int max_length)
|
|
{
|
|
return TPM_SUCCESS;
|
|
}
|