blob: 1edf7d4822f1d2bc012d541fcf0910b755c8af32 [file] [log] [blame]
Galanakis, Minos41f85972019-09-30 15:56:40 +01001#####################
2Software requirements
3#####################
Gyorgy Szingdb9783c2019-04-17 21:08:48 +02004
Antonio de Angelis065ce4a2019-06-04 14:02:33 +01005.. |DS5_VERSION| replace:: v5.29.1
6.. |KEIL_VERSION| replace:: v5.25.2
7.. |DEV_STUDIO_VERSION| replace:: 2018.0
8
Galanakis, Minos757139a2019-11-11 15:00:11 +00009A quick reference table is included in the
Minos Galanakise4094012020-06-12 14:25:34 +010010:ref:`docs/getting_started/tfm_sw_requirement:Tool & Dependency overview` section
Galanakis, Minos757139a2019-11-11 15:00:11 +000011of this document.
Gyorgy Szingdb9783c2019-04-17 21:08:48 +020012
13****************************
14Supported build environments
15****************************
16
17TF-M officially supports a limited set of build environments and setups. In
18this context, official support means that the environments listed below
19are actively used by team members and active developers hence users should
20be able to recreate the same configurations by following the instructions
21described below. In case of problems, the TF-M team provides support
22only for these environments, but building in other environments can still be
23possible.
24
25The following environments are supported:
Kevin Townsend0f869bb2019-08-01 21:06:48 +020026
Gyorgy Szingdb9783c2019-04-17 21:08:48 +020027 - Ubuntu 16.04 x64
28 - Ubuntu 18.04 x64
Mingyang Sun1e590642019-09-24 10:46:21 +080029 - Windows 10 x64 + git-bash (MinGW) + gnumake from DS-5 or msys2.
30 - Windows 10 x64 + Cygwin x64 (example configuration is provided for
31 this Windows setup only).
32
33.. note::
34 Some tools (i.e. python3 and CMake) must NOT be installed from
35 Cygwin and instead a native windows version is needed. Please see the
36 chapter `Windows + Cygwin setup`_ below.
TTornblom8a8b4522020-06-10 11:13:32 +020037 IAR requires Ubuntu 18.04 or later.
Gyorgy Szingdb9783c2019-04-17 21:08:48 +020038
39*********************
40Supported C compilers
41*********************
42
43To compile TF-M code, at least one of the supported compiler toolchains have to
44be available in the build environment. The currently supported compiler
45versions are:
Antonio de Angelis065ce4a2019-06-04 14:02:33 +010046
Gyorgy Szingdb9783c2019-04-17 21:08:48 +020047 - Arm Compiler v6.10
48 - Arm Compiler v6.11
Gary Morrison81fb08c2019-05-30 10:14:35 -050049 - Arm Compiler v6.12
Ronald Cronc0c38fa2019-09-23 09:36:56 +020050 - Arm Compiler v6.13
Gyorgy Szingdb9783c2019-04-17 21:08:48 +020051 - GNU Arm compiler v6.3.1
52 - GNU Arm compiler v7.3
TTornblom8a8b4522020-06-10 11:13:32 +020053 - IAR Arm compiler v8.42.x
54 - IAR Arm compiler v8.50.x
Gyorgy Szingdb9783c2019-04-17 21:08:48 +020055
56.. Note::
Antonio de Angelis065ce4a2019-06-04 14:02:33 +010057 - The Arm compilers above are provided via Keil uVision |KEIL_VERSION|
58 or greater, DS-5 |DS5_VERSION| or greater, and Development Studio
59 |DEV_STUDIO_VERSION| or greater, or they can be downloaded as standalone
60 packages from
61 `here <https://developer.arm.com/products/software-development-tools/compilers/arm-compiler/downloads/version-6>`__.
62
63 - Arm compiler specific environment variable may need updating based
64 on specific products and licenses as explained in
65 `product-and-toolkit-configuration <https://developer.arm.com/products/software-development-tools/license-management/resources/product-and-toolkit-configuration>`__.
66
67 - The GNU Arm compiler can be downloaded from
68 `here <https://developer.arm.com/open-source/gnu-toolchain/gnu-rm/downloads>`__.
69 On the page select *GNU Arm Embedded Toolchain: 6-2017-q1-update*
70 or *GNU Arm Embedded Toolchain: 7-2018-q2-update*
Gyorgy Szingdb9783c2019-04-17 21:08:48 +020071
TTornblom8a8b4522020-06-10 11:13:32 +020072 - The IAR Arm compilers above are provided via IAR Embedded Workbench (Windows) or
73 IAR build tools for linux.
74 For information, see
75 `here <https://www.iar.com/iar-embedded-workbench/#!?architecture=Arm>`__ or
76 `here <https://www.iar.com/iar-embedded-workbench/build-tools-for-linux/>`__.
77
Gyorgy Szingdb9783c2019-04-17 21:08:48 +020078************************
79Supported CMake versions
80************************
81
82The build-system is CMake based and supports the following versions:
Antonio de Angelis065ce4a2019-06-04 14:02:33 +010083
84 - 3.7
85 - 3.10
86 - 3.11
87 - 3.12
88 - 3.13
89 - 3.14
Gyorgy Szingdb9783c2019-04-17 21:08:48 +020090
91.. Note::
92 - Please use the latest build version available (i.e. 3.7.2 instead of
93 3.7.0).
94 While it is preferable to use the newest version this is not required
95 and any version from the above list should work.
96 - Recent versions of CMake can be downloaded from
97 https://cmake.org/download/, and older releases are available from
98 https://cmake.org/files.
Mingyang Sun1e590642019-09-24 10:46:21 +080099 - For Cygwin users, please use a native windows CMake version
100 instead of the version installed with Cygwin.
TTornblom8a8b4522020-06-10 11:13:32 +0200101 - IAR requires version 3.14 or later.
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200102
103***************************
104Supported GNU make versions
105***************************
106
107The TF-M team builds using the "Unix Makefiles" generator of CMake and
108thus GNU make is needed for the build. On Linux please use the version
109available from the official repository of your distribution.
110
111On Windows the following binaries are supported:
Kevin Townsend0f869bb2019-08-01 21:06:48 +0200112
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200113 - GNU make v4.2.1 executable from Cygwin
114 - GNU make v4.2.1 executable from msys2
Antonio de Angelis065ce4a2019-06-04 14:02:33 +0100115 - GNU make v4.2 executable from DS5 |DS5_VERSION| (see <DS5 directory>/bin)
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200116
TTornblom8a8b4522020-06-10 11:13:32 +0200117CMake is quite tolerant to GNU make versions and basically any
118"reasonably recent" GNU make version should work.
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200119
120CMake generators other than "Unix Makefiles" may work, but are not
121officially supported.
122
Minos Galanakisac6b06c2020-03-19 12:57:02 +0000123*********************
124External dependencies
125*********************
126
127In order to build TF-M the following external projects are required:
128
Soby Mathew07ef6e42020-07-20 21:09:23 +0100129 - `Mbed-crypto(MbedTLS) library <https://github.com/ARMmbed/mbedtls>`__ v2.23.0
130 is used as crypto library on the secure side.
David Vincze91e7ac82020-06-25 15:30:32 +0200131 - `MCUboot <https://github.com/JuulLabs-OSS/mcuboot>`__ v1.6.0 is used as
132 the default bootloader in TF-M
Kevin Peng6710c822020-05-21 16:52:14 +0800133
134And the following TF-M projects as well:
Soby Mathew07ef6e42020-07-20 21:09:23 +0100135
Kevin Peng6710c822020-05-21 16:52:14 +0800136 - `TF-M tests <https://git.trustedfirmware.org/TF-M/tf-m-tests.git>`__
Minos Galanakisac6b06c2020-03-19 12:57:02 +0000137
Soby Mathew07ef6e42020-07-20 21:09:23 +0100138.. Note::
139
140 The development of Mbed-crypto has moved to MbedTLS project and hence
141 wherever mbed-crypto is referred to in TF-M, it refers to the component
142 within MbedTLS project. More details of the move can be found
143 `here <https://github.com/ARMmbed/mbed-crypto/issues/374>`__.
144
145
Minos Galanakisac6b06c2020-03-19 12:57:02 +0000146Each of the listed dependencies should be placed in a common root directory
147with trustedfirmware-m
148
149.. code-block:: bash
150
151 .
Soby Mathew07ef6e42020-07-20 21:09:23 +0100152 ├── mbedtls
David Vincze91e7ac82020-06-25 15:30:32 +0200153 ├── mcuboot
Kevin Peng6710c822020-05-21 16:52:14 +0800154 ├── tf-m-tests
Minos Galanakisac6b06c2020-03-19 12:57:02 +0000155 └── trusted-firmware-m
156
Ludovic Barre8a77bdd2020-03-26 19:53:07 +0100157********************************************
158Tools for configuring and programming boards
159********************************************
160
Kevin Peng6710c822020-05-21 16:52:14 +0800161For stm32l5xx boards, `STM32_Programmer_CLI <https://www.st.com/en/development-tools/stm32cubeprog.html>`__
Ludovic Barre8a77bdd2020-03-26 19:53:07 +0100162is used to configure security protections and to write the code in internal flash.
163A version is available for Linux and Windows host machine.
164
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200165**************
166Example setups
167**************
168
169This section lists dependencies and some exact and tested steps to set-up a
170TF-M-m build environment under various OSes.
171
Mingyang Sun1e590642019-09-24 10:46:21 +0800172Ubuntu setup
173============
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200174
David Vincze4a6555e2019-11-06 09:32:13 +0100175Install the following tools:
176
Antonio de Angelis065ce4a2019-06-04 14:02:33 +0100177- DS-5 |DS5_VERSION|.
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200178- Git tools v2.10.0
179- CMake (see the "Supported CMake versions" chapter)
180- GNU Make (see the "Supported make versions" chapter)
David Vincze4a6555e2019-11-06 09:32:13 +0100181- Python3 and the pip package manager (from Python 3.4 it's included)
Balint Matyid9abb492020-06-22 08:35:52 +0100182- Python3 packages: *cryptography, pyasn1, yaml, jinja2 v2.10, cbor v1.0.0, click, imgtool v1.6.0*
David Vincze4a6555e2019-11-06 09:32:13 +0100183
184 .. code-block:: bash
185
Balint Matyid9abb492020-06-22 08:35:52 +0100186 pip3 install --user cryptography pyasn1 pyyaml jinja2 cbor click imgtool
David Vincze4a6555e2019-11-06 09:32:13 +0100187
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200188- SRecord v1.58 (for Musca test chip boards)
189
190Setup a shell to enable compiler toolchain and CMake after installation.
191------------------------------------------------------------------------
192
Antonio de Angelis065ce4a2019-06-04 14:02:33 +0100193To import Arm Compiler v6.10 in your bash shell console:
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200194
195.. Warning::
196 Arm compiler specific environment variable may need updating based on
197 specific products and licenses as explained in
198 `product-and-toolkit-configuration <https://developer.arm.com/products/software-development-tools/license-management/resources/product-and-toolkit-configuration>`__.
199
200.. code-block:: bash
201
Antonio de Angelis065ce4a2019-06-04 14:02:33 +0100202 export PATH=<DS-5_PATH>/sw/ARMCompiler6.10/bin:$PATH
Vikas Katariya1c361cd2019-08-23 15:05:02 +0100203 export ARM_TOOL_VARIANT=ult
204 export ARM_PRODUCT_PATH=<DS-5_PATH>/sw/mappings
205 export ARMLMD_LICENSE_FILE=<LICENSE_FILE_PATH>
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200206
207To import CMake in your bash shell console:
208
209.. code-block:: bash
210
TTornblom8a8b4522020-06-10 11:13:32 +0200211 export PATH=<CMake path>/bin:$PATH
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200212
213To import GNU Arm in your bash shell console:
214
215.. code-block:: bash
216
TTornblom8a8b4522020-06-10 11:13:32 +0200217 export PATH=<bash path>/bin:$PATH
218
219 To import IAR Arm compiler in your bash shell console:
220
221.. code-block:: bash
222
223 export PATH=<IAR compiler path>/bin:$PATH
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200224
Mingyang Sun1e590642019-09-24 10:46:21 +0800225Windows + Cygwin setup
226======================
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200227
David Vincze4a6555e2019-11-06 09:32:13 +0100228Install the following tools:
229
Antonio de Angelis065ce4a2019-06-04 14:02:33 +0100230- uVision |KEIL_VERSION| or DS-5 |DS5_VERSION| (DS-5 Ultimate Edition) which
231 provides the Arm Compiler v6.10 compiler or GNU Arm compiler v6.3.1.
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200232- Git client latest version (https://git-scm.com/download/win)
Mingyang Sun1e590642019-09-24 10:46:21 +0800233- CMake (`native Windows version <https://cmake.org/download/>`__,
234 see the `Supported CMake versions`_ chapter)
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200235- `Cygwin <https://www.cygwin.com/>`__. Tests done with version 2.877
236 (64 bits)
237- GNU make should be installed by selecting appropriate package during
238 cygwin
239 installation.
David Vincze4a6555e2019-11-06 09:32:13 +0100240- Python3 `(native Windows version) <https://www.python.org/downloads/>`__ and
241 the pip package manager (from Python 3.4 it's included)
Balint Matyid9abb492020-06-22 08:35:52 +0100242- Python3 packages: *cryptography, pyasn1, yaml, jinja2 v2.10, cbor v1.0.0, click imgtool v1.6.0*
David Vincze4a6555e2019-11-06 09:32:13 +0100243
244 .. code-block:: bash
245
Balint Matyid9abb492020-06-22 08:35:52 +0100246 pip3 install --user cryptography pyasn1 pyyaml jinja2 cbor click imgtool
David Vincze4a6555e2019-11-06 09:32:13 +0100247
Jamie Foxb8a92702019-06-05 17:19:31 +0100248- `SRecord v1.63 <https://sourceforge.net/projects/srecord/>`__ (for Musca test
249 chip boards)
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200250
251Setup Cygwin to enable a compiler toolchain and CMake after installation.
252-------------------------------------------------------------------------
253
Antonio de Angelis065ce4a2019-06-04 14:02:33 +0100254If applicable, import Arm Compiler v6.10 in your shell console. To make this
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200255change permanent, add the command line into ~/.bashrc
256
257Armclang + DS-5
258^^^^^^^^^^^^^^^
259.. Note::
260
261 - Arm compiler specific environment variable may need updating based on
262 specific products and licenses as explained in
263 `product-and-toolkit-configuration <https://developer.arm.com/products/software-development-tools/license-management/resources/product-and-toolkit-configuration>`__.
264 - Arm licensing related environment variables must use Windows paths, and not
265 the Cygwin specific one relative to */cygrive*.
266
267.. code-block:: bash
268
Vikas Katariya1c361cd2019-08-23 15:05:02 +0100269 export PATH=/cygdrive/c/<DS-5_PATH>/sw/ARMCompiler6.10/bin:$PATH
270 export ARM_PRODUCT_PATH=C:/<DS-5_PATH>/sw/mappings
271 export ARM_TOOL_VARIANT=ult
272 export ARMLMD_LICENSE_FILE=<LICENSE_FILE_PATH>
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200273
274Armclang + Keil MDK Arm
275^^^^^^^^^^^^^^^^^^^^^^^
276
277.. Note::
278
279 - Arm compiler specific environment variable may need updating based
280 on specific products and licenses as explained in
281 `product-and-toolkit-configuration <https://developer.arm.com/products/software-development-tools/license-management/resources/product-and-toolkit-configuration>`__.
282
283.. code-block:: bash
284
Vikas Katariya1c361cd2019-08-23 15:05:02 +0100285 export PATH=/cygdrive/c/<uVision path>/ARM/ARMCLANG/bin:$PATH
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200286
287GNU Arm
288^^^^^^^
289
290If applicable, import GNU Arm compiler v6.3.1 in your shell console. To make
291this change permanent, add the command line into ~/.bashrc
292
293.. code-block:: bash
294
295 export PATH=<GNU Arm path>/bin:$PATH
296
297CMake
298^^^^^
299
300To import CMake in your bash shell console:
301
302.. code-block:: bash
303
304 export PATH=/cygdrive/c/<CMake path>/bin:$PATH
305
306Building the documentation
307==========================
308
309The build system is prepared to support generation of two documents.
310The Reference Manual which is Doxygen based, and the User Guide which is
311Sphinx based. Both document can be generated in HTML and PDF format.
312
313.. Note::
314
315 Support for document generation in the build environment is not mandatory.
316 Missing document generation tools will not block building the TF-M
317 firmware.
318
319To compile the TF-M Reference Manual
320------------------------------------
321
322The following additional tools are needed:
323
324 - Doxygen v1.8.0 or later
325 - Graphviz dot v2.38.0 or later
326 - PlantUML v1.2018.11 or later
327 - Java runtime environment 1.8 or later (for running PlantUML)
328
329For PDF generation the following tools are needed in addition to the
330above list:
331
332 - LaTeX
333 - PdfLaTeX
334
335Set-up the needed tools
336^^^^^^^^^^^^^^^^^^^^^^^
337
338Linux
339"""""
340.. code-block:: bash
341
342 sudo apt-get install -y doxygen graphviz default-jre
343 mkdir ~/plantuml
344 curl -L http://sourceforge.net/projects/plantuml/files/plantuml.jar/download --output ~/plantuml/plantuml.jar
345
346For PDF generation:
347
348.. code-block:: bash
349
350 sudo apt-get install -y doxygen-latex
351
352Windows + Cygwin
353""""""""""""""""
354
355Download and install the following tools:
356 - `Doxygen
357 1.8.8 <https://sourceforge.net/projects/doxygen/files/snapshots/doxygen-1.8-svn/windows/doxygenw20140924_1_8_8.zip/download>`__
358 - `Graphviz
359 2.38 <https://graphviz.gitlab.io/_pages/Download/windows/graphviz-2.38.msi>`__
360 - The Java runtime is part of the DS5 installation or can be
361 `downloaded from here <https://www.java.com/en/download/>`__
362 - `PlantUML <http://sourceforge.net/projects/plantuml/files/plantuml.jar/download>`__
363
364For PDF generation:
365
366 - `MikTeX <https://miktex.org/download>`__
367
368 .. Note::
369 When building the documentation the first time, MikTeX might prompt for
370 installing missing LaTeX components. Please allow the MikTeX package
371 manager to set-up these.
372
373Configure the shell
374^^^^^^^^^^^^^^^^^^^
375
376Linux
377"""""
378
379::
380
Vikas Katariya1c361cd2019-08-23 15:05:02 +0100381 export PLANTUML_JAR_PATH=~/plantuml/plantuml.jar
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200382
383Windows + Cygwin
384""""""""""""""""
385
386Assumptions for the settings below:
387
388 - plantuml.jar is available at c:\\plantuml\\plantuml.jar
389 - doxygen, dot, and MikTeX binaries are available on the PATH.
390 - Java JVM is used from DS5 installation.
391
392::
393
Vikas Katariya1c361cd2019-08-23 15:05:02 +0100394 export PLANTUML_JAR_PATH=c:/plantuml/plantuml.jar
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200395 export PATH=$PATH:/cygdrive/c/<DS-5 path>/sw/java/bin
396
397To compile the TF-M User Guide
398------------------------------
399
400The following additional tools are needed:
401
402 - Python3 and the following modules:
403 - Sphinx v1.7.9
404 - m2r v0.2.0
405 - sphinxcontrib-plantuml
406 - sphinx-rtd-theme
407 - Graphviz dot v2.38.0 or later
408 - PlantUML v1.2018.11 or later
409 - Java runtime environment 1.8 or later (for running PlantUML)
410
411For PDF generation the following tools are needed in addition to the
412above list:
413
414 - LaTeX
415 - PdfLaTeX
416
417Set-up the needed tools
418^^^^^^^^^^^^^^^^^^^^^^^
419
420Linux
421"""""
422
423.. code-block:: bash
424
425 sudo apt-get install -y python3 graphviz default-jre
426 pip --user install m2r Sphinx sphinx-rtd-theme sphinxcontrib-plantuml
427 mkdir ~/plantuml
428 curl -L http://sourceforge.net/projects/plantuml/files/plantuml.jar/download --output ~/plantuml/plantuml.jar
429
430For PDF generation:
431
432.. code-block:: bash
433
434 sudo apt-get install -y doxygen-latex
435
436Windows + Cygwin
437""""""""""""""""
438Download and install the following tools:
439 - Python3 `(native Windows version) <https://www.python.org/downloads/>`__
440 - Pip packages *m2r, Sphinx, sphinx-rtd-theme sphinxcontrib-plantuml*
Antonio de Angelis065ce4a2019-06-04 14:02:33 +0100441
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200442 .. code-block:: bash
Antonio de Angelis065ce4a2019-06-04 14:02:33 +0100443
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200444 pip --user install m2r Sphinx sphinx-rtd-theme sphinxcontrib-plantuml
Antonio de Angelis065ce4a2019-06-04 14:02:33 +0100445
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200446 - `Graphviz 2.38 <https://graphviz.gitlab.io/_pages/Download/windows/graphviz-2.38.msi>`__
447 - The Java runtime is part of the DS5 installation or can be
448 `downloaded from here <https://www.java.com/en/download/>`__
449 - `PlantUML <http://sourceforge.net/projects/plantuml/files/plantuml.jar/download>`__
450
451For PDF generation:
452
453- `MikTeX <https://miktex.org/download>`__
454
455.. Note::
456 When building the documentation the first time, MikTeX might
457 prompt for installing missing LaTeX components. Please allow the MikTeX
458 package manager to set-up these.
459
460Configure the shell
461^^^^^^^^^^^^^^^^^^^
462
463Linux
464"""""
465.. code-block:: bash
466
Vikas Katariya1c361cd2019-08-23 15:05:02 +0100467 export PLANTUML_JAR_PATH=~/plantuml/plantuml.jar
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200468
469Windows + Cygwin
470""""""""""""""""
471
472Assumptions for the settings below:
473
474 - plantuml.jar is available at c:\\plantuml\\plantuml.jar
475 - doxygen, dot, and MikTeX binaries are available on the PATH.
476 - Java JVM is used from DS5 installation.
477
478.. code-block:: bash
479
Vikas Katariya1c361cd2019-08-23 15:05:02 +0100480 export PLANTUML_JAR_PATH=c:/plantuml/plantuml.jar
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200481 export PATH=$PATH:/cygdrive/c/<DS-5 path>/sw/java/bin
482
Galanakis, Minos757139a2019-11-11 15:00:11 +0000483**************************
484Tool & Dependency overview
485**************************
486
487To build the TF-M firmware the following tools are needed:
488
489.. csv-table:: Tool dependencies
490 :header: "Name", "Version", "Component"
491
492 "C compiler",See `Supported C compilers`_,"Firmware"
493 "CMake",See `Supported CMake versions`_,
494 "GNU Make",See `Supported GNU make versions`_,
Kevin Peng6710c822020-05-21 16:52:14 +0800495 "tf-m-tests",See `External dependencies`_,
Minos Galanakisac6b06c2020-03-19 12:57:02 +0000496 "mbed-crypto",See `External dependencies`_,
David Vincze91e7ac82020-06-25 15:30:32 +0200497 "MCUboot",See `External dependencies`_,
Galanakis, Minos757139a2019-11-11 15:00:11 +0000498 "Python",3.x,"Firmware, User Guide"
499 "yaml",,"Firmware"
500 "pyasn1",,"Firmware"
501 "jinja2",,"Firmware"
502 "cryptography",,"Firmware"
503 "cbor",,"Firmware"
Balint Matyi3bae8832020-06-22 15:34:12 +0200504 "click",,"Firmware"
Balint Matyid9abb492020-06-22 08:35:52 +0100505 "imgtool",,"Firmware"
Galanakis, Minos757139a2019-11-11 15:00:11 +0000506 "Doxygen",">1.8","Reference manual"
507 "Sphinx",">1.4","User Guide"
508 "sphinxcontrib-plantuml",,"User Guide"
509 "sphinx-trd-theme",,"User Guide"
510 "Git",,
511 "PlantUML",">v1.2018.11","Reference Manual, User Guide"
512 "Graphviz dot",">v2.38.0","Reference manual"
513 "Java runtime environment (JRE)",">1.8","Reference Manual, User Guide"
514 "LaTex",,"pdf version of Reference Manual and User Guide"
515 "PdfLaTex",,"pdf version of Reference Manual and User Guide"
516
517Dependency chain:
518
519.. uml::
520
521 @startuml
522 skinparam state {
523 BackgroundColor #92AEE0
524 FontColor black
525 FontSize 16
526 AttributeFontColor black
527 AttributeFontSize 16
528 BackgroundColor<<pdf>> #A293E2
529 BackgroundColor<<doc>> #90DED6
530 }
531 state fw as "Firmware" : TF-M binary
532 state c_comp as "C Compiler" : C99
533 state gmake as "GNU make"
534 state u_guide as "User Guide" <<doc>>
535 state refman as "Reference Manual" <<doc>>
536 state rtd_theme as "sphinx-rtd-theme" <<doc>>
537 state sphnix_puml as "sphinxcontrib-plantuml" <<doc>>
538 state JRE as "JRE" <<doc>> : Java Runtime Environment
539 state gwiz as "Graphwiz dot" <<doc>>
540 state Sphinx as "Sphinx" <<doc>>
541 state m2r as "m2r" <<doc>>
542 state PlantUML as "PlantUML" <<doc>>
543 state LaTex as "LaTex" <<pdf>>
544 state PdfLaTex as "PdfLaTex" <<<<pdf>>>>
545 state Doxygen as "Doxygen" <<doc>>
546
547 [*] --> fw
548 fw --> c_comp
549 fw --> CMake
550 CMake --> gmake
551 fw --> cryptography
552 fw --> pyasn1
553 fw --> yaml
554 fw --> jinja2
555 fw --> cbor
Balint Matyi3bae8832020-06-22 15:34:12 +0200556 fw --> click
Balint Matyid9abb492020-06-22 08:35:52 +0100557 fw --> imgtool
Galanakis, Minos757139a2019-11-11 15:00:11 +0000558 cryptography --> Python3
559 pyasn1 --> Python3
560 yaml --> Python3
561 jinja2 --> Python3
562 cbor --> Python3
Balint Matyi3bae8832020-06-22 15:34:12 +0200563 click --> Python3
Balint Matyid9abb492020-06-22 08:35:52 +0100564 imgtool --> Python3
Galanakis, Minos757139a2019-11-11 15:00:11 +0000565
566 [*] --> u_guide
567 u_guide --> Sphinx
568 Sphinx --> m2r
569 Sphinx --> rtd_theme
570 Sphinx --> sphnix_puml
571 m2r --> Python3
572 rtd_theme --> Python3
573 sphnix_puml --> Python3
574 Sphinx --> PlantUML
575 PlantUML --> JRE
576 PlantUML --> gwiz
577 Sphinx --> LaTex
578 LaTex --> PdfLaTex
579
580 [*] --> refman
581 refman --> Doxygen
582 Doxygen --> PlantUML
583 Doxygen --> LaTex
584 state Legend {
585 state x as "For PDF generation only" <<pdf>>
586 state y as "For document generation only" <<doc>>
587 state z as "Mandatory"
588 }
589
590 @enduml
591
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200592--------------
593
Ronald Cronc0c38fa2019-09-23 09:36:56 +0200594*Copyright (c) 2017-2020, Arm Limited. All rights reserved.*