aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVadim Bendebury <vbendeb@chromium.org>2016-10-27 23:53:02 +0000
committerandroid-build-merger <android-build-merger@google.com>2016-10-27 23:53:02 +0000
commit79d1a575b36d300c2d9e0bba9382a6cbd96cd4dd (patch)
tree832b7c2970fe46e90f6913c92c49b50d554e1a3e
parent8e6ffb6659abcbf0338948d3d10b7faceed061f8 (diff)
parentf5c999fc03d558b398fcda431cd6ea82f03b7453 (diff)
downloadtpm2-79d1a575b36d300c2d9e0bba9382a6cbd96cd4dd.tar.gz
Get firmware version values from the platform am: 15d53c3aca am: d041491105 am: 8844e2b5fc am: 412a7d2d11
am: f5c999fc03 Change-Id: Iaabf328cd0404427a555a2c4cdfc8f54114bc2e3
-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);