Complete Yocto mirror with license table for TQMa6UL (2038-compliance)

- 264 license table entries with exact download URLs (224/264 resolved)
- Complete sources/ directory with all BitBake recipes
- Build configuration: tqma6ul-multi-mba6ulx, spaetzle (musl)
- Full traceability for Softwarefreigabeantrag
- GCC 13.4.0, Linux 6.6.102, U-Boot 2023.04, musl 1.2.4
- License distribution: GPL-2.0 (24), MIT (23), GPL-2.0+ (18), BSD-3 (16)
This commit is contained in:
Siggi (OpenClaw Agent)
2026-03-01 20:58:18 +00:00
commit 16accb6b24
15086 changed files with 1292356 additions and 0 deletions

View File

@@ -0,0 +1,7 @@
# Copyright 2017-2024 NXP
require optee-client-fslc.inc
SRC_URI += "git://github.com/nxp-imx/imx-optee-client.git;protocol=https;branch=${SRCBRANCH}"
COMPATIBLE_MACHINE = "(imx-nxp-bsp)"

View File

@@ -0,0 +1,42 @@
# Copyright 2017-2024 NXP
SUMMARY = "OPTEE Client libs"
HOMEPAGE = "http://www.optee.org/"
LICENSE = "BSD-2-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=69663ab153298557a59c67a60a743e5b"
SRC_URI = "file://tee-supplicant.service"
S = "${WORKDIR}/git"
B = "${WORKDIR}/build"
inherit python3native systemd features_check pkgconfig
DEPENDS = "util-linux-libuuid"
REQUIRED_MACHINE_FEATURES = "optee"
SYSTEMD_SERVICE:${PN} = "tee-supplicant.service"
EXTRA_OEMAKE = " \
-C ${S} O=${B} \
"
do_install () {
oe_runmake -C ${S} install
install -D -p -m0644 ${B}/export/usr/lib/libteec.so.2.0.0 ${D}${libdir}/libteec.so.2.0.0
ln -sf libteec.so.2.0.0 ${D}${libdir}/libteec.so.2
ln -sf libteec.so.2.0.0 ${D}${libdir}/libteec.so
install -D -p -m0644 ${B}/export/usr/lib/libckteec.so.0.1.0 ${D}${libdir}/libckteec.so.0.1.0
ln -sf libckteec.so.0.1.0 ${D}${libdir}/libckteec.so.0
ln -sf libckteec.so.0.1.0 ${D}${libdir}/libckteec.so
install -D -p -m0755 ${B}/export/usr/sbin/tee-supplicant ${D}${bindir}/tee-supplicant
cp -a ${B}/export/usr/include ${D}${includedir}
sed -i -e s:/etc:${sysconfdir}:g -e s:/usr/bin:${bindir}:g ${WORKDIR}/tee-supplicant.service
install -D -p -m0644 ${WORKDIR}/tee-supplicant.service ${D}${systemd_system_unitdir}/tee-supplicant.service
}

View File

@@ -0,0 +1,11 @@
[Unit]
Description=TEE Supplicant
[Service]
User=root
EnvironmentFile=-/etc/default/tee-supplicant
ExecStart=/usr/bin/tee-supplicant $OPTARGS
[Install]
WantedBy=basic.target

View File

@@ -0,0 +1,7 @@
require optee-client-fslc-imx.inc
SRCBRANCH = "lf-6.6.36_2.1.0"
SRCREV = "3eac340a781c00ccd61b151b0e9c22a8c6e9f9f0"
DEPENDS += "util-linux"
EXTRA_OEMAKE += "PKG_CONFIG=pkg-config"

View File

@@ -0,0 +1,26 @@
HOMEPAGE = "http://www.optee.org/"
inherit python3native features_check
REQUIRED_MACHINE_FEATURES = "optee"
DEPENDS = "python3-cryptography-native"
S = "${WORKDIR}/git"
B = "${WORKDIR}/build"
OPTEE_ARCH:arm = "arm32"
OPTEE_ARCH:aarch64 = "arm64"
COMPILER ?= "gcc"
COMPILER:toolchain-clang = "clang"
CFLAGS += "--sysroot=${STAGING_DIR_HOST}"
CXXFLAGS += "--sysroot=${STAGING_DIR_HOST}"
EXTRA_OEMAKE = " \
COMPILER=${COMPILER} \
OPENSSL_MODULES=${STAGING_LIBDIR_NATIVE}/ossl-modules \
OPTEE_CLIENT_EXPORT=${STAGING_DIR_HOST}${exec_prefix} \
-C ${S} O=${B} \
"

View File

