summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--firmware/include/vboot_api.h2
-rw-r--r--firmware/lib/rollback_index.c14
2 files changed, 16 insertions, 0 deletions
diff --git a/firmware/include/vboot_api.h b/firmware/include/vboot_api.h
index 5f11313d..62b9daa1 100644
--- a/firmware/include/vboot_api.h
+++ b/firmware/include/vboot_api.h
@@ -381,6 +381,8 @@ VbError_t VbExTpmOpen(void);
VbError_t VbExTpmSendReceive(const uint8_t* request, uint32_t request_length,
uint8_t* response, uint32_t* response_length);
+/* Utility function to get the virtual dev-mode flag value. 0=off, 1=on */
+VbError_t VbGetVirtualDevMode(int *val);
/*****************************************************************************/
/* Non-volatile storage */
diff --git a/firmware/lib/rollback_index.c b/firmware/lib/rollback_index.c
index 668312e6..4666c3e0 100644
--- a/firmware/lib/rollback_index.c
+++ b/firmware/lib/rollback_index.c
@@ -131,6 +131,20 @@ uint32_t WriteSpaceFirmware(RollbackSpaceFirmware* rsf) {
return TPM_E_CORRUPTED_STATE;
}
+VbError_t VbGetVirtualDevMode(int *val) {
+ RollbackSpaceFirmware rsf;
+
+ VBDEBUG(("TPM: Entering %s()\n", __func__));
+ if (TPM_SUCCESS != ReadSpaceFirmware(&rsf))
+ return VBERROR_TPM_FIRMWARE_SETUP;
+
+ VBDEBUG(("TPM: flags are 0x%02x\n", rsf.flags));
+ *val = (rsf.flags & FLAG_VIRTUAL_DEV_MODE_ON) ? 1 : 0;
+
+ VBDEBUG(("TPM: Leaving %s()\n", __func__));
+ return VBERROR_SUCCESS;
+}
+
uint32_t SetVirtualDevMode(int val) {
RollbackSpaceFirmware rsf;