@@ -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;
@@ -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 */
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(-)