• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 
2 #ifndef __TPM_EVENTLOG_H__
3 #define __TPM_EVENTLOG_H__
4 
5 #define TCG_EVENT_NAME_LEN_MAX	255
6 #define MAX_TEXT_EVENT		1000	/* Max event string length */
7 #define ACPI_TCPA_SIG		"TCPA"	/* 0x41504354 /'TCPA' */
8 
9 #ifdef CONFIG_PPC64
10 #define do_endian_conversion(x) be32_to_cpu(x)
11 #else
12 #define do_endian_conversion(x) x
13 #endif
14 
15 enum bios_platform_class {
16 	BIOS_CLIENT = 0x00,
17 	BIOS_SERVER = 0x01,
18 };
19 
20 struct tpm_bios_log {
21 	void *bios_event_log;
22 	void *bios_event_log_end;
23 };
24 
25 struct tcpa_event {
26 	u32 pcr_index;
27 	u32 event_type;
28 	u8 pcr_value[20];	/* SHA1 */
29 	u32 event_size;
30 	u8 event_data[0];
31 };
32 
33 enum tcpa_event_types {
34 	PREBOOT = 0,
35 	POST_CODE,
36 	UNUSED,
37 	NO_ACTION,
38 	SEPARATOR,
39 	ACTION,
40 	EVENT_TAG,
41 	SCRTM_CONTENTS,
42 	SCRTM_VERSION,
43 	CPU_MICROCODE,
44 	PLATFORM_CONFIG_FLAGS,
45 	TABLE_OF_DEVICES,
46 	COMPACT_HASH,
47 	IPL,
48 	IPL_PARTITION_DATA,
49 	NONHOST_CODE,
50 	NONHOST_CONFIG,
51 	NONHOST_INFO,
52 };
53 
54 struct tcpa_pc_event {
55 	u32 event_id;
56 	u32 event_size;
57 	u8 event_data[0];
58 };
59 
60 enum tcpa_pc_event_ids {
61 	SMBIOS = 1,
62 	BIS_CERT,
63 	POST_BIOS_ROM,
64 	ESCD,
65 	CMOS,
66 	NVRAM,
67 	OPTION_ROM_EXEC,
68 	OPTION_ROM_CONFIG,
69 	OPTION_ROM_MICROCODE = 10,
70 	S_CRTM_VERSION,
71 	S_CRTM_CONTENTS,
72 	POST_CONTENTS,
73 	HOST_TABLE_OF_DEVICES,
74 };
75 
76 int read_log(struct tpm_bios_log *log);
77 
78 #if defined(CONFIG_TCG_IBMVTPM) || defined(CONFIG_TCG_IBMVTPM_MODULE) || \
79 	defined(CONFIG_ACPI)
80 extern struct dentry **tpm_bios_log_setup(char *);
81 extern void tpm_bios_log_teardown(struct dentry **);
82 #else
tpm_bios_log_setup(char * name)83 static inline struct dentry **tpm_bios_log_setup(char *name)
84 {
85 	return NULL;
86 }
tpm_bios_log_teardown(struct dentry ** dir)87 static inline void tpm_bios_log_teardown(struct dentry **dir)
88 {
89 }
90 #endif
91 
92 #endif
93