@@ -0,0 +1,27 @@
require optee-os-fslc.inc
SRC_URI = "git://github.com/nxp-imx/imx-optee-os.git;protocol=https;branch=${SRCBRANCH}"
# The platform flavor corresponds to the Yocto machine without the leading 'i'.
PLATFORM_FLAVOR = "${@d.getVar('MACHINE')[1:]}"
PLATFORM_FLAVOR:imx6qdlsabresd = "mx6qsabresd"
PLATFORM_FLAVOR:imx6qdlsabreauto = "mx6qsabreauto"
PLATFORM_FLAVOR:imx6qpdlsolox = "mx6qsabresd"
PLATFORM_FLAVOR:mx6ul-nxp-bsp = "mx6ulevk"
PLATFORM_FLAVOR:mx6ull-nxp-bsp = "mx6ullevk"
PLATFORM_FLAVOR:mx6ulz-nxp-bsp = "mx6ulzevk"
PLATFORM_FLAVOR:mx8mq-nxp-bsp = "mx8mqevk"
PLATFORM_FLAVOR:mx8mm-nxp-bsp = "mx8mmevk"
PLATFORM_FLAVOR:mx8mn-nxp-bsp = "mx8mnevk"
PLATFORM_FLAVOR:mx8mnul-nxp-bsp = "mx8mnevk"
PLATFORM_FLAVOR:mx8mp-nxp-bsp = "mx8mpevk"
PLATFORM_FLAVOR:mx8mpul-nxp-bsp = "mx8mpevk"
PLATFORM_FLAVOR:mx8qm-nxp-bsp = "mx8qmmek"
PLATFORM_FLAVOR:mx8qxp-nxp-bsp = "mx8qxpmek"
PLATFORM_FLAVOR:mx8dx-nxp-bsp = "mx8dxmek"
PLATFORM_FLAVOR:mx8dxl-nxp-bsp = "mx8dxlevk"
PLATFORM_FLAVOR:mx8ulp-nxp-bsp = "mx8ulpevk"
PLATFORM_FLAVOR:mx93-nxp-bsp = "mx93evk"
PLATFORM_FLAVOR:mx95-nxp-bsp = "mx95evk"
COMPATIBLE_MACHINE = "(imx-nxp-bsp)"

View File

