The list and simple introduction of the examples in this folder.

*******************
corstone310_fvp_dma
*******************

* DMA-350 Secure tests
* Non-secure DMA-350 examples for the Corstone-310 FVP platform

**Maintainers**

- Bence Balogh `<bence.balogh@arm.com> <bence.balogh@arm.com>`_
- Mark Horvath `<mark.horvath@arm.com> <mark.horvath@arm.com>`_

*************************
extra_test_suites_example
*************************

An example and template of out-of-tree build of extra regression test suites.

**Maintainers**

Jianliang Shen `<jianliang.shen@arm.com> <jianliang.shen@arm.com>`_

*****************
example_partition
*****************

A simple secure partition implementation.

**Maintainers**

Jianliang Shen `<jianliang.shen@arm.com> <jianliang.shen@arm.com>`_

*********
vad_an552
*********

Example application for the AN552 FPGA image, details can be found
`here </examples/vad_an552/readme.rst>`.

**Maintainers**

- Gabor Toth `<gabor.toth@arm.com> <gabor.toth@arm.com>`_
- Mark Horvath `<mark.horvath@arm.com> <mark.horvath@arm.com>`_

---------------------------

*Copyright (c) 2021-2022, Arm Limited. All rights reserved.*
