aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVadim Bendebury <vbendeb@chromium.org>2016-10-27 23:48:02 +0000
committerandroid-build-merger <android-build-merger@google.com>2016-10-27 23:48:02 +0000
commitf5c999fc03d558b398fcda431cd6ea82f03b7453 (patch)
tree832b7c2970fe46e90f6913c92c49b50d554e1a3e
parent04f5f822dba86823792483e19d9ea077f5d781d9 (diff)
parent412a7d2d11dd827b45f88950aba6e2d30aeadc08 (diff)
downloadtpm2-f5c999fc03d558b398fcda431cd6ea82f03b7453.tar.gz
Get firmware version values from the platform am: 15d53c3aca am: d041491105 am: 8844e2b5fc
am: 412a7d2d11 Change-Id: I00d72ff7712e8bbcc4d6d0ea771b205e82220c86
-rw-r--r--Manufacture.c8
-rw-r--r--NV.c4
-rw-r--r--include/tpm2/Platform.h9
3 files changed, 19 insertions, 2 deletions
diff --git a/Manufacture.c b/Manufacture.c
index 543aca7..cce1b50 100644
--- a/Manufacture.c
+++ b/Manufacture.c
@@ -62,9 +62,12 @@ TPM_Manufacture(
// initialize command audit list
CommandAuditPreInstall_Init();
// first start up is required to be Startup(CLEAR)
- orderlyShutdown = TPM_SU_CLEAR;
- NvWriteReserved(NV_ORDERLY, &orderlyShutdown);
+ orderlyShutdown = TPM_SU_CLEAR;
+ NvWriteReserved(NV_ORDERLY, &orderlyShutdown);
// initialize the firmware version
+#ifdef EMBEDDED_MODE
+ _plat__GetFwVersion(&gp.firmwareV1, &gp.firmwareV2);
+#else
gp.firmwareV1 = FIRMWARE_V1;
#ifdef FIRMWARE_V2
gp.firmwareV2 = FIRMWARE_V2;
@@ -73,6 +76,7 @@ TPM_Manufacture(
#endif
NvWriteReserved(NV_FIRMWARE_V1, &gp.firmwareV1);
NvWriteReserved(NV_FIRMWARE_V2, &gp.firmwareV2);
+#endif
// initialize the total reset counter to 0
NvWriteReserved(NV_TOTAL_RESET_COUNT, &totalResetCount);
// initialize the clock stuff
diff --git a/NV.c b/NV.c
index 0f01100..e5a9cae 100644
--- a/NV.c
+++ b/NV.c
@@ -658,8 +658,12 @@ NvReadPersistent(
// Algorithm selection persistent data
NvReadReserved(NV_ALGORITHM_SET, &gp.algorithmSet);
// Firmware version persistent data
+#ifdef EMBEDDED_MODE
+ _plat__GetFwVersion(&gp.firmwareV1, &gp.firmwareV2);
+#else
NvReadReserved(NV_FIRMWARE_V1, &gp.firmwareV1);
NvReadReserved(NV_FIRMWARE_V2, &gp.firmwareV2);
+#endif
return;
}
//
diff --git a/include/tpm2/Platform.h b/include/tpm2/Platform.h
index 7b22404..f7bcbcd 100644
--- a/include/tpm2/Platform.h
+++ b/include/tpm2/Platform.h
@@ -375,6 +375,15 @@ _plat__GetEntropy(
uint32_t amount // amount requested
);
+//
+// Get firmware version numbers from the platform.
+//
+LIB_EXPORT void
+_plat__GetFwVersion(
+ uint32_t *fw1,
+ uint32_t *fw2
+);
+
int uart_printf(const char *format, ...);
#define ecprintf(format, args...) uart_printf(format, ## args);