blob: 70ae546470de8946324d3c6b356f2836536836e5 [file] [log] [blame]
Jimmy Brisson0862f012020-04-02 15:19:12 -05001Summary of build options
2========================
3
4As much as possible, TF-A Tests dynamically detect the platform hardware
5components and available features. There are a few build options to select
6specific features where the dynamic detection falls short. This section lists
7them.
8
9Unless mentioned otherwise, these options are expected to be specified at the
10build command line and are not to be modified in any component makefiles.
11
12Note that the build system doesn't track dependencies for build options.
13Therefore, if any of the build options are changed from a previous build, a
14clean build must be performed.
15
16Build options shared across test images
17'''''''''''''''''''''''''''''''''''''''
18
19Most of the build options listed in this section apply to TFTF, the FWU test
20images and Cactus, unless otherwise specified. These do not influence the EL3
21payload, whose simplistic build system is mostly independent.
22
23- ``ARCH``: Choose the target build architecture for TF-A Tests. It can take
24 either ``aarch64`` or ``aarch32`` as values. By default, it is defined to
25 ``aarch64``. Not all test images support this build option.
26
27- ``ARM_ARCH_MAJOR``: The major version of Arm Architecture to target when
28 compiling TF-A Tests. Its value must be numeric, and defaults to 8.
29
30- ``ARM_ARCH_MINOR``: The minor version of Arm Architecture to target when
31 compiling TF-A Tests. Its value must be a numeric, and defaults to 0.
32
33- ``DEBUG``: Chooses between a debug and a release build. A debug build
34 typically embeds assertions checking the validity of some assumptions and its
35 output is more verbose. The option can take either 0 (release) or 1 (debug)
36 as values. 0 is the default.
37
38- ``ENABLE_ASSERTIONS``: This option controls whether calls to ``assert()`` are
39 compiled out.
40
41 - For debug builds, this option defaults to 1, and calls to ``assert()`` are
42 compiled in.
43 - For release builds, this option defaults to 0 and calls to ``assert()``
44 are compiled out.
45
46 This option can be set independently of ``DEBUG``. It can also be used to
47 hide any auxiliary code that is only required for the assertion and does not
48 fit in the assertion itself.
49
50- ``LOG_LEVEL``: Chooses the log level, which controls the amount of console log
51 output compiled into the build. This should be one of the following:
52
53 ::
54
55 0 (LOG_LEVEL_NONE)
56 10 (LOG_LEVEL_ERROR)
57 20 (LOG_LEVEL_NOTICE)
58 30 (LOG_LEVEL_WARNING)
59 40 (LOG_LEVEL_INFO)
60 50 (LOG_LEVEL_VERBOSE)
61
62 All log output up to and including the selected log level is compiled into
63 the build. The default value is 40 in debug builds and 20 in release builds.
64
65- ``PLAT``: Choose a platform to build TF-A Tests for. The chosen platform name
66 must be a subdirectory of any depth under ``plat/``, and must contain a
67 platform makefile named ``platform.mk``. For example, to build TF-A Tests for
68 the Arm Juno board, select ``PLAT=juno``.
69
70- ``V``: Verbose build. If assigned anything other than 0, the build commands
71 are printed. Default is 0.
72
73TFTF build options
74''''''''''''''''''
75
76- ``ENABLE_PAUTH``: Boolean option to enable ARMv8.3 Pointer Authentication
77 (``ARMv8.3-PAuth``) support in the Trusted Firmware-A Test Framework itself.
78 If enabled, it is needed to use a compiler that supports the option
79 ``-mbranch-protection`` (GCC 9 and later). It defaults to 0.
80
81- ``NEW_TEST_SESSION``: Choose whether a new test session should be started
82 every time or whether the framework should determine whether a previous
83 session was interrupted and resume it. It can take either 1 (always
84 start new session) or 0 (resume session as appropriate). 1 is the default.
85
86- ``TESTS``: Set of tests to run. Use the following command to list all
87 possible sets of tests:
88
89 ::
90
91 make help_tests
92
93 If no set of tests is specified, the standard tests will be selected (see
94 ``tftf/tests/tests-standard.xml``).
95
96- ``USE_NVM``: Used to select the location of test results. It can take either 0
97 (RAM) or 1 (non-volatile memory like flash) as test results storage. Default
98 value is 0, as writing to the flash significantly slows tests down.
99
100FWU test images build options
101'''''''''''''''''''''''''''''
102
103- ``FIRMWARE_UPDATE``: Whether the Firmware Update test images (i.e.
104 ``NS_BL1U`` and ``NS_BL2U``) should be built. The default value is 0. The
105 platform makefile is free to override this value if Firmware Update is
106 supported on this platform.