Docs: Clean up build instructions
Primarily to reduce redundancy and improve clarity.
Also fixed a few typos.
In the "example builds" section, introduced the build command with
just the mandatory parameters at first and then introduced the
important optional parameters.
Signed-off-by: Chris Brand <chris.brand@cypress.com>
Change-Id: Ib4d74c3abcc850c836480dfb1962af30625c3a77
diff --git a/docs/technical_references/instructions/tfm_build_instruction.rst b/docs/technical_references/instructions/tfm_build_instruction.rst
index 3000981..144381a 100644
--- a/docs/technical_references/instructions/tfm_build_instruction.rst
+++ b/docs/technical_references/instructions/tfm_build_instruction.rst
@@ -84,13 +84,11 @@
| | ``/platform/ext/target``, or as an absolute path. |
+----------------------+-------------------------------------------------------+
-By default release configuration builds. Alternate build types can be controlled
-by the CMAKE_BUILD_TYPE variable.
-
Build type
----------
-Build type is controlled by the ``CMAKE_BUILD_TYPE`` variable. The possible
+By default, a release configuration is built. Alternate build types can be
+specified with the ``CMAKE_BUILD_TYPE`` variable. The possible
types are:
- ``Debug``
@@ -195,15 +193,15 @@
| TEST_S_IPC | Build secure regression IPC tests. |
+---------------------+--------------------------------------------------------------------+
-The single test suite can be opened when their dependencies like partitions or
+Individual test suites can be enabled when their dependencies like partitions or
other specific configurations are set. On the one hand, some test suites depend
-on other test suites. On the other hand, some test suites have confict with
+on other test suites. On the other hand, some test suites conflict with
other test suites. Test configurations and dependencies will be
checked in ``${TFM_TEST_REPO_PATH}/test/config/check_config.cmake``.
-If regression testing is enabled, it will then enable all tests for the enabled
-secure partitions.
-Multicore tests will be enabled if ``TFM_MULTI_CORE_TOPOLOGY`` is enabled.
+If regression testing is enabled by ``TEST_NS`` or ``TEST_S``, individual
+test suites will be enabled or disabled as appropriate for the TF-M
+configuration (i.e. all enabled secure partitions will be tested).
Some cryptographic tests can be enabled and disabled. This is done to prevent
false failures from being reported when a smaller Mbed Crypto config is being
@@ -310,11 +308,11 @@
+------------------------------------------+---------------------------------------+
There has also been some changes to the PSA manifest file generation. The files
-are now generated into a seperate tree in the ``<tfm build dir>/generated``
+are now generated into a separate tree in the ``<tfm build dir>/generated``
directory. Therefore they have been removed from the source tree. Any changes
should be made only to the template files.
-The api for the ``tools/tfm_parse_manifest_list.py`` script has also changed
+The API for the ``tools/tfm_parse_manifest_list.py`` script has also changed
slightly. It is no longer required to be run manually as it is run as part of
cmake.
@@ -322,16 +320,12 @@
TF-M build examples
*******************
-.. Note::
- By default, CMAKE_BUILD_TYPE is set to Release, for debug support change
- this to Debug. See below for an example.
-
Example: building TF-M for AN521 platform using GCC:
====================================================
.. code-block:: bash
cd <TF-M base folder>
- cmake -S . -B cmake_build -DTFM_PLATFORM=arm/mps2/an521 -DTFM_TOOLCHAIN_FILE=toolchain_GNUARM.cmake -DCMAKE_BUILD_TYPE=Debug
+ cmake -S . -B cmake_build -DTFM_PLATFORM=arm/mps2/an521
cmake --build cmake_build -- install
Alternately using traditional cmake syntax
@@ -341,27 +335,23 @@
cd <TF-M base folder>
mkdir cmake_build
cd cmake_build
- cmake .. -DTFM_PLATFORM=arm/mps2/an521 -DTFM_TOOLCHAIN_FILE=../toolchain_GNUARM.cmake
+ cmake .. -DTFM_PLATFORM=arm/mps2/an521
make install
.. Note::
- Unix Makefiles is the default generator. Ninja is also supported by setting
- -GNinja
-
-.. Note::
It is recommended to build each different build configuration in a separate
build directory.
-As seen above, the toolchain can be set using the -DTFM_TOOLCHAIN_FILE parameter. Without
-it, the build command takes the GNU ARM toolchain as default, so there is no need
-to explicitly include it. In case other toolchain is required, i.e. ARM Clang, simply
-specify in the command line
+The default build uses Unix Makefiles. The ``-G`` option can be used to change
+this. The default build uses the GNU ARM toolchain and creates a Release build.
+These options can be overridden using the ``TFM_TOOLCHAIN_FILE`` and
+``CMAKE_BUILD_TYPE`` parameters, as shown below
.. code-block:: bash
cd <TF-M base folder>
- cmake -S . -B cmake_build -DTFM_PLATFORM=arm/mps2/an521 -DTFM_TOOLCHAIN_FILE=toolchain_ARMCLANG.cmake -DTEST_S=ON -DTEST_NS=ON
+ cmake -S . -B cmake_build -DTFM_PLATFORM=arm/mps2/an521 -GNinja -DTFM_TOOLCHAIN_FILE=toolchain_ARMCLANG.cmake -DCMAKE_BUILD_TYPE=Debug
cmake --build cmake_build -- install
Regression Tests for the AN521 target platform
@@ -542,3 +532,4 @@
--------------
*Copyright (c) 2017-2021, Arm Limited. All rights reserved.*
+*Copyright (c) 2022, Cypress Semiconductor Corporation. All rights reserved.*