"Non-Host Info"
 };
 
+struct tcpa_pc_event {
+       u32 event_id;
+       u32 event_size;
+       u8 event_data[0];
+};
+
 enum tcpa_pc_event_ids {
        SMBIOS = 1,
        BIS_CERT,
        NVRAM,
        OPTION_ROM_EXEC,
        OPTION_ROM_CONFIG,
-       OPTION_ROM_MICROCODE,
+       OPTION_ROM_MICROCODE = 10,
        S_CRTM_VERSION,
        S_CRTM_CONTENTS,
        POST_CONTENTS,
+       HOST_TABLE_OF_DEVICES,
 };
 
 static const char* tcpa_pc_event_id_strings[] = {
-       ""
+       "",
        "SMBIOS",
        "BIS Certificate",
        "POST BIOS ",
        "NVRAM",
        "Option ROM",
        "Option ROM config",
-       "Option ROM microcode",
+       "",
+       "Option ROM microcode ",
        "S-CRTM Version",
-       "S-CRTM Contents",
-       "S-CRTM POST Contents",
-       "POST Contents",
+       "S-CRTM Contents ",
+       "POST Contents ",
+       "Table of Devices",
 };
 
 /* returns pointer to start of pos. entry of tcg log */
        const char *name = "";
        char data[40] = "";
        int i, n_len = 0, d_len = 0;
-       u32 event_id;
+       struct tcpa_pc_event *pc_event;
 
        switch(event->event_type) {
        case PREBOOT:
                }
                break;
        case EVENT_TAG:
-               event_id = be32_to_cpu(*((u32 *)event_entry));
+               pc_event = (struct tcpa_pc_event *)event_entry;
 
                /* ToDo Row data -> Base64 */
 
-               switch (event_id) {
+               switch (pc_event->event_id) {
                case SMBIOS:
                case BIS_CERT:
                case CMOS:
                case NVRAM:
                case OPTION_ROM_EXEC:
                case OPTION_ROM_CONFIG:
-               case OPTION_ROM_MICROCODE:
                case S_CRTM_VERSION:
-               case S_CRTM_CONTENTS:
-               case POST_CONTENTS:
-                       name = tcpa_pc_event_id_strings[event_id];
+                       name = tcpa_pc_event_id_strings[pc_event->event_id];
                        n_len = strlen(name);
                        break;
+               /* hash data */
                case POST_BIOS_ROM:
                case ESCD:
-                       name = tcpa_pc_event_id_strings[event_id];
+               case OPTION_ROM_MICROCODE:
+               case S_CRTM_CONTENTS:
+               case POST_CONTENTS:
+                       name = tcpa_pc_event_id_strings[pc_event->event_id];
                        n_len = strlen(name);
                        for (i = 0; i < 20; i++)
-                               d_len += sprintf(data, "%02x",
-                                               event_entry[8 + i]);
+                               d_len += sprintf(&data[2*i], "%02x",
+                                               pc_event->event_data[i]);
                        break;
                default:
                        break;