[15/19] libstb/tss: update the list of event types supported

Message ID 1510421322-27237-16-git-send-email-cclaudio@linux.vnet.ibm.com
State New
Headers show
Series
  • libstb: add support for secure and trusted boot in P9
Related show

Commit Message

Claudio Carvalho Nov. 11, 2017, 5:28 p.m.
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@linux.vnet.ibm.com>
---
 libstb/tss/trustedTypes.H | 22 +++++++++++++++++++---
 libstb/tss/trustedboot.H  | 12 +++++++++---
 2 files changed, 28 insertions(+), 6 deletions(-)

Patch

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 */