@@ -0,0 +1,90 @@
# Copyright (C) 2017-2021,2024 NXP
SUMMARY = "OPTEE OS"
DESCRIPTION = "OPTEE OS"
LICENSE = "BSD-2-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=c1f21c4f72f372ef38a5a4aee55ec173"
require optee-fslc.inc
DEPENDS += "python3-pyelftools-native u-boot-mkimage-native"
DEPENDS:append:toolchain-clang = " compiler-rt"
inherit deploy autotools
# Optee-os can be built for 32 bits and 64 bits at the same time
# as long as the compilers are correctly defined.
# For 64bits, CROSS_COMPILE64 must be set
# When defining CROSS_COMPILE and CROSS_COMPILE64, we assure that
# any 32 or 64 bits builds will pass
EXTRA_OEMAKE += " \
PLATFORM=imx-${PLATFORM_FLAVOR} \
CROSS_COMPILE=${HOST_PREFIX} \
CROSS_COMPILE64=${HOST_PREFIX} \
CFLAGS32=--sysroot=${STAGING_DIR_HOST} \
CFLAGS64=--sysroot=${STAGING_DIR_HOST} \
CFG_TEE_TA_LOG_LEVEL=0 \
CFG_TEE_CORE_LOG_LEVEL=0 \
"
EXTRA_OEMAKE:append:imx8mq-lpddr4-wevk = " \
CFG_CORE_LARGE_PHYS_ADDR=y \
CFG_CORE_ARM64_PA_BITS=36 \
CFG_DDR_SIZE=0x100000000 \
CFG_TZDRAM_START=0xfe000000 \
"
LDFLAGS[unexport] = "1"
CPPFLAGS[unexport] = "1"
AS[unexport] = "1"
LD[unexport] = "1"
do_configure[noexec] = "1"
do_compile:prepend() {
PLAT_LIBGCC_PATH=$(${CC} -print-libgcc-file-name)
}
do_compile:arm () {
oe_runmake all uTee
}
do_compile:aarch64 () {
oe_runmake all
}
do_compile[cleandirs] = "${B}"
do_deploy () {
install -d ${DEPLOYDIR}
cp ${B}/core/tee-raw.bin ${DEPLOYDIR}/tee.${PLATFORM_FLAVOR}.bin
ln -sf tee.${PLATFORM_FLAVOR}.bin ${DEPLOYDIR}/tee.bin
}
do_deploy:append:arm () {
cp ${B}/core/uTee ${DEPLOYDIR}/uTee-${OPTEE_BIN_EXT}
}
do_install () {
install -d ${D}${nonarch_base_libdir}/firmware/
install -m 644 ${B}/core/*.bin ${D}${nonarch_base_libdir}/firmware/
# Install embedded TAs
install -d ${D}${nonarch_base_libdir}/optee_armtz/
install -m 444 ${B}/ta/*/*.ta ${D}${nonarch_base_libdir}/optee_armtz/
# Install the TA devkit
install -d ${D}${includedir}/optee/export-user_ta_${OPTEE_ARCH}/
cp -aR ${B}/export-ta_${OPTEE_ARCH}/* \
${D}${includedir}/optee/export-user_ta_${OPTEE_ARCH}/
}
addtask deploy after do_compile before do_install
FILES:${PN} = "${nonarch_base_libdir}/firmware/ ${nonarch_base_libdir}/optee_armtz/"
FILES:${PN}-staticdev = "${includedir}/optee/"
RDEPENDS:${PN}-dev += "${PN}-staticdev"
# FIXME: Build paths are currently embedded
INSANE_SKIP:${PN}-staticdev += "buildpaths"
PACKAGE_ARCH = "${MACHINE_ARCH}"

View File

@@ -0,0 +1,245 @@
From ef83625c9a5f50610e25aa860c4b9c5e64723a66 Mon Sep 17 00:00:00 2001
From: Emekcan Aras <emekcan.aras@arm.com>
Date: Wed, 21 Dec 2022 10:55:58 +0000
Subject: [PATCH 1/4] core: Define section attributes for clang
Clang's attribute section is not same as gcc, here we need to add flags
to sections so they can be eventually collected by linker into final
output segments. Only way to do so with clang is to use
pragma clang section ...
The behavious is described here [1], this allows us to define names bss
sections. This was not an issue until clang-15 where LLD linker starts
to detect the section flags before merging them and throws the following
errors
| ld.lld: error: section type mismatch for .nozi.kdata_page
| >>> /mnt/b/yoe/master/build/tmp/work/qemuarm64-yoe-linux/optee-os-tadevkit/3.17.0-r0/build/core/arch/arm/kernel/thread.o:(.nozi.kdata_page): SHT_PROGBITS
| >>> output section .nozi: SHT_NOBITS
|
| ld.lld: error: section type mismatch for .nozi.mmu.l2
| >>> /mnt/b/yoe/master/build/tmp/work/qemuarm64-yoe-linux/optee-os-tadevkit/3.17.0-r0/build/core/arch/arm/mm/core_mmu_lpae.o:(.nozi.mmu.l2): SHT_PROGBITS
| >>> output section .nozi: SHT_NOBITS
These sections should be carrying SHT_NOBITS but so far it was not
possible to do so, this patch tries to use clangs pragma to get this
going and match the functionality with gcc.
[1] https://intel.github.io/llvm-docs/clang/LanguageExtensions.html#specifying-section-names-for-global-objects-pragma-clang-section
Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Oleksandr Suvorov <oleksandr.suvorov@foundries.io>
---
core/arch/arm/kernel/thread.c | 19 +++++++++++++++--
core/arch/arm/mm/core_mmu_lpae.c | 35 +++++++++++++++++++++++++++----
core/arch/arm/mm/core_mmu_v7.c | 36 +++++++++++++++++++++++++++++---
core/kernel/thread.c | 13 +++++++++++-
core/mm/pgt_cache.c | 12 ++++++++++-
5 files changed, 104 insertions(+), 11 deletions(-)
diff --git a/core/arch/arm/kernel/thread.c b/core/arch/arm/kernel/thread.c
index 66833b3a0..b3eb9cf9a 100644
--- a/core/arch/arm/kernel/thread.c
+++ b/core/arch/arm/kernel/thread.c
@@ -45,15 +45,30 @@ static size_t thread_user_kcode_size __nex_bss;
#if defined(CFG_CORE_UNMAP_CORE_AT_EL0) && \
defined(CFG_CORE_WORKAROUND_SPECTRE_BP_SEC) && defined(ARM64)
long thread_user_kdata_sp_offset __nex_bss;
+#ifdef __clang__
+#ifndef CFG_VIRTUALIZATION
+#pragma clang section bss=".nozi.kdata_page"
+#else
+#pragma clang section bss=".nex_nozi.kdata_page"
+#endif
+#endif
static uint8_t thread_user_kdata_page[
ROUNDUP(sizeof(struct thread_core_local) * CFG_TEE_CORE_NB_CORE,
SMALL_PAGE_SIZE)]
__aligned(SMALL_PAGE_SIZE)
+#ifndef __clang__
#ifndef CFG_NS_VIRTUALIZATION
- __section(".nozi.kdata_page");
+ __section(".nozi.kdata_page")
#else
- __section(".nex_nozi.kdata_page");
+ __section(".nex_nozi.kdata_page")
#endif
+#endif
+ ;
+#endif
+
+/* reset BSS section to default ( .bss ) */
+#ifdef __clang__
+#pragma clang section bss=""
#endif
#ifdef ARM32
diff --git a/core/arch/arm/mm/core_mmu_lpae.c b/core/arch/arm/mm/core_mmu_lpae.c
index 4c8b85e39..1885e1d3f 100644
--- a/core/arch/arm/mm/core_mmu_lpae.c
+++ b/core/arch/arm/mm/core_mmu_lpae.c
@@ -234,19 +234,46 @@ typedef uint16_t l1_idx_t;
typedef uint64_t base_xlat_tbls_t[CFG_TEE_CORE_NB_CORE][NUM_BASE_LEVEL_ENTRIES];
typedef uint64_t xlat_tbl_t[XLAT_TABLE_ENTRIES];
+#ifdef __clang__
+#pragma clang section bss=".nozi.mmu.base_table"
+#endif
static base_xlat_tbls_t base_xlation_table[NUM_BASE_TABLES]
__aligned(NUM_BASE_LEVEL_ENTRIES * XLAT_ENTRY_SIZE)
- __section(".nozi.mmu.base_table");
+#ifndef __clang__
+ __section(".nozi.mmu.base_table")
+#endif
+;
+#ifdef __clang__
+#pragma clang section bss=""
+#endif
+#ifdef __clang__
+#pragma clang section bss=".nozi.mmu.l2"
+#endif
static xlat_tbl_t xlat_tables[MAX_XLAT_TABLES]
- __aligned(XLAT_TABLE_SIZE) __section(".nozi.mmu.l2");
+ __aligned(XLAT_TABLE_SIZE)
+#ifndef __clang__
+ __section(".nozi.mmu.l2")
+#endif
+;
+#ifdef __clang__
+#pragma clang section bss=""
+#endif
#define XLAT_TABLES_SIZE (sizeof(xlat_tbl_t) * MAX_XLAT_TABLES)
+#ifdef __clang__
+#pragma clang section bss=".nozi.mmu.l2"
+#endif
/* MMU L2 table for TAs, one for each thread */
static xlat_tbl_t xlat_tables_ul1[CFG_NUM_THREADS]
- __aligned(XLAT_TABLE_SIZE) __section(".nozi.mmu.l2");
-
+#ifndef __clang__
+ __aligned(XLAT_TABLE_SIZE) __section(".nozi.mmu.l2")
+#endif
+;
+#ifdef __clang__
+#pragma clang section bss=""
+#endif
/*
* TAs page table entry inside a level 1 page table.
*
diff --git a/core/arch/arm/mm/core_mmu_v7.c b/core/arch/arm/mm/core_mmu_v7.c
index 61e703da8..1960c08ca 100644
--- a/core/arch/arm/mm/core_mmu_v7.c
+++ b/core/arch/arm/mm/core_mmu_v7.c
@@ -204,16 +204,46 @@ typedef uint32_t l1_xlat_tbl_t[NUM_L1_ENTRIES];
typedef uint32_t l2_xlat_tbl_t[NUM_L2_ENTRIES];
typedef uint32_t ul1_xlat_tbl_t[NUM_UL1_ENTRIES];
+#ifdef __clang__
+#pragma clang section bss=".nozi.mmu.l1"
+#endif
static l1_xlat_tbl_t main_mmu_l1_ttb
- __aligned(L1_ALIGNMENT) __section(".nozi.mmu.l1");
+ __aligned(L1_ALIGNMENT)
+#ifndef __clang__
+ __section(".nozi.mmu.l1")
+#endif
+;
+#ifdef __clang__
+#pragma clang section bss=""
+#endif
/* L2 MMU tables */
+#ifdef __clang__
+#pragma clang section bss=".nozi.mmu.l2"
+#endif
static l2_xlat_tbl_t main_mmu_l2_ttb[MAX_XLAT_TABLES]
- __aligned(L2_ALIGNMENT) __section(".nozi.mmu.l2");
+ __aligned(L2_ALIGNMENT)
+#ifndef __clang__
+ __section(".nozi.mmu.l2")
+#endif
+;
+#ifdef __clang__
+#pragma clang section bss=""
+#endif
/* MMU L1 table for TAs, one for each thread */
+#ifdef __clang__
+#pragma clang section bss=".nozi.mmu.ul1"
+#endif
static ul1_xlat_tbl_t main_mmu_ul1_ttb[CFG_NUM_THREADS]
- __aligned(UL1_ALIGNMENT) __section(".nozi.mmu.ul1");
+ __aligned(UL1_ALIGNMENT)
+#ifndef __clang__
+ __section(".nozi.mmu.ul1")
+#endif
+;
+#ifdef __clang__
+#pragma clang section bss=""
+#endif
struct mmu_partition {
l1_xlat_tbl_t *l1_table;
diff --git a/core/kernel/thread.c b/core/kernel/thread.c
index 2a1f22dce..5516b6771 100644
--- a/core/kernel/thread.c
+++ b/core/kernel/thread.c
@@ -39,13 +39,24 @@ static uint32_t end_canary_value = 0xababab00;
name[stack_num][sizeof(name[stack_num]) / sizeof(uint32_t) - 1]
#endif
+#define DO_PRAGMA(x) _Pragma (#x)
+
+#ifdef __clang__
+#define DECLARE_STACK(name, num_stacks, stack_size, linkage) \
+DO_PRAGMA (clang section bss=".nozi_stack." #name) \
+linkage uint32_t name[num_stacks] \
+ [ROUNDUP(stack_size + STACK_CANARY_SIZE + STACK_CHECK_EXTRA, \
+ STACK_ALIGNMENT) / sizeof(uint32_t)] \
+ __attribute__((aligned(STACK_ALIGNMENT))); \
+DO_PRAGMA(clang section bss="")
+#else
#define DECLARE_STACK(name, num_stacks, stack_size, linkage) \
linkage uint32_t name[num_stacks] \
[ROUNDUP(stack_size + STACK_CANARY_SIZE + STACK_CHECK_EXTRA, \
STACK_ALIGNMENT) / sizeof(uint32_t)] \
__attribute__((section(".nozi_stack." # name), \
aligned(STACK_ALIGNMENT)))
-
+#endif
#define GET_STACK(stack) ((vaddr_t)(stack) + STACK_SIZE(stack))
DECLARE_STACK(stack_tmp, CFG_TEE_CORE_NB_CORE, STACK_TMP_SIZE,
diff --git a/core/mm/pgt_cache.c b/core/mm/pgt_cache.c
index 79553c6d2..b9efdf427 100644
--- a/core/mm/pgt_cache.c
+++ b/core/mm/pgt_cache.c
@@ -410,8 +410,18 @@ void pgt_init(void)
* has a large alignment, while .bss has a small alignment. The current
* link script is optimized for small alignment in .bss
*/
+#ifdef __clang__
+#pragma clang section bss=".nozi.mmu.l2"
+#endif
static uint8_t pgt_tables[PGT_CACHE_SIZE][PGT_SIZE]
- __aligned(PGT_SIZE) __section(".nozi.pgt_cache");
+ __aligned(PGT_SIZE)
+#ifndef __clang__
+ __section(".nozi.pgt_cache")
+#endif
+ ;
+#ifdef __clang__
+#pragma clang section bss=""
+#endif
size_t n;
for (n = 0; n < ARRAY_SIZE(pgt_tables); n++) {
--
2.43.2

View File

@@ -0,0 +1,34 @@
From 2ba573c9763329fbfdfacc8393d565ab747cac4d Mon Sep 17 00:00:00 2001
From: Brett Warren <brett.warren@arm.com>
Date: Wed, 23 Sep 2020 09:27:34 +0100
Subject: [PATCH 2/4] optee: enable clang support
When compiling with clang, the LIBGCC_LOCATE_CFLAG variable used
to provide a sysroot wasn't included, which results in not locating
compiler-rt. This is mitigated by including the variable as ammended.
Upstream-Status: Pending
ChangeId: 8ba69a4b2eb8ebaa047cb266c9aa6c2c3da45701
Signed-off-by: Brett Warren <brett.warren@arm.com>
Signed-off-by: Oleksandr Suvorov <oleksandr.suvorov@foundries.io>
---
mk/clang.mk | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/mk/clang.mk b/mk/clang.mk
index a045beee8..1ebe2f702 100644
--- a/mk/clang.mk
+++ b/mk/clang.mk
@@ -30,7 +30,7 @@ comp-cflags-warns-clang := -Wno-language-extension-token \
# Note, use the compiler runtime library (libclang_rt.builtins.*.a) instead of
# libgcc for clang
-libgcc$(sm) := $(shell $(CC$(sm)) $(CFLAGS$(arch-bits-$(sm))) \
+libgcc$(sm) := $(shell $(CC$(sm)) $(LIBGCC_LOCATE_CFLAGS) $(CFLAGS$(arch-bits-$(sm))) \
-rtlib=compiler-rt -print-libgcc-file-name 2> /dev/null)
# Core ASLR relies on the executable being ready to run from its preferred load
--
2.43.2

View File

@@ -0,0 +1,10 @@
# Copyright 2017-2024 NXP
require optee-os-fslc-imx.inc
SRC_URI += " \
file://0001-core-Define-section-attributes-for-clang.patch \
file://0002-optee-enable-clang-support.patch \
"
SRCBRANCH = "lf-6.6.36_2.1.0"
SRCREV = "612bc5a642a4608d282abeee2349d86de996d7ee"

View File

@@ -0,0 +1,38 @@
# Copyright (C) 2017-2021 NXP
SUMMARY = "OPTEE test"
LICENSE = "BSD-2-Clause & GPL-2.0-only"
LIC_FILES_CHKSUM = "file://LICENSE.md;md5=daa2bcccc666345ab8940aab1315a4fa"
require optee-fslc.inc
DEPENDS += "optee-os optee-client openssl"
EXTRA_OEMAKE += " \
TA_DEV_KIT_DIR=${STAGING_INCDIR}/optee/export-user_ta_${OPTEE_ARCH}/ \
CROSS_COMPILE_HOST=${HOST_PREFIX} \
CROSS_COMPILE_TA=${HOST_PREFIX} \
CROSS_COMPILE=${HOST_PREFIX} \
"
do_compile() {
oe_runmake all
}
do_compile[cleandirs] = "${B}"
do_install () {
install -d ${D}${bindir}
install ${B}/xtest/xtest ${D}${bindir}
install -d ${D}${nonarch_base_libdir}/optee_armtz
find ${B}/ta -name '*.ta' | while read name; do
install -m 444 $name ${D}${nonarch_base_libdir}/optee_armtz/
done
install -d ${D}${libdir}/tee-supplicant/plugins/
install ${B}/supp_plugin/*plugin ${D}${libdir}/tee-supplicant/plugins/
}
FILES:${PN} += "${nonarch_base_libdir}/optee_armtz/ ${libdir}/tee-supplicant/plugins/"
RDEPENDS:${PN} = "optee-os"

View File

@@ -0,0 +1,10 @@
# Copyright 2017-2024 NXP
require optee-test-fslc.inc
SRC_URI = "git://github.com/nxp-imx/imx-optee-test.git;protocol=https;branch=${SRCBRANCH}"
SRCBRANCH = "lf-6.6.36_2.1.0"
SRCREV = "5b52b48a73b4cc3f228ec66ae6cf9920897bb2e6"
COMPATIBLE_MACHINE = "(imx-nxp-bsp)"

View File

@@ -0,0 +1,5 @@
require optee-client.nxp.inc
PV:append = "+git${SRCPV}"
COMPATIBLE_MACHINE = "(qoriq-arm64)"

View File

@@ -0,0 +1,53 @@
# Copyright 2020-2021 NXP
SUMMARY = "OPTEE Client libs"
HOMEPAGE = "http://www.optee.org/"
LICENSE = "BSD"
LIC_FILES_CHKSUM = "file://LICENSE;md5=69663ab153298557a59c67a60a743e5b"
inherit python3native systemd
SRC_URI = "git://github.com/nxp-qoriq/optee_client.git;protocol=https;nobranch=1"
SRCREV = "7c9c423d00e96bf51debd5fe10fd70dce83be5cc"
FILESEXTRAPATHS:prepend := "${THISDIR}/optee-client:"
SRC_URI += "file://tee-supplicant.service"
S = "${WORKDIR}/git"
B = "${WORKDIR}/build"
OPTEE_ARCH ?= "arm32"
OPTEE_ARCH:armv7a = "arm32"
OPTEE_ARCH:aarch64 = "arm64"
EXTRA_OEMAKE = "ARCH=${OPTEE_ARCH} O=${B}"
do_install () {
oe_runmake -C ${S} install
install -d ${D}${libdir}/
install -p -m0644 ${B}/export${libdir}/libteec.so.1.0.0 ${D}${libdir}/
ln -sf libteec.so.1.0.0 ${D}${libdir}/libteec.so.1.0
ln -sf libteec.so.1.0.0 ${D}${libdir}/libteec.so.1
ln -sf libteec.so.1 ${D}${libdir}/libteec.so
install -D -p -m0644 ${B}/export/usr/lib/libckteec.so.0.1.0 ${D}${libdir}/libckteec.so.0.1.0
ln -sf libckteec.so.0.1.0 ${D}${libdir}/libckteec.so.0.1
ln -sf libckteec.so.0.1.0 ${D}${libdir}/libckteec.so.0
ln -sf libckteec.so.0.1.0 ${D}${libdir}/libckteec.so
install -D -p -m0755 ${B}/export/usr/sbin/tee-supplicant ${D}${bindir}/tee-supplicant
cp -a ${B}/export/usr/include ${D}${includedir}
install -d ${D}${systemd_system_unitdir}/
install -m0644 ${WORKDIR}/tee-supplicant.service ${D}${systemd_system_unitdir}/
sed -i -e s:/etc:${sysconfdir}:g -e s:/usr/bin:${bindir}:g ${D}${systemd_system_unitdir}/tee-supplicant.service
}
SYSTEMD_SERVICE:${PN} = "tee-supplicant.service"
FILES:${PN} += "${libdir}/* ${includedir}/*"
INSANE_SKIP:${PN} = "ldflags dev-elf"
INSANE_SKIP:${PN}-dev = "ldflags dev-elf"

View File

@@ -0,0 +1,11 @@
[Unit]
Description=TEE Supplicant
[Service]
User=root
EnvironmentFile=-/etc/default/tee-supplicant
ExecStart=/usr/bin/tee-supplicant $OPTARGS
[Install]
WantedBy=basic.target

View File

@@ -0,0 +1,28 @@
require optee-os.nxp.inc
PV:append = "+git${SRCPV}"
PLATFORM_FLAVOR:ls1088ardb-pb = "ls1088ardb"
PLATFORM_FLAVOR:ls1046afrwy = "ls1046ardb"
PLATFORM_FLAVOR:lx2162aqds = "lx2160aqds"
EXTRA_OEMAKE += " \
PLATFORM=ls \
CFG_ARM64_core=y \
"
do_compile:append:ls1012afrwy() {
mv ${B}/core/tee-raw.bin ${B}/core/tee_512mb.bin
oe_runmake CFG_DRAM0_SIZE=0x40000000 all
}
do_install:append:qoriq() {
install -m 644 ${B}/core/tee-raw.bin ${D}${nonarch_base_libdir}/firmware/tee_${MACHINE}.bin
}
do_install:append:ls1012afrwy() {
install -m 644 ${B}/core/tee_512mb.bin ${D}${nonarch_base_libdir}/firmware/tee_${MACHINE}_512mb.bin
}
INHIBIT_PACKAGE_STRIP = "1"
COMPATIBLE_MACHINE = "(qoriq-arm64)"

View File

@@ -0,0 +1,75 @@
# Copyright 2020-2021 NXP
SUMMARY = "OPTEE OS"
DESCRIPTION = "OPTEE OS"
HOMEPAGE = "http://www.optee.org/"
LICENSE = "BSD"
LIC_FILES_CHKSUM = "file://LICENSE;md5=c1f21c4f72f372ef38a5a4aee55ec173"
inherit deploy python3native autotools
DEPENDS = "python3-pycryptodome-native python3-pyelftools-native python3-pycryptodomex-native dtc-native"
SRC_URI = "git://github.com/nxp-qoriq/optee_os.git;protocol=https;nobranch=1"
SRCREV = "735d98806dc26fbeeecad7f5e60ffeab8170c67e"
S = "${WORKDIR}/git"
B = "${WORKDIR}/build.${PLATFORM_FLAVOR}"
PLATFORM_FLAVOR ?= "${MACHINE}"
OPTEE_ARCH ?= "arm64"
OPTEE_ARCH:armv7a = "arm32"
OPTEE_ARCH:aarch64 = "arm64"
OPTEE_CORE_LOG_LEVEL ?= "1"
OPTEE_TA_LOG_LEVEL ?= "0"
# Optee-os can be built for 32 bits and 64 bits at the same time
# as long as the compilers are correctly defined.
# For 64bits, CROSS_COMPILE64 must be set
# When defining CROSS_COMPILE and CROSS_COMPILE64, we assure that
# any 32 or 64 bits builds will pass
EXTRA_OEMAKE = " \
-C ${S} O=${B} \
PLATFORM_FLAVOR=${PLATFORM_FLAVOR} \
CROSS_COMPILE=${HOST_PREFIX} \
CROSS_COMPILE64=${HOST_PREFIX} \
CFG_WERROR=y \
CFG_TEE_CORE_LOG_LEVEL=${OPTEE_CORE_LOG_LEVEL} \
CFG_TEE_TA_LOG_LEVEL=${OPTEE_TA_LOG_LEVEL} \
"
do_compile() {
unset LDFLAGS
export CFLAGS="${CFLAGS} --sysroot=${STAGING_DIR_HOST}"
oe_runmake all
}
do_install() {
install -d ${D}${nonarch_base_libdir}/firmware/
install -m 644 ${B}/core/*.bin ${D}${nonarch_base_libdir}/firmware/
# Install the TA devkit
install -d ${D}${includedir}/optee/export-user_ta/
for f in ${B}/export-ta_${OPTEE_ARCH}/*; do
cp -aR $f ${D}${includedir}/optee/export-user_ta/
done
install -d ${D}${nonarch_base_libdir}/optee_armtz
find ${B}/export-ta_${OPTEE_ARCH}/ta -name '*.ta' | while read name; do
install -m 444 $name ${D}${nonarch_base_libdir}/optee_armtz/
done
}
do_deploy() {
install -d ${DEPLOYDIR}/optee
install -m 644 ${D}${nonarch_base_libdir}/firmware/* ${DEPLOYDIR}/optee/
}
addtask deploy before do_build after do_install
FILES:${PN} = "${nonarch_base_libdir}/firmware/ ${nonarch_base_libdir}/optee_armtz/"
FILES:${PN}-staticdev = "/usr/include/optee/"
RDEPENDS:${PN}-dev += "${PN}-staticdev"
PACKAGE_ARCH = "${MACHINE_ARCH}"

View File

@@ -0,0 +1,13 @@
require optee-test.nxp.inc
PV:append = "+git${SRCPV}"
DEPENDS += "optee-client-qoriq optee-os-qoriq"
TEEC_EXPORT = "${STAGING_DIR_HOST}${prefix}"
EXTRA_OEMAKE += " \
TEEC_EXPORT=${TEEC_EXPORT} \
"
COMPATIBLE_MACHINE = "(qoriq-arm64)"

View File

@@ -0,0 +1,61 @@
# Copyright 2020-2021 NXP
SUMMARY = "OPTEE test"
HOMEPAGE = "http://www.optee.org/"
LICENSE = "BSD & GPL-2.0-only"
LIC_FILES_CHKSUM = "file://LICENSE.md;md5=daa2bcccc666345ab8940aab1315a4fa"
DEPENDS = "python3-pycryptodome-native python3-pycryptodomex-native openssl"
inherit python3native cmake
SRC_URI = "git://github.com/nxp-qoriq/optee_test.git;protocol=https;nobranch=1"
SRCREV = "69722dab8c1f2683e30e0ee3b536053367e37aad"
S = "${WORKDIR}/git"
B = "${WORKDIR}/build"
TA_DEV_KIT_DIR ?= "${STAGING_INCDIR}/optee/export-user_ta"
OPTEE_CLIENT_EXPORT ?= "${STAGING_DIR_HOST}${prefix}"
EXTRA_OEMAKE = " \
TA_DEV_KIT_DIR=${TA_DEV_KIT_DIR} \
OPTEE_CLIENT_EXPORT=${OPTEE_CLIENT_EXPORT} \
CROSS_COMPILE_HOST=${HOST_PREFIX} \
CROSS_COMPILE_TA=${HOST_PREFIX} \
OPTEE_OPENSSL_EXPORT=${STAGING_INCDIR}/ \
-C ${S} O=${B} \
"
EXTRA_OECMAKE = " \
-DOPTEE_TEST_SDK=${TA_DEV_KIT_DIR} \
"
do_compile() {
export CXXFLAGS="${CXXFLAGS} --sysroot=${STAGING_DIR_HOST}"
oe_runmake xtest
oe_runmake ta
oe_runmake test_plugin
}
do_install() {
install -d ${D}${bindir}/
install ${B}/xtest/xtest ${D}${bindir}/
install -d ${D}${nonarch_base_libdir}/optee_armtz
find ${B}/ta -name '*.ta' | while read name; do
install -m 444 $name ${D}${nonarch_base_libdir}/optee_armtz/
done
install -d ${D}${libdir}/tee-supplicant/plugins/
find ${B}/supp_plugin -name '*.plugin' | while read name; do
install -m 755 $name ${D}${libdir}/tee-supplicant/plugins/
done
}
FILES:${PN} += "${nonarch_base_libdir} ${libdir}/tee-supplicant/plugins/"
DEBUG_OPTIMIZATION:append = " -Wno-error=maybe-uninitialized -Wno-deprecated-declarations"
FULL_OPTIMIZATION:append = " -Wno-error=maybe-uninitialized -Wno-deprecated-declarations"
PACKAGE_ARCH = "${MACHINE_ARCH}"

View File

@@ -0,0 +1,23 @@
# Copyright 2020-2022 NXP
SUMMARY = "NXP i.MX CAAM Keyctl"
DESCRIPTION = "NXP i.MX keyctl tool to manage CAAM Keys"
SECTION = "base"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://COPYING;md5=8636bd68fc00cc6a3809b7b58b45f982"
SRCBRANCH = "master"
SRC_URI = "git://github.com/nxp-imx/keyctl_caam.git;protocol=https;branch=${SRCBRANCH}"
SRCREV = "81dc06cdb9c4d0d4ba10459d85af9a8603774948"
S = "${WORKDIR}/git"
TARGET_CC_ARCH += "${LDFLAGS}"
do_install () {
oe_runmake DESTDIR=${D} install
}
COMPATIBLE_MACHINE = "(imx-generic-bsp)"

View File

@@ -0,0 +1,64 @@
# Copyright 2020-23 NXP
SUMMARY = "NXP i.MX Security Middleware Library"
DESCRIPTION = "NXP i.MX Security Middleware Library"
SECTION = "base"
LICENSE = "BSD-3-Clause"
LICENSE = "Apache-2.0 & BSD-3-Clause & Zlib"
LIC_FILES_CHKSUM = "file://LICENSE;md5=8636bd68fc00cc6a3809b7b58b45f982 \
file://../psa-arch-tests/LICENSE.md;md5=2a944942e1496af1886903d274dedb13"
DEPENDS = "json-c optee-os optee-client python3-cryptography-native"
DEPENDS:append:mx8qxp-nxp-bsp = " imx-seco-libs"
DEPENDS:append:mx8dx-nxp-bsp = " imx-seco-libs"
DEPENDS:append:mx8ulp-nxp-bsp = " imx-secure-enclave"
SRC_URI = "git://github.com/nxp-imx/imx-smw.git;protocol=https;branch=release/version_2.x;name=smw;destsuffix=git/smw \
git://github.com/ARM-software/psa-arch-tests.git;protocol=https;branch=main;name=psa;destsuffix=git/psa-arch-tests \
"
SRCREV_smw = "f0570b3e8cb5f68d54edc4f9dd7cb984f6f604ed"
SRCREV_psa = "463cb95ada820bc6f758d50066cf8c0ed5cc3a02"
SRCREV_FORMAT = "smw_psa"
S = "${WORKDIR}/git/smw"
inherit cmake python3native
CFLAGS[unexport] = "1"
CPPFLAGS[unexport] = "1"
AS[unexport] = "1"
LD[unexport] = "1"
# setting the linker options
TARGET_LDFLAGS:remove = "${DEBUG_PREFIX_MAP}"
OPTEE_OS_TA_EXPORT_DIR:aarch64 = "${STAGING_INCDIR}/optee/export-user_ta_arm64"
OPTEE_OS_TA_EXPORT_DIR:arm = "${STAGING_INCDIR}/optee/export-user_ta_arm32"
# Needs to sign OPTEE TAs
export OPENSSL_MODULES="${STAGING_LIBDIR_NATIVE}/ossl-modules"
EXTRA_OECMAKE = " \
-DTA_DEV_KIT_ROOT=${OPTEE_OS_TA_EXPORT_DIR} \
-DTEEC_ROOT=${STAGING_DIR_HOST} \
-DJSONC_ROOT="${COMPONENTS_DIR}/${TARGET_ARCH}/json-c/usr" \
-DPSA_ARCH_TESTS_SRC_PATH=../${PSA_ARCH_TESTS_SRC_PATH} \
"
EXTRA_OECMAKE:append:mx8qxp-nxp-bsp = "-DSECO_ROOT=${STAGING_DIR_HOST}"
EXTRA_OECMAKE:append:mx8dx-nxp-bsp = "-DSECO_ROOT=${STAGING_DIR_HOST}"
EXTRA_OECMAKE:append:mx8ulp-nxp-bsp = "-DELE_ROOT=${STAGING_DIR_HOST}"
EXTRA_OECMAKE_IMX:mx93-nxp-bsp = "-DELE_ROOT=${STAGING_DIR_HOST}"
OECMAKE_TARGET_COMPILE += "build_tests"
OECMAKE_TARGET_INSTALL += "install_tests"
INSANE_SKIP_${PN}-tests = "textrel"
PACKAGES =+ "${PN}-tests"
FILES:${PN} += "${base_libdir}/optee_armtz/*"
FILES:${PN}-tests = "${bindir}/* ${datadir}/${BPN}/*"
RDEPENDS:${PN}-tests += "bash cmake"
COMPATIBLE_MACHINE = "(imx-nxp-bsp)"