11
LCU14 BURLINGAME Jens Wiklander, LCU14 LCU14-107: OP-TEE on ARMv8

Lcu14 107- op-tee on ar mv8

  • Upload
    linaro

  • View
    995

  • Download
    7

Embed Size (px)

DESCRIPTION

LCU14-107: OP-TEE on ARMv8 --------------------------------------------------- Speaker: Jens Wiklander Date: September 15, 2014 --------------------------------------------------- ★ Session Summary ★ SWG is porting OP-TEE to ARMv8 using Fixed Virtual Platform. Initially OP-TEE is running secure world in aarch32 mode, but with the normal world code running in aarch64 mode. Since ARMv8 uses ARM Trusted Firmware we have patched it with an OP-TEE dispatcher to be able to communicate between secure and normal world. --------------------------------------------------- ★ Resources ★ Zerista: http://lcu14.zerista.com/event/member/137710 Google Event: https://plus.google.com/u/0/events/c0ef114n77bhgbns9vb85g9n6ak Presentation: http://www.slideshare.net/linaroorg/lcu14-107-optee-on-ar-mv8 Video: https://www.youtube.com/watch?v=JViplz-ah9M&list=UUIVqQKxCyQLJS6xvSmfndLA Etherpad: http://pad.linaro.org/p/lcu14-107 --------------------------------------------------- ★ Event Details ★ Linaro Connect USA - #LCU14 September 15-19th, 2014 Hyatt Regency San Francisco Airport --------------------------------------------------- http://www.linaro.org http://connect.linaro.org

Citation preview

Page 1: Lcu14 107- op-tee on ar mv8

LCU14 BURLINGAME

Jens Wiklander, LCU14

LCU14-107: OP-TEE on ARMv8

Page 2: Lcu14 107- op-tee on ar mv8

OP-TEE OverviewOP-TEE is an Open Source TEE and is the result of collaboration work between STMicroelectronics and Linaro (Security Working Group).

It contains the complete stack from normal world client API's (optee_client), the Linux kernel TEE driver (optee_linuxdriver) and the Trusted OS and the secure monitor (optee_os).

Page 3: Lcu14 107- op-tee on ar mv8

OP-TEE is an Open Source TEE and is the result of collaboration work between STMicroelectronics and Linaro (Security Working Group).

It contains the complete stack from normal world client API's (optee_client), the Linux kernel TEE driver (optee_linuxdriver) and the Trusted OS and the secure monitor (optee_os).

OP-TEE Overview

Page 4: Lcu14 107- op-tee on ar mv8

● ARMv8-A comes with ARM Trusted Firmware (ATF)

● ATF runs at EL3 and is in charge of● Trusted Boot● Power State Coordination Interface (PSCI)● Secure Monitor Calls (SMC) Calling Convention

● OP-TEE OS runs at Secure EL1 (S-EL1) and need to cooperate with ATF

ARM Trusted Firmware

Page 5: Lcu14 107- op-tee on ar mv8
Page 6: Lcu14 107- op-tee on ar mv8

● The secure monitor runs at EL3 and need to be located within ATF

● A secure monitor in ATF is called a Dispatcher

● The Dispatcher is responsible to act as a Secure Monitor and interface with the Trusted OS running at S-EL1

● There is already one Dispatcher in ATF, Test Secure Payload Dispatcher (TSPD)

● To interface with OP-TEE OS we need a new Dispatcher, OP-TEE Dispatcher (OPTEED)

Secure Monitor

Page 7: Lcu14 107- op-tee on ar mv8

● OPTEED works in principle like TSPD but● handles SMCs specific to OP-TEE● handles FIQ and IRQ routing specific to OP-TEE● starts OP-TEE OS in Aarch32

● The dispatcher is transparent to normal world● No dispatcher specific changes in the OP-TEE Linux Driver

OP-TEE Dispatcher

Page 8: Lcu14 107- op-tee on ar mv8

● OP-TEE OS runs in AArch32 mode to minimize the initial effort to port to ARMv8-A

● The internal Secure Monitor is replaced with an interface to work with the OP-TEE Dispatcher in ARM Trusted Firmware

OP-TEE OS

Page 9: Lcu14 107- op-tee on ar mv8

● Ported to AArch64 since normal world is running in AArch64 mode

● Linux driver is limited to SMC32 (as defined by ARM SMC Calling Convention) calls since OP-TEE OS is still in Aarch32

OP-TEE Client and Linux Driver

Page 10: Lcu14 107- op-tee on ar mv8

● OP-TEE source available at http://github.com/OP-TEE

● ATF source available at https://github.com/ARM-software/arm-trusted-firmware

● If the OP-TEE dispatcher has not been merged yet, it can be found in pull request: https://github.com/ARM-software/arm-trusted-firmware/pull/188

Source code

Page 11: Lcu14 107- op-tee on ar mv8

More about Linaro Connect: connect.linaro.org Linaro members: www.linaro.org/membersMore about Linaro: www.linaro.org/about/