OPTEE-OS-STM32MP: update to v2.0.0 (3.9.0-stm32mp-r1)
Change-Id: I694a30b4d79ec0ff77b6db167c0fbf926c111ac2
This commit is contained in:
parent
5a288525e2
commit
4b72bbe010
|
|
@ -24,7 +24,7 @@ archiver_create_makefile_for_sdk() {
|
|||
#set default CONFIGURATION with configured OPTEE_CONF
|
||||
if [ -n "${OPTEE_CONF}" ]; then
|
||||
echo "PLATFORM ?= ${MACHINE}" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
|
||||
echo "CFG_SECURE_DT ?= ${OPTEE_CONF}" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
|
||||
echo "CFG_EMBED_DTB_SOURCE_FILE ?= ${OPTEE_CONF}" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
|
||||
fi
|
||||
|
||||
echo -n "EXTRA_OEMAKE=" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
|
||||
|
|
@ -32,9 +32,9 @@ archiver_create_makefile_for_sdk() {
|
|||
|
||||
echo "" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
|
||||
echo "all:" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
|
||||
echo " if test -n \"\$(CFG_SECURE_DT)\" ; then \\" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
|
||||
echo " for dt in \$(CFG_SECURE_DT) ; do \\" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
|
||||
echo " \$(MAKE) \$(EXTRA_OEMAKE) -C \$(LOCAL_PATH) PREFIX=\$(SDKTARGETSYSROOT) O=\$(LOCAL_PATH)/../build/\$\$dt CFG_SECURE_DT=\$\$dt ; \\" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
|
||||
echo " if test -n \"\$(CFG_EMBED_DTB_SOURCE_FILE)\" ; then \\" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
|
||||
echo " for dt in \$(CFG_EMBED_DTB_SOURCE_FILE) ; do \\" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
|
||||
echo " \$(MAKE) \$(EXTRA_OEMAKE) -C \$(LOCAL_PATH) PREFIX=\$(SDKTARGETSYSROOT) O=\$(LOCAL_PATH)/../build/\$\$dt CFG_EMBED_DTB_SOURCE_FILE=\$\$dt.dts ; \\" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
|
||||
# Copy binary files with explicit name
|
||||
echo " cp ../build/\$\$dt/core/${OPTEE_HEADER}.${OPTEE_SUFFIX} ../build/${OPTEE_HEADER}-\$\$dt-${OPTEE_BOOTCHAIN}.${OPTEE_SUFFIX} ; \\" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
|
||||
echo " cp ../build/\$\$dt/core/${OPTEE_PAGER}.${OPTEE_SUFFIX} ../build/${OPTEE_PAGER}-\$\$dt-${OPTEE_BOOTCHAIN}.${OPTEE_SUFFIX} ; \\" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
|
||||
|
|
|
|||
|
|
@ -2,13 +2,16 @@ FILESEXTRAPATHS_prepend := "${THISDIR}/optee-os:"
|
|||
|
||||
PACKAGE_ARCH = "${MACHINE_ARCH}"
|
||||
|
||||
PROVIDES += "virtual/optee-os"
|
||||
RPROVIDES_${PN} += "virtual/optee-os virtual/systemd-bootconf"
|
||||
|
||||
B = "${WORKDIR}/build"
|
||||
# Configure build dir for externalsrc class usage through devtool
|
||||
EXTERNALSRC_BUILD_pn-${PN} = "${WORKDIR}/build"
|
||||
|
||||
DEPENDS += "dtc-native python-pycrypto-native"
|
||||
DEPENDS += "dtc-native python3-pycryptodomex-native python3-pycrypto-native python3-pyelftools-native"
|
||||
|
||||
inherit deploy pythonnative
|
||||
inherit deploy python3native
|
||||
|
||||
OPTEEMACHINE ?= "${MACHINE}"
|
||||
OPTEEOUTPUTMACHINE ?= "${MACHINE}"
|
||||
|
|
@ -38,7 +41,7 @@ do_compile() {
|
|||
unset -v CFLAGS CPPFLAGS LDFLAGS LDADD
|
||||
if [ -n "${OPTEE_CONF}" ]; then
|
||||
for conf in ${OPTEE_CONF}; do
|
||||
oe_runmake -C ${S} O=${B}/${conf} CFG_SECURE_DT=${conf}
|
||||
oe_runmake -C ${S} O=${B}/${conf} CFG_EMBED_DTB_SOURCE_FILE=${conf}.dts
|
||||
done
|
||||
else
|
||||
oe_runmake -C ${S} O=${B}/out
|
||||
|
|
@ -69,6 +72,7 @@ ELF_DEBUG_ENABLE ?= ""
|
|||
OPTEE_ELF = "tee"
|
||||
OPTEE_ELF_SUFFIX = "elf"
|
||||
|
||||
do_deploy[sstate-outputdirs] = "${DEPLOY_DIR_IMAGE}/optee"
|
||||
do_deploy() {
|
||||
install -d ${DEPLOYDIR}
|
||||
if [ -n "${OPTEE_CONF}" ]; then
|
||||
|
|
|
|||
|
|
@ -1,49 +0,0 @@
|
|||
SUMMARY = "OPTEE TA development kit for stm32mp"
|
||||
LICENSE = "BSD-2-Clause & BSD-3-Clause"
|
||||
LIC_FILES_CHKSUM = "file://LICENSE;md5=69663ab153298557a59c67a60a743e5b"
|
||||
|
||||
SRC_URI = "https://github.com/OP-TEE/optee_os/archive/${PV}.tar.gz"
|
||||
SRC_URI[md5sum] = "7cb56c333066fd576460358fc97da85f"
|
||||
SRC_URI[sha256sum] = "7b62e9fe650e197473eb2f4dc35c09d1e6395eb48dc1c16cc139d401b359ac6f"
|
||||
|
||||
SRC_URI += " \
|
||||
file://0001-st-updates-r1.patch \
|
||||
file://0002-st-updates-r2.patch \
|
||||
file://0003-st-updates-r3.patch \
|
||||
"
|
||||
|
||||
OPTEE_VERSION = "3.3.0"
|
||||
PV = "${OPTEE_VERSION}"
|
||||
|
||||
S = "${WORKDIR}/optee_os-${PV}"
|
||||
|
||||
COMPATIBLE_MACHINE = "(stm32mpcommon)"
|
||||
|
||||
PROVIDES += "optee-os"
|
||||
|
||||
# The package is empty but must be generated to avoid apt-get installation issue
|
||||
ALLOW_EMPTY_${PN} = "1"
|
||||
|
||||
require optee-os-stm32mp-common.inc
|
||||
|
||||
# ---------------------------------
|
||||
# Configure archiver use
|
||||
# ---------------------------------
|
||||
include ${@oe.utils.ifelse(d.getVar('ST_ARCHIVER_ENABLE') == '1', 'optee-os-stm32mp-archiver.inc','')}
|
||||
|
||||
# ---------------------------------
|
||||
# Configure devupstream class usage
|
||||
# ---------------------------------
|
||||
BBCLASSEXTEND = "devupstream:target"
|
||||
|
||||
SRC_URI_class-devupstream = "git://github.com/STMicroelectronics/optee_os.git;protocol=https;name=opteeos;branch=3.3.0-stm32mp"
|
||||
SRCREV_class-devupstream = "273094317924bd18d2b7e7ed1d98e5118ed9c1fa"
|
||||
SRCREV_FORMAT_class-devupstream = "opteeos"
|
||||
PV_class-devupstream = "${OPTEE_VERSION}+github+${SRCPV}"
|
||||
|
||||
# ---------------------------------
|
||||
# Configure default preference to manage dynamic selection between tarball and github
|
||||
# ---------------------------------
|
||||
STM32MP_SOURCE_SELECTION ?= "tarball"
|
||||
|
||||
DEFAULT_PREFERENCE = "${@bb.utils.contains('STM32MP_SOURCE_SELECTION', 'github', '-1', '1', d)}"
|
||||
|
|
@ -0,0 +1,51 @@
|
|||
SUMMARY = "OPTEE TA development kit for stm32mp"
|
||||
LICENSE = "BSD-2-Clause & BSD-3-Clause"
|
||||
LIC_FILES_CHKSUM = "file://LICENSE;md5=c1f21c4f72f372ef38a5a4aee55ec173"
|
||||
|
||||
SRC_URI = "git://github.com/OP-TEE/optee_os.git;protocol=https;name=os"
|
||||
SRCREV = "af141c61fe7a2430f3b4bb89661d8414117013b3"
|
||||
|
||||
SRC_URI += " \
|
||||
file://0001-3.9.0-stm32mp-r1.patch \
|
||||
"
|
||||
|
||||
OPTEE_VERSION = "3.9.0"
|
||||
PV = "${OPTEE_VERSION}.r1"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
COMPATIBLE_MACHINE = "(stm32mpcommon)"
|
||||
|
||||
OPTEEMACHINE ?= "stm32mp1"
|
||||
OPTEEMACHINE_stm32mp1common = "stm32mp1"
|
||||
|
||||
OPTEEOUTPUTMACHINE ?= "stm32mp1"
|
||||
OPTEEOUTPUTMACHINE_stm32mp1common = "stm32mp1"
|
||||
|
||||
|
||||
# The package is empty but must be generated to avoid apt-get installation issue
|
||||
ALLOW_EMPTY_${PN} = "1"
|
||||
|
||||
require optee-os-stm32mp-common.inc
|
||||
|
||||
# ---------------------------------
|
||||
# Configure archiver use
|
||||
# ---------------------------------
|
||||
include ${@oe.utils.ifelse(d.getVar('ST_ARCHIVER_ENABLE') == '1', 'optee-os-stm32mp-archiver.inc','')}
|
||||
|
||||
# ---------------------------------
|
||||
# Configure devupstream class usage
|
||||
# ---------------------------------
|
||||
#BBCLASSEXTEND = "devupstream:target"
|
||||
|
||||
#SRC_URI_class-devupstream = "git://github.com/STMicroelectronics/optee_os.git;protocol=https;name=opteeos;branch=3.3.0-stm32mp"
|
||||
#SRCREV_class-devupstream = "5f5cc70dfd04419be2ba66b87f41584b6136118c"
|
||||
#SRCREV_FORMAT_class-devupstream = "opteeos"
|
||||
#PV_class-devupstream = "${OPTEE_VERSION}+github+${SRCPV}"
|
||||
|
||||
# ---------------------------------
|
||||
# Configure default preference to manage dynamic selection between tarball and github
|
||||
# ---------------------------------
|
||||
#STM32MP_SOURCE_SELECTION ?= "tarball"
|
||||
|
||||
#DEFAULT_PREFERENCE = "${@bb.utils.contains('STM32MP_SOURCE_SELECTION', 'github', '-1', '1', d)}"
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
|
@ -19,17 +19,17 @@ For optee-os build you need to install:
|
|||
Fedora: sudo yum install git
|
||||
|
||||
If you have never configured you git configuration:
|
||||
$> git config --global user.name "your_name"
|
||||
$> git config --global user.email "your_email@example.com"
|
||||
$ git config --global user.name "your_name"
|
||||
$ git config --global user.email "your_email@example.com"
|
||||
|
||||
2. Initialise cross-compilation via SDK:
|
||||
---------------------------------------
|
||||
Source SDK environment:
|
||||
$> source <path to SDK>/environment-setup-cortexa7t2hf-neon-vfpv4-openstlinux_weston-linux-gnueabi
|
||||
$ source <path to SDK>/environment-setup-cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi
|
||||
|
||||
To verify if your cross-compilation environment have put in place:
|
||||
$> set | grep CROSS
|
||||
CROSS_COMPILE=arm-openstlinux_weston-linux-gnueabi-
|
||||
$ set | grep CROSS
|
||||
CROSS_COMPILE=arm-ostl-linux-gnueabi-
|
||||
|
||||
Warning: the environment are valid only on the shell session where you have
|
||||
sourced the sdk environment.
|
||||
|
|
@ -38,55 +38,52 @@ Warning: the environment are valid only on the shell session where you have
|
|||
------------------------
|
||||
If you have the tarball and the list of patch then you must extract the
|
||||
tarball and apply the patch.
|
||||
$> tar xfz <optee-os source>.tar.gz
|
||||
or
|
||||
$> tar xfj <optee-os source>.tar.bz2
|
||||
or
|
||||
$> tar xfJ <optee-os source>.tar.xz
|
||||
$> tar xfz ##BP##-##PR##.tar.gz
|
||||
A new directory containing optee standard source code will be created, go into it:
|
||||
$> cd <directory to optee-os source code>
|
||||
$> cd ##BP##
|
||||
|
||||
NB: if there is no git management on source code and you would like to have a git management
|
||||
on the code see section 4 [Management of optee-os source code]
|
||||
if there is some patch, please apply it on source code
|
||||
$> for p in `ls -1 <path to patch>/*.patch`; do patch -p1 < $p; done
|
||||
$> for p in `ls -1 ../*.patch`; do patch -p1 < $p; done
|
||||
|
||||
4. Management of optee-os source code:
|
||||
-----------------------------------
|
||||
If you like to have a better management of change made on optee-os source, you
|
||||
can use git:
|
||||
$> cd <optee-os source>
|
||||
$> test -d .git || git init . && git add . && git commit -m "optee-ossource code" && git gc
|
||||
$> git checkout -b WORKING
|
||||
$> for p in `ls -1 <path to patch>/*.patch`; do git am $p; done
|
||||
$ cd <optee-os source>
|
||||
$ test -d .git || git init . && git add . && git commit -m "optee-ossource code" && git gc
|
||||
$ git checkout -b WORKING
|
||||
$ for p in `ls -1 <path to patch>/*.patch`; do git am $p; done
|
||||
|
||||
MANDATORY: You must update sources
|
||||
$> cd <directory to optee-os source code>
|
||||
$> chmod 755 scripts/bin_to_c.py
|
||||
$ cd <directory to optee-os source code>
|
||||
$ chmod 755 scripts/bin_to_c.py
|
||||
|
||||
NB: you can use directly the source from the community:
|
||||
URL: git://github.com/OP-TEE/optee_os.git
|
||||
Branch: ##GIT_BRANCH##
|
||||
Revision: ##GIT_SRCREV##
|
||||
|
||||
$> git clone git://github.com/OP-TEE/optee_os.git
|
||||
$> cd <optee-os source>
|
||||
$> git checkout -b WORKING ##GIT_SRCREV##
|
||||
$> for p in `ls -1 <path to patch>/*.patch`; do git am $p; done
|
||||
$ git clone git://github.com/OP-TEE/optee_os.git
|
||||
$ cd <optee-os source>
|
||||
$ git checkout -b WORKING ##GIT_SRCREV##
|
||||
$ for p in `ls -1 <path to patch>/*.patch`; do git am $p; done
|
||||
|
||||
MANDATORY: You must update sources
|
||||
$> cd <directory to optee-os source code>
|
||||
$> chmod 755 scripts/bin_to_c.py
|
||||
$ cd <directory to optee-os source code>
|
||||
$ chmod 755 scripts/bin_to_c.py
|
||||
|
||||
5. Build optee-os source code:
|
||||
--------------------------------
|
||||
To compile optee-os source code
|
||||
$> cd <directory to optee-os source code>
|
||||
$> make -f $PWD/../Makefile.sdk
|
||||
or for a specific config :
|
||||
$> make -f $PWD/../Makefile.sdk CFG_SECURE_DT=stm32mp157c-ev1
|
||||
$ make -f $PWD/../Makefile.sdk CFG_EMBED_DTB_SOURCE_FILE=stm32mp157c-ev1
|
||||
|
||||
Binaries generated are as follow:
|
||||
##> PWD/../build/tee-*-optee.stm32
|
||||
|
||||
By default, binaries are located in $PWD/../build
|
||||
|
||||
6. Update software on board:
|
||||
----------------------------
|
||||
|
|
@ -107,7 +104,7 @@ the OP-TEE partitions are the partitions 4/5/6:
|
|||
- SDCARD via USB reader: /dev/sdX4 /dev/sdX5 /dev/sdX6
|
||||
(where X is the instance identifier)
|
||||
So, for each binary:
|
||||
$> dd if=<op-tee binary> of=/dev/<device partition> bs=1M conv=fdatasync
|
||||
$ dd if=<op-tee binary> of=/dev/<device partition> bs=1M conv=fdatasync
|
||||
|
||||
6.3. Update via USB mass storage on U-boot:
|
||||
-------------------------------------------
|
||||
|
|
@ -135,7 +132,7 @@ To find the partition associated to a specific label, connect the
|
|||
SDCARD to your PC or run on target U-boot 'ums' command
|
||||
and list /dev/disk/by-partlabel/ content, i.e:
|
||||
|
||||
$> ls -l /dev/disk/by-partlabel/
|
||||
$ ls -l /dev/disk/by-partlabel/
|
||||
total 0
|
||||
lrwxrwxrwx 1 root root 15 Jan 23 19:11 bootfs -> ../../mmcblk0p7
|
||||
lrwxrwxrwx 1 root root 15 Jan 23 19:11 fsbl1 -> ../../mmcblk0p1 # FSBL (TF-A)
|
||||
|
|
@ -146,4 +143,4 @@ and list /dev/disk/by-partlabel/ content, i.e:
|
|||
lrwxrwxrwx 1 root root 15 Jan 23 19:11 teeh -> ../../mmcblk0p4 # TEEH (OP-TEE tee-header)
|
||||
lrwxrwxrwx 1 root root 15 Jan 23 19:11 teex -> ../../mmcblk0p6 # TEEX (OP-TEE tee-pager)
|
||||
lrwxrwxrwx 1 root root 16 Jan 23 19:11 userfs -> ../../mmcblk0p10
|
||||
lrwxrwxrwx 1 root root 15 Jan 23 19:11 vendorfs -> ../../mmcblk0p8
|
||||
lrwxrwxrwx 1 root root 15 Jan 23 19:11 vendorfs -> ../../mmcblk0p8
|
||||
Loading…
Reference in New Issue