Skip to content

Commit 8cd8cb2

Browse files
feat: Add support for AM62A edgeai docs
Till now the edgeai sdk docs for AM62A are maintained in a bitbucket repository. This commit adds support for building the edgeai docs for AM62A. The edgeai docs can be built similar to processor-sdk-docs but with OS as edgeai. Signed-off-by: Telukula Jeevan Kumar Sahu <[email protected]>
1 parent 20c8fec commit 8cd8cb2

File tree

126 files changed

+3616
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

126 files changed

+3616
-0
lines changed
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
# General family replacement variables and configuration values for Linux build
2+
3+
# This file is processed by Python scripts to define both replacement
4+
# variable and configuration values for a device family build.
5+
# For replacement variables, all variables should be listed on a single
6+
# line, and all the variables should be listed on consecutive lines
7+
# (i.e. no additional blank lines between the replacement variables).
8+
# Similarly, all the configuration values should be listed on individual,
9+
# consecutive lines (with no blank linues between the configuration values).
10+
#
11+
# Note that neither replacement variables nor configuration values may contain
12+
# a colon (i.e. ":") in their name. However, values may contain colons.
13+
14+
Replacement Variables
15+
---------------------
16+
'__PART_FAMILY_NAME__' : 'AM62Ax'
17+
'__PART_FAMILY_DEVICE_NAMES__' : 'AM62Ax'
18+
'__PRODUCT_LINE_NAME__' : 'Sitara MPU'
19+
'__SDK_BUILD_MACHINE__' : 'am62a-sk'
20+
'__SDK_FULL_NAME__' : 'Processor SDK Linux Edge AI AM62Ax'
21+
'__SDK_SHORT_NAME__' : 'PSDK EdgeAI'
22+
'__SDK_INSTALL_FILE__' : 'ti-processor-sdk-linux-am62axx-evm-<version>-Linux-x86-Install.bin'
23+
'__SDK_INSTALL_DIR__' : 'ti-processor-sdk-linux-am62axx-evm-<version>'
24+
'__SDK_DOWNLOAD_URL__' : '`Processor SDK AM62A Download Page <https://www.ti.com/tool/PROCESSOR-SDK-AM62A>`__'
25+
'__LINUX_UBUNTU_VERSION_LONG__' : '22.04 (64-bit)'
26+
'__LINUX_UBUNTU_VERSION_SHORT__' : '22.04'
27+
'__OPTEE_PLATFORM_FLAVOR__' : 'am62axx'
28+
'__RTOS_UBUNTU_VERSION_LONG__' : '22.04 (64-bit)'
29+
'__WINDOWS_SUPPORTED_LONG__' : '10 (64-bit)'
30+
'__FEATURINGMATRIX__' : \
31+
'__SYSFW_CORE_NAME__' : 'TIFS'
32+
33+
Configuration Values
34+
--------------------
35+
'CONFIG_part_family' : 'AM62AX_family'
36+
'CONFIG_part_variant' : 'AM62AX'
37+
'CONFIG_sdk' : 'PLSDK'
38+
'CONFIG_icss_support' : 'yes'
39+
'CONFIG_rt_linux_support' : 'yes'
40+
'CONFIG_gpu_ip' : 'Rogue_AXE'
41+
'CONFIG_crypto' : 'sa2ul'
42+

configs/AM62AX/AM62AX_edgeai_tags.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# Device Family name
2+
fam_name = 'AM62AX'
3+
4+
# Project name and HTML title
5+
sdk_product = 'null' #todo: remove after the new structure is used for all device families
6+
7+
project = u'Processor SDK Linux Edge AI for AM62Ax'
8+
html_title = 'Processor SDK AM62Ax Documentation'
9+
10+
# The master toctree document.
11+
master_doc = 'devices/AM62AX/edgeai/index'
12+
13+
# List of patterns, relative to source directory, that match files and
14+
# directories to ignore when looking for source files.
15+
16+
# AM62A RTOS docs are not in this project, rather referenced externally,
17+
# so exclude 'rtos' folder along with others.
18+
exclude_patterns = ['android', 'example_code', 'files', 'rtos', 'devices/AM335X', 'devices/AM437X', 'devices/AM64X', 'devices/AM65X', 'devices/TDA4VM', 'devices/J7200', 'devices/AM67A', 'devices/AM68A', 'devices/AM69A', 'devices/DRA821A']
19+
20+
# OS for the build. Sphinx uses source/{sdk_os} when looking for doc inputs
21+
sdk_os = 'edgeai'
22+
23+

