From 019311e71298194b3abd62e6097e2612e9b21111 Mon Sep 17 00:00:00 2001 From: Govindraj Raja Date: Tue, 18 Jul 2023 13:55:33 -0500 Subject: [PATCH] chore(docs): update march utility details commit@7794d6c8f8c44acc14fbdc5ada5965310056be1e added a march utility but the details were not updated in docs. Update docs to provide a glimpse of march utility added. Change-Id: I696cb9a701a30d7bf36a1ecd38a80d07df1fd551 Signed-off-by: Govindraj Raja --- docs/design/firmware-design.rst | 14 ++++++-------- docs/getting_started/build-options.rst | 7 +++++++ 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/docs/design/firmware-design.rst b/docs/design/firmware-design.rst index 3d648c4ef..879ddda41 100644 --- a/docs/design/firmware-design.rst +++ b/docs/design/firmware-design.rst @@ -2636,19 +2636,17 @@ These build options serve dual purpose architectural features up to ``ARM_ARCH_MAJOR.ARM_ARCH_MINOR`` are included and unconditionally enabled by TF-A build system. -- Passed to compiler via "-march" option to generate binary target : Tell the - compiler to emit instructions upto ``ARM_ARCH_MAJOR.ARM_ARCH_MINOR`` +- ``ARM_ARCH_MAJOR`` and ``ARM_ARCH_MINOR`` are passed to a march.mk build utility + this will try to come up with an appropriate -march value to be passed to compiler + by probing the compiler and checking what's supported by the compiler and what's best + that can be used. But if platform provides a ``MARCH_DIRECTIVE`` then it will used + directly and compiler probing will be skipped. The build system requires that the platform provides a valid numeric value based on CPU architecture extension, otherwise it defaults to base Armv8.0-A architecture. Subsequent Arm Architecture versions also support extensions which were introduced in previous versions. -**TO-DO** : Its planned to decouple the two functionalities and introduce a new macro -for compiler usage. The requirement for this decoupling arises becasue TF-A code -always provides support for the latest and greatest architecture features but this -is not the case for the target compiler. - .. seealso:: :ref:`Build Options` For details on the Architecture Extension and available features, please refer @@ -2738,7 +2736,7 @@ I.e: .. code:: make - MARCH_DIRECTIVE := -mach=armv7-a + MARCH_DIRECTIVE := -march=armv7-a Code Structure -------------- diff --git a/docs/getting_started/build-options.rst b/docs/getting_started/build-options.rst index a5633e993..ac03806e8 100644 --- a/docs/getting_started/build-options.rst +++ b/docs/getting_started/build-options.rst @@ -714,6 +714,13 @@ Common build options This option defaults to 0. +- ``MARCH_DIRECTIVE``: used to pass a -march option from the platform build + options to the compiler. An example usage: + + .. code:: make + + MARCH_DIRECTIVE := -march=armv8.5-a + - ``NON_TRUSTED_WORLD_KEY``: This option is used when ``GENERATE_COT=1``. It specifies the file that contains the Non-Trusted World private key in PEM format. If ``SAVE_KEYS=1``, this file name will be used to save the key.