]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
doc: Add build instructions for OP-TEE backed EFI variables
authorIlias Apalodimas <ilias.apalodimas@linaro.org>
Thu, 1 Apr 2021 10:35:38 +0000 (13:35 +0300)
committerHeinrich Schuchardt <xypron.glpk@gmx.de>
Sat, 10 Apr 2021 10:00:24 +0000 (12:00 +0200)
Since that invlolves external projects and not only U-Boot, add guidance
for supported platforms

Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
doc/develop/uefi/uefi.rst

index d92a32016ec089b84075c1c6171be50376b9bdae..4f2b8b036db888451c98be1afcbebb86fc4c5d67 100644 (file)
@@ -219,7 +219,63 @@ non-volatile variables. When calling the variable services via the
 OP-TEE API U-Boot's OP-TEE supplicant relays calls to the RPMB driver
 which has to be enabled via CONFIG_SUPPORT_EMMC_RPMB=y.
 
-[1] https://optee.readthedocs.io/ - OP-TEE documentation
+EDK2 Build instructions
+***********************
+
+.. code-block:: bash
+
+    $ git clone https://github.com/tianocore/edk2.git
+    $ git clone https://github.com/tianocore/edk2-platforms.git
+    $ cd edk2
+    $ git submodule init && git submodule update --init --recursive
+    $ cd ..
+    $ export WORKSPACE=$(pwd)
+    $ export PACKAGES_PATH=$WORKSPACE/edk2:$WORKSPACE/edk2-platforms
+    $ export ACTIVE_PLATFORM="Platform/StandaloneMm/PlatformStandaloneMmPkg/PlatformStandaloneMmRpmb.dsc"
+    $ export GCC5_AARCH64_PREFIX=aarch64-linux-gnu-
+    $ source edk2/edksetup.sh
+    $ make -C edk2/BaseTools
+    $ build -p $ACTIVE_PLATFORM -b RELEASE -a AARCH64 -t GCC5 -n `nproc`
+
+OP-TEE Build instructions
+*************************
+
+.. code-block:: bash
+
+    $ git clone https://github.com/OP-TEE/optee_os.git
+    $ cd optee_os
+    $ ln -s ../Build/MmStandaloneRpmb/RELEASE_GCC5/FV/BL32_AP_MM.fd
+    $ export ARCH=arm
+    $ CROSS_COMPILE32=arm-linux-gnueabihf- make -j32 CFG_ARM64_core=y \
+        PLATFORM=<myboard> CFG_STMM_PATH=BL32_AP_MM.fd CFG_RPMB_FS=y \
+        CFG_RPMB_FS_DEV_ID=0 CFG_CORE_HEAP_SIZE=524288 CFG_RPMB_WRITE_KEY=1 \
+        CFG_CORE_HEAP_SIZE=524288 CFG_CORE_DYN_SHM=y CFG_RPMB_TESTKEY=y \
+        CFG_REE_FS=n CFG_CORE_ARM64_PA_BITS=48  CFG_TEE_CORE_LOG_LEVEL=1 \
+        CFG_TEE_TA_LOG_LEVEL=1 CFG_SCTLR_ALIGNMENT_CHECK=n
+
+U-Boot Build instructions
+*************************
+
+Although the StandAloneMM binary comes from EDK2, using and storing the
+variables is currently available in U-Boot only.
+
+.. code-block:: bash
+
+    $ git clone https://github.com/u-boot/u-boot.git
+    $ cd u-boot
+    $ export CROSS_COMPILE=aarch64-linux-gnu-
+    $ export ARCH=<arch>
+    $ make <myboard>_defconfig
+    $ make menuconfig
+
+Enable ``CONFIG_OPTEE``, ``CONFIG_CMD_OPTEE_RPMB`` and ``CONFIG_EFI_MM_COMM_TEE``
+
+.. warning::
+
+    - Your OP-TEE platform port must support Dynamic shared memory, since that's
+      the only kind of memory U-Boot supports for now.
+
+[1] https://optee.readthedocs.io/en/latest/building/efi_vars/stmm.html
 
 Executing the boot manager
 ~~~~~~~~~~~~~~~~~~~~~~~~~~