Skip to content
2 changes: 1 addition & 1 deletion configs/AM62LX/AM62LX_linux_toc.txt
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ linux/Foundational_Components/Machine_Learning/armnn
linux/Foundational_Components/Machine_Learning/nnstreamer
linux/Foundational_Components/Machine_Learning/onnxrt
linux/Foundational_Components/Machine_Learning/tflite
#linux/Foundational_Components_OPTEE
linux/Foundational_Components_OPTEE
linux/Foundational_Components_ATF
linux/Foundational_Components_Virtualization
linux/Foundational_Components/Virtualization/Docker
Expand Down
20 changes: 15 additions & 5 deletions source/devices/AM62AX/linux/RT_Linux_Performance_Guide.rst
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
======================================
RT-linux 11.00 Performance Guide
RT-linux 11.01 Performance Guide

Check warning on line 2 in source/devices/AM62AX/linux/RT_Linux_Performance_Guide.rst

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [RedHat.CaseSensitiveTerms] Use 'Linux' rather than 'linux'. Raw Output: {"message": "[RedHat.CaseSensitiveTerms] Use 'Linux' rather than 'linux'.", "location": {"path": "source/devices/AM62AX/linux/RT_Linux_Performance_Guide.rst", "range": {"start": {"line": 2, "column": 5}}}, "severity": "WARNING"}

Check warning on line 2 in source/devices/AM62AX/linux/RT_Linux_Performance_Guide.rst

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [RedHat.Headings] Use sentence-style capitalization in 'RT-linux 11.01 Performance Guide'. Raw Output: {"message": "[RedHat.Headings] Use sentence-style capitalization in 'RT-linux 11.01 Performance Guide'.", "location": {"path": "source/devices/AM62AX/linux/RT_Linux_Performance_Guide.rst", "range": {"start": {"line": 2, "column": 2}}}, "severity": "INFO"}
======================================

.. rubric:: **Read This First**
Expand Down Expand Up @@ -57,14 +57,24 @@
stress-ng --cpu-method=all -c 4 &
cyclictest -m -Sp80 -D6h -h400 -i200 -M -q
The latencies where observed with this SDK are summarized below:
The following summarizes the latencies observed using the yocto based
default SDK image:

.. note::

A known issue in this SDK release is affecting this benchmark.
Using OP-TEEs PRNG drivers rather than the hardware accelerated

Check warning on line 66 in source/devices/AM62AX/linux/RT_Linux_Performance_Guide.rst

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [RedHat.Definitions] Define acronyms and abbreviations (such as 'PRNG') on first occurrence if they're likely to be unfamiliar. Raw Output: {"message": "[RedHat.Definitions] Define acronyms and abbreviations (such as 'PRNG') on first occurrence if they're likely to be unfamiliar.", "location": {"path": "source/devices/AM62AX/linux/RT_Linux_Performance_Guide.rst", "range": {"start": {"line": 66, "column": 18}}}, "severity": "INFO"}

Check warning on line 66 in source/devices/AM62AX/linux/RT_Linux_Performance_Guide.rst

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [RedHat.Definitions] Define acronyms and abbreviations (such as 'TEEs') on first occurrence if they're likely to be unfamiliar. Raw Output: {"message": "[RedHat.Definitions] Define acronyms and abbreviations (such as 'TEEs') on first occurrence if they're likely to be unfamiliar.", "location": {"path": "source/devices/AM62AX/linux/RT_Linux_Performance_Guide.rst", "range": {"start": {"line": 66, "column": 13}}}, "severity": "INFO"}
TRNG drivers restores the context switch latencies to the values you

Check warning on line 67 in source/devices/AM62AX/linux/RT_Linux_Performance_Guide.rst

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [RedHat.Definitions] Define acronyms and abbreviations (such as 'TRNG') on first occurrence if they're likely to be unfamiliar. Raw Output: {"message": "[RedHat.Definitions] Define acronyms and abbreviations (such as 'TRNG') on first occurrence if they're likely to be unfamiliar.", "location": {"path": "source/devices/AM62AX/linux/RT_Linux_Performance_Guide.rst", "range": {"start": {"line": 67, "column": 4}}}, "severity": "INFO"}
see here.

More information on switching to the PRNG drivers can be found in the

