|
@@ -114,6 +114,7 @@ enum tpm2_command_codes {
|
|
TPM2_CC_CREATE = 0x0153,
|
|
TPM2_CC_CREATE = 0x0153,
|
|
TPM2_CC_LOAD = 0x0157,
|
|
TPM2_CC_LOAD = 0x0157,
|
|
TPM2_CC_UNSEAL = 0x015E,
|
|
TPM2_CC_UNSEAL = 0x015E,
|
|
|
|
+ TPM2_CC_CONTEXT_SAVE = 0x0162,
|
|
TPM2_CC_FLUSH_CONTEXT = 0x0165,
|
|
TPM2_CC_FLUSH_CONTEXT = 0x0165,
|
|
TPM2_CC_GET_CAPABILITY = 0x017A,
|
|
TPM2_CC_GET_CAPABILITY = 0x017A,
|
|
TPM2_CC_GET_RANDOM = 0x017B,
|
|
TPM2_CC_GET_RANDOM = 0x017B,
|
|
@@ -127,15 +128,25 @@ enum tpm2_permanent_handles {
|
|
};
|
|
};
|
|
|
|
|
|
enum tpm2_capabilities {
|
|
enum tpm2_capabilities {
|
|
|
|
+ TPM2_CAP_COMMANDS = 2,
|
|
TPM2_CAP_PCRS = 5,
|
|
TPM2_CAP_PCRS = 5,
|
|
TPM2_CAP_TPM_PROPERTIES = 6,
|
|
TPM2_CAP_TPM_PROPERTIES = 6,
|
|
};
|
|
};
|
|
|
|
|
|
|
|
+enum tpm2_properties {
|
|
|
|
+ TPM_PT_TOTAL_COMMANDS = 0x0129,
|
|
|
|
+};
|
|
|
|
+
|
|
enum tpm2_startup_types {
|
|
enum tpm2_startup_types {
|
|
TPM2_SU_CLEAR = 0x0000,
|
|
TPM2_SU_CLEAR = 0x0000,
|
|
TPM2_SU_STATE = 0x0001,
|
|
TPM2_SU_STATE = 0x0001,
|
|
};
|
|
};
|
|
|
|
|
|
|
|
+enum tpm2_cc_attrs {
|
|
|
|
+ TPM2_CC_ATTR_CHANDLES = 25,
|
|
|
|
+ TPM2_CC_ATTR_RHANDLE = 28,
|
|
|
|
+};
|
|
|
|
+
|
|
#define TPM_VID_INTEL 0x8086
|
|
#define TPM_VID_INTEL 0x8086
|
|
#define TPM_VID_WINBOND 0x1050
|
|
#define TPM_VID_WINBOND 0x1050
|
|
#define TPM_VID_STM 0x104A
|
|
#define TPM_VID_STM 0x104A
|
|
@@ -199,6 +210,9 @@ struct tpm_chip {
|
|
acpi_handle acpi_dev_handle;
|
|
acpi_handle acpi_dev_handle;
|
|
char ppi_version[TPM_PPI_VERSION_LEN + 1];
|
|
char ppi_version[TPM_PPI_VERSION_LEN + 1];
|
|
#endif /* CONFIG_ACPI */
|
|
#endif /* CONFIG_ACPI */
|
|
|
|
+
|
|
|
|
+ u32 nr_commands;
|
|
|
|
+ u32 *cc_attrs_tbl;
|
|
};
|
|
};
|
|
|
|
|
|
#define to_tpm_chip(d) container_of(d, struct tpm_chip, dev)
|
|
#define to_tpm_chip(d) container_of(d, struct tpm_chip, dev)
|
|
@@ -556,4 +570,5 @@ int tpm2_auto_startup(struct tpm_chip *chip);
|
|
void tpm2_shutdown(struct tpm_chip *chip, u16 shutdown_type);
|
|
void tpm2_shutdown(struct tpm_chip *chip, u16 shutdown_type);
|
|
unsigned long tpm2_calc_ordinal_duration(struct tpm_chip *chip, u32 ordinal);
|
|
unsigned long tpm2_calc_ordinal_duration(struct tpm_chip *chip, u32 ordinal);
|
|
int tpm2_probe(struct tpm_chip *chip);
|
|
int tpm2_probe(struct tpm_chip *chip);
|
|
|
|
+int tpm2_find_cc(struct tpm_chip *chip, u32 cc);
|
|
#endif
|
|
#endif
|