Import 80d60e7 from yoctoproject.org meta-arm
To support ARMv8 SoCs.
meta-arm has several patch files. Since they are maintained by the
upstream meta-arm community, add meta-arm to the ignore list in
run-repotest.
Change-Id: Ia87a2e947bbabd347d256eccc47a343e1c885479
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
diff --git a/meta-arm/meta-arm/recipes-security/optee/optee-spdevkit_git.bb b/meta-arm/meta-arm/recipes-security/optee/optee-spdevkit_git.bb
new file mode 100644
index 0000000..7608cec
--- /dev/null
+++ b/meta-arm/meta-arm/recipes-security/optee/optee-spdevkit_git.bb
@@ -0,0 +1,305 @@
+SUMMARY = "OP-TEE Secure Partion Development Kit"
+DESCRIPTION = "Open Portable Trusted Execution Environment - Development Kit to run secure partitions"
+HOMEPAGE = "https://www.op-tee.org/"
+
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=c1f21c4f72f372ef38a5a4aee55ec173"
+
+inherit deploy python3native
+require optee.inc
+FILESEXTRAPATHS:prepend := "${THISDIR}/optee-os:"
+
+CVE_PRODUCT = "linaro:op-tee op-tee:op-tee_os"
+
+DEPENDS = "python3-pyelftools-native"
+
+DEPENDS:append:toolchain-clang = " compiler-rt"
+
+# spdevkit isn't yet merged to master
+SRC_URI = "git://git.trustedfirmware.org/OP-TEE/optee_os.git;protocol=https;branch=psa-development \
+ file://0006-allow-setting-sysroot-for-libgcc-lookup.patch \
+ file://0007-allow-setting-sysroot-for-clang.patch \
+"
+SRCREV = "f9de2c9520ed97b89760cc4c99424aae440b63f4"
+PV = "3.10+git${SRCPV}"
+
+S = "${WORKDIR}/git"
+B = "${WORKDIR}/build"
+
+EXTRA_OEMAKE += " \
+ PLATFORM=${OPTEEMACHINE} \
+ CFG_${OPTEE_CORE}_core=y \
+ CROSS_COMPILE_core=${HOST_PREFIX} \
+ CROSS_COMPILE_sp_${OPTEE_ARCH}=${HOST_PREFIX} \
+ CFG_CORE_FFA=y \
+ CFG_WITH_SP=y \
+ O=${B} \
+"
+
+CFLAGS[unexport] = "1"
+LDFLAGS[unexport] = "1"
+CPPFLAGS[unexport] = "1"
+AS[unexport] = "1"
+LD[unexport] = "1"
+
+do_configure[noexec] = "1"
+
+do_compile() {
+ oe_runmake -C ${S} sp_dev_kit
+}
+do_compile[cleandirs] = "${B}"
+
+do_install() {
+ #install SP devkit
+ install -d ${D}${includedir}/optee/export-user_sp/
+ for f in ${B}/export-sp_${OPTEE_ARCH}/* ; do
+ cp -aR $f ${D}${includedir}/optee/export-user_sp/
+ done
+ cat > ${D}${includedir}/optee/export-user_sp/include/stddef.h <<'EOF'
+#ifndef STDDEF_H
+#define STDDEF_H
+
+#include <stddef_.h>
+
+#ifndef _PTRDIFF_T
+typedef long ptrdiff_t;
+#define _PTRDIFF_T
+#endif
+
+#ifndef NULL
+#define NULL ((void *) 0)
+#endif
+
+#define offsetof(st, m) __builtin_offsetof(st, m)
+
+#endif /* STDDEF_H */
+EOF
+ cat > ${D}${includedir}/optee/export-user_sp/include/stddef_.h <<'EOF'
+#ifndef STDDEF__H
+#define STDDEF__H
+
+#ifndef SIZET_
+typedef unsigned long size_t;
+#define SIZET_
+#endif
+
+#endif /* STDDEF__H */
+EOF
+ cat > ${D}${includedir}/optee/export-user_sp/include/stdarg.h <<'EOF'
+#ifndef STDARG_H
+#define STDARG_H
+
+#define va_list __builtin_va_list
+#define va_start(ap, last) __builtin_va_start(ap, last)
+#define va_end(ap) __builtin_va_end(ap)
+#define va_copy(to, from) __builtin_va_copy(to, from)
+#define va_arg(to, type) __builtin_va_arg(to, type)
+
+#endif /* STDARG_H */
+EOF
+ cat > ${D}${includedir}/optee/export-user_sp/include/stdbool.h <<'EOF'
+#ifndef STDBOOL_H
+#define STDBOOL_H
+
+#define bool _Bool
+
+#define true 1
+#define false 0
+
+#define __bool_true_false_are_defined 1
+
+#endif /* STDBOOL_H */
+EOF
+
+cat > ${D}${includedir}/optee/export-user_sp/include/features.h <<'EOF'
+ #ifndef _FEATURES_H
+ #define _FEATURES_H
+ #if defined(_ALL_SOURCE) && !defined(_GNU_SOURCE)
+ #define _GNU_SOURCE 1
+#endif
+ #if defined(_DEFAULT_SOURCE) && !defined(_BSD_SOURCE)
+ #define _BSD_SOURCE 1
+#endif
+ #if !defined(_POSIX_SOURCE) && !defined(_POSIX_C_SOURCE) \
+ && !defined(_XOPEN_SOURCE) && !defined(_GNU_SOURCE) \
+ && !defined(_BSD_SOURCE) && !defined(__STRICT_ANSI__)
+ #define _BSD_SOURCE 1
+ #define _XOPEN_SOURCE 700
+#endif
+ #if __STDC_VERSION__ >= 199901L
+ #define __restrict restrict
+ #elif !defined(__GNUC__)
+ #define __restrict
+#endif
+ #if __STDC_VERSION__ >= 199901L || defined(__cplusplus)
+ #define __inline inline
+ #elif !defined(__GNUC__)
+ #define __inline
+#endif
+ #if __STDC_VERSION__ >= 201112L
+ #elif defined(__GNUC__)
+ #define _Noreturn __attribute__((__noreturn__))
+#else
+ #define _Noreturn
+#endif
+ #define __REDIR(x,y) __typeof__(x) x __asm__(#y)
+#endif
+EOF
+cat > ${D}${includedir}/optee/export-user_sp/include/errno.h <<'EOF'
+ #ifndef _ERRNO_H
+ #define _ERRNO_H
+ #include <features.h>
+ #define EPERM 1
+ #define ENOENT 2
+ #define ESRCH 3
+ #define EINTR 4
+ #define EIO 5
+ #define ENXIO 6
+ #define E2BIG 7
+ #define ENOEXEC 8
+ #define EBADF 9
+ #define ECHILD 10
+ #define EAGAIN 11
+ #define ENOMEM 12
+ #define EACCES 13
+ #define EFAULT 14
+ #define ENOTBLK 15
+ #define EBUSY 16
+ #define EEXIST 17
+ #define EXDEV 18
+ #define ENODEV 19
+ #define ENOTDIR 20
+ #define EISDIR 21
+ #define EINVAL 22
+ #define ENFILE 23
+ #define EMFILE 24
+ #define ENOTTY 25
+ #define ETXTBSY 26
+ #define EFBIG 27
+ #define ENOSPC 28
+ #define ESPIPE 29
+ #define EROFS 30
+ #define EMLINK 31
+ #define EPIPE 32
+ #define EDOM 33
+ #define ERANGE 34
+ #define EDEADLK 35
+ #define ENAMETOOLONG 36
+ #define ENOLCK 37
+ #define ENOSYS 38
+ #define ENOTEMPTY 39
+ #define ELOOP 40
+ #define EWOULDBLOCK EAGAIN
+ #define ENOMSG 42
+ #define EIDRM 43
+ #define ECHRNG 44
+ #define EL2NSYNC 45
+ #define EL3HLT 46
+ #define EL3RST 47
+ #define ELNRNG 48
+ #define EUNATCH 49
+ #define ENOCSI 50
+ #define EL2HLT 51
+ #define EBADE 52
+ #define EBADR 53
+ #define EXFULL 54
+ #define ENOANO 55
+ #define EBADRQC 56
+ #define EBADSLT 57
+ #define EDEADLOCK EDEADLK
+ #define EBFONT 59
+ #define ENOSTR 60
+ #define ENODATA 61
+ #define ETIME 62
+ #define ENOSR 63
+ #define ENONET 64
+ #define ENOPKG 65
+ #define EREMOTE 66
+ #define ENOLINK 67
+ #define EADV 68
+ #define ESRMNT 69
+ #define ECOMM 70
+ #define EPROTO 71
+ #define EMULTIHOP 72
+ #define EDOTDOT 73
+ #define EBADMSG 74
+ #define EOVERFLOW 75
+ #define ENOTUNIQ 76
+ #define EBADFD 77
+ #define EREMCHG 78
+ #define ELIBACC 79
+ #define ELIBBAD 80
+ #define ELIBSCN 81
+ #define ELIBMAX 82
+ #define ELIBEXEC 83
+ #define EILSEQ 84
+ #define ERESTART 85
+ #define ESTRPIPE 86
+ #define EUSERS 87
+ #define ENOTSOCK 88
+ #define EDESTADDRREQ 89
+ #define EMSGSIZE 90
+ #define EPROTOTYPE 91
+ #define ENOPROTOOPT 92
+ #define EPROTONOSUPPORT 93
+ #define ESOCKTNOSUPPORT 94
+ #define EOPNOTSUPP 95
+ #define ENOTSUP EOPNOTSUPP
+ #define EPFNOSUPPORT 96
+ #define EAFNOSUPPORT 97
+ #define EADDRINUSE 98
+ #define EADDRNOTAVAIL 99
+ #define ENETDOWN 100
+ #define ENETUNREACH 101
+ #define ENETRESET 102
+ #define ECONNABORTED 103
+ #define ECONNRESET 104
+ #define ENOBUFS 105
+ #define EISCONN 106
+ #define ENOTCONN 107
+ #define ESHUTDOWN 108
+ #define ETOOMANYREFS 109
+ #define ETIMEDOUT 110
+ #define ECONNREFUSED 111
+ #define EHOSTDOWN 112
+ #define EHOSTUNREACH 113
+ #define EALREADY 114
+ #define EINPROGRESS 115
+ #define ESTALE 116
+ #define EUCLEAN 117
+ #define ENOTNAM 118
+ #define ENAVAIL 119
+ #define EISNAM 120
+ #define EREMOTEIO 121
+ #define EDQUOT 122
+ #define ENOMEDIUM 123
+ #define EMEDIUMTYPE 124
+ #define ECANCELED 125
+ #define ENOKEY 126
+ #define EKEYEXPIRED 127
+ #define EKEYREVOKED 128
+ #define EKEYREJECTED 129
+ #define EOWNERDEAD 130
+ #define ENOTRECOVERABLE 131
+ #define ERFKILL 132
+ #define EHWPOISON 133
+ #ifdef __GNUC__
+ __attribute__((const))
+#endif
+ int *__errno_location(void);
+ #define errno (*__errno_location())
+ #ifdef _GNU_SOURCE
+ extern char *program_invocation_short_name, *program_invocation_name;
+#endif
+#endif
+EOF
+}
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+COMPATIBLE_HOST = "aarch64.*-linux"
+
+# optee-spdevkit static library is part of optee-os image. No need to package this library in a staticdev package
+INSANE_SKIP:${PN}-dev = "staticdev"
+# Build paths are currently embedded
+INSANE_SKIP:${PN}-dev += "buildpaths"