blob: 003465d15cb2350628040d4196842ce465217413 [file] [log] [blame]
Galanakis, Minos41f85972019-09-30 15:56:40 +01001##################
2Build instructions
3##################
Gyorgy Szingdb9783c2019-04-17 21:08:48 +02004Please make sure you have all required software installed as explained in the
5:doc:`software requirements <tfm_sw_requirement>`.
6
Gyorgy Szingdb9783c2019-04-17 21:08:48 +02007****************
8TF-M build steps
9****************
10TF-M uses `cmake <https://cmake.org/overview/>`__ to provide an out-of-source
11build environment. The instructions are below.
12
Gyorgy Szingdb9783c2019-04-17 21:08:48 +020013Getting the source-code
14=======================
15.. code-block:: bash
16
Leonardo Sandovald7f72d52020-07-28 18:02:34 -050017 cd <base folder>
Minos Galanakis0f39fa52020-06-08 16:53:53 +010018 git clone https://git.trustedfirmware.org/TF-M/trusted-firmware-m.git
Anton Komlevb8e3af02020-08-28 10:23:57 +010019
20Dependency management is now handled by cmake. If you wish to alter this
21behaviour, see :ref:`docs/getting_started/tfm_build_instruction:Manual
22dependency management`
Gyorgy Szingdb9783c2019-04-17 21:08:48 +020023
Minos Galanakisac6b06c2020-03-19 12:57:02 +000024.. Note::
Anton Komlevb8e3af02020-08-28 10:23:57 +010025
26 - For building with Armclang compiler version 6.10.0, please follow the note
Minos Galanakise4094012020-06-12 14:25:34 +010027 in :ref:`docs/getting_started/tfm_sw_requirement:External dependencies` section.
Anton Komlevb8e3af02020-08-28 10:23:57 +010028 - For building with the IAR toolchain, please see the notes in
TTornblomb9e5ed02020-02-13 16:53:15 +010029 :doc:`software requirements <tfm_build_instruction_iar>`
30
Anton Komlevb8e3af02020-08-28 10:23:57 +010031.. _tfm_cmake_configuration:
32
33Cmake configuration
34===================
35
36All configuration options are provided by cmake variables, and their default
37values, with docstrings, can be found in ``config/config_default.cmake``.
38
39Configuration is provided in multiple stages, with multiple priorities.
40
41 1. ``config/config_default.cmake`` is loaded.
42 2. Command-line variable settings are applied, overriding all previous settings.
43 3. If it exists, CMAKE_BUILD_TYPE specific config is applied from ``config/build_type/<build_type>.cmake``, overriding all previous settings.
44 4. If it exists, TFM Profile specific config is applied from ``config/profile/<tfm_profile>.cmake``, overriding all previous settings.
45 5. Target specific config from ``platform/ext/target/<target_platform>/config.cmake`` is applied, overriding all previous settings.
46 6. If the ``TFM_EXTRA_CONFIG_PATH`` variable has been set, that file is loaded and overrides all previous settings.
47
48.. Warning::
49 This means that command-line settings are not applied when they conflict
50 with required platform settings. If it is required to override platform
51 settings (this is not usually a good idea) then TFM_EXTRA_CONFIG_PATH should be
52 used.
53
54Required cmake parameters for building TF-M
55-------------------------------------------
56
57+----------------------+-------------------------------------------------------+
58| Parameter | Description |
59+======================+=======================================================+
60| TFM_PLATFORM | The target platform as a path from the base directory |
61| | ``/platform/ext/target`` |
62+----------------------+-------------------------------------------------------+
63| CMAKE_TOOLCHAIN_FILE | The path to the toolchain file that corresponds to |
64| | the desired compiler. |
65+----------------------+-------------------------------------------------------+
66
67By default release configuration builds. Alternate build types can be controlled
68by the CMAKE_BUILD_TYPE variable.
69
70Build type
71----------
72
73Build type is controlled by the ``CMAKE_BUILD_TYPE`` variable. The possible
74types are:
75
76 - ``Debug``
77 - ``Relwithdebinfo``
78 - ``Release``
79 - ``Minsizerel``
80
81``Release`` is default.
82
83Both ``Debug`` and ``Relwithdebinfo`` will include debug symbols in the output
84files. ``Relwithdebinfo``, ``Release`` and ``Minsizerel`` have optimization
85turned on and hence will produce smaller, faster code. ``Relwithdebinfo`` will
86produce the smallest code, and hence is often a good idea on RAM or flash
87constrained systems.
88
89Other cmake parameters
90----------------------
91
92The full list of default options is in ``config/config_default.cmake``. Several
93important options are listed below.
94
95
96+---------------------+----------------------------------------+---------------+
97| Parameter | Description | Default value |
98+=====================+========================================+===============+
99| BL2 | Build level 2 secure bootloader. | ON |
100+---------------------+----------------------------------------+---------------+
101| NS | Build NS app. Required for test code. | ON |
102+---------------------+----------------------------------------+---------------+
103| TFM_PSA_API | Use PSA api (IPC mode) instead of | OFF |
104| | secure library mode. | |
105+---------------------+----------------------------------------+---------------+
106| TFM_ISOLATION_LEVEL | Set TFM isolation level. | 1 |
107+---------------------+----------------------------------------+---------------+
108| TFM_PROFILE | Set TFM profile. | |
109+---------------------+----------------------------------------+---------------+
110| TEST_S | Build secure regression tests. | OFF |
111+---------------------+----------------------------------------+---------------+
112| TEST_NS | Build non-secure regression tests. | OFF |
113+---------------------+----------------------------------------+---------------+
114| TEST_PSA_API | Build PSA API TESTS for the given | |
115| | suite. Takes a PSA api ``SUITE`` as an | |
116| | argument (``CRYPTO`` etc). | |
117+---------------------+----------------------------------------+---------------+
118
119Regression test configuration
120-----------------------------
121
122Regression test configuration is controlled entirely by the ``TEST_S`` and
123``TEST_NS`` cmake variables.
124
125If regression testing is enabled, it will then enable all tests for the enabled
126secure partitions. If IPC mode is enabled via ``TFM_PSA_API`` the IPC tests will
127be enabled. QCBOR and T_COSE tests are linked to the Initial Attestation
128partition, as they are only used there. Multicore tests will be enabled if
129``TFM_MULTI_CORE_TOPOLOGY`` is enabled.
130
131Some cryptographic tests can be enabled and disabled. This is done to prevent
132false failures from being reported when a smaller Mbed Crypto config is being
133used which does not support all features.
134
135+-----------------------------+-------------------------------------+---------------+
136| Parameter | Description | Default value |
137+=============================+=====================================+===============+
138| TFM_CRYPTO_TEST_ALG_CBC | Test CBC cryptography mode | ON |
139+-----------------------------+-------------------------------------+---------------+
140| TFM_CRYPTO_TEST_ALG_CCM | Test CCM cryptography mode | ON |
141+-----------------------------+-------------------------------------+---------------+
142| TFM_CRYPTO_TEST_ALG_CFB | Test CFB cryptography mode | ON |
143+-----------------------------+-------------------------------------+---------------+
144| TFM_CRYPTO_TEST_ALG_CTR | Test CTR cryptography mode | ON |
145+-----------------------------+-------------------------------------+---------------+
146| TFM_CRYPTO_TEST_ALG_GCM | Test GCM cryptography mode | ON |
147+-----------------------------+-------------------------------------+---------------+
148| TFM_CRYPTO_TEST_ALG_SHA_512 | Test SHA-512 cryptography algorithm | ON |
149+-----------------------------+-------------------------------------+---------------+
150| TFM_CRYPTO_TEST_HKDF | Test SHA-512 cryptography algorithm | ON |
151+-----------------------------+-------------------------------------+---------------+
152
153
154PSA test configuration
155----------------------
156
157PSA tests are configured by using the ``TEST_PSA_API`` cmake variable. The
158variable should be set to the name of the test suite that is desired. It is
159_not_ supported to set both ``TEST_PSA_API`` and ``TEST_S`` or ``TEST_NS``.
160
Jamie Fox19c91c22019-02-10 18:04:58 +0000161The Functional API tests are:
Anton Komlevb8e3af02020-08-28 10:23:57 +0100162 - ``CRYPTO``
163 - ``INITIAL_ATTESTATION``
164 - ``STORAGE`` (INTERNAL_TRUSTED_STORAGE and PROTECTED_STORAGE)
165 - ``INTERNAL_TRUSTED_STORAGE``
166 - ``PROTECTED_STORAGE``
167
Jamie Fox19c91c22019-02-10 18:04:58 +0000168The Firmware Framework test suites are:
Anton Komlevb8e3af02020-08-28 10:23:57 +0100169 - ``IPC``
170
171Note that these map directly to the ``SUITE`` cmake variable used in the
172psa-arch-tests documentation.
173
174Migration from legacy buildsystem
175---------------------------------
176
177The previous (legacy) cmake buildsystem made use of separate configuration
178files, where now build options are controlled by variables. For ease of
179transition, a table below is provided that maps the legacy files to the current
180variables, in the format of cmake command line parameters.
181
182+------------------------------------------+-----------------------------------+
183| File | Cmake command line |
184+==========================================+===================================+
185| ConfigDefault.cmake | <No options> |
186+------------------------------------------+-----------------------------------+
187| ConfigCoreIPC.cmake | -DTFM_PSA_API=ON |
188+------------------------------------------+-----------------------------------+
189| ConfigCoreIPCTfmLevel2.cmake | -DTFM_PSA_API=ON |
190| | -DTFM_ISOLATION_LEVEL=2 |
191+------------------------------------------+-----------------------------------+
192| ConfigDefaultProfileS.cmake | -DTFM_PROFILE=profile_small |
193+------------------------------------------+-----------------------------------+
194| ConfigDefaultProfileM.cmake | -DTFM_PROFILE=profile_medium |
195+------------------------------------------+-----------------------------------+
196| ConfigRegression.cmake | -DTEST_NS=ON -DTEST_S=ON |
197+------------------------------------------+-----------------------------------+
198| ConfigRegressionIPC.cmake | -DTEST_NS=ON -DTEST_S=ON |
199| | -DTFM_PSA_API=ON |
200+------------------------------------------+-----------------------------------+
201| ConfigRegressionIPCTfmLevel2.cmake | -DTEST_NS=ON -DTEST_S=ON |
202| | -DTFM_PSA_API=ON |
203| | -DTFM_ISOLATION_LEVEL=2 |
204+------------------------------------------+-----------------------------------+
205| ConfigRegressionProfileS.cmake | -DTFM_PROFILE=profile_small |
206| | -DTEST_NS=ON -DTEST_S=ON |
207+------------------------------------------+-----------------------------------+
208| ConfigRegressionProfileM.cmake | -DTFM_PROFILE=profile_medium |
209| | -DTEST_NS=ON -DTEST_S=ON |
210+------------------------------------------+-----------------------------------+
211| ConfigPsaApiTest.cmake | -DTEST_PSA_API=<test_suite> |
212+------------------------------------------+-----------------------------------+
213| ConfigPsaApiTestIPC.cmake | -DTEST_PSA_API=<test_suite> |
214| | -DTFM_PSA_API=ON |
215+------------------------------------------+-----------------------------------+
216| ConfigPsaApiTestIPCTfmLevel2.cmake | -DTEST_PSA_API=<test_suite> |
217| | -DTFM_PSA_API=ON |
218| | -DTFM_ISOLATION_LEVEL=2 |
219+------------------------------------------+-----------------------------------+
220| ConfigDefaultProfileM.cmake | -DTFM_PROFILE=profile_medium |
221| + profile_m_config_ext_ps_disabled.cmake | -DTFM_PARTITION_PS=OFF |
222+------------------------------------------+-----------------------------------+
223
224There has also been some changes to the PSA manifest file generation. The files
225are now generated into a seperate tree in the ``<tfm build dir>/generated``
226directory. Therefore they have been removed from the source tree. Any changes
227should be made only to the template files.
228
229The api for the ``tools/tfm_parse_manifest_list.py`` script has also changed
230slightly. It is no longer required to be run manually as it is run as part of
231cmake.
232
233*******************
234TF-M build examples
235*******************
236
237Example: building TF-M for AN521 platform using GCC:
238====================================================
239.. code-block:: bash
240
241 cd <base folder>
242 cd trusted-firmware-m
243 cmake -S . -B cmake_build -DTFM_PLATFORM=mps2/an521 -DCMAKE_TOOLCHAIN_FILE=toolchain_GNUARM.cmake
244 cmake --build cmake_build -- install
245
246Alternately using traditional cmake syntax
247
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200248.. code-block:: bash
249
Leonardo Sandovald7f72d52020-07-28 18:02:34 -0500250 cd <base folder>
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200251 cd trusted-firmware-m
252 mkdir cmake_build
253 cd cmake_build
Anton Komlevb8e3af02020-08-28 10:23:57 +0100254 cmake .. -DTFM_PLATFORM=mps2/an521 -DCMAKE_TOOLCHAIN_FILE=../toolchain_GNUARM.cmake
255 make install
256
257.. Note::
258 Unix Makefiles is the default generator. Ninja is also supported by setting
259 -GNinja
260
261.. Note::
262
263 It is recommended to build each different build configuration in a separate
264 build directory.
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200265
266Regression Tests for the AN521 target platform
267==============================================
Anton Komlevb8e3af02020-08-28 10:23:57 +0100268
269Regression tests can be build by using the TEST_S and TEST_NS settings. Either
270can be used in isolation or both can be used to enable both suites. All tests
271for all enabled partitions are run, along with IPC and Multicore tests if those
272features are enabled.
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200273
274.. code-block:: bash
275
Leonardo Sandovald7f72d52020-07-28 18:02:34 -0500276 cd <base folder>
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200277 cd trusted-firmware-m
Anton Komlevb8e3af02020-08-28 10:23:57 +0100278 cmake -S . -B cmake_build -DTFM_PLATFORM=mps2/an521 -DCMAKE_TOOLCHAIN_FILE=toolchain_GNUARM.cmake -DTEST_S=ON -DTEST_NS=ON
279 cmake --build cmake_build -- install
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200280
Anton Komlevb8e3af02020-08-28 10:23:57 +0100281Alternately using traditional cmake syntax
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200282
283.. code-block:: bash
284
Leonardo Sandovald7f72d52020-07-28 18:02:34 -0500285 cd <base folder>
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200286 cd trusted-firmware-m
Anton Komlevb8e3af02020-08-28 10:23:57 +0100287 mkdir cmake_build
288 cd cmake_build
289 cmake .. -DTFM_PLATFORM=mps2/an521 -DCMAKE_TOOLCHAIN_FILE=../toolchain_GNUARM.cmake -DTEST_S=ON -DTEST_NS=ON
290 make install
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200291
Jamie Fox19c91c22019-02-10 18:04:58 +0000292Build for PSA Functional API compliance tests
293=============================================
Anton Komlevb8e3af02020-08-28 10:23:57 +0100294The build system provides support for building and integrating the PSA API tests
295from https://github.com/ARM-software/psa-arch-tests. PSA API tests are
296controlled using the TEST_PSA_API variable. Enabling both regression tests and
297PSA API tests simultaneously is **not** supported.
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200298
Anton Komlevb8e3af02020-08-28 10:23:57 +0100299The value of the TEST_PSA_API variable is the suite to be run.
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200300
Anton Komlevb8e3af02020-08-28 10:23:57 +0100301.. code-block::
302
303 -DTEST_PSA_API=INTERNAL_TRUSTED_STORAGE
304 -DTEST_PSA_API=PROTECTED_STORAGE
305 -DTEST_PSA_API=STORAGE
306 -DTEST_PSA_API=CRYPTO
307 -DTEST_PSA_API=INITIAL_ATTESTATION
308
309Respectively for the corresponding service. For example, to enable the PSA API
310tests for the Crypto service:
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200311
312.. code-block:: bash
313
Leonardo Sandovald7f72d52020-07-28 18:02:34 -0500314 cd <base folder>
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200315 cd trusted-firmware-m
Anton Komlevb8e3af02020-08-28 10:23:57 +0100316 cmake -S . -B cmake_build -DTFM_PLATFORM=mps2/an521 -DCMAKE_TOOLCHAIN_FILE=toolchain_GNUARM.cmake -DTEST_PSA_API=CRYPTO
317 cmake --build cmake_build -- install
318
319Alternately using traditional cmake syntax
320
321.. code-block:: bash
322
323 cd <base folder>
324 cd trusted-firmware-m
325 mkdir cmake_build
326 cd cmake_build
327 cmake .. -DTFM_PLATFORM=mps2/an521 -DCMAKE_TOOLCHAIN_FILE=../toolchain_GNUARM.cmake -DTEST_PSA_API=CRYPTO
328 make install
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200329
Jaykumar Pitambarbhai Patel6891b8b2020-01-23 14:32:20 +0530330Build for PSA FF (IPC) compliance tests
331=======================================
332
Anton Komlevb8e3af02020-08-28 10:23:57 +0100333The build system provides support for building and integrating the PSA FF
334compliance test. This support is controlled by the TEST_PSA_API variable:
Jaykumar Pitambarbhai Patel6891b8b2020-01-23 14:32:20 +0530335
Anton Komlevb8e3af02020-08-28 10:23:57 +0100336.. code-block::
337
338 -DTEST_PSA_API=IPC
Jaykumar Pitambarbhai Patel6891b8b2020-01-23 14:32:20 +0530339
340.. code-block:: bash
Minos Galanakisfc6804e2020-03-10 11:03:34 +0000341
Leonardo Sandovald7f72d52020-07-28 18:02:34 -0500342 cd <base folder>
Jaykumar Pitambarbhai Patel6891b8b2020-01-23 14:32:20 +0530343 cd trusted-firmware-m
Anton Komlevb8e3af02020-08-28 10:23:57 +0100344 cmake -S . -B cmake_build -DTFM_PLATFORM=mps2/an521 -DCMAKE_TOOLCHAIN_FILE=toolchain_GNUARM.cmake -DTEST_PSA_API=IPC
345 cmake --build cmake_build -- install
Jaykumar Pitambarbhai Patel6891b8b2020-01-23 14:32:20 +0530346
Anton Komlevb8e3af02020-08-28 10:23:57 +0100347Alternately using traditional cmake syntax
Jaykumar Pitambarbhai Patel6891b8b2020-01-23 14:32:20 +0530348
349.. code-block:: bash
350
Leonardo Sandovald7f72d52020-07-28 18:02:34 -0500351 cd <base folder>
Jaykumar Pitambarbhai Patel6891b8b2020-01-23 14:32:20 +0530352 cd trusted-firmware-m
Anton Komlevb8e3af02020-08-28 10:23:57 +0100353 mkdir cmake_build
354 cd cmake_build
355 cmake .. -DTFM_PLATFORM=mps2/an521 -DCMAKE_TOOLCHAIN_FILE=../toolchain_GNUARM.cmake -DTEST_PSA_API=IPC
356 make install
Jaykumar Pitambarbhai Patel6891b8b2020-01-23 14:32:20 +0530357
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200358Location of build artifacts
359===========================
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200360
Anton Komlevb8e3af02020-08-28 10:23:57 +0100361All build artifacts are provided in the ``<build_dir>/bin`` directory. It is
362**not** required to run ``make install`` to generate artifacts in this location.
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200363
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200364
Anton Komlevb8e3af02020-08-28 10:23:57 +0100365For the purposes of maintaining compatibility with the legacy cmake build
366system, they are also provided in
367``<build_dir>/install/outputs/<target_platform>/``. In order to generate the
368artifacts in this location ``make install`` must be run.
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200369
370Building the documentation
371==========================
Minos Galanakisd19a19f2020-06-03 15:38:03 +0100372Please ensure the dependencies for building the documentation are installed
373as explained in the :doc:`software requirements <tfm_sw_requirement>`. The
374requirements to build the firmware, are only required when using the CMAKE
375method
376
377There are currently two ways of building the documentation:
378- Using the CMake build system as custom targets
379- Manually using the appropriate tools (`sphinx-build`_/ `Doxygen`_)
380
381Using the CMake build-system
382----------------------------
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200383
Minos Galanakisdff2eae2020-07-21 15:13:52 +0100384Building PDF output can be requested by invoking `tfm_docs_userguide_pdf/
385tfm_docs_userguide_pdf`
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200386
387.. Note::
388 For building the documentation all tools needed to build the firmware must
389 be available.
390
391Building the Reference Manual
Minos Galanakisd19a19f2020-06-03 15:38:03 +0100392^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200393.. code-block:: bash
394
395 cd <TF-M base folder>
Anton Komlevb8e3af02020-08-28 10:23:57 +0100396 cmake -S . -B cmake_doc -DTFM_PLATFORM=mps2/an521 -DCMAKE_TOOLCHAIN_FILE=toolchain_GNUARM.cmake
397 cmake --build cmake_doc -- tfm_docs_refman_html tfm_docs_refman_pdf
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200398
399The documentation files will be available under the directory::
400
Minos Galanakisdff2eae2020-07-21 15:13:52 +0100401 cmake_doc/docs/reference_manual
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200402
403Building the User Guide
Minos Galanakisd19a19f2020-06-03 15:38:03 +0100404^^^^^^^^^^^^^^^^^^^^^^^
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200405.. code-block:: bash
406
407 cd <TF-M base folder>
Anton Komlevb8e3af02020-08-28 10:23:57 +0100408 cmake -S . -B cmake_doc -DTFM_PLATFORM=mps2/an521 -DCMAKE_TOOLCHAIN_FILE=toolchain_GNUARM.cmake
409 cmake --build cmake_doc -- tfm_docs_userguide_html tfm_docs_userguide_pdf
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200410
411The documentation files will be available under the directory::
412
Minos Galanakisdff2eae2020-07-21 15:13:52 +0100413 cmake_doc/docs/user_guide
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200414
Minos Galanakisd19a19f2020-06-03 15:38:03 +0100415Manually using documentation generation tools
416---------------------------------------------
417
418Invoking Sphinx-build will build both user_guide and reference_manual
419targets.
420
421.. code-block:: bash
422
423 # Build the documentation from build_docs directory
424 cd <TF-M base folder>/ build_docs/
425 sphinx-build ./ user_guide
426
427 # Build the documentation from a custom location
428 # setting the build_docs as input
429
430 # Note that using this method will still generate the reference manual
431 # to the <TF-M base folder>/build_docs/reference_manual
432 cd <TF-M base folder>/OTHER_DIR/OTHER_DIR2
433 sphinx-build <TF-M base folder>/build_docs/ DESIRED_OUTPUT_DIR
434
Anton Komlevb8e3af02020-08-28 10:23:57 +0100435****************************
436Manual dependency management
437****************************
Galanakis, Minos757139a2019-11-11 15:00:11 +0000438
Anton Komlevb8e3af02020-08-28 10:23:57 +0100439TF-M build system will try to fetch all dependencies with appropriate versions
440and store them inside the build tree. If you have local copies already, or wish
441to avoid downloading whenever the build directory is completely cleaned, then
442the following paths can be set.
Galanakis, Minos757139a2019-11-11 15:00:11 +0000443
Anton Komlevb8e3af02020-08-28 10:23:57 +0100444+--------------+--------------------+-----------------------------------------------------+
445| Dependency | Cmake variable | Git repo URL |
446+==============+====================+=====================================================+
447| mbedcrypto | MBEDCRYPTO_PATH | https://github.com/ARMmbed/mbedtls |
448+--------------+--------------------+-----------------------------------------------------+
449| tf-m-tests | TFM_TEST_REPO_PATH | https://git.trustedfirmware.org/TF-M/tf-m-tests.git |
450+--------------+--------------------+-----------------------------------------------------+
451| mcuboot | MCUBOOT_PATH | https://github.com/JuulLabs-OSS/mcuboot |
452+--------------+--------------------+-----------------------------------------------------+
Galanakis, Minos757139a2019-11-11 15:00:11 +0000453
Anton Komlevb8e3af02020-08-28 10:23:57 +0100454For required versions of the dependencies, refer to ``config/config_default.cmake``.
Galanakis, Minos757139a2019-11-11 15:00:11 +0000455
456.. Note::
Anton Komlevb8e3af02020-08-28 10:23:57 +0100457 - Some patches are required to the mbedtls repo to allow building it as part of
458 TF-M. While these patches are being upstreamed they are stored in
459 lib/ext/mbedcrypo. In order to use a local copy of mbedcrypto it is required
460 to apply all patch files in this directory.
Galanakis, Minos757139a2019-11-11 15:00:11 +0000461
Anton Komlevb8e3af02020-08-28 10:23:57 +0100462.. Note::
463 - CMSIS 5 is provided by the TF-M tests repo. If you wish to use a different
464 source for CMSIS 5, it can be configured using CMSIS_5_PATH.
David Hu2cbf5df2020-06-15 10:41:44 +0800465
Minos Galanakisd19a19f2020-06-03 15:38:03 +0100466.. _sphinx-build: https://www.sphinx-doc.org/en/master/man/sphinx-build.html
467.. _Doxygen: https://www.doxygen.nl
468
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200469--------------
470
Galanakis, Minosdc6694b2020-01-06 13:54:56 +0000471*Copyright (c) 2017-2020, Arm Limited. All rights reserved.*