Check warning on line 70 in source/devices/AM62AX/linux/RT_Linux_Performance_Guide.rst

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [RedHat.PassiveVoice] 'be found' is passive voice. In general, use active voice. Consult the style guide for acceptable use of passive voice. Raw Output: {"message": "[RedHat.PassiveVoice] 'be found' is passive voice. In general, use active voice. Consult the style guide for acceptable use of passive voice.", "location": {"path": "source/devices/AM62AX/linux/RT_Linux_Performance_Guide.rst", "range": {"start": {"line": 70, "column": 58}}}, "severity": "INFO"}

Check warning on line 70 in source/devices/AM62AX/linux/RT_Linux_Performance_Guide.rst

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [RedHat.Definitions] Define acronyms and abbreviations (such as 'PRNG') on first occurrence if they're likely to be unfamiliar. Raw Output: {"message": "[RedHat.Definitions] Define acronyms and abbreviations (such as 'PRNG') on first occurrence if they're likely to be unfamiliar.", "location": {"path": "source/devices/AM62AX/linux/RT_Linux_Performance_Guide.rst", "range": {"start": {"line": 70, "column": 41}}}, "severity": "INFO"}

Check warning on line 70 in source/devices/AM62AX/linux/RT_Linux_Performance_Guide.rst

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [RedHat.TermsSuggestions] Depending on the context, consider using 'information about' rather than 'information on'. Raw Output: {"message": "[RedHat.TermsSuggestions] Depending on the context, consider using 'information about' rather than 'information on'.", "location": {"path": "source/devices/AM62AX/linux/RT_Linux_Performance_Guide.rst", "range": {"start": {"line": 70, "column": 9}}}, "severity": "INFO"}
Foundational Components section, here :ref:`building-optee-with-prng`

.. csv-table::
:header: "Latencies","CPU 0","CPU 1","CPU 2","CPU 3"

"Minimum (us)","5","5","5","5"
"Average (us)","5","6","6","5"
"Maximum (us)","68","31","34","28"
"Average (us)","6","6","6","6"
"Maximum (us)","31","29","30","30"

.. image:: img/rt-cpu-method-all-latency-histogram.png

Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
17 changes: 14 additions & 3 deletions source/devices/AM62LX/linux/RT_Linux_Performance_Guide.rst
Original file line number Diff line number Diff line change
Expand Up @@ -56,13 +56,24 @@
stress-ng --cpu-method=all -c 4 &
cyclictest -m -Sp80 -D6h -h400 -i200 -M -q

The latencies observed with this SDK are summarized below:
The following summarizes the latencies observed using the yocto based
default SDK image:

.. note::

A known issue in this SDK release is affecting this benchmark.
Using OP-TEEs PRNG drivers rather than the hardware accelerated TRNG

Check warning on line 65 in source/devices/AM62LX/linux/RT_Linux_Performance_Guide.rst

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [RedHat.Definitions] Define acronyms and abbreviations (such as 'PRNG') on first occurrence if they're likely to be unfamiliar. Raw Output: {"message": "[RedHat.Definitions] Define acronyms and abbreviations (such as 'PRNG') on first occurrence if they're likely to be unfamiliar.", "location": {"path": "source/devices/AM62LX/linux/RT_Linux_Performance_Guide.rst", "range": {"start": {"line": 65, "column": 18}}}, "severity": "INFO"}

Check warning on line 65 in source/devices/AM62LX/linux/RT_Linux_Performance_Guide.rst

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [RedHat.Definitions] Define acronyms and abbreviations (such as 'TEEs') on first occurrence if they're likely to be unfamiliar. Raw Output: {"message": "[RedHat.Definitions] Define acronyms and abbreviations (such as 'TEEs') on first occurrence if they're likely to be unfamiliar.", "location": {"path": "source/devices/AM62LX/linux/RT_Linux_Performance_Guide.rst", "range": {"start": {"line": 65, "column": 13}}}, "severity": "INFO"}
drivers restores the context switch latencies to the values you see
here.

More information on switching to the PRNG drivers can be found in the
Foundational Components section, here :ref:`building-optee-with-prng`

.. csv-table::
:header: "Latencies","CPU 0","CPU 1"

"Minimum (us)","5","5"
"Average (us)","6","8"
"Maximum (us)","47","53"
"Average (us)","8","7"
"Maximum (us)","57","48"

