blob: 61ddb9303bb2f6e163c6dffa8f371dbc304dd264 [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
129 - `Mbed Crypto library <https://github.com/ARMmbed/mbed-crypto>`__ v3.0.1
130 is used as crypto library on the secure side
Kevin Peng6710c822020-05-21 16:52:14 +0800131
132And the following TF-M projects as well:
133 - `TF-M tests <https://git.trustedfirmware.org/TF-M/tf-m-tests.git>`__
Minos Galanakisac6b06c2020-03-19 12:57:02 +0000134
135Each of the listed dependencies should be placed in a common root directory
136with trustedfirmware-m
137
138.. code-block:: bash
139
140 .
Minos Galanakisac6b06c2020-03-19 12:57:02 +0000141 ├── mbed-crypto
Kevin Peng6710c822020-05-21 16:52:14 +0800142 ├── tf-m-tests
Minos Galanakisac6b06c2020-03-19 12:57:02 +0000143 └── trusted-firmware-m
144
145.. Note::
146 `CMSIS_5` v5.5.0 has a known issue, affecting compilation using
147 Arm Compiler v6.10. Please refer to
148 `CMSIS release notes <https://github.com/ARM-software/CMSIS_5/releases>`__.
149 for guidance.
TTornblom8a8b4522020-06-10 11:13:32 +0200150 For building with the IAR toolchain, see instructions in
151 :doc:`software requirements <tfm_build_instruction_iar>`
Minos Galanakisac6b06c2020-03-19 12:57:02 +0000152
Ludovic Barre8a77bdd2020-03-26 19:53:07 +0100153********************************************
154Tools for configuring and programming boards
155********************************************
156
Kevin Peng6710c822020-05-21 16:52:14 +0800157For stm32l5xx boards, `STM32_Programmer_CLI <https://www.st.com/en/development-tools/stm32cubeprog.html>`__
Ludovic Barre8a77bdd2020-03-26 19:53:07 +0100158is used to configure security protections and to write the code in internal flash.
159A version is available for Linux and Windows host machine.
160
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200161**************
162Example setups
163**************
164
165This section lists dependencies and some exact and tested steps to set-up a
166TF-M-m build environment under various OSes.
167
Mingyang Sun1e590642019-09-24 10:46:21 +0800168Ubuntu setup
169============
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200170
David Vincze4a6555e2019-11-06 09:32:13 +0100171Install the following tools:
172
Antonio de Angelis065ce4a2019-06-04 14:02:33 +0100173- DS-5 |DS5_VERSION|.
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200174- Git tools v2.10.0
175- CMake (see the "Supported CMake versions" chapter)
176- GNU Make (see the "Supported make versions" chapter)
David Vincze4a6555e2019-11-06 09:32:13 +0100177- Python3 and the pip package manager (from Python 3.4 it's included)
178- Python3 packages: *cryptography, pyasn1, yaml, jinja2 v2.10, cbor v1.0.0*
179
180 .. code-block:: bash
181
182 pip3 install --user cryptography pyasn1 pyyaml jinja2 cbor
183
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200184- SRecord v1.58 (for Musca test chip boards)
185
186Setup a shell to enable compiler toolchain and CMake after installation.
187------------------------------------------------------------------------
188
Antonio de Angelis065ce4a2019-06-04 14:02:33 +0100189To import Arm Compiler v6.10 in your bash shell console:
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200190
191.. Warning::
192 Arm compiler specific environment variable may need updating based on
193 specific products and licenses as explained in
194 `product-and-toolkit-configuration <https://developer.arm.com/products/software-development-tools/license-management/resources/product-and-toolkit-configuration>`__.
195
196.. code-block:: bash
197
Antonio de Angelis065ce4a2019-06-04 14:02:33 +0100198 export PATH=<DS-5_PATH>/sw/ARMCompiler6.10/bin:$PATH
Vikas Katariya1c361cd2019-08-23 15:05:02 +0100199 export ARM_TOOL_VARIANT=ult
200 export ARM_PRODUCT_PATH=<DS-5_PATH>/sw/mappings
201 export ARMLMD_LICENSE_FILE=<LICENSE_FILE_PATH>
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200202
203To import CMake in your bash shell console:
204
205.. code-block:: bash
206
TTornblom8a8b4522020-06-10 11:13:32 +0200207 export PATH=<CMake path>/bin:$PATH
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200208
209To import GNU Arm in your bash shell console:
210
211.. code-block:: bash
212
TTornblom8a8b4522020-06-10 11:13:32 +0200213 export PATH=<bash path>/bin:$PATH
214
215 To import IAR Arm compiler in your bash shell console:
216
217.. code-block:: bash
218
219 export PATH=<IAR compiler path>/bin:$PATH
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200220
Mingyang Sun1e590642019-09-24 10:46:21 +0800221Windows + Cygwin setup
222======================
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200223
David Vincze4a6555e2019-11-06 09:32:13 +0100224Install the following tools:
225
Antonio de Angelis065ce4a2019-06-04 14:02:33 +0100226- uVision |KEIL_VERSION| or DS-5 |DS5_VERSION| (DS-5 Ultimate Edition) which
227 provides the Arm Compiler v6.10 compiler or GNU Arm compiler v6.3.1.
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200228- Git client latest version (https://git-scm.com/download/win)
Mingyang Sun1e590642019-09-24 10:46:21 +0800229- CMake (`native Windows version <https://cmake.org/download/>`__,
230 see the `Supported CMake versions`_ chapter)
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200231- `Cygwin <https://www.cygwin.com/>`__. Tests done with version 2.877
232 (64 bits)
233- GNU make should be installed by selecting appropriate package during
234 cygwin
235 installation.
David Vincze4a6555e2019-11-06 09:32:13 +0100236- Python3 `(native Windows version) <https://www.python.org/downloads/>`__ and
237 the pip package manager (from Python 3.4 it's included)
238- Python3 packages: *cryptography, pyasn1, yaml, jinja2 v2.10, cbor v1.0.0*
239
240 .. code-block:: bash
241
242 pip3 install --user cryptography pyasn1 pyyaml jinja2 cbor
243
Jamie Foxb8a92702019-06-05 17:19:31 +0100244- `SRecord v1.63 <https://sourceforge.net/projects/srecord/>`__ (for Musca test
245 chip boards)
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200246
247Setup Cygwin to enable a compiler toolchain and CMake after installation.
248-------------------------------------------------------------------------
249
Antonio de Angelis065ce4a2019-06-04 14:02:33 +0100250If applicable, import Arm Compiler v6.10 in your shell console. To make this
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200251change permanent, add the command line into ~/.bashrc
252
253Armclang + DS-5
254^^^^^^^^^^^^^^^
255.. Note::
256
257 - Arm compiler specific environment variable may need updating based on
258 specific products and licenses as explained in
259 `product-and-toolkit-configuration <https://developer.arm.com/products/software-development-tools/license-management/resources/product-and-toolkit-configuration>`__.
260 - Arm licensing related environment variables must use Windows paths, and not
261 the Cygwin specific one relative to */cygrive*.
262
263.. code-block:: bash
264
Vikas Katariya1c361cd2019-08-23 15:05:02 +0100265 export PATH=/cygdrive/c/<DS-5_PATH>/sw/ARMCompiler6.10/bin:$PATH
266 export ARM_PRODUCT_PATH=C:/<DS-5_PATH>/sw/mappings
267 export ARM_TOOL_VARIANT=ult
268 export ARMLMD_LICENSE_FILE=<LICENSE_FILE_PATH>
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200269
270Armclang + Keil MDK Arm
271^^^^^^^^^^^^^^^^^^^^^^^
272
273.. Note::
274
275 - Arm compiler specific environment variable may need updating based
276 on specific products and licenses as explained in
277 `product-and-toolkit-configuration <https://developer.arm.com/products/software-development-tools/license-management/resources/product-and-toolkit-configuration>`__.
278
279.. code-block:: bash
280
Vikas Katariya1c361cd2019-08-23 15:05:02 +0100281 export PATH=/cygdrive/c/<uVision path>/ARM/ARMCLANG/bin:$PATH
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200282
283GNU Arm
284^^^^^^^
285
286If applicable, import GNU Arm compiler v6.3.1 in your shell console. To make
287this change permanent, add the command line into ~/.bashrc
288
289.. code-block:: bash
290
291 export PATH=<GNU Arm path>/bin:$PATH
292
293CMake
294^^^^^
295
296To import CMake in your bash shell console:
297
298.. code-block:: bash
299
300 export PATH=/cygdrive/c/<CMake path>/bin:$PATH
301
302Building the documentation
303==========================
304
305The build system is prepared to support generation of two documents.
306The Reference Manual which is Doxygen based, and the User Guide which is
307Sphinx based. Both document can be generated in HTML and PDF format.
308
309.. Note::
310
311 Support for document generation in the build environment is not mandatory.
312 Missing document generation tools will not block building the TF-M
313 firmware.
314
315To compile the TF-M Reference Manual
316------------------------------------
317
318The following additional tools are needed:
319
320 - Doxygen v1.8.0 or later
321 - Graphviz dot v2.38.0 or later
322 - PlantUML v1.2018.11 or later
323 - Java runtime environment 1.8 or later (for running PlantUML)
324
325For PDF generation the following tools are needed in addition to the
326above list:
327
328 - LaTeX
329 - PdfLaTeX
330
331Set-up the needed tools
332^^^^^^^^^^^^^^^^^^^^^^^
333
334Linux
335"""""
336.. code-block:: bash
337
338 sudo apt-get install -y doxygen graphviz default-jre
339 mkdir ~/plantuml
340 curl -L http://sourceforge.net/projects/plantuml/files/plantuml.jar/download --output ~/plantuml/plantuml.jar
341
342For PDF generation:
343
344.. code-block:: bash
345
346 sudo apt-get install -y doxygen-latex
347
348Windows + Cygwin
349""""""""""""""""
350
351Download and install the following tools:
352 - `Doxygen
353 1.8.8 <https://sourceforge.net/projects/doxygen/files/snapshots/doxygen-1.8-svn/windows/doxygenw20140924_1_8_8.zip/download>`__
354 - `Graphviz
355 2.38 <https://graphviz.gitlab.io/_pages/Download/windows/graphviz-2.38.msi>`__
356 - The Java runtime is part of the DS5 installation or can be
357 `downloaded from here <https://www.java.com/en/download/>`__
358 - `PlantUML <http://sourceforge.net/projects/plantuml/files/plantuml.jar/download>`__
359
360For PDF generation:
361
362 - `MikTeX <https://miktex.org/download>`__
363
364 .. Note::
365 When building the documentation the first time, MikTeX might prompt for
366 installing missing LaTeX components. Please allow the MikTeX package
367 manager to set-up these.
368
369Configure the shell
370^^^^^^^^^^^^^^^^^^^
371
372Linux
373"""""
374
375::
376
Vikas Katariya1c361cd2019-08-23 15:05:02 +0100377 export PLANTUML_JAR_PATH=~/plantuml/plantuml.jar
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200378
379Windows + Cygwin
380""""""""""""""""
381
382Assumptions for the settings below:
383
384 - plantuml.jar is available at c:\\plantuml\\plantuml.jar
385 - doxygen, dot, and MikTeX binaries are available on the PATH.
386 - Java JVM is used from DS5 installation.
387
388::
389
Vikas Katariya1c361cd2019-08-23 15:05:02 +0100390 export PLANTUML_JAR_PATH=c:/plantuml/plantuml.jar
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200391 export PATH=$PATH:/cygdrive/c/<DS-5 path>/sw/java/bin
392
393To compile the TF-M User Guide
394------------------------------
395
396The following additional tools are needed:
397
398 - Python3 and the following modules:
399 - Sphinx v1.7.9
400 - m2r v0.2.0
401 - sphinxcontrib-plantuml
402 - sphinx-rtd-theme
403 - Graphviz dot v2.38.0 or later
404 - PlantUML v1.2018.11 or later
405 - Java runtime environment 1.8 or later (for running PlantUML)
406
407For PDF generation the following tools are needed in addition to the
408above list:
409
410 - LaTeX
411 - PdfLaTeX
412
413Set-up the needed tools
414^^^^^^^^^^^^^^^^^^^^^^^
415
416Linux
417"""""
418
419.. code-block:: bash
420
421 sudo apt-get install -y python3 graphviz default-jre
422 pip --user install m2r Sphinx sphinx-rtd-theme sphinxcontrib-plantuml
423 mkdir ~/plantuml
424 curl -L http://sourceforge.net/projects/plantuml/files/plantuml.jar/download --output ~/plantuml/plantuml.jar
425
426For PDF generation:
427
428.. code-block:: bash
429
430 sudo apt-get install -y doxygen-latex
431
432Windows + Cygwin
433""""""""""""""""
434Download and install the following tools:
435 - Python3 `(native Windows version) <https://www.python.org/downloads/>`__
436 - Pip packages *m2r, Sphinx, sphinx-rtd-theme sphinxcontrib-plantuml*
Antonio de Angelis065ce4a2019-06-04 14:02:33 +0100437
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200438 .. code-block:: bash
Antonio de Angelis065ce4a2019-06-04 14:02:33 +0100439
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200440 pip --user install m2r Sphinx sphinx-rtd-theme sphinxcontrib-plantuml
Antonio de Angelis065ce4a2019-06-04 14:02:33 +0100441
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200442 - `Graphviz 2.38 <https://graphviz.gitlab.io/_pages/Download/windows/graphviz-2.38.msi>`__
443 - The Java runtime is part of the DS5 installation or can be
444 `downloaded from here <https://www.java.com/en/download/>`__
445 - `PlantUML <http://sourceforge.net/projects/plantuml/files/plantuml.jar/download>`__
446
447For PDF generation:
448
449- `MikTeX <https://miktex.org/download>`__
450
451.. Note::
452 When building the documentation the first time, MikTeX might
453 prompt for installing missing LaTeX components. Please allow the MikTeX
454 package manager to set-up these.
455
456Configure the shell
457^^^^^^^^^^^^^^^^^^^
458
459Linux
460"""""
461.. code-block:: bash
462
Vikas Katariya1c361cd2019-08-23 15:05:02 +0100463 export PLANTUML_JAR_PATH=~/plantuml/plantuml.jar
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200464
465Windows + Cygwin
466""""""""""""""""
467
468Assumptions for the settings below:
469
470 - plantuml.jar is available at c:\\plantuml\\plantuml.jar
471 - doxygen, dot, and MikTeX binaries are available on the PATH.
472 - Java JVM is used from DS5 installation.
473
474.. code-block:: bash
475
Vikas Katariya1c361cd2019-08-23 15:05:02 +0100476 export PLANTUML_JAR_PATH=c:/plantuml/plantuml.jar
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200477 export PATH=$PATH:/cygdrive/c/<DS-5 path>/sw/java/bin
478
Galanakis, Minos757139a2019-11-11 15:00:11 +0000479**************************
480Tool & Dependency overview
481**************************
482
483To build the TF-M firmware the following tools are needed:
484
485.. csv-table:: Tool dependencies
486 :header: "Name", "Version", "Component"
487
488 "C compiler",See `Supported C compilers`_,"Firmware"
489 "CMake",See `Supported CMake versions`_,
490 "GNU Make",See `Supported GNU make versions`_,
Kevin Peng6710c822020-05-21 16:52:14 +0800491 "tf-m-tests",See `External dependencies`_,
Minos Galanakisac6b06c2020-03-19 12:57:02 +0000492 "mbed-crypto",See `External dependencies`_,
Galanakis, Minos757139a2019-11-11 15:00:11 +0000493 "Python",3.x,"Firmware, User Guide"
494 "yaml",,"Firmware"
495 "pyasn1",,"Firmware"
496 "jinja2",,"Firmware"
497 "cryptography",,"Firmware"
498 "cbor",,"Firmware"
499 "Doxygen",">1.8","Reference manual"
500 "Sphinx",">1.4","User Guide"
501 "sphinxcontrib-plantuml",,"User Guide"
502 "sphinx-trd-theme",,"User Guide"
503 "Git",,
504 "PlantUML",">v1.2018.11","Reference Manual, User Guide"
505 "Graphviz dot",">v2.38.0","Reference manual"
506 "Java runtime environment (JRE)",">1.8","Reference Manual, User Guide"
507 "LaTex",,"pdf version of Reference Manual and User Guide"
508 "PdfLaTex",,"pdf version of Reference Manual and User Guide"
509
510Dependency chain:
511
512.. uml::
513
514 @startuml
515 skinparam state {
516 BackgroundColor #92AEE0
517 FontColor black
518 FontSize 16
519 AttributeFontColor black
520 AttributeFontSize 16
521 BackgroundColor<<pdf>> #A293E2
522 BackgroundColor<<doc>> #90DED6
523 }
524 state fw as "Firmware" : TF-M binary
525 state c_comp as "C Compiler" : C99
526 state gmake as "GNU make"
527 state u_guide as "User Guide" <<doc>>
528 state refman as "Reference Manual" <<doc>>
529 state rtd_theme as "sphinx-rtd-theme" <<doc>>
530 state sphnix_puml as "sphinxcontrib-plantuml" <<doc>>
531 state JRE as "JRE" <<doc>> : Java Runtime Environment
532 state gwiz as "Graphwiz dot" <<doc>>
533 state Sphinx as "Sphinx" <<doc>>
534 state m2r as "m2r" <<doc>>
535 state PlantUML as "PlantUML" <<doc>>
536 state LaTex as "LaTex" <<pdf>>
537 state PdfLaTex as "PdfLaTex" <<<<pdf>>>>
538 state Doxygen as "Doxygen" <<doc>>
539
540 [*] --> fw
541 fw --> c_comp
542 fw --> CMake
543 CMake --> gmake
544 fw --> cryptography
545 fw --> pyasn1
546 fw --> yaml
547 fw --> jinja2
548 fw --> cbor
549 cryptography --> Python3
550 pyasn1 --> Python3
551 yaml --> Python3
552 jinja2 --> Python3
553 cbor --> Python3
554
555 [*] --> u_guide
556 u_guide --> Sphinx
557 Sphinx --> m2r
558 Sphinx --> rtd_theme
559 Sphinx --> sphnix_puml
560 m2r --> Python3
561 rtd_theme --> Python3
562 sphnix_puml --> Python3
563 Sphinx --> PlantUML
564 PlantUML --> JRE
565 PlantUML --> gwiz
566 Sphinx --> LaTex
567 LaTex --> PdfLaTex
568
569 [*] --> refman
570 refman --> Doxygen
571 Doxygen --> PlantUML
572 Doxygen --> LaTex
573 state Legend {
574 state x as "For PDF generation only" <<pdf>>
575 state y as "For document generation only" <<doc>>
576 state z as "Mandatory"
577 }
578
579 @enduml
580
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200581--------------
582
Ronald Cronc0c38fa2019-09-23 09:36:56 +0200583*Copyright (c) 2017-2020, Arm Limited. All rights reserved.*