@@ -1146,31 +1146,6 @@ FEAT_START
11461146
11471147 est_request -> response = reported_addr (est_response );
11481148FEAT_END
1149-
1150- // TPM event log feature
1151- FEAT_START
1152- struct limine_tpm_event_log_request * tpm_event_log_request = get_request (LIMINE_TPM_EVENT_LOG_REQUEST_ID );
1153- if (tpm_event_log_request == NULL ) {
1154- break ; // next feature
1155- }
1156-
1157- uint32_t tpm_event_log_format ;
1158- void * tpm_event_log_addr ;
1159- size_t tpm_event_log_size ;
1160- if (!tpm_get_event_log (& tpm_event_log_format , & tpm_event_log_addr , & tpm_event_log_size )) {
1161- break ; // no TPM or capture failed
1162- }
1163-
1164- struct limine_tpm_event_log_response * tpm_event_log_response =
1165- ext_mem_alloc (sizeof (struct limine_tpm_event_log_response ));
1166-
1167- tpm_event_log_response -> format = tpm_event_log_format ;
1168- tpm_event_log_response -> size = tpm_event_log_size ;
1169- tpm_event_log_response -> address = tpm_event_log_size > 0
1170- ? reported_addr (tpm_event_log_addr ) : 0 ;
1171-
1172- tpm_event_log_request -> response = reported_addr (tpm_event_log_response );
1173- FEAT_END
11741149#endif
11751150
11761151 // Device tree blob feature
@@ -1712,6 +1687,33 @@ FEAT_START
17121687FEAT_END
17131688
17141689#if defined (UEFI )
1690+ // TPM event log feature. Processed last so GetEventLog snapshots a log
1691+ // containing all of Limine's extends; later extends would land in the
1692+ // final-events table instead.
1693+ FEAT_START
1694+ struct limine_tpm_event_log_request * tpm_event_log_request = get_request (LIMINE_TPM_EVENT_LOG_REQUEST_ID );
1695+ if (tpm_event_log_request == NULL ) {
1696+ break ; // next feature
1697+ }
1698+
1699+ uint32_t tpm_event_log_format ;
1700+ void * tpm_event_log_addr ;
1701+ size_t tpm_event_log_size ;
1702+ if (!tpm_get_event_log (& tpm_event_log_format , & tpm_event_log_addr , & tpm_event_log_size )) {
1703+ break ; // no TPM or capture failed
1704+ }
1705+
1706+ struct limine_tpm_event_log_response * tpm_event_log_response =
1707+ ext_mem_alloc (sizeof (struct limine_tpm_event_log_response ));
1708+
1709+ tpm_event_log_response -> format = tpm_event_log_format ;
1710+ tpm_event_log_response -> size = tpm_event_log_size ;
1711+ tpm_event_log_response -> address = tpm_event_log_size > 0
1712+ ? reported_addr (tpm_event_log_addr ) : 0 ;
1713+
1714+ tpm_event_log_request -> response = reported_addr (tpm_event_log_response );
1715+ FEAT_END
1716+
17151717 efi_exit_boot_services ();
17161718#endif
17171719
0 commit comments