.. image:: img/rt-cpu-method-all-latency-histogram.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
17 changes: 14 additions & 3 deletions source/devices/AM62PX/linux/RT_Linux_Performance_Guide.rst
Original file line number Diff line number Diff line change
Expand Up @@ -57,13 +57,24 @@ Test commands used for running stress-ng and cyclictest together
stress-ng --cpu-method=all -c 4 &
cyclictest -m -Sp80 -D6h -h400 -i200 -M -q

The latencies observed with this SDK are summarized below:
The following summarizes the latencies observed using the yocto based
default SDK image

.. note::

A known issue in this SDK release is affecting this benchmark.
Using OP-TEEs PRNG drivers rather than the hardware accelerated TRNG
drivers restores the context switch latencies to the values you see
here.

More information on switching to the PRNG drivers can be found in the
Foundational Components section, here :ref:`building-optee-with-prng`

.. csv-table::
:header: "Latencies","CPU 0","CPU 1","CPU 2","CPU 3"

"Minimum (usec)","5","5","5","5"
"Average (usec)","6","6","5","6"
"Maximum (usec)","30","33","31","35"
"Average (usec)","6","6","7","6"
"Maximum (usec)","36","34","37","34"

.. image:: img/rt-cpu-method-all-latency-histogram.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
21 changes: 17 additions & 4 deletions source/devices/AM62X/linux/RT_Linux_Performance_Guide.rst
Original file line number Diff line number Diff line change
Expand Up @@ -61,13 +61,26 @@ Test commands used for running stress-ng and cyclictest together
stress-ng --cpu-method=all -c 4 &
cyclictest -m -Sp80 -D6h -h400 -i200 -M -q

The latencies observed with this SDK are summarized below:
The following summarizes the latencies observed using the yocto based
default SDK image using the SK-AM62B-P1_ reference board:

.. _SK-AM62B-P1: https://www.ti.com/tool/SK-AM62B-P1

.. note::

A known issue in this SDK release is affecting this benchmark.
Using OP-TEE's PRNG drivers rather than the hardware accelerated TRNG
drivers restores the context switch latencies to the values you see
here.

More information on switching to the PRNG drivers can be found in the
Foundational Components section, here :ref:`building-optee-with-prng`

.. csv-table::
:header: "Latencies","CPU 0","CPU 1","CPU 2","CPU 3"

"Minimum (usec)","5","5","4","4"
"Average (usec)","7","5","6","6"
"Maximum (usec)","66","41","73","70"
"Minimum (usec)","5","5","5","5"
"Average (usec)","6","6","6","6"
"Maximum (usec)","62","46","47","52"

.. image:: img/rt-cpu-method-all-latency-histogram.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
21 changes: 16 additions & 5 deletions source/devices/AM64X/linux/RT_Linux_Performance_Guide.rst
Original file line number Diff line number Diff line change
Expand Up @@ -58,14 +58,25 @@ Test commands used for running stress-ng and cyclictest together
stress-ng --cpu-method=all -c 4 &
cyclictest -m -Sp80 -D6h -h400 -i200 -M -q

The latencies observed with this DK are summarized below:
The following summarizes the latencies observed using the yocto based
default SDK image:

.. note::

A known issue in this SDK release is affecting this benchmark.
Using OP-TEE's PRNG drivers rather than the hardware accelerated TRNG
drivers restores the context switch latencies to the values you see
here.

More information on switching to the PRNG drivers can be found in the
Foundational Components section, here :ref:`building-optee-with-prng`

.. csv-table::
:header: "Latencies","CPU 0","CPU 1"

"Minimum (usec)","6","6"
"Average (usec)","8","8"
"Maximum (usec)","77","105"
"Average (usec)","10","9"
"Maximum (usec)","77","52"

.. image:: img/rt-cpu-method-all-latency-histogram.png

Expand Down Expand Up @@ -791,8 +802,8 @@ RP Message Inter-Processor Communication (IPC) Latency
RP Message latency Performance
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

RP Message latency is the delay measured from sending a round trip echo message from
a Linux application to a remote processor and back. The following measurements use
RP Message latency is the delay measured from sending a round trip echo message from
a Linux application to a remote processor and back. The following measurements use
a RP message length of 1 byte and 490 bytes for comparison.