configs/AM62AX/AM62AX_edgeai_toc.txt

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
devices/AM62AX/edgeai/datasheet_optiflow
2+
devices/AM62AX/edgeai/datasheet_tiovx_apps
3+
devices/AM62AX/edgeai/connectivity
4+
devices/AM62AX/edgeai/pi_hdr_programming
5+
devices/AM62AX/edgeai/faq
6+
devices/AM62AX/edgeai/getting_started
7+
devices/AM62AX/edgeai/index
8+
devices/AM62AX/edgeai/test_report
9+
devices/AM62AX/edgeai/release_notes
10+
devices/AM62AX/edgeai/release_notes_08_06
11+
devices/AM62AX/edgeai/release_notes_09_00
12+
devices/AM62AX/edgeai/release_notes_09_00_01
13+
devices/AM62AX/edgeai/release_notes_09_01
14+
devices/AM62AX/edgeai/release_notes_09_02
15+
devices/AM62AX/edgeai/release_notes_10_00
16+
devices/AM62AX/edgeai/release_notes_10_01
17+
18+
edgeai/sdk_overview
19+
edgeai/configuration_file
20+
edgeai/edgeai_dataflows
21+
edgeai/inference_models
22+
edgeai/sample_apps
23+
edgeai/measure_perf
24+
edgeai/docker_environment
25+
edgeai/sdk_components
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
============================
2+
Connectivity and Peripherals
3+
============================
4+
5+
.. toctree::
6+
:maxdepth: 2
7+
8+
pi_hdr_programming
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
Model Name,A53 Load (%),mcu1_0,C7x Load (%), VISS (%), LDC , BLNF, MSC_0 (%), MSC_1 (%), DOF , SDE , GPU , VISS (%), LDC , BLNF, MSC_0 (%), MSC_1 (%), DOF , SDE , GPU ,DDR Read BW (MB/s),DDR Read Peak BW (MB/s),DDR Write BW (MB/s),DDR Write Peak BW (MB/s),DDR Total BW (MB/s),DDR Total Peak BW (MB/s),temp_thermal_zone0(DDR),temp_thermal_zone1(CPU),temp_thermal_zone2(C7x),FPS
2+
ONR-CL-6360-regNetx-200mf,11.57,2.99,15.42,18.17,0.00,0.00,26.71,13.89,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,760,760,336,336,1096,1096,53.91,46.79,47.92,33
3+
ONR-OD-8200-yolox-nano-lite-mmdet-coco-416x416,9.59,2.88,26.91,17.80,0.00,0.00,26.17,14.49,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,943,943,401,401,1344,1344,53.91,46.12,46.79,30
4+
TFL-CL-0000-mobileNetV1-mlperf,9.26,2.98,12.99,17.73,0.00,0.00,26.05,13.18,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,704,704,326,326,1030,1030,53.03,46.12,47.47,30
5+
TFL-OD-2020-ssdLite-mobDet-DSP-coco-320x320,7.56,2.90,40.47,17.86,0.00,0.00,26.26,13.94,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,941,941,399,399,1340,1340,53.91,47.02,47.02,30
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
Model Name,A53 Load (%),mcu1_0,C7x Load (%), VISS (%), LDC , BLNF, MSC_0 (%), MSC_1 (%), DOF , SDE , GPU , VISS (%), LDC , BLNF, MSC_0 (%), MSC_1 (%), DOF , SDE , GPU ,DDR Read BW (MB/s),DDR Read Peak BW (MB/s),DDR Write BW (MB/s),DDR Write Peak BW (MB/s),DDR Total BW (MB/s),DDR Total Peak BW (MB/s),temp_thermal_zone0(DDR),temp_thermal_zone1(CPU),temp_thermal_zone2(C7x),FPS
2+
ONR-CL-6360-regNetx-200mf,20.00,3.47,29.47,0.00,0.00,0.00,24.80,25.32,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,1169,1169,490,490,1659,1659,52.81,45.21,46.12,60
3+
ONR-OD-8200-yolox-nano-lite-mmdet-coco-416x416,15.71,2.93,54.93,0.00,0.00,0.00,25.17,23.31,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,1560,1560,618,618,2178,2178,50.38,42.23,44.07,60
4+
TFL-CL-0000-mobileNetV1-mlperf,19.39,3.45,26.05,0.00,0.00,0.00,25.12,25.61,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,1110,1110,486,486,1596,1596,52.59,45.66,46.79,60
5+
TFL-OD-2020-ssdLite-mobDet-DSP-coco-320x320,13.13,3.16,81.96,0.00,0.00,0.00,25.15,23.56,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,1559,1559,617,617,2176,2176,52.81,44.30,46.12,60
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
Model Name,MPU Load (%) ,C7x_0 Load (%) , VISS Load (%) , MSC0 Load (%) , MSC1 Load (%) ,DDR Read BW (MB/s),DDR Write BW (MB/s),DDR Total BW (MB/s),FPS,Inference time (ms),
2+
ONR-OD-8200-yolox-nano-lite-mmdet-coco-416x416, 3.20, 27.01, 17.32, 38.67, 14.86, 934, 436, 1370, 30, 8.895
3+
TFL-OD-2020-ssdLite-mobDet-DSP-coco-320x320, 4.12, 40.69, 17.31, 38.65, 14.25, 946, 442, 1388, 30, 13.434
4+
ONR-CL-6360-regNetx-200mf, 4.34, 14.70, 17.32, 38.62, 13.53, 697, 354, 1051, 30, 4.803
5+
TFL-CL-0000-mobileNetV1-mlperf, 4.12, 13.10, 17.32, 38.63, 13.54, 678, 359, 1037, 30, 4.269
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
Model Name,MPU Load (%) ,C7x_0 Load (%) , MSC0 Load (%) , MSC1 Load (%) ,DDR Read BW (MB/s),DDR Write BW (MB/s),DDR Total BW (MB/s),FPS,Inference time (ms),
2+
ONR-OD-8200-yolox-nano-lite-mmdet-coco-416x416, 9.82, 54.55, 52.47, 24.12, 1546, 743, 2289, 60, 8.985
3+
TFL-OD-2020-ssdLite-mobDet-DSP-coco-320x320, 7.28, 82.35, 49.82, 23.77, 1566, 757, 2323, 60, 13.618
4+
ONR-CL-6360-regNetx-200mf, 5.65, 29.29, 65.78, 26.15, 1081, 592, 1673, 60, 4.788
5+
TFL-CL-0000-mobileNetV1-mlperf, 8.58, 26.08, 65.46, 26.14, 1050, 605, 1655, 60, 4.251
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
====================
2+
Datasheet (Optiflow)
3+
====================
4+
5+
The performance measurements includes the following,
6+
7+
#. **FPS** : Effective framerate at which the application runs
8+
#. **Total time** : Average time taken to process each frame, which includes
9+
pre-processing, inference and post-processing time
10+
#. **Inference time** : Average time taken to infer each frame
11+
#. **CPU loading** : Loading on different CPU cores present
12+
#. **DDR BW** : DDR read and write BW used
13+
#. **HWA Loading** : Loading on different Hardware accelerators present
14+
15+
Following are the latest performance numbers of the OpTIFlow demos:
16+
17+
Source : **Video**
18+
==============================
19+
20+
| Resolution : **1280x768**
21+
| Encoding : **h264**
22+
|
23+
24+
.. figure:: ../../../images/edgeai/datasheet_optiflow_pipeline1.png
25+
:scale: 75
26+
:align: center
27+
28+
GStreamer based data-flow pipeline with video file input source and display output
29+
30+
.. csv-table::
31+
:file: ../../AM62AX/edgeai/datasheet/optiflow/optiflow_video_am62a.csv
32+
:header-rows: 1
33+
34+
Source : **CSI Camera with VISS (imx219)**
35+
======================================================
36+
37+
| Capture Framerate : **30 fps**
38+
| Resolution : **1920x1080**
39+
| format : **SRGGB8**
40+
|
41+
42+
.. figure:: ../../../images/edgeai/datasheet_optiflow_pipeline2.png
43+
:scale: 75
44+
:align: center
45+
46+
GStreamer based data-flow pipeline with IMX219 sensor, ISP and display
47+
48+
.. csv-table::
49+
:file: ../../AM62AX/edgeai/datasheet/optiflow/optiflow_camera_am62a.csv
50+
:header-rows: 1
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
======================
2+
Datasheet (TIOVX Apps)
3+
======================
4+
5+
The performance measurements includes the following,
6+
7+
#. **FPS** : Effective framerate at which the application runs
8+
#. **Total time** : Average time taken to process each frame, which includes
9+
pre-processing, inference and post-processing time
10+
#. **Inference time** : Average time taken to infer each frame
11+
#. **CPU loading** : Loading on different CPU cores present
12+
#. **DDR BW** : DDR read and write BW used
13+
#. **HWA Loading** : Loading on different Hardware accelerators present
14+
15+
Following are the latest performance numbers of the edgeai-tiovx-apps:
16+
17+
Source : **Video**
18+
==============================
19+
20+
| Resolution : **1280x768**
21+
| Encoding : **h264**
22+
|
23+
24+
.. csv-table::
25+
:file: ../../AM62AX/edgeai/datasheet/tiovx-apps/tiovx_apps_video_am62a.csv
26+
:header-rows: 1
27+
28+
Source : **CSI Camera with VISS (imx219)**
29+
======================================================
30+
31+
| Capture Framerate : **30 fps**
32+
| Resolution : **1920x1080**
33+
| format : **SRGGB8**
34+
|
35+
36+
.. csv-table::
37+
:file: ../../AM62AX/edgeai/datasheet/tiovx-apps/tiovx_apps_camera_am62a.csv
38+
:header-rows: 1

