summaryrefslogtreecommitdiff
path: root/src/tcgbios.h
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2015-11-19 09:24:18 -0500
committerKevin O'Connor <kevin@koconnor.net>2015-11-19 16:04:15 -0500
commitdf50aaabd34894286707c6d1c08730b8d0324cb3 (patch)
treed23c03012d41e9a20ea87bf698cb42f0cb83f363 /src/tcgbios.h
parentdc8eb671325599f9222b48a3297e584c84d7c3ba (diff)
downloadqemu-seabios-df50aaabd34894286707c6d1c08730b8d0324cb3.tar.gz
tpm: Move standard definitions from tcgbios.h to new file std/tcg.h
Tested-by: Stefan Berger <stefanb@us.ibm.com> Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'src/tcgbios.h')
-rw-r--r--src/tcgbios.h345
1 files changed, 0 insertions, 345 deletions
diff --git a/src/tcgbios.h b/src/tcgbios.h
index 2b0b65d..26a492c 100644
--- a/src/tcgbios.h
+++ b/src/tcgbios.h
@@ -3,365 +3,20 @@
#include "types.h"
-/* Define for section 12.3 */
-#define TCG_PC_OK 0x0
-#define TCG_PC_TPMERROR 0x1
-#define TCG_PC_LOGOVERFLOW 0x2
-#define TCG_PC_UNSUPPORTED 0x3
-
-#define TPM_ALG_SHA 0x4
-
-#define TCG_MAGIC 0x41504354L
-#define TCG_VERSION_MAJOR 1
-#define TCG_VERSION_MINOR 2
-
-#define TPM_OK 0x0
-#define TPM_RET_BASE 0x1
-#define TCG_GENERAL_ERROR (TPM_RET_BASE + 0x0)
-#define TCG_TPM_IS_LOCKED (TPM_RET_BASE + 0x1)
-#define TCG_NO_RESPONSE (TPM_RET_BASE + 0x2)
-#define TCG_INVALID_RESPONSE (TPM_RET_BASE + 0x3)
-#define TCG_INVALID_ACCESS_REQUEST (TPM_RET_BASE + 0x4)
-#define TCG_FIRMWARE_ERROR (TPM_RET_BASE + 0x5)
-#define TCG_INTEGRITY_CHECK_FAILED (TPM_RET_BASE + 0x6)
-#define TCG_INVALID_DEVICE_ID (TPM_RET_BASE + 0x7)
-#define TCG_INVALID_VENDOR_ID (TPM_RET_BASE + 0x8)
-#define TCG_UNABLE_TO_OPEN (TPM_RET_BASE + 0x9)
-#define TCG_UNABLE_TO_CLOSE (TPM_RET_BASE + 0xa)
-#define TCG_RESPONSE_TIMEOUT (TPM_RET_BASE + 0xb)
-#define TCG_INVALID_COM_REQUEST (TPM_RET_BASE + 0xc)
-#define TCG_INVALID_ADR_REQUEST (TPM_RET_BASE + 0xd)
-#define TCG_WRITE_BYTE_ERROR (TPM_RET_BASE + 0xe)
-#define TCG_READ_BYTE_ERROR (TPM_RET_BASE + 0xf)
-#define TCG_BLOCK_WRITE_TIMEOUT (TPM_RET_BASE + 0x10)
-#define TCG_CHAR_WRITE_TIMEOUT (TPM_RET_BASE + 0x11)
-#define TCG_CHAR_READ_TIMEOUT (TPM_RET_BASE + 0x12)
-#define TCG_BLOCK_READ_TIMEOUT (TPM_RET_BASE + 0x13)
-#define TCG_TRANSFER_ABORT (TPM_RET_BASE + 0x14)
-#define TCG_INVALID_DRV_FUNCTION (TPM_RET_BASE + 0x15)
-#define TCG_OUTPUT_BUFFER_TOO_SHORT (TPM_RET_BASE + 0x16)
-#define TCG_FATAL_COM_ERROR (TPM_RET_BASE + 0x17)
-#define TCG_INVALID_INPUT_PARA (TPM_RET_BASE + 0x18)
-#define TCG_TCG_COMMAND_ERROR (TPM_RET_BASE + 0x19)
-#define TCG_INTERFACE_SHUTDOWN (TPM_RET_BASE + 0x20)
-//define TCG_PC_UNSUPPORTED (TPM_RET_BASE + 0x21)
-#define TCG_PC_TPM_NOT_PRESENT (TPM_RET_BASE + 0x22)
-#define TCG_PC_TPM_DEACTIVATED (TPM_RET_BASE + 0x23)
-
-
-#define TPM_ORD_SelfTestFull 0x00000050
-#define TPM_ORD_ForceClear 0x0000005d
-#define TPM_ORD_GetCapability 0x00000065
-#define TPM_ORD_PhysicalEnable 0x0000006f
-#define TPM_ORD_PhysicalDisable 0x00000070
-#define TPM_ORD_SetOwnerInstall 0x00000071
-#define TPM_ORD_PhysicalSetDeactivated 0x00000072
-#define TPM_ORD_SetTempDeactivated 0x00000073
-#define TPM_ORD_Startup 0x00000099
-#define TPM_ORD_PhysicalPresence 0x4000000a
-#define TPM_ORD_Extend 0x00000014
-#define TPM_ORD_SHA1Start 0x000000a0
-#define TPM_ORD_SHA1Update 0x000000a1
-#define TPM_ORD_SHA1Complete 0x000000a2
-#define TSC_ORD_ResetEstablishmentBit 0x4000000b
-
-
-#define TPM_ST_CLEAR 0x1
-#define TPM_ST_STATE 0x2
-#define TPM_ST_DEACTIVATED 0x3
-
-
-/* TPM command error codes */
-#define TPM_INVALID_POSTINIT 0x26
-#define TPM_BAD_LOCALITY 0x3d
-
-/* TPM command tags */
-#define TPM_TAG_RQU_CMD 0x00c1
-
-/* interrupt identifiers (al register) */
-enum irq_ids {
- TCG_StatusCheck = 0,
- TCG_HashLogExtendEvent = 1,
- TCG_PassThroughToTPM = 2,
- TCG_ShutdownPreBootInterface = 3,
- TCG_HashLogEvent = 4,
- TCG_HashAll = 5,
- TCG_TSS = 6,
- TCG_CompactHashLogExtendEvent = 7,
-};
-
-/* event types: 10.4.1 / table 11 */
-#define EV_POST_CODE 1
-#define EV_SEPARATOR 4
-#define EV_ACTION 5
-#define EV_EVENT_TAG 6
-#define EV_COMPACT_HASH 12
-#define EV_IPL 13
-#define EV_IPL_PARTITION_DATA 14
-
-
#define STATUS_FLAG_SHUTDOWN (1 << 0)
-#define SHA1_BUFSIZE 20
-
-
struct iovec
{
size_t length;
const void *data;
};
-
-/* Input and Output blocks for the TCG BIOS commands */
-
-struct hleei_short
-{
- u16 ipblength;
- u16 reserved;
- const void *hashdataptr;
- u32 hashdatalen;
- u32 pcrindex;
- const void *logdataptr;
- u32 logdatalen;
-} PACKED;
-
-
-struct hleei_long
-{
- u16 ipblength;
- u16 reserved;
- void *hashdataptr;
- u32 hashdatalen;
- u32 pcrindex;
- u32 reserved2;
- void *logdataptr;
- u32 logdatalen;
-} PACKED;
-
-
-struct hleeo
-{
- u16 opblength;
- u16 reserved;
- u32 eventnumber;
- u8 digest[SHA1_BUFSIZE];
-} PACKED;
-
-
-struct pttti
-{
- u16 ipblength;
- u16 reserved;
- u16 opblength;
- u16 reserved2;
- u8 tpmopin[0];
-} PACKED;
-
-
-struct pttto
-{
- u16 opblength;
- u16 reserved;
- u8 tpmopout[0];
-};
-
-
-struct hlei
-{
- u16 ipblength;
- u16 reserved;
- const void *hashdataptr;
- u32 hashdatalen;
- u32 pcrindex;
- u32 logeventtype;
- const void *logdataptr;
- u32 logdatalen;
-} PACKED;
-
-
-struct hleo
-{
- u16 opblength;
- u16 reserved;
- u32 eventnumber;
-} PACKED;
-
-
-struct hai
-{
- u16 ipblength;
- u16 reserved;
- const void *hashdataptr;
- u32 hashdatalen;
- u32 algorithmid;
-} PACKED;
-
-
-struct ti
-{
- u16 ipblength;
- u16 reserved;
- u16 opblength;
- u16 reserved2;
- u8 tssoperandin[0];
-} PACKED;
-
-
-struct to
-{
- u16 opblength;
- u16 reserved;
- u8 tssoperandout[0];
-} PACKED;
-
-
-struct pcpes
-{
- u32 pcrindex;
- u32 eventtype;
- u8 digest[SHA1_BUFSIZE];
- u32 eventdatasize;
- u32 event;
-} PACKED;
-
-struct pcctes
-{
- u32 eventid;
- u32 eventdatasize;
- u8 digest[SHA1_BUFSIZE];
-} PACKED;
-
-struct pcctes_romex
-{
- u32 eventid;
- u32 eventdatasize;
- u16 reserved;
- u16 pfa;
- u8 digest[SHA1_BUFSIZE];
-} PACKED;
-
-
-#define TPM_REQ_HEADER \
- u16 tag; \
- u32 totlen; \
- u32 ordinal;
-
-#define TPM_REQ_HEADER_SIZE (sizeof(u16) + sizeof(u32) + sizeof(u32))
-
-#define TPM_RSP_HEADER \
- u16 tag; \
- u32 totlen; \
- u32 errcode;
-
-#define TPM_RSP_HEADER_SIZE (sizeof(u16) + sizeof(u32) + sizeof(u32))
-
-struct tpm_req_header {
- TPM_REQ_HEADER;
-} PACKED;
-
-
-struct tpm_rsp_header {
- TPM_RSP_HEADER;
-} PACKED;
-
-
-struct tpm_req_extend {
- TPM_REQ_HEADER
- u32 pcrindex;
- u8 digest[SHA1_BUFSIZE];
-} PACKED;
-
-
-struct tpm_rsp_extend {
- TPM_RSP_HEADER
- u8 digest[SHA1_BUFSIZE];
-} PACKED;
-
-
-struct tpm_req_getcap_perm_flags {
- TPM_REQ_HEADER
- u32 capArea;
- u32 subCapSize;
- u32 subCap;
-} PACKED;
-
-
-struct tpm_permanent_flags {
- u16 tag;
- u8 flags[20];
-} PACKED;
-
-
-enum permFlagsIndex {
- PERM_FLAG_IDX_DISABLE = 0,
- PERM_FLAG_IDX_OWNERSHIP,
- PERM_FLAG_IDX_DEACTIVATED,
- PERM_FLAG_IDX_READPUBEK,
- PERM_FLAG_IDX_DISABLEOWNERCLEAR,
- PERM_FLAG_IDX_ALLOW_MAINTENANCE,
- PERM_FLAG_IDX_PHYSICAL_PRESENCE_LIFETIME_LOCK,
- PERM_FLAG_IDX_PHYSICAL_PRESENCE_HW_ENABLE,
-};
-
-
-struct tpm_res_getcap_perm_flags {
- TPM_RSP_HEADER
- u32 size;
- struct tpm_permanent_flags perm_flags;
-} PACKED;
-
-
-struct tpm_res_getcap_ownerauth {
- TPM_RSP_HEADER
- u32 size;
- u8 flag;
-} PACKED;
-
-
-struct tpm_res_getcap_timeouts {
- TPM_RSP_HEADER
- u32 size;
- u32 timeouts[4];
-} PACKED;
-
-
-struct tpm_res_getcap_durations {
- TPM_RSP_HEADER
- u32 size;
- u32 durations[3];
-} PACKED;
-
-
-struct tpm_res_sha1start {
- TPM_RSP_HEADER
- u32 max_num_bytes;
-} PACKED;
-
-
-struct tpm_res_sha1complete {
- TPM_RSP_HEADER
- u8 hash[20];
-} PACKED;
-
-struct pttti_extend {
- struct pttti pttti;
- struct tpm_req_extend req;
-} PACKED;
-
-
-struct pttto_extend {
- struct pttto pttto;
- struct tpm_rsp_extend rsp;
-} PACKED;
-
-
enum ipltype {
IPL_BCV = 0,
IPL_EL_TORITO_1,
IPL_EL_TORITO_2
};
-
struct bregs;
void tpm_interrupt_handler32(struct bregs *regs);