From e914974751a5125cff6fa7078399db6f3aac5641 Mon Sep 17 00:00:00 2001 From: Chris Engel Date: Mon, 3 Aug 2015 16:01:14 -0500 Subject: Trustedboot: Additional commands in trusted boot init sequence - getCap FW Version - TPM Command marshal/unmarshal code Change-Id: Ia9a90b1160c9c3b5d818318771bff21eb013bdf4 RTC: 125287 Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/20056 Tested-by: Jenkins Server Tested-by: Jenkins OP Build CI Reviewed-by: STEPHEN M. CPREK Reviewed-by: Timothy R. Block Reviewed-by: A. Patrick Williams III --- src/include/usr/secureboot/trustedboot_reasoncodes.H | 14 +++++++++++++- src/include/usr/secureboot/trustedbootif.H | 5 +++-- 2 files changed, 16 insertions(+), 3 deletions(-) (limited to 'src/include/usr/secureboot') diff --git a/src/include/usr/secureboot/trustedboot_reasoncodes.H b/src/include/usr/secureboot/trustedboot_reasoncodes.H index 53fb6f8fc..4ee9a16e1 100644 --- a/src/include/usr/secureboot/trustedboot_reasoncodes.H +++ b/src/include/usr/secureboot/trustedboot_reasoncodes.H @@ -33,7 +33,11 @@ namespace TRUSTEDBOOT { MOD_HOST_UPDATE_MASTER_TPM = 0x00, MOD_TPM_INITIALIZE = 0x01, - }; + MOD_TPM_CMD_STARTUP = 0x02, + MOD_TPM_CMD_GETCAPFWVERSION = 0x03, + MOD_TPM_MARSHALCMDDATA = 0x04, + MOD_TPM_UNMARSHALRESPDATA = 0x05, + }; enum TRUSTEDReasonCode { @@ -41,6 +45,14 @@ namespace TRUSTEDBOOT RC_TPM_START_FAIL = SECURE_COMP_ID | 0xA0, RC_TPM_EXISTENCE_FAIL = SECURE_COMP_ID | 0xA1, + RC_TPM_GETCAP_FAIL = SECURE_COMP_ID | 0xA2, + RC_TPM_GETCAP_FW_INVALID_RESP = SECURE_COMP_ID | 0xA3, + RC_TPM_GETCAP2_FAIL = SECURE_COMP_ID | 0xA4, + RC_TPM_GETCAP2_FW_INVALID_RESP = SECURE_COMP_ID | 0xA5, + RC_TPM_MARSHAL_INVALID_CMD = SECURE_COMP_ID | 0xA6, + RC_TPM_MARSHALING_FAIL = SECURE_COMP_ID | 0xA7, + RC_TPM_UNMARSHAL_INVALID_CMD = SECURE_COMP_ID | 0xA8, + RC_TPM_UNMARSHALING_FAIL = SECURE_COMP_ID | 0xA9, }; } diff --git a/src/include/usr/secureboot/trustedbootif.H b/src/include/usr/secureboot/trustedbootif.H index d59cd1e14..dea32b959 100644 --- a/src/include/usr/secureboot/trustedbootif.H +++ b/src/include/usr/secureboot/trustedbootif.H @@ -45,13 +45,14 @@ namespace TRUSTEDBOOT TARGETING::Target* nodeTarget; ///< Node target ptr TPMDD::tpm_chip_types_t chip; ///< Chip Pri vs Backup uint8_t initAttempted:1;///< Has TPM init been run + uint8_t available:1; ///< Is TPM physically in system uint8_t failed:1; ///< Is TPM currently failed mutex_t tpmMutex; ///< TPM Mutex TpmTarget(); }; - /// TPM PCR designations + /// TPM PCR designations enum TPM_Pcr { PCR_0 = 0, @@ -73,7 +74,7 @@ namespace TRUSTEDBOOT void* host_update_master_tpm( void *io_pArgs ); /** - * @brief Extend a measurement into the TPMs and log + * @brief Extend a measurement into the TPMs and log atomically * @param[in] i_pcr PCR to write to * @param[in] i_digest Digest value to write to PCR * @param[in] i_digestSize Byte size of i_digest data -- cgit v1.2.3