[Skiboot] [PATCH v2 10/20] libstb/tss: update the list of event types supported

Claudio Carvalho cclaudio at linux.vnet.ibm.com
Sat Dec 9 15:52:24 AEDT 2017


Skiboot, precisely the tpmLogMgr, initializes the firmware event log by
calculating its length so that a new event can be recorded without
exceeding the log size. In order to calculate the size, it walks through
the log until it finds an especific event type. However, if the log has
an unknown event type, the tpmLogMgr will not be able to reach the end
of the log.

This updates the list of event types with all of those supported by
hostboot. Thus, skiboot can properly calculate the event log length.

Signed-off-by: Claudio Carvalho <cclaudio at linux.vnet.ibm.com>
---
 libstb/tss/trustedTypes.H | 22 +++++++++++++++++++---
 libstb/tss/trustedboot.H  | 12 +++++++++---
 2 files changed, 28 insertions(+), 6 deletions(-)

diff --git a/libstb/tss/trustedTypes.H b/libstb/tss/trustedTypes.H
index dd42cca..9b68d5b 100644
--- a/libstb/tss/trustedTypes.H
+++ b/libstb/tss/trustedTypes.H
@@ -80,9 +80,25 @@ namespace TRUSTEDBOOT
 
     typedef enum
     {
-        EV_NO_ACTION    = 0x3,     ///< Event field contains info
-        EV_SEPARATOR    = 0x4,     ///< Used to indicate an error
-        EV_ACTION       = 0x5,     ///< Must extend a PCR
+        EV_PREBOOT_CERT            = 0x00,
+        EV_POST_CODE               = 0x01,
+        EV_UNUSED                  = 0x02,
+        EV_NO_ACTION               = 0x03,
+        EV_SEPARATOR               = 0x04,
+        EV_ACTION                  = 0x05,
+        EV_EVENT_TAG               = 0x06,
+        EV_S_CRTM_CONTENTS         = 0x07,
+        EV_S_CRTM_VERSION          = 0x08,
+        EV_CPU_MICROCODE           = 0x09,
+        EV_PLATFORM_CONFIG_FLAGS   = 0x0A,
+        EV_TABLE_OF_DEVICES        = 0x0B,
+        EV_COMPACT_HASH            = 0x0C,
+        EV_IPL                     = 0x0D,   ///< Deprecated
+        EV_IPL_PARTITION_DATA      = 0x0E,   ///< Deprecated
+        EV_NONHOST_CODE            = 0x0F,
+        EV_NONHOST_CONFIG          = 0x10,
+        EV_NONHOST_INFO            = 0x11,
+        EV_OMIT_BOOT_DEVICE_EVENTS = 0x12,
         EV_INVALID                 ///< Used for error checking
     } EventTypes;
 
diff --git a/libstb/tss/trustedboot.H b/libstb/tss/trustedboot.H
index bee3b49..0ddf88b 100644
--- a/libstb/tss/trustedboot.H
+++ b/libstb/tss/trustedboot.H
@@ -64,9 +64,15 @@ typedef enum {
     PCR_5 = 5,
     PCR_6 = 6,
     PCR_7 = 7,
-    /* As defined in the TCG PC Client Platform TPM Profile (PTP)
-     * Specification, Revision 00.43. (TPM_PT_PCR_COUNT) */
-    IMPLEMENTATION_PCR = 24
+        PCR_DEBUG = 16,
+        PCR_DRTM_17 = 17,
+        PCR_DRTM_18 = 18,
+        PCR_DRTM_19 = 19,
+        PCR_DRTM_20 = 20,
+        PCR_DRTM_21 = 21,
+        PCR_DRTM_22 = 22,
+        PLATFORM_PCR = 24, ///< The number of PCR required by the platform spec
+        IMPLEMENTATION_PCR = 24, ///< The number of PCRs implemented by TPM
 } TPM_Pcr;
 
 #endif /* __TSS_TRUSTEDBOOT_H */
-- 
2.7.4



More information about the Skiboot mailing list