The instructions here will tell how to build and run OP-TEE OS for Nuvoton platform standalone (not as a part of openbmc image).

Build instructions


  1. Install prerequisites according to the Prerequisites page.`

  2. Download the latest IGPS from the Nuvoton Israel GitHub repository

    $ git clone

#. Download and extract the latest Linux based Arm GNU Toolchain for aarch64 bare-metal target, for example, 12.2

$ cd /opt
$ wget
$ tar xvf arm-gnu-toolchain-12.2.rel1-x86_64-aarch64-none-elf.tar.xz
  1. Add the Arm GNU Toolchain binary to the $PATH

    $ cd ~
    $ vi .bashrc
    export PATH=$PATH:/opt/arm-gnu-toolchain-12.2.rel1-x86_64-aarch64-none-elf/bin
  2. Clone the latest OP-TEE OS code from the GitHub repository

    $ git clone
    $ cd optee_os

Build process:

  1. build OP-TEE OS for Nuvoton platform

    $ make CROSS_COMPILE64=aarch64-none-elf- PLATFORM=nuvoton -j $(nproc)

    Note: you can use additional debug flag for compilation to get debug prints to console

    $ make CROSS_COMPILE64=aarch64-none-elf- PLATFORM=nuvoton CFG_NPCM_DEBUG=y -j $(nproc)
  2. Update binary input files in IGPS

    $ cd ../igps-npcm8xx/py_scripts
    $ python ./
  3. Copy the compiled out/arm-plat-nuvoton/core/tee.bin file into IGPS_3.8.6/py_scripts/ImageGeneration/inputs

  4. Generate new image file

    $ python ./
  5. Program the new image to flash:

    $ python ./
  6. After programming, enable terminal connection to the ArbelEVB, and if you compiled with the CFG_NPCM_DEBUG=y flag, you will see OP-TEE version before U-Boot console trace messages, for example:

    I/TC: >================================================ I/TC: OP-TEE OS Version 3.21.0-1127-gaf809d0ab-dev (gcc version 12.2 (Arm GNU Toolchain 12.2.Rel1)) #1 Thu May 18 05:24:18 UTC 2023 aarch64 I/TC: >================================================