                     Maintainers in the OP-TEE project

Linaro as such maintains OP-TEE, but for individual devices which might not be
available to Linaro and/or in public in general we have assigned
sub-maintainers for these platforms.

Please keep this list in alphabetical order, and refer to the Linux kernel's
MAINTAINER file for the description of section entries [1].

Note that OP-TEE development mainly occurs on GitHub [2] so this file should be
used a bit differently compared to the Linux MAINTAINERS file:

1. GitHub accounts or team names may be given in square brackets, starting with
an @ sign. For example, [@jbech-linaro] or [@OP-TEE/linaro].

2. Patches should generally be submitted as GitHub pull requests (more details
in documentation/github.md). Therefore, please do NOT send patches to the
e-mail addresses below. Maintainers normally are subscribed to GitHub
notifications, so they should see your pull requests. If you need to 'ping'
some maintainer, just mention his/her GitHub account in a comment in the pull
request.

2. Bug reports and questions should be posted to the GitHub project as well
(use the "Issues" tab).

3. The last entry ("THE REST") lists the overall maintainers (M:) and the
members of the Linaro Security Working Group who provide reviews on a regular
basis (R:).

[1] https://www.kernel.org/doc/linux/MAINTAINERS
[2] https://github.com/OP-TEE/optee_os

----------

ARM Foundation FVP
R:	Linaro <op-tee@linaro.org> [@OP-TEE/linaro]
R:	[@OP-TEE/plat-vexpress]
S:	Maintained
F:	core/arch/arm/plat-vexpress/

ARM Juno
R:	Linaro <op-tee@linaro.org> [@OP-TEE/linaro]
R:	[@OP-TEE/plat-vexpress]
S:	Maintained
F:	core/arch/arm/plat-vexpress/

AllWinner sun8i H2+
R:	Ying-Chun Liu (PaulLiu) <paul.liu@linaro.org> [@grandpaul]
S:	Maintained
F:	core/arch/arm/plat-sunxi/

AllWinner sun50i A64
R:	Amit Singh Tomar <amittomer25@gmail.com> [@Amit-Radur]
S:	Maintained
F:	core/arch/arm/plat-sunxi/

Atmel ATSAMA5D2-XULT
R:	Akshay Bhat <akshay.bhat@timesys.com> [@nodeax]
R:	[@OP-TEE/plat-sam]
S:	Maintained
F:	core/arch/arm/plat-sam/

Broadcom ns3
R:	Sandeep Tripathy <sandeep.tripathy@broadcom.com> [@sandeepbrcm]
L:	Broadcom <bcm-optee-feedback-list.pdl@broadcom.com>
S:	Maintained
F:	core/arch/arm/plat-bcm/

Function Graph Tracer (ftrace) support
R:	Sumit Garg <sumit.garg@linaro.org> [@b49020]
S:	Maintained
F:	ldelf/ftrace.c
F:	lib/libutils/ext/ftrace/

HiSilicon D02
R:	Linaro <op-tee@linaro.org> [@OP-TEE/linaro]
S:	Maintained
F:	core/arch/arm/plat-d02/

HiSilicon HiKey (Kirin 620), HiKey960 (Kirin 960)
R:	Linaro <op-tee@linaro.org> [@OP-TEE/linaro]
R:	[@OP-TEE/plat-hikey]
S:	Maintained
F:	core/arch/arm/plat-hikey/

HiSilicon Poplar (Hi3798C V200)
R:	Linaro <op-tee@linaro.org> [@OP-TEE/linaro]
R:	Igor Opaniuk <igor.opaniuk@gmail.com> [@igoropaniuk]
R:	[@OP-TEE/plat-poplar]
S:	Maintained
F:	core/arch/arm/plat-poplar/

Hisilicon Hi3519AV100 family
R:	Jerome Forissier <jerome.@forissier.org> [@jforissier]
S:	Maintained
F:	core/arch/arm/plat-hisilicon

Marvell Armada 70x0, Armada 80x0, Armada 3700
R:	Tao Lu <taolu@marvell.com> [@taovcu]
R:	[@OP-TEE/plat-ls]
S:	Maintained
F:	core/arch/arm/plat-marvell/

MediaTek MT8173 EVB
S:	Orphan
F:	core/arch/arm/plat-mediatek/

NXP LS1021A, LS1043A-RDB, LS1046A-RDB, LS1012A-RDB, LS1012A-FRWY, LS1028A-RDB, LS1088A-RDB, LS2088A-RDB, LX2160A-RDB
R:	Pankaj Gupta <pankaj.gupta@nxp.com> [@pangupta]
R:	Sahil Malhotra <sahil.malhotra@nxp.com> [@sahilnxp]
R:	[@OP-TEE/plat-ls]
S:	Maintained
F:	core/arch/arm/plat-ls/

