qemu/hw/tpm/tpm_int.h
<<
>>
Prefs
   1/*
   2 * TPM configuration
   3 *
   4 * Copyright (C) 2011-2013 IBM Corporation
   5 *
   6 * Authors:
   7 *  Stefan Berger    <stefanb@us.ibm.com>
   8 *
   9 * This work is licensed under the terms of the GNU GPL, version 2 or later.
  10 * See the COPYING file in the top-level directory.
  11 */
  12#ifndef TPM_TPM_INT_H
  13#define TPM_TPM_INT_H
  14
  15#include "exec/memory.h"
  16#include "tpm_tis.h"
  17
  18/* overall state of the TPM interface */
  19struct TPMState {
  20    ISADevice busdev;
  21    MemoryRegion mmio;
  22
  23    union {
  24        TPMTISEmuState tis;
  25    } s;
  26
  27    uint8_t     locty_number;
  28    TPMLocality *locty_data;
  29
  30    char *backend;
  31    TPMBackend *be_driver;
  32    TPMVersion be_tpm_version;
  33};
  34
  35#define TPM(obj) OBJECT_CHECK(TPMState, (obj), TYPE_TPM_TIS)
  36
  37#define TPM_STANDARD_CMDLINE_OPTS \
  38    { \
  39        .name = "type", \
  40        .type = QEMU_OPT_STRING, \
  41        .help = "Type of TPM backend", \
  42    }
  43
  44struct tpm_req_hdr {
  45    uint16_t tag;
  46    uint32_t len;
  47    uint32_t ordinal;
  48} QEMU_PACKED;
  49
  50struct tpm_resp_hdr {
  51    uint16_t tag;
  52    uint32_t len;
  53    uint32_t errcode;
  54} QEMU_PACKED;
  55
  56#define TPM_TAG_RQU_COMMAND       0xc1
  57#define TPM_TAG_RQU_AUTH1_COMMAND 0xc2
  58#define TPM_TAG_RQU_AUTH2_COMMAND 0xc3
  59
  60#define TPM_TAG_RSP_COMMAND       0xc4
  61#define TPM_TAG_RSP_AUTH1_COMMAND 0xc5
  62#define TPM_TAG_RSP_AUTH2_COMMAND 0xc6
  63
  64#define TPM_FAIL                  9
  65
  66#define TPM_ORD_ContinueSelfTest  0x53
  67#define TPM_ORD_GetTicks          0xf1
  68
  69
  70/* TPM2 defines */
  71#define TPM2_ST_NO_SESSIONS       0x8001
  72
  73#define TPM2_CC_ReadClock         0x00000181
  74
  75#endif /* TPM_TPM_INT_H */
  76