python-is-python3 \
python2.7 \
python3 \
+ python3-cryptography \
python3-dev \
python3-pip \
+ python3-pyelftools \
python3-sphinx \
python3-tomli \
python3-venv \
make -j$(nproc) all install && \
rm -rf /tmp/qemu
-# Build fiptool
-RUN git clone https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git /tmp/tf-a && \
+# Build OP-TEE for qemu_arm64
+RUN git clone --depth=1 https://github.com/OP-TEE/optee_os.git /tmp/optee_os \
+ -b 4.7.0 && \
+ cd /tmp/optee_os/ && \
+ make CROSS_COMPILE32=/opt/gcc-${TCVER}-nolibc/arm-linux-gnueabi/bin/arm-linux-gnueabi- \
+ CROSS_COMPILE64=/opt/gcc-${TCVER}-nolibc/aarch64-linux/bin/aarch64-linux- \
+ CFG_TRANSFER_LIST=y CFG_MAP_EXT_DT_SECURE=y \
+ PLATFORM=vexpress-qemu_armv8a CFG_RPMB_FS=y \
+ CFG_RPMB_WRITE_KEY=y CFG_RPMB_TESTKEY=y \
+ CFG_CORE_HEAP_SIZE=524288 \
+ CFG_REE_FS=n CFG_CORE_ARM64_PA_BITS=48 \
+ CFG_TEE_CORE_LOG_LEVEL=2
+
+# Build fiptool, bl1 and fip for fvp and qemu_arm64
+RUN git clone --depth=1 -b mbedtls-3.6 https://github.com/ARMmbed/mbedtls.git /tmp/mbedtls
+RUN git clone --depth=1 https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git /tmp/tf-a \
+ -b v2.13.0 && \
cd /tmp/tf-a/ && \
- git checkout v2.12.0 && \
make CROSS_COMPILE=/opt/gcc-${TCVER}-nolibc/aarch64-linux/bin/aarch64-linux- \
PLAT=fvp BL33=/dev/null -j$(nproc) all fip && \
mkdir -p /usr/local/bin /opt/tf-a/vexpress_fvp && \
mkdir -p /opt/tf-a/vexpress_fvp_bloblist && \
cp build/fvp/release/fip.bin build/fvp/release/bl1.bin \
/opt/tf-a/vexpress_fvp_bloblist/ && \
+ make CROSS_COMPILE=/opt/gcc-${TCVER}-nolibc/aarch64-linux/bin/aarch64-linux- \
+ PLAT=qemu \
+ BL33=/dev/null \
+ BL32=/tmp/optee_os/out/arm-plat-vexpress/core/tee-header_v2.bin \
+ BL32_EXTRA1=/tmp/optee_os/out/arm-plat-vexpress/core/tee-pager_v2.bin \
+ BL32_EXTRA2=/tmp/optee_os/out/arm-plat-vexpress/core/tee-pageable_v2.bin \
+ BL32_RAM_LOCATION=tdram SPD=opteed \
+ TRANSFER_LIST=1 E=0 \
+ MEASURED_BOOT=1 \
+ EVENT_LOG_LEVEL=10 \
+ MBOOT_EL_HASH_ALG=sha256 \
+ MBEDTLS_DIR=/tmp/mbedtls \
+ -j$(nproc) all fip && \
+ mkdir -p /opt/tf-a/qemu_arm64_fw_handoff_tfa_optee && \
+ cp build/qemu/release/fip.bin build/qemu/release/bl1.bin \
+ /opt/tf-a/qemu_arm64_fw_handoff_tfa_optee/ && \
+ rm -rf /tmp/optee_os && \
+ rm -rf /tmp/mbedtls && \
rm -rf /tmp/tf-a
# Download the Arm Architecture FVP platform. This file is double compressed.