NXP (Freescale) i.MX family
R:	Peng Fan <peng.fan@nxp.com> [@MrVan]
R:	Cedric Neveux <cedric.neveux@nxp.com> [@cneveux]
R:	Silvano Di Ninno <silvano.dininno@nxp.com> [@sdininno]
R:	Clement Faure <clement.faure@nxp.com> [@clementfaure]
R:	[@OP-TEE/plat-imx]
S:	Maintained
F:	core/arch/arm/plat-imx/
F:	core/arch/arm/plat-imx/registers
F:	core/drivers/crypto/caam/

Crypto driver interface
R:	Cedric Neveux <cedric.neveux@nxp.com> [@cneveux]
R:	Silvano Di Ninno <silvano.dininno@nxp.com> [@sdininno]
R:	Clement Faure <clement.faure@nxp.com> [@clementfaure]
S:	Maintained
F:	core/drivers/crypto/

NXP (Freescale) i.MX7 WaRP7
R:	Peng Fan <peng.fan@nxp.com> [@MrVan]
R:	Bryan O'Donoghue <bryan.odonoghue@linaro.org> [@bryanodonoghue]
S:	Maintained
F:	core/arch/arm/plat-imx/conf.mk

QEMU (32 and 64 bits)
R:	Linaro <op-tee@linaro.org> [@OP-TEE/linaro]
S:	Maintained
F:	core/arch/arm/plat-vexpress/

Raspberry Pi3
R:	Linaro <op-tee@linaro.org> [@OP-TEE/linaro]
R:	[@OP-TEE/rpi3]
S:	Maintained
F:	core/arch/arm/plat-rpi3/

Renesas RCAR
R:	Volodymyr Babchuk <vlad.babchuk@gmail.com> [@lorc]
R:	[@OP-TEE/plat-rcar]
S:	Maintained
F:	core/arch/arm/plat-rcar/

Rockchip RK322X
R:	Rockchip <op-tee@rock-chips.com>
R:	[@OP-TEE/plat-rockchip]
S:	Maintained
F:	core/arch/arm/plat-rockchip/

Socionext DeveloperBox (Synquacer SC2A11)
R:	Sumit Garg <sumit.garg@linaro.org> [@b49020]
R:	Linaro <op-tee@linaro.org> [@OP-TEE/linaro]
S:	Maintained
F:	core/arch/arm/plat-synquacer/

Spreadtrum SC9860
R:	Aijun Sun <aijun.sun@unisoc.com>
R:	[@OP-TEE/plat-sprd]
S:	Maintained
F:	core/arch/arm/plat-sprd/

STMicroelectronics b2260-h410, b2120-h310/h410
R:	Linaro <op-tee@linaro.org> [@OP-TEE/linaro]
R:	[@OP-TEE/plat-stm]
S:	Maintained
F:	core/arch/arm/plat-stm/

STMicroelectronics stm32mp1
R:	Etienne Carriere <etienne.carriere@st.com>
S:	Maintained
F:	core/arch/arm/plat-stm32mp1/

Texas Instruments AM43xx, AM57xx, DRA7xx, AM65x, J721E
R:	Andrew F. Davis <afd@ti.com>
R:	[@OP-TEE/plat-ti]
S:	Maintained
F:	core/arch/arm/plat-ti/
F:	core/arch/arm/plat-k3/

Xilinx Zynq 7000 ZC702 Board
R:	Yan Yan <yan.yan@windriver.com>
R:	Feng Yu <Yu.Feng@windriver.com>
R:	[@OP-TEE/plat-zynq7k]
S:	Maintained
F:	core/arch/arm/plat-zynq7k/

Xilinx Zynq UltraScale+ MPSOC
S:	Orphan
F:	core/arch/arm/plat-zynqmp/

Virtualization support
R:	Volodymyr Babchuk <vlad.babchuk@gmail.com>
S:	Maintained
F:	core/arch/arm/kernel/virtualization.c

THE REST
M:	Joakim Bech <joakim.bech@linaro.org> [@jbech-linaro]
M:	Jens Wiklander <jens.wiklander@linaro.org> [@jenswi-linaro]
M:	Jerome Forissier <jerome@forissier.org> [@jforissier]
M:	Linaro <op-tee@linaro.org> [@OP-TEE/linaro]
R:	Etienne Carriere <etienne.carriere@linaro.org> [@etienne-lms]
R:	Victor Chong <victor.chong@linaro.org> [@vchong]
L:	tee-dev@lists.linaro.org
S:	Maintained
F:	*
F:	*/