The Linux user space application `rpmsg_char_benchmark <https://git.ti.com/cgit/rpmsg/ti-rpmsg-char/>`__ captures these latency values.
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
41 changes: 31 additions & 10 deletions source/linux/Foundational_Components_OPTEE.rst
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,6 @@
OP-TEE
======

.. rubric:: Overview

OP-TEE is a Trusted Execution Environment (TEE) designed as a companion to a
non-secure Linux kernel running on Arm Cortex-A cores using the TrustZone technology.

Expand All @@ -16,7 +14,8 @@ The OP-TEE binary (bl32.bin/tee-pager_v2.bin) is bundled into tispl.bin and the

|

.. rubric:: Getting the OP-TEE Source Code
Getting the OP-TEE Source Code
------------------------------

The pre-built OPTEE binary should be packaged in TI Processor SDK: <path-to-processor-sdk>/board-support/prebuilt-images/<optional-build-machine-name>/bl32.bin.
Use this binary since it has been tested with TI Processor SDK.
Expand All @@ -32,33 +31,53 @@ Where <hash> is the OPTEE commit shown here: :ref:`optee-release-notes`.

|

.. rubric:: Setting up the toolchain paths
Setting up the toolchain paths
------------------------------

.. include:: Overview/GCC_ToolChain.rst
:start-after: .. start_include_yocto_toolchain_host_setup
:end-before: .. end_include_yocto_toolchain_host_setup

.. rubric:: Building OP-TEE OS
Building OP-TEE OS
------------------

.. ifconfig:: CONFIG_part_variant in ('J721S2', 'J784S4','J742S2')

.. code-block:: console

$ export CFG_CONSOLE_UART=0x8

* Building the OPTEE image
Building the OP-TEE image
*************************

.. parsed-literal::

$ make CROSS_COMPILE="$CROSS_COMPILE_32" CROSS_COMPILE64="$CROSS_COMPILE_64" PLATFORM=|__OPTEE_PLATFORM_FLAVOR__| CFG_ARM64_core=y

* Building the OPTEE image with debug parameters
Building the OP-TEE image with debug parameters
***********************************************

.. parsed-literal::

$ make CROSS_COMPILE="$CROSS_COMPILE_32" CROSS_COMPILE64="$CROSS_COMPILE_64" PLATFORM=|__OPTEE_PLATFORM_FLAVOR__| CFG_ARM64_core=y CFG_TEE_CORE_LOG_LEVEL=2 CFG_TEE_CORE_DEBUG=y

.. rubric:: Secure Storage with RPMB (For HS)
.. _building-optee-with-prng:

Building OP-TEE with Pseudo RNG drivers
***************************************

In certain highly specific use-cases the true RNG drivers could have a
detrimental effect to the overall system latency. Using the
``CFG_WITH_SOFTWARE_PRNG`` flag to use OP-TEE's Pseudo RNG drivers as a source
of entropy can work around these issues.

.. parsed-literal::

$ make CROSS_COMPILE="$CROSS_COMPILE_32" CROSS_COMPILE64="$CROSS_COMPILE_64" PLATFORM=k3-|__OPTEE_PLATFORM_FLAVOR__| CFG_ARM64_core=y CFG_WITH_SOFTWARE_PRNG=y


Secure Storage with RPMB (For HS)
*********************************

OP-TEE provides secure storage functionality. TI SoCs with HS configuration have a
KEK embedded in them that is programmed across OP-TEE instances that are distributed
Expand Down Expand Up @@ -88,7 +107,8 @@ E.g. For enabling hybrid mode of RPMB along with REE_FS
OPTEE-client also needs to be updated to enable the use of real
emmc instead of the virtual emmc that is enabled by default

.. rubric:: Getting OP-TEE Client source code
Getting OP-TEE Client source code
---------------------------------

.. code-block:: console

Expand All @@ -105,7 +125,8 @@ in `out/export/usr` folder

|

.. rubric:: Building u-boot with OP-TEE OS
Building u-boot with OP-TEE OS
------------------------------

As of Processor SDK 9.0, the signing functionality earlier provided by the TI Security Development Package, has
been integrated within U-Boot itself. This means tee-pager_v2.bin does not need to be signed before being packaged
Expand Down
Loading