feat(libtl): bump version to get event log funcs
LibTL now provides APIs for handling event logs from a transfer list.
Bump to that version and get rid of existing functions that duplicate
that behaviour.
Signed-off-by: Harrison Mutai <harrison.mutai@arm.com>
Change-Id: I4967144657765741b390cf6cda56e08a2da0eadf
diff --git a/contrib/libtl b/contrib/libtl
index 38b309b..022175f 160000
--- a/contrib/libtl
+++ b/contrib/libtl
@@ -1 +1 @@
-Subproject commit 38b309b70f830280af038e03c51082df8f54a149
+Subproject commit 022175f49371aeb3bb267201ae06125fd6ae262e
diff --git a/docs/getting_started/requirements.rst b/docs/getting_started/requirements.rst
index 3c27b9d..91d146f 100644
--- a/docs/getting_started/requirements.rst
+++ b/docs/getting_started/requirements.rst
@@ -26,6 +26,7 @@
Name Version
======================== =====================
Mbed TLS 3.6.3
+Transfer List Library 0.0.1
======================== =====================
Toolchain
diff --git a/include/lib/event_log/event_handoff.h b/include/lib/event_log/event_handoff.h
deleted file mode 100644
index f8c8716..0000000
--- a/include/lib/event_log/event_handoff.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Copyright (c) 2025, Arm Limited. All rights reserved.
- *
- * SPDX-License-Identifier: BSD-3-Clause
- */
-
-
-#ifndef HANDOFF_H
-#define HANDOFF_H
-
-#include <stdint.h>
-
-#include <transfer_list.h>
-
-/**
- * Initializes or extends the TPM event log in the transfer list.
- *
- * If an event log entry exists, attempts to resize it. Otherwise, adds a new entry.
- * Copies old data if needed. Updates free to reflect available space.
- *
- * @param tl Pointer to the transfer list header.
- * @param req_size Requested size (bytes)
- * @param free Available size (bytes)
- * @return Pointer to writable space in the log, or NULL on failure.
- */
-uint8_t *transfer_list_event_log_extend(struct transfer_list_header *tl,
- size_t req_size, size_t *free);
-
-/**
- * Finalizes the event log after writing is complete.
- *
- * Resizes the event log to match actual data written, updates checksum,
- * and flushes cache for the next stage.
- *
- * @param tl Pointer to the transfer list header.
- * @param cursor End offset of written log data.
- * @return Pointer to finalized log data (past reserved bytes), or NULL.
- */
-uint8_t *transfer_list_event_log_finish(struct transfer_list_header *tl,
- uintptr_t cursor);
-
-#define EVENT_LOG_RESERVED_BYTES U(4)
-
-#endif /* HANDOFF_H */
diff --git a/lib/event_log/event_handoff.c b/lib/event_log/event_handoff.c
deleted file mode 100644
index 238ea27..0000000
--- a/lib/event_log/event_handoff.c
+++ /dev/null
@@ -1,118 +0,0 @@
-/*
- * Copyright (c) 2025, Arm Limited. All rights reserved.
- *
- * SPDX-License-Identifier: BSD-3-Clause
- */
-
-#include <stddef.h>
-
-#include <common/debug.h>
-#include <drivers/measured_boot/event_log/event_handoff.h>
-
-#include <platform_def.h>
-
-static uint8_t *get_log_ptr(struct transfer_list_entry *te, size_t offset)
-{
- uint8_t *base_ptr = transfer_list_entry_data(te);
-
- if (base_ptr == NULL) {
- return NULL;
- }
-
- return base_ptr + offset;
-}
-
-uint8_t *transfer_list_event_log_extend(struct transfer_list_header *tl,
- size_t req_size, size_t *free)
-{
- struct transfer_list_entry *existing_entry;
- struct transfer_list_entry *new_entry;
- uint8_t *old_data;
- size_t existing_offset;
- size_t old_size;
-
- if (tl == NULL || free == NULL || req_size == 0) {
- ERROR("Invalid arguments to event log extend.\n");
- return NULL;
- }
-
- existing_entry = transfer_list_find(tl, TL_TAG_TPM_EVLOG);
- existing_offset = EVENT_LOG_RESERVED_BYTES;
-
- if (existing_entry != NULL) {
- existing_offset = existing_entry->data_size;
-
- if (transfer_list_set_data_size(tl, existing_entry,
- req_size + existing_offset)) {
- VERBOSE("TPM event log entry resized: new space %zu bytes at offset %zu\n",
- req_size, existing_offset);
-
- *free = existing_entry->data_size - existing_offset;
-
- return get_log_ptr(existing_entry, existing_offset);
- }
- }
-
- /* Add new entry (resize failed or no existing entry) */
- new_entry = transfer_list_add(tl, TL_TAG_TPM_EVLOG,
- req_size + existing_offset, NULL);
-
- if (new_entry == NULL) {
- ERROR("Failed to add TPM event log entry to transfer list.\n");
- return NULL;
- }
-
- VERBOSE("New TPM event log entry added at %p\n",
- transfer_list_entry_data(new_entry));
-
- if (existing_entry != NULL) {
- old_data = transfer_list_entry_data(existing_entry);
- old_size = existing_offset;
-
- VERBOSE("Copying existing event log (%zu bytes) to new entry at %p\n",
- old_size, transfer_list_entry_data(new_entry));
-
- memmove(transfer_list_entry_data(new_entry), old_data,
- old_size);
-
- transfer_list_rem(tl, existing_entry);
- }
-
- *free = new_entry->data_size - existing_offset;
-
- return get_log_ptr(new_entry, existing_offset);
-}
-
-uint8_t *transfer_list_event_log_finish(struct transfer_list_header *tl,
- uintptr_t cursor)
-{
- uintptr_t entry_data_base;
- size_t final_log_size;
- struct transfer_list_entry *entry;
-
- entry = transfer_list_find(tl, TL_TAG_TPM_EVLOG);
- entry_data_base = (uintptr_t)transfer_list_entry_data(entry);
-
- if (cursor < entry_data_base ||
- cursor >= entry_data_base + entry->data_size) {
- ERROR("Invalid cursor: outside event log bounds.\n");
- return NULL;
- }
-
- final_log_size = cursor - entry_data_base;
-
- if (!transfer_list_set_data_size(tl, entry, final_log_size)) {
- ERROR("Unable to resize event log TE.\n");
- return NULL;
- }
-
- transfer_list_update_checksum(tl);
-
- VERBOSE("TPM event log finalized: trimmed to %zu bytes",
- final_log_size - EVENT_LOG_RESERVED_BYTES);
-
- /* Ensure changes are visible to the next stage. */
- flush_dcache_range((uintptr_t)tl, tl->size);
-
- return get_log_ptr(entry, EVENT_LOG_RESERVED_BYTES);
-}
diff --git a/lib/libtl/libtl.mk b/lib/libtl/libtl.mk
index 4e685d2..e400c0d 100644
--- a/lib/libtl/libtl.mk
+++ b/lib/libtl/libtl.mk
@@ -11,5 +11,6 @@
LIBTL_SOURCES += $(addprefix ${LIBTL_PATH}/src/generic/, \
transfer_list.c \
+ tpm_event_log.c \
logging.c \
)
diff --git a/tftf/framework/main.c b/tftf/framework/main.c
index 0ac23b4..0ae03e5 100644
--- a/tftf/framework/main.c
+++ b/tftf/framework/main.c
@@ -23,9 +23,6 @@
#include <tftf.h>
#include <tftf_lib.h>
#include <timer.h>
-#if TRANSFER_LIST
-#include <transfer_list.h>
-#endif
#define MIN_RETRY_TO_POWER_ON_LEAD_CPU 10