source/devices/AM62AX/edgeai/faq.rst

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
.. _pub_edgeai_FAQs:
2+
3+
====
4+
FAQs
5+
====
6+
7+
.. _pub_edgeai_multiple_usb_cams:
8+
9+
Getting Error when trying to capture from multiple USB cameras simultaneously
10+
=============================================================================
11+
12+
This is a common issue faced in the industry with many USB cameras.
13+
You may get errors like ``Failed to allocate required memory.`` when tying to
14+
capture simultaneously from more than one usb cameras.
15+
16+
The root cause for this issue is that most of the USB cameras requests for more
17+
BW than actually required. If the use case is to capture only from 2 USB cameras
18+
, it can be done by connecting one of them to USB type-C port since it is
19+
internally connected to a separate instance of USB controller. But if the use
20+
case is to capture from more than 2 cameras, you need to modify the UVC driver
21+
to override the BW allocation.
22+
23+
The root cause and work around is explained in detail in this
24+
blog `Multiple UVC cameras on linux <https://www.thegoodpenguin.co.uk/blog/multiple-uvc-cameras-on-linux>`_
25+
26+
To apply the work around to our SDK, use below steps
27+
28+
#. Download and install `Processor SDK Linux <https://software-dl.ti.com/processor-sdk-linux/esd/AM62AX/10_01_00/exports/docs/devices/AM62AX/linux/Overview/Download_and_Install_the_SDK.html>`__
29+
#. Get the patch to add `bandwidth_cap` parameter to `uvcvideo` kernel module `uvcvideo patch <https://www.spinics.net/lists/linux-media/msg175596.html>`_
30+
#. Apply the patch to kernel source in Processor SDK Linux Install path. Please refer to `PSDK building kernel <https://software-dl.ti.com/processor-sdk-linux/esd/AM62AX/10_01_00/exports/docs/linux/Foundational_Components_Kernel_Users_Guide.html#overview>`_
31+
#. Compile only `uvcvideo` module using below command
32+
33+
.. code-block:: bash
34+
35+
make ARCH=arm64 CROSS_COMPILE=aarch64-none-linux-gnu- am62ax_evm_a53_defconfig
36+
make ARCH=arm64 CROSS_COMPILE=aarch64-none-linux-gnu- ./drivers/media/usb/uvc/uvcvideo.ko
37+
#. Copy `./drivers/media/usb/uvc/uvcvideo.ko` to sk
38+
#. Remove `uvcvideo` module and install modified version using below commands
39+
40+
.. code-block:: bash
41+
42+
rmmmod uvcvideo
43+
insmod uvcvideo.ko
44+
#. Set the desired BW cap as shown below
45+
46+
.. code-block:: bash
47+
48+
echo 1200 > /sys/module/uvcvideo/parameters/bandwidth_cap
49+
50+
.. note::
51+
52+
The unit of BW here is Bytes/125us, you can estimate the approximate BW
53+
requirement by multiplying fps with size/frame

0 commit comments

Comments
 (0)