[v2,11/11] meta-isar: Add OP-TEE to STM32MP15x board

Message ID fbc1e93cc2b6e4c016a9774c5e1278621259d735.1602755020.git.jan.kiszka@siemens.com
State Superseded, archived
Headers show
Series Support for building TF-A and OP-TEE, add STM32MP15x board | expand

Commit Message

Jan Kiszka Oct. 15, 2020, 12:43 a.m. UTC
From: Jan Kiszka <jan.kiszka@siemens.com>

This builds OP-TEE 3.10.0 for the "stm32mp1" platform and installs the
generated binaries in the required partitions for the STM32MP15x. Serves
as a demo and test for building custom OP-TEE packages.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
---
 meta-isar/conf/machine/stm32mp15x.conf        |  4 ++--
 .../optee-os/optee-os-stm32mp15x_3.10.0.bb    | 19 +++++++++++++++++++
 .../trusted-firmware-a-stm32mp15x_2.3.bb      |  2 +-
 .../lib/wic/canned-wks/stm32mp15x.wks.in      |  4 ++++
 4 files changed, 26 insertions(+), 3 deletions(-)
 create mode 100644 meta-isar/recipes-bsp/optee-os/optee-os-stm32mp15x_3.10.0.bb

Patch

diff --git a/meta-isar/conf/machine/stm32mp15x.conf b/meta-isar/conf/machine/stm32mp15x.conf
index 66a47df4..e963d080 100644
--- a/meta-isar/conf/machine/stm32mp15x.conf
+++ b/meta-isar/conf/machine/stm32mp15x.conf
@@ -13,7 +13,7 @@  U_BOOT_BIN_stm32mp15x = "u-boot.stm32"
 
 IMAGE_TYPE ?= "wic-img"
 WKS_FILE ?= "stm32mp15x.wks.in"
-IMAGER_INSTALL += "trusted-firmware-a-stm32mp15x u-boot-stm32mp15x"
-IMAGER_BUILD_DEPS += "trusted-firmware-a-stm32mp15x u-boot-stm32mp15x"
+IMAGER_INSTALL += "trusted-firmware-a-stm32mp15x optee-os-stm32mp15x u-boot-stm32mp15x"
+IMAGER_BUILD_DEPS += "trusted-firmware-a-stm32mp15x optee-os-stm32mp15x u-boot-stm32mp15x"
 
 IMAGE_INSTALL += "u-boot-script"
diff --git a/meta-isar/recipes-bsp/optee-os/optee-os-stm32mp15x_3.10.0.bb b/meta-isar/recipes-bsp/optee-os/optee-os-stm32mp15x_3.10.0.bb
new file mode 100644
index 00000000..a2570946
--- /dev/null
+++ b/meta-isar/recipes-bsp/optee-os/optee-os-stm32mp15x_3.10.0.bb
@@ -0,0 +1,19 @@ 
+#
+# Copyright (c) Siemens AG, 2020
+#
+# SPDX-License-Identifier: MIT
+
+require recipes-bsp/optee-os/optee-os-custom.inc
+
+SRC_URI += "https://github.com/OP-TEE/optee_os/archive/${PV}.tar.gz"
+SRC_URI[sha256sum] = "d30776ab051b701cdd2b71d32ff5cd54285a688440cc90aefd14b4f0f6495d7c"
+
+S = "${WORKDIR}/optee_os-${PV}"
+
+DEBIAN_BUILD_DEPENDS += ", device-tree-compiler"
+
+OPTEE_PLATFORM = "stm32mp1"
+OPTEE_EXTRA_BUILDARGS = " \
+    ARCH=arm CFG_EMBED_DTB_SOURCE_FILE=stm32mp157c-ev1.dts \
+    CFG_TEE_CORE_LOG_LEVEL=2"
+OPTEE_BINARIES = "tee-header_v2.stm32 tee-pageable_v2.stm32 tee-pager_v2.stm32"
diff --git a/meta-isar/recipes-bsp/trusted-firmware-a/trusted-firmware-a-stm32mp15x_2.3.bb b/meta-isar/recipes-bsp/trusted-firmware-a/trusted-firmware-a-stm32mp15x_2.3.bb
index 0a45ec36..33836ea9 100644
--- a/meta-isar/recipes-bsp/trusted-firmware-a/trusted-firmware-a-stm32mp15x_2.3.bb
+++ b/meta-isar/recipes-bsp/trusted-firmware-a/trusted-firmware-a-stm32mp15x_2.3.bb
@@ -14,7 +14,7 @@  DEBIAN_BUILD_DEPENDS += ", device-tree-compiler"
 
 TF_A_PLATFORM = "stm32mp1"
 TF_A_EXTRA_BUILDARGS = " \
-    ARCH=aarch32 ARM_ARCH_MAJOR=7 AARCH32_SP=sp_min \
+    ARCH=aarch32 ARM_ARCH_MAJOR=7 AARCH32_SP=optee \
     STM32MP_SDMMC=1 STM32MP_EMMC=1 \
     STM32MP_RAW_NAND=1 STM32MP_SPI_NAND=1 STM32MP_SPI_NOR=1 \
     DTB_FILE_NAME=stm32mp157c-ev1.dtb"
diff --git a/meta-isar/scripts/lib/wic/canned-wks/stm32mp15x.wks.in b/meta-isar/scripts/lib/wic/canned-wks/stm32mp15x.wks.in
index 5abaa833..744330e6 100644
--- a/meta-isar/scripts/lib/wic/canned-wks/stm32mp15x.wks.in
+++ b/meta-isar/scripts/lib/wic/canned-wks/stm32mp15x.wks.in
@@ -7,6 +7,10 @@  part fsbl1 --part-name fsbl1 --source rawcopy --sourceparams "file=/usr/lib/trus
 part fsbl2 --part-name fsbl2 --source rawcopy --sourceparams "file=/usr/lib/trusted-firmware-a/${MACHINE}/tf-a-stm32mp157c-ev1.stm32" --fstype=ext4 --fsoptions "noauto" --part-type 0x8301 --fixed-size 256K
 part ssbl --part-name ssbl --source rawcopy --sourceparams "file=/usr/lib/u-boot/${MACHINE}/u-boot.stm32" --fstype=ext4 --fsoptions "noauto" --part-type 0x8301 --fixed-size 2048K
 
+part teeh --part-name teeh --source rawcopy --sourceparams "file=/usr/lib/optee-os/${MACHINE}/tee-header_v2.stm32" --fstype=ext4 --fsoptions "noauto" --part-type 0x8301 --fixed-size 256K
+part teed --part-name teed --source rawcopy --sourceparams "file=/usr/lib/optee-os/${MACHINE}/tee-pageable_v2.stm32" --fstype=ext4 --fsoptions "noauto" --part-type 0x8301 --fixed-size 512K
+part teex --part-name teex --source rawcopy --sourceparams "file=/usr/lib/optee-os/${MACHINE}/tee-pager_v2.stm32" --fstype=ext4 --fsoptions "noauto" --part-type 0x8301 --fixed-size 256K
+
 part / --source rootfs-u-boot --fstype ext4 --label root --align 1024 --active --use-uuid
 
 bootloader --ptable gpt --append="rootwait rw console=ttySTM0,115200"