All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v1 0/6] TEE mediator (and OP-TEE) support in XEN
@ 2018-08-22 14:11 Volodymyr Babchuk
  2018-08-22 14:11 ` [PATCH v1 1/6] arm: add SMC wrapper that is compatible with SMCCC Volodymyr Babchuk
                   ` (5 more replies)
  0 siblings, 6 replies; 35+ messages in thread
From: Volodymyr Babchuk @ 2018-08-22 14:11 UTC (permalink / raw)
  To: xen-devel, Stefano Stabellini, Julien Grall
  Cc: tee-dev, Artem Mygaiev, Volodymyr Babchuk, Jens Wiklander

Hello all,

This is follow for patch series [1]. There was lots of discussions
for that series and I tried to address all of them in this new patchset.

Currently, I had a working solution for OP-TEE virtualization and it is being
upstreamed right now ([2]). So, I think it is a good time to introduce support
in XEN as well.

This series include generic TEE mediator framework and full-scale OP-TEE mediator
which is working with mentioned chages in OP-TEE. So, multiple domains can
work simultaneously with OP-TEE.

I added XSM support, so now it is possible to control which domains can work
with TEEs. Also I changed way how TEE discovery is done. Now  it is very
generic and should support any platform.

[1] https://lists.xenproject.org/archives/html/xen-devel/2017-10/msg01451.html
[2] https://github.com/OP-TEE/optee_os/pull/2370

Volodymyr Babchuk (6):
  arm: add SMC wrapper that is compatible with SMCCC
  arm: add generic TEE mediator framework
  arm: tee: add OP-TEE header files
  optee: add OP-TEE mediator
  libxl: create DTS node for OP-TEE if it is enabled
  xsm: add tee access policy support

 MAINTAINERS                                 |   5 +
 tools/flask/policy/modules/dom0.te          |   3 +
 tools/flask/policy/modules/domU_with_tee.te |  23 +
 tools/flask/policy/modules/modules.conf     |   1 +
 tools/flask/policy/modules/xen.if           |  12 +
 tools/libxl/libxl_arm.c                     |  29 +
 tools/libxl/libxl_create.c                  |   1 +
 tools/libxl/libxl_types.idl                 |   1 +
 tools/xl/xl_parse.c                         |   1 +
 xen/arch/arm/Kconfig                        |  10 +
 xen/arch/arm/Makefile                       |   1 +
 xen/arch/arm/arm32/Makefile                 |   1 +
 xen/arch/arm/arm32/smc.S                    |  39 ++
 xen/arch/arm/arm64/Makefile                 |   1 +
 xen/arch/arm/arm64/asm-offsets.c            |   4 +
 xen/arch/arm/arm64/smc.S                    |  30 +
 xen/arch/arm/domain.c                       |   7 +
 xen/arch/arm/setup.c                        |   4 +
 xen/arch/arm/shutdown.c                     |   2 +
 xen/arch/arm/tee/Kconfig                    |   4 +
 xen/arch/arm/tee/Makefile                   |   2 +
 xen/arch/arm/tee/optee.c                    | 972 ++++++++++++++++++++++++++++
 xen/arch/arm/tee/tee.c                      |  89 +++
 xen/arch/arm/vsmc.c                         |   5 +
 xen/arch/arm/xen.lds.S                      |   7 +
 xen/include/asm-arm/processor.h             |  11 +
 xen/include/asm-arm/tee/optee_msg.h         | 444 +++++++++++++
 xen/include/asm-arm/tee/optee_smc.h         | 507 +++++++++++++++
 xen/include/asm-arm/tee/tee.h               | 103 +++
 xen/include/xsm/dummy.h                     |  10 +
 xen/include/xsm/xsm.h                       |  13 +
 xen/xsm/dummy.c                             |   4 +
 xen/xsm/flask/hooks.c                       |  15 +
 xen/xsm/flask/policy/access_vectors         |   7 +
 xen/xsm/flask/policy/security_classes       |   1 +
 35 files changed, 2369 insertions(+)
 create mode 100644 tools/flask/policy/modules/domU_with_tee.te
 create mode 100644 xen/arch/arm/arm32/smc.S
 create mode 100644 xen/arch/arm/arm64/smc.S
 create mode 100644 xen/arch/arm/tee/Kconfig
 create mode 100644 xen/arch/arm/tee/Makefile
 create mode 100644 xen/arch/arm/tee/optee.c
 create mode 100644 xen/arch/arm/tee/tee.c
 create mode 100644 xen/include/asm-arm/tee/optee_msg.h
 create mode 100644 xen/include/asm-arm/tee/optee_smc.h
 create mode 100644 xen/include/asm-arm/tee/tee.h

