feat: add DT_FFA_MANIFEST tag id

To support loading secure partitions using a transfer list,
add the DT_FFA_MANIFEST tag ID to the transfer list, as specified in [0].
According to the spec, the tag ID for DT_FFA_MANIFEST should be 0x108.

However, this ID (0x108) is currently used by TL_TAG_EXEC_EP_INFO32,
even though the spec states its ID should be 0x106.

This patch corrects the tag ID assignment and
adds TL_TAG_DT_FFA_MANIFEST in compliance with the specification.

Link: https://github.com/FirmwareHandoff/firmware_handoff/blob/main/source/transfer_list.rst
Change-Id: Id59b0de3c0dc4fbf021fd4a06ff6afc3166bc80b
Signed-off-by: Yeoreum Yun <yeoreum.yun@arm.com>
1 file changed
tree: f1e293d2d10954f228f2ddbbbc49b2c733e394c2
  1. include/
  2. src/
  3. test/
  4. toolchains/
  5. .clang-format
  6. .gitignore
  7. CMakeLists.txt
  8. CONTRIBUTING.md
  9. LICENSE-GPL-2.0-or-later.md
  10. LICENSE-MIT.md
  11. LICENSE.md
  12. Makefile.tll
  13. README.md
README.md

Transfer List Library (LibTL)

The Transfer List Library (LibTL) implements the Firmware Handoff specification, providing a streamlined interface for managing transfer lists. LibTL offers a user-friendly interface for:

  • Creating transfer lists
  • Reading and extracting data from transfer lists
  • Manipulating and updating transfer lists

The library supports building with host tools such as Clang and GCC, and cross compilation with the Aarch64 GNU compiler.

Minimum Supporting Tooling Requirements

ToolMinimum Version
Clang-Format14
CMake3.15

Building with CMake

To configure the project, use the following command. This will default to using GCC as the toolchain and create a build directory named build/:

cmake -B build

To build the project, use:

cmake --build build

This will output libtl.a in the build directory.

For cross-compilation or selecting a different compiler, specify the target toolchain file using the CMAKE_TOOLCHAIN_FILE option and the target with CROSS_COMPILE:

export CROSS_COMPILE=aarch64-none-elf-
cmake -B build -DCMAKE_TOOLCHAIN_FILE=toolchains/host/gnu.cmake

Testing with CTest

Tests for LibTL are provided in the folder test, to configure the project for test builds, run:

cmake -B build -DTARGET_GROUP=test
cmake --build build

Then, to run the tests with ctest, use:

ctest --test-dir build/