blob: b035ebdc8253bd945deaf88e1e9ce9401d26cf5a [file] [log] [blame]
/* Copyright (c) 2010 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.
*
* Some TPM constants and type definitions for standalone compilation for use in
* the firmware
*/
/* FIXME(gauravsh):
* NOTE: This file is copied over from
* src/platform/tpm_lite/src/tlcl/tss_constants.h
* Ideally, we want to directly include it without having two maintain
* duplicate copies in sync. But in the current model, this is hard
* to do without breaking standalone compilation.
* Eventually tpm_lite should be moved into vboot_reference.
*/
#ifndef TPM_LITE_TSS_CONSTANTS_H_
#define TPM_LITE_TSS_CONSTANTS_H_
#include "sysincludes.h"
#define TPM_MAX_COMMAND_SIZE 4096
#define TPM_LARGE_ENOUGH_COMMAND_SIZE 256 /* saves space in the firmware */
#define TPM_SUCCESS ((uint32_t)0x00000000)
#define TPM_E_BADINDEX ((uint32_t)0x00000002)
#define TPM_E_MAXNVWRITES ((uint32_t)0x00000048)
#define TPM_E_OWNER_SET ((uint32_t)0x00000014)
#define TPM_E_ALREADY_INITIALIZED ((uint32_t)0x00005000) /* vboot local */
#define TPM_E_INTERNAL_INCONSISTENCY ((uint32_t)0x00005001) /* vboot local */
#define TPM_E_MUST_REBOOT ((uint32_t)0x00005002) /* vboot local */
#define TPM_E_CORRUPTED_STATE ((uint32_t)0x00005003) /* vboot local */
#define TPM_NV_INDEX0 ((uint32_t)0x00000000)
#define TPM_NV_INDEX_LOCK ((uint32_t)0xffffffff)
#define TPM_NV_PER_WRITE_STCLEAR (((uint32_t)1)<<14)
#define TPM_NV_PER_PPWRITE (((uint32_t)1)<<0)
#define TPM_NV_PER_GLOBALLOCK (((uint32_t)1)<<15)
typedef uint8_t TSS_BOOL;
typedef uint16_t TPM_STRUCTURE_TAG;
typedef struct tdTPM_WRITE_INFO {
uint32_t nvIndex;
uint32_t offset;
uint32_t dataSize;
} TPM_WRITE_INFO;
typedef struct tdTPM_PERMANENT_FLAGS
{
TPM_STRUCTURE_TAG tag;
TSS_BOOL disable;
TSS_BOOL ownership;
TSS_BOOL deactivated;
TSS_BOOL readPubek;
TSS_BOOL disableOwnerClear;
TSS_BOOL allowMaintenance;
TSS_BOOL physicalPresenceLifetimeLock;
TSS_BOOL physicalPresenceHWEnable;
TSS_BOOL physicalPresenceCMDEnable;
TSS_BOOL CEKPUsed;
TSS_BOOL TPMpost;
TSS_BOOL TPMpostLock;
TSS_BOOL FIPS;
TSS_BOOL Operator;
TSS_BOOL enableRevokeEK;
TSS_BOOL nvLocked;
TSS_BOOL readSRKPub;
TSS_BOOL tpmEstablished;
TSS_BOOL maintenanceDone;
TSS_BOOL disableFullDALogicInfo;
} TPM_PERMANENT_FLAGS;
#define TPM_ALL_LOCALITIES (TPM_LOC_ZERO | TPM_LOC_ONE | TPM_LOC_TWO \
| TPM_LOC_THREE | TPM_LOC_FOUR) /* 0x1f */
#define TPM_ENCAUTH_SIZE 20
#define TPM_PUBEK_SIZE 256
#endif /* TPM_LITE_TSS_CONSTANTS_H_ */