-- 
2.7.4


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply	[flat|nested] 35+ messages in thread
* Re: [PATCH v1 6/6] xsm: add tee access policy support
@ 2018-08-22 22:44 DeGraaf, Daniel G
  2018-08-23 13:32 ` Volodymyr Babchuk
  0 siblings, 1 reply; 35+ messages in thread
From: DeGraaf, Daniel G @ 2018-08-22 22:44 UTC (permalink / raw)
  To: 'Volodymyr Babchuk', xen-devel
  Cc: Stefano Stabellini, Wei Liu, George Dunlap, Andrew Cooper,
	Ian Jackson, Tim Deegan, Julien Grall, Jan Beulich,
	Daniel De Graaf

> From: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
> Sent: Wednesday, August 22, 2018 10:12 AM
> 
> As we don't want any guest to access limited resources of TEE, we need a way to control who can work with it.
> 
> Thus, new access vector class "tee" is added with only ony operation "call" so far. tee framework uses this to check if guest has a right
> to work with TEE.
> 
> Also, example security context domU_with_tee_t was added.
> 
> Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>

Are you planning to add more access vectors to this class in the future? Otherwise, it probably doesn't need its own class - since you use xen_t as the target, placing it in class xen/xen2 is preferred (like tmem and others are now).

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply	[flat|nested] 35+ messages in thread

end of thread, other threads:[~2018-08-30 16:43 UTC | newest]

Thread overview: 35+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-08-22 14:11 [PATCH v1 0/6] TEE mediator (and OP-TEE) support in XEN Volodymyr Babchuk
2018-08-22 14:11 ` [PATCH v1 1/6] arm: add SMC wrapper that is compatible with SMCCC Volodymyr Babchuk
2018-08-22 16:46   ` Julien Grall
2018-08-23 14:35     ` Volodymyr Babchuk
2018-08-23 14:45       ` Julien Grall
2018-08-23 15:16         ` Volodymyr Babchuk
2018-08-23 15:31           ` Julien Grall
2018-08-30 14:48     ` Volodymyr Babchuk
2018-08-30 16:43       ` Julien Grall
2018-08-27  6:44   ` Jan Beulich
2018-08-27 19:24     ` Volodymyr Babchuk
2018-08-27 20:19       ` Julien Grall
2018-08-28  6:09       ` Jan Beulich
2018-08-22 14:11 ` [PATCH v1 2/6] arm: add generic TEE mediator framework Volodymyr Babchuk
2018-08-22 17:03   ` Julien Grall
2018-08-27 19:09     ` Volodymyr Babchuk
2018-08-28 11:14       ` Julien Grall
2018-08-22 14:11 ` [PATCH v1 3/6] arm: tee: add OP-TEE header files Volodymyr Babchuk
2018-08-22 14:11 ` [PATCH v1 4/6] optee: add OP-TEE mediator Volodymyr Babchuk
2018-08-22 17:28   ` Julien Grall
2018-08-23 14:27     ` Volodymyr Babchuk
2018-08-23 15:28       ` Julien Grall
2018-08-22 14:11 ` [PATCH v1 5/6] libxl: create DTS node for OP-TEE if it is enabled Volodymyr Babchuk
2018-08-22 17:03   ` Wei Liu
2018-08-22 17:32   ` Julien Grall
2018-08-23 14:03     ` Volodymyr Babchuk
2018-08-23 14:11       ` Julien Grall
2018-08-23 14:16         ` Volodymyr Babchuk
2018-08-22 14:11 ` [PATCH v1 6/6] xsm: add tee access policy support Volodymyr Babchuk
2018-08-23 13:43   ` Julien Grall
2018-08-23 13:57     ` Volodymyr Babchuk
2018-08-23 14:08       ` Julien Grall
2018-08-22 22:44 DeGraaf, Daniel G
2018-08-23 13:32 ` Volodymyr Babchuk
2018-08-23 17:53   ` Daniel De Graaf

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.