xref: /rk3399_ARM-atf/docs/perf/psci-performance-n1sdp.rst (revision 5fdf198c117a4b6dbcf5242f5136f7224ceff6ff)
16338876bSHarrison MutaiRuntime Instrumentation Testing - N1SDP
26338876bSHarrison Mutai=======================================
36338876bSHarrison Mutai
46338876bSHarrison MutaiFor this test we used the N1 System Development Platform (`N1SDP`_), which
56338876bSHarrison Mutaicontains an SoC consisting of two dual-core Arm N1 clusters.
66338876bSHarrison Mutai
76338876bSHarrison MutaiThe following source trees and binaries were used:
86338876bSHarrison Mutai
96338876bSHarrison Mutai- TF-A [`v2.9-rc0-16-g666aec401`_]
106338876bSHarrison Mutai- TFTF [`v2.9-rc0`_]
116338876bSHarrison Mutai- SCP/MCP `Prebuilt Images`_
126338876bSHarrison Mutai
13*5fdf198cSThaddeus SernaPlease see the Runtime Instrumentation :ref:`Testing Methodology
14*5fdf198cSThaddeus Serna<Runtime Instrumentation Methodology>` page for more details.
156338876bSHarrison Mutai
166338876bSHarrison MutaiProcedure
176338876bSHarrison Mutai---------
186338876bSHarrison Mutai
196338876bSHarrison Mutai#. Build TFTF with runtime instrumentation enabled:
206338876bSHarrison Mutai
216338876bSHarrison Mutai    .. code:: shell
226338876bSHarrison Mutai
236338876bSHarrison Mutai        make CROSS_COMPILE=aarch64-none-elf- PLAT=n1sdp \
246338876bSHarrison Mutai            TESTS=runtime-instrumentation all
256338876bSHarrison Mutai
266338876bSHarrison Mutai#. Build TF-A with the following build options:
276338876bSHarrison Mutai
286338876bSHarrison Mutai    .. code:: shell
296338876bSHarrison Mutai
306338876bSHarrison Mutai        make CROSS_COMPILE=aarch64-none-elf- PLAT=n1sdp \
316338876bSHarrison Mutai            ENABLE_RUNTIME_INSTRUMENTATION=1 fiptool all
326338876bSHarrison Mutai
336338876bSHarrison Mutai#. Fetch the SCP firmware images:
346338876bSHarrison Mutai
356338876bSHarrison Mutai    .. code:: shell
366338876bSHarrison Mutai
376338876bSHarrison Mutai        curl --fail --connect-timeout 5 --retry 5 \
386338876bSHarrison Mutai            -sLS -o build/n1sdp/release/scp_rom.bin \
396338876bSHarrison Mutai            https://downloads.trustedfirmware.org/tf-a/css_scp_2.12.0/n1sdp/release/n1sdp-bl1.bin
406338876bSHarrison Mutai        curl --fail --connect-timeout 5 \
416338876bSHarrison Mutai            --retry 5 -sLS -o build/n1sdp/release/scp_ram.bin \
426338876bSHarrison Mutai            https://downloads.trustedfirmware.org/tf-a/css_scp_2.12.0/n1sdp/release/n1sdp-bl2.bin
436338876bSHarrison Mutai
446338876bSHarrison Mutai#. Fetch the MCP firmware images:
456338876bSHarrison Mutai
466338876bSHarrison Mutai    .. code:: shell
476338876bSHarrison Mutai
486338876bSHarrison Mutai        curl --fail --connect-timeout 5 --retry 5 \
496338876bSHarrison Mutai            -sLS -o build/n1sdp/release/mcp_rom.bin \
506338876bSHarrison Mutai            https://downloads.trustedfirmware.org/tf-a/css_scp_2.12.0/n1sdp/release/n1sdp-mcp-bl1.bin
516338876bSHarrison Mutai        curl --fail --connect-timeout 5 --retry 5 \
526338876bSHarrison Mutai            -sLS -o build/n1sdp/release/mcp_ram.bin \
536338876bSHarrison Mutai            https://downloads.trustedfirmware.org/tf-a/css_scp_2.12.0/n1sdp/release/n1sdp-mcp-bl2.bin
546338876bSHarrison Mutai
556338876bSHarrison Mutai#. Using the fiptool, create a new FIP package and append the SCP ram image onto
566338876bSHarrison Mutai   it.
576338876bSHarrison Mutai
586338876bSHarrison Mutai    .. code:: shell
596338876bSHarrison Mutai
606338876bSHarrison Mutai        ./tools/fiptool/fiptool create --blob \
616338876bSHarrison Mutai                uuid=cfacc2c4-15e8-4668-82be-430a38fad705,file=build/n1sdp/release/bl1.bin \
626338876bSHarrison Mutai                --scp-fw build/n1sdp/release/scp_ram.bin build/n1sdp/release/scp_fw.bin
636338876bSHarrison Mutai
646338876bSHarrison Mutai#. Append the MCP image to the FIP.
656338876bSHarrison Mutai
666338876bSHarrison Mutai    .. code:: shell
676338876bSHarrison Mutai
686338876bSHarrison Mutai        ./tools/fiptool/fiptool create \
696338876bSHarrison Mutai            --blob uuid=54464222-a4cf-4bf8-b1b6-cee7dade539e,file=build/n1sdp/release/mcp_ram.bin \
706338876bSHarrison Mutai            build/n1sdp/release/mcp_fw.bin
716338876bSHarrison Mutai
726338876bSHarrison Mutai#. Then, add TFTF as the Non-Secure workload in the FIP image:
736338876bSHarrison Mutai
746338876bSHarrison Mutai    .. code:: shell
756338876bSHarrison Mutai
766338876bSHarrison Mutai        make CROSS_COMPILE=aarch64-none-elf- PLAT=n1sdp \
776338876bSHarrison Mutai            ENABLE_RUNTIME_INSTRUMENTATION=1 SCP_BL2=/dev/null \
786338876bSHarrison Mutai            BL33=<path/to/tftf.bin>  fip
796338876bSHarrison Mutai
806338876bSHarrison Mutai#. Load the following images onto the development board: ``fip.bin``,
816338876bSHarrison Mutai   ``scp_rom.bin``, ``scp_ram.bin``, ``mcp_rom.bin``, and ``mcp_ram.bin``.
826338876bSHarrison Mutai
836338876bSHarrison Mutai.. note::
846338876bSHarrison Mutai
856338876bSHarrison Mutai    These instructions presume you have a complete firmware stack. The N1SDP
866338876bSHarrison Mutai    `user guide`_ provides a detailed explanation on how to get setup from
876338876bSHarrison Mutai    scratch.
886338876bSHarrison Mutai
896338876bSHarrison MutaiResults
906338876bSHarrison Mutai-------
916338876bSHarrison Mutai
926338876bSHarrison Mutai``CPU_SUSPEND`` to deepest power level
936338876bSHarrison Mutai~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
946338876bSHarrison Mutai
956338876bSHarrison Mutai.. table:: ``CPU_SUSPEND`` latencies (µs) to deepest power level in
966338876bSHarrison Mutai        parallel
976338876bSHarrison Mutai
986338876bSHarrison Mutai    +---------+------+-----------+---------+-------------+
996338876bSHarrison Mutai    | Cluster | Core | Powerdown | Wakekup | Cache Flush |
1006338876bSHarrison Mutai    +=========+======+===========+=========+=============+
1016338876bSHarrison Mutai    |    0    |  0   |    3.44   |  10.04  |     0.4     |
1026338876bSHarrison Mutai    +---------+------+-----------+---------+-------------+
1036338876bSHarrison Mutai    |    0    |  1   |    4.98   |  12.72  |     0.16    |
1046338876bSHarrison Mutai    +---------+------+-----------+---------+-------------+
1056338876bSHarrison Mutai    |    1    |  0   |    3.58   |  15.42  |     0.2     |
1066338876bSHarrison Mutai    +---------+------+-----------+---------+-------------+
1076338876bSHarrison Mutai    |    1    |  1   |    5.24   |  17.78  |     0.18    |
1086338876bSHarrison Mutai    +---------+------+-----------+---------+-------------+
1096338876bSHarrison Mutai
1106338876bSHarrison Mutai.. table:: ``CPU_SUSPEND`` latencies (µs) to deepest power level in
1116338876bSHarrison Mutai        serial
1126338876bSHarrison Mutai
1136338876bSHarrison Mutai    +---------+------+-----------+---------+-------------+
1146338876bSHarrison Mutai    | Cluster | Core | Powerdown | Wakekup | Cache Flush |
1156338876bSHarrison Mutai    +=========+======+===========+=========+=============+
1166338876bSHarrison Mutai    |    0    |  0   |    1.82   |   9.98  |     0.32    |
1176338876bSHarrison Mutai    +---------+------+-----------+---------+-------------+
1186338876bSHarrison Mutai    |    0    |  1   |    1.96   |   9.96  |     0.18    |
1196338876bSHarrison Mutai    +---------+------+-----------+---------+-------------+
1206338876bSHarrison Mutai    |    1    |  0   |    2.0    |   10.5  |     0.16    |
1216338876bSHarrison Mutai    +---------+------+-----------+---------+-------------+
1226338876bSHarrison Mutai    |    1    |  1   |    2.22   |  10.56  |     0.16    |
1236338876bSHarrison Mutai    +---------+------+-----------+---------+-------------+
1246338876bSHarrison Mutai
1256338876bSHarrison Mutai``CPU_SUSPEND`` to power level 0
1266338876bSHarrison Mutai~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1276338876bSHarrison Mutai
1286338876bSHarrison Mutai.. table:: ``CPU_SUSPEND`` latencies (µs) to power level 0 in
1296338876bSHarrison Mutai        parallel
1306338876bSHarrison Mutai
1316338876bSHarrison Mutai    +---------+------+-----------+---------+-------------+
1326338876bSHarrison Mutai    | Cluster | Core | Powerdown | Wakekup | Cache Flush |
1336338876bSHarrison Mutai    +=========+======+===========+=========+=============+
1346338876bSHarrison Mutai    |    0    |  0   |    1.52   |  11.84  |     0.34    |
1356338876bSHarrison Mutai    +---------+------+-----------+---------+-------------+
1366338876bSHarrison Mutai    |    0    |  1   |    1.1    |  13.66  |     0.14    |
1376338876bSHarrison Mutai    +---------+------+-----------+---------+-------------+
1386338876bSHarrison Mutai    |    1    |  0   |    2.18   |   9.48  |     0.18    |
1396338876bSHarrison Mutai    +---------+------+-----------+---------+-------------+
1406338876bSHarrison Mutai    |    1    |  1   |    2.06   |   14.4  |     0.16    |
1416338876bSHarrison Mutai    +---------+------+-----------+---------+-------------+
1426338876bSHarrison Mutai
1436338876bSHarrison Mutai.. table:: ``CPU_SUSPEND`` latencies (µs) to power level 0 in serial
1446338876bSHarrison Mutai
1456338876bSHarrison Mutai    +---------+------+-----------+---------+-------------+
1466338876bSHarrison Mutai    | Cluster | Core | Powerdown | Wakekup | Cache Flush |
1476338876bSHarrison Mutai    +=========+======+===========+=========+=============+
1486338876bSHarrison Mutai    |    0    |  0   |    1.54   |   9.34  |     0.3     |
1496338876bSHarrison Mutai    +---------+------+-----------+---------+-------------+
1506338876bSHarrison Mutai    |    0    |  1   |    1.88   |   9.5   |     0.16    |
1516338876bSHarrison Mutai    +---------+------+-----------+---------+-------------+
1526338876bSHarrison Mutai    |    1    |  0   |    1.86   |   9.86  |     0.2     |
1536338876bSHarrison Mutai    +---------+------+-----------+---------+-------------+
1546338876bSHarrison Mutai    |    1    |  1   |    2.02   |   9.64  |     0.18    |
1556338876bSHarrison Mutai    +---------+------+-----------+---------+-------------+
1566338876bSHarrison Mutai
1576338876bSHarrison Mutai``CPU_OFF`` on all non-lead CPUs
1586338876bSHarrison Mutai~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1596338876bSHarrison Mutai
1606338876bSHarrison Mutai``CPU_OFF`` on all non-lead CPUs in sequence then, ``CPU_SUSPEND`` on the lead
1616338876bSHarrison Mutaicore to the deepest power level.
1626338876bSHarrison Mutai
1636338876bSHarrison Mutai.. table:: ``CPU_OFF`` latencies (µs) on all non-lead CPUs
1646338876bSHarrison Mutai
1656338876bSHarrison Mutai    +---------+------+-----------+---------+-------------+
1666338876bSHarrison Mutai    | Cluster | Core | Powerdown | Wakekup | Cache Flush |
1676338876bSHarrison Mutai    +=========+======+===========+=========+=============+
1686338876bSHarrison Mutai    |    0    |  0   |    1.86   |   9.88  |     0.32    |
1696338876bSHarrison Mutai    +---------+------+-----------+---------+-------------+
1706338876bSHarrison Mutai    |    0    |  1   |    21.1   |  12.44  |     0.42    |
1716338876bSHarrison Mutai    +---------+------+-----------+---------+-------------+
1726338876bSHarrison Mutai    |    1    |  0   |   21.22   |   13.2  |     0.32    |
1736338876bSHarrison Mutai    +---------+------+-----------+---------+-------------+
1746338876bSHarrison Mutai    |    1    |  1   |   21.56   |  13.18  |     0.54    |
1756338876bSHarrison Mutai    +---------+------+-----------+---------+-------------+
1766338876bSHarrison Mutai
1776338876bSHarrison Mutai``CPU_VERSION`` in parallel
1786338876bSHarrison Mutai~~~~~~~~~~~~~~~~~~~~~~~~~~~
1796338876bSHarrison Mutai
1806338876bSHarrison Mutai.. table:: ``CPU_VERSION`` latency (µs) in parallel on all cores
1816338876bSHarrison Mutai
1826338876bSHarrison Mutai    +-------------+--------+--------------+
1836338876bSHarrison Mutai    |   Cluster   |  Core  |   Latency    |
1846338876bSHarrison Mutai    +=============+========+==============+
1856338876bSHarrison Mutai    |      0      |   0    |     0.08     |
1866338876bSHarrison Mutai    +-------------+--------+--------------+
1876338876bSHarrison Mutai    |      0      |   1    |     0.22     |
1886338876bSHarrison Mutai    +-------------+--------+--------------+
1896338876bSHarrison Mutai    |      1      |   0    |     0.28     |
1906338876bSHarrison Mutai    +-------------+--------+--------------+
1916338876bSHarrison Mutai    |      1      |   1    |     0.26     |
1926338876bSHarrison Mutai    +-------------+--------+--------------+
1936338876bSHarrison Mutai
1946338876bSHarrison Mutai--------------
1956338876bSHarrison Mutai
1966338876bSHarrison Mutai*Copyright (c) 2023, Arm Limited. All rights reserved.*
1976338876bSHarrison Mutai
1986338876bSHarrison Mutai.. _v2.9-rc0-16-g666aec401: https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/refs/heads/v2.9-rc0-16-g666aec401
1996338876bSHarrison Mutai.. _v2.9-rc0: https://review.trustedfirmware.org/plugins/gitiles/TF-A/tf-a-tests/+/refs/tags/v2.9-rc0
2006338876bSHarrison Mutai.. _user guide: https://gitlab.arm.com/arm-reference-solutions/arm-reference-solutions-docs/-/blob/master/docs/n1sdp/user-guide.rst
2016338876bSHarrison Mutai.. _Prebuilt Images:  https://downloads.trustedfirmware.org/tf-a/css_scp_2.11.0/n1sdp/release/
2026338876bSHarrison Mutai.. _N1SDP: https://developer.arm.com/documentation/101489/latest
203