summaryrefslogtreecommitdiff
path: root/firmware/lib/tpm2_lite/tlcl.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/lib/tpm2_lite/tlcl.c')
-rw-r--r--firmware/lib/tpm2_lite/tlcl.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/firmware/lib/tpm2_lite/tlcl.c b/firmware/lib/tpm2_lite/tlcl.c
index 0af34d08..56829f11 100644
--- a/firmware/lib/tpm2_lite/tlcl.c
+++ b/firmware/lib/tpm2_lite/tlcl.c
@@ -522,3 +522,22 @@ uint32_t TlclGetRandom(uint8_t *data, uint32_t length, uint32_t *size)
VB2_DEBUG("NOT YET IMPLEMENTED\n");
return TPM_E_IOERROR;
}
+
+uint32_t TlclGetVersion(uint32_t* vendor, uint64_t* firmware_version)
+{
+ uint32_t result = tlcl_get_tpm_property(TPM_PT_MANUFACTURER, vendor);
+ if (result != TPM_SUCCESS)
+ return result;
+
+ uint32_t version_1;
+ uint32_t version_2;
+ result = tlcl_get_tpm_property(TPM_PT_FIRMWARE_VERSION_1, &version_1);
+ if (result != TPM_SUCCESS)
+ return result;
+ result = tlcl_get_tpm_property(TPM_PT_FIRMWARE_VERSION_2, &version_2);
+ if (result != TPM_SUCCESS)
+ return result;
+
+ *firmware_version = ((uint64_t) version_1 << 32) | version_2;
+ return TPM_SUCCESS;
+}