doc: Add build instructions for OP-TEE backed EFI variables
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>
This commit is contained in:
committed by
Heinrich Schuchardt
parent
4bc4798f41
commit
bfb5ce4edd
@@ -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
|
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.
|
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
|
Executing the boot manager
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|||||||
Reference in New Issue
Block a user