Skip to content
TrustZone True Number Generator
Branch: master
Clone or download
ifinci Update app note (#13)
* Updating new version of char. app. notes

* rename app note and remove old.

Signed-off-by: Ilan Finci <>
Latest commit d998d46 Apr 3, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
.gitignore add .gitignore file (#4) Jul 9, 2017

ARM TrustZone True Number Generator

This software product contains the following open source components:

  • ARM TrustZone TRNG driver.
  • ARM TrustZone TRNG integration test.
  • Characterization reference code.


  • (this file)
  • Software and test build system: build.props proj.ext.cfg TRNG_test.c shared/ host/
  • Software Integrator's Manual (trustzone_true_random_number_generator_software_integrators_manual_101049_0000_00_en.pdf)

ARM TrustZone TRNG supports 32-bit systems.


This software is provided under the Apache-2.0 license. Contributions to this project are accepted under the same license.

Release details

This release contains the ARM TrustZone TRNG software.


  • To be run on an Ubuntu 14.04 LTS system host for building.

  • gcc version 4.7.3 or arm-ds5 compiler are in your PATH.

  • If using Linux as a host on the H/W, configure the KERNEL_DIR environment variable to point to your Linux (s).

  • The target is running Linux kernel 4.4 or FreeRTOS.

Download the software bundle from

Build procedure

Step 1: Open a terminal on the Ubuntu system, and use 'cd ' to go to the folder where you unpacked the software bundle from the ARM github url.

Step 2: Define environment variables, depending on what the hw system target is running:

  • For a target hw system running FreeRTOS:
   export KERNEL_DIR=/path/to/freertos


  • For a target hw system running linux:
   export KERNEL_DIR=/path/to/linux

Step 3: Build all the binaries (common for FreeRTOS and Linux):

   cd /path/to/tztrng
   make -C host/src/tztrng_lib/ clean
   make -C host/src/tztrng_lib/
   make -C host/src/tests/tztrng_test/ clean 
   make -C host/src/tests/tztrng_test/ 

The tztrng library is located in:


The integration test executable is located in the following path:

  • When compiling with gcc: host/bin/tztrng_test.
  • When compiling with armcc: host/lib/libtztrng_test.a.

Step 4: Deploy:

  • For a target hw system running linux:

    Copy host/bin/tztrng_test to the target linux file system and exeute:

  • For a target hw system running FreeRTOS:

       cp host/lib/libcc_tztrng.a /path/to/your/library/folder
       cp host/lib/libtztrng_test.a /path/to/your/library/folder
       cp host/src/tests/tztrng_test/tztrng_test.h /path/to/includes


  1. Tests run

    See "Step 4: Deploy" above.

  2. Known issues


  3. Planned enhancements


You can’t perform that action at this time.