1*8a7ee79dSPascal Brand# OP-TEE - version 1.0.0 2*8a7ee79dSPascal Brand 3*8a7ee79dSPascal BrandOP-TEE is now maintained by Linaro. Contributors do not need to 4*8a7ee79dSPascal Brandsign a CLA anymore, but must follow the rules of the [DCO][DCO] 5*8a7ee79dSPascal Brand(Developer Certificate of Origin) instead. 6*8a7ee79dSPascal Brand 7*8a7ee79dSPascal Brand 8*8a7ee79dSPascal Brand## New features 9*8a7ee79dSPascal Brand 10*8a7ee79dSPascal Brand* Add hardware support for Texas Instruments DRA7xx, ARMv7 (plat-ti) 11*8a7ee79dSPascal Brand 12*8a7ee79dSPascal Brand* GlobalPlatform™ TEE Internal Core API Specification v1.1, 13*8a7ee79dSPascal Brand including ECC algorithms. 14*8a7ee79dSPascal Brand 15*8a7ee79dSPascal Brand* Secure Storage: Files stored by the REE are now encrypted. Operations 16*8a7ee79dSPascal Brand are made atomic in order to prevent inconsistencies in case of errors 17*8a7ee79dSPascal Brand during the storage operations. [Slides][LCStorage] describing the 18*8a7ee79dSPascal Brand Secure Storage have been presented at the Linaro Connect SFO15. 19*8a7ee79dSPascal Brand 20*8a7ee79dSPascal Brand* Change of format of the Trusted Applications: they follow a 21*8a7ee79dSPascal Brand [signed ELF format][elf] 22*8a7ee79dSPascal Brand 23*8a7ee79dSPascal Brand* Rework thread [synchronization][synchro] in optee_os. 24*8a7ee79dSPascal Brand 25*8a7ee79dSPascal Brand* Use of ARMv8 native cryptographic support. 26*8a7ee79dSPascal Brand 27*8a7ee79dSPascal Brand* [OP-TEE/optee_test][optee_test] test suite is released. 28*8a7ee79dSPascal Brand 29*8a7ee79dSPascal Brand* Introduce [OP-TEE/manifest][manifest] and [OP-TEE/build][build] 30*8a7ee79dSPascal Brand to setup and build QEMU, FVP, HiKey and Mediatek platforms. Setup scripts 31*8a7ee79dSPascal Brand that used to be in optee_os have been removed, except for Juno board. 32*8a7ee79dSPascal Brand 33*8a7ee79dSPascal Brand 34*8a7ee79dSPascal Brand## Tested on 35*8a7ee79dSPascal BrandDefinitions: 36*8a7ee79dSPascal Brand 37*8a7ee79dSPascal Brand| Type | Meaning | 38*8a7ee79dSPascal Brand| ---- | ------- | 39*8a7ee79dSPascal Brand| Standard tests | The [optee_test][optee_test] project. | 40*8a7ee79dSPascal Brand| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.1.0.4. | 41*8a7ee79dSPascal Brand| Hello world test | Plain hello world Trusted Application such as [this][hello_world]. | 42*8a7ee79dSPascal Brand 43*8a7ee79dSPascal Brand* ARM Juno Board (vexpress-juno), standard + extended tests. 44*8a7ee79dSPascal Brand* Foundation Models (vexpress-fvp), standard tests. 45*8a7ee79dSPascal Brand* HiKey (hikey), standard + extended tests. 46*8a7ee79dSPascal Brand* MT8173 (mediatek), standard tests. 47*8a7ee79dSPascal Brand* QEMU (vexpress-qemu), standard + extended tests. 48*8a7ee79dSPascal Brand* STM Cannes (stm-cannes), standard + extended tests. 49*8a7ee79dSPascal Brand 50*8a7ee79dSPascal Brand[DCO]: https://github.com/OP-TEE/optee_os/blob/master/Notice.md#contributions 51*8a7ee79dSPascal Brand[LCStorage]: http://www.slideshare.net/linaroorg/sfo15503-secure-storage-in-optee 52*8a7ee79dSPascal Brand[synchro]: https://github.com/OP-TEE/optee_os/blob/master/documentation/optee_design.md#4-thread-handling 53*8a7ee79dSPascal Brand[elf]: https://github.com/OP-TEE/optee_os/blob/master/documentation/optee_design.md#format 54*8a7ee79dSPascal Brand[optee_test]: https://github.com/OP-TEE/optee_test 55*8a7ee79dSPascal Brand[manifest]: https://github.com/OP-TEE/manifest 56*8a7ee79dSPascal Brand[build]: https://github.com/OP-TEE/build 57*8a7ee79dSPascal Brand 5811d59085SPascal Brand# OP-TEE - version 0.3.0 5911d59085SPascal Brand 6011d59085SPascal Brand## New features 6111d59085SPascal Brand 6211d59085SPascal Brand* Add hardware support for 6311d59085SPascal Brand * Mediatek MT8173 Board, ARMv8-A (plat-mediatek) 6411d59085SPascal Brand * Hisilicon HiKey Board, ARMv8-A (plat-hikey) 6511d59085SPascal Brand* AArch64 build of optee_os is now possible through the configuration `CFG_ARM64_core=y` 6611d59085SPascal Brand* Secure Storage: Data can be encrypted prior to their storage in the non-secure. 6711d59085SPascal Brand Build is configured using `CFG_ENC_FS=y` 6811d59085SPascal Brand* A generic boot scheme can be used. Boot configuration is commonalized. This helps 6911d59085SPascal Brand new board support. It is applied on plat-hikey, plat-vexpress, plat-mediatek, plat-stm 7011d59085SPascal Brand and plat-vexpress. 7111d59085SPascal Brand 7211d59085SPascal Brand## Tested on 7311d59085SPascal BrandDefinitions: 7411d59085SPascal Brand 7511d59085SPascal Brand| Type | Meaning | 7611d59085SPascal Brand| ---- | ------- | 7711d59085SPascal Brand| Standard tests | The optee_test project. | 7811d59085SPascal Brand| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.1.0.4. | 7911d59085SPascal Brand| Hello world test | Plain hello world Trusted Application such as [this][hello_world]. | 8011d59085SPascal Brand 8111d59085SPascal Brand* ARM Juno Board (vexpress-juno), standard tests. 8211d59085SPascal Brand* Foundation Models (vexpress-fvp), standard tests. 8311d59085SPascal Brand* HiKey (hikey), standard tests. 8411d59085SPascal Brand* MT8173 (mediatek), standard tests. 8511d59085SPascal Brand* QEMU (vexpress-qemu), standard + extended tests. 8611d59085SPascal Brand* STM Cannes (stm-cannes), standard + extended tests. 8711d59085SPascal Brand 8811d59085SPascal Brand------------------------------------------- 8911d59085SPascal Brand 90f5117af2SPascal Brand# OP-TEE - version 0.2.0 91759cc499SJoakim Bech 92f5117af2SPascal Brand## New features 93f5117af2SPascal Brand 94f5117af2SPascal Brand### Linux Driver Refactoring 95f5117af2SPascal Brand 96f5117af2SPascal BrandLinux Driver has been refactored. It is now split in two parts: 97f5117af2SPascal Brand* optee.ko, the generic Linux driver. It contains all functionality 98f5117af2SPascal Brand common to all backends. 99f5117af2SPascal Brand* optee_armtz.ko, a specific backend dedicated to the TrustZone optee. 100f5117af2SPascal Brand It depends on optee.ko. 101f5117af2SPascal Brand 102f5117af2SPascal BrandLoading the TrustZone optee linux driver module is now performed using 103f5117af2SPascal Brand 104f5117af2SPascal Brand modprobe optee_armtz 105f5117af2SPascal Brand 106f5117af2SPascal BrandThanks to the dependency between the generic and the backend modules, optee.ko is then automatically loaded. 107f5117af2SPascal Brand 108f5117af2SPascal Brand### Misc new features 109f5117af2SPascal Brand* support PL310 lock down at TEE boot 110f5117af2SPascal Brand* add 64bits support (division / print) 111f5117af2SPascal Brand 112f5117af2SPascal Brand## Tested on 113f5117af2SPascal BrandDefinitions: 114f5117af2SPascal Brand 115f5117af2SPascal Brand| Type | Meaning | 116f5117af2SPascal Brand| ---- | ------- | 117f5117af2SPascal Brand| Standard tests | The optee_test project. | 118f5117af2SPascal Brand| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.1.0.4. | 119f5117af2SPascal Brand| Hello world test | Plain hello world Trusted Application such as [this][hello_world]. | 120f5117af2SPascal Brand 121f5117af2SPascal Brand* ARM Juno Board (vexpress-juno), standard tests + extended tests. 122f5117af2SPascal Brand 123f5117af2SPascal Brand* Foundation Models (vexpress-fvp), standard + extended tests. 124f5117af2SPascal Brand 125f5117af2SPascal Brand* QEMU (vexpress-qemu), standard + extended tests. 126f5117af2SPascal Brand 127f5117af2SPascal Brand* STM Cannes (stm-cannes), standard + extended tests. 128f5117af2SPascal Brand 129f5117af2SPascal Brand 130f5117af2SPascal Brand## Issues resolved since last release 131f5117af2SPascal Brand* Fix user TA trace issue, in order each TA is able to select its own trace level 132f5117af2SPascal Brand 133f5117af2SPascal Brand 134f5117af2SPascal Brand------------------------------------------- 135f5117af2SPascal Brand#OP-TEE - version 0.1.0 136f5117af2SPascal Brand 137f5117af2SPascal Brand## New features 138759cc499SJoakim BechBelow is a summary of the most important features added, but at the end you will 139759cc499SJoakim Bechfind a link that present you all commits between the current and previous 140759cc499SJoakim Bechrelease tag. 141759cc499SJoakim Bech 142759cc499SJoakim Bech* GlobalPlatform Client API v1.0 support. 143759cc499SJoakim Bech 144759cc499SJoakim Bech* GlobalPlatform Internal API v1.0 support. 145759cc499SJoakim Bech 146759cc499SJoakim Bech* GlobalPlatform Secure Elements v1.0 support. 147759cc499SJoakim Bech 148759cc499SJoakim Bech* Add hardware support for 149759cc499SJoakim Bech 150759cc499SJoakim Bech * Allwinner A80, ARMv7-A. 151759cc499SJoakim Bech 152759cc499SJoakim Bech * ARM Juno Board, ARMv8-A. 153759cc499SJoakim Bech 154759cc499SJoakim Bech * Foundation Models, ARMv8-A. 155759cc499SJoakim Bech 156759cc499SJoakim Bech * Fast Models, ARMv8-A. 157759cc499SJoakim Bech 158759cc499SJoakim Bech * QEMU, ARMv7-A. 159759cc499SJoakim Bech 160759cc499SJoakim Bech * STM Cannes, ARMv7-A. 161759cc499SJoakim Bech 162759cc499SJoakim Bech * STM Orly2, ARMv7-A. 163759cc499SJoakim Bech 164759cc499SJoakim Bech* Add LibTomCrypt as the default software cryptographic library. 165759cc499SJoakim Bech 166759cc499SJoakim Bech* Add cryptographic abstraction layer in on secure side to ease the use of 167759cc499SJoakim Bech other cryptographic software libraries or adding support for hardware 168759cc499SJoakim Bech acceleration. 169759cc499SJoakim Bech 170759cc499SJoakim Bech* Extended cryptographic API with support for HKDF, Concat KDF and PBKDF2. 171759cc499SJoakim Bech 172759cc499SJoakim Bech* SHA-1 and SHA-256 ARMv8-A crypto extension implementation. 173759cc499SJoakim Bech 174759cc499SJoakim Bech* Enabled paging support in OP-TEE OS. 175759cc499SJoakim Bech 176759cc499SJoakim Bech* Add support for xtest (both standard and extended) in QEMU and FVP setup 177759cc499SJoakim Bech scripts. 178759cc499SJoakim Bech 179759cc499SJoakim Bech* Add documentation for the OS design, cryptographic abstraction layer, secure 180759cc499SJoakim Bech elements design, the build system, GitHub usage, key derivation extensions, 181759cc499SJoakim Bech ARM-Trusted Firmware usage within OP-TEE and GlobalPlatform usage within 182759cc499SJoakim Bech OP-TEE. 183759cc499SJoakim Bech 184759cc499SJoakim Bech* Integrate support for Travis CI. 185759cc499SJoakim Bech 186759cc499SJoakim Bech* [Link][github_commits_0_1_0] to a list of all commits between this and 187759cc499SJoakim Bech previous release. 188759cc499SJoakim Bech 189759cc499SJoakim Bech 190f5117af2SPascal Brand## Tested on 191759cc499SJoakim BechDefinitions: 192759cc499SJoakim Bech 193759cc499SJoakim Bech| Type | Meaning | 194759cc499SJoakim Bech| ---- | ------- | 195759cc499SJoakim Bech| Standard tests | The optee_test project. | 196759cc499SJoakim Bech| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.0.0. | 197759cc499SJoakim Bech| Hello world test | Plain hello world Trusted Application such as [this][hello_world]. | 198759cc499SJoakim Bech 199759cc499SJoakim Bech* Allwinner A80 (plat-sunxi), hello world test. 200759cc499SJoakim Bech 201759cc499SJoakim Bech* ARM Juno Board (vexpress-juno), standard tests. 202759cc499SJoakim Bech 203759cc499SJoakim Bech* Foundation Models (plat-vexpress-fvp), standard + extended tests 204759cc499SJoakim Bech 205759cc499SJoakim Bech* QEMU (plat-vexpress-qemu), standard + extended tests (and Secure Elements 206759cc499SJoakim Bech tested separately). 207759cc499SJoakim Bech 208759cc499SJoakim Bech* STM Cannes (plat-stm-cannes), standard + extended tests. 209759cc499SJoakim Bech 210759cc499SJoakim Bech 211f5117af2SPascal Brand## Issues resolved since last release 212759cc499SJoakim BechN/A since this is the first release tag on OP-TEE. 213759cc499SJoakim Bech 214759cc499SJoakim Bech 215f5117af2SPascal Brand## Known issues 216759cc499SJoakim Bech* Storage is implemented, but not "Secure storage", meaning that a client 217759cc499SJoakim Bech needs to do encrypt files on their own before storing the files. 218759cc499SJoakim Bech 219759cc499SJoakim Bech* Issue(s) open on GitHub 220759cc499SJoakim Bech * [#95][pr95]: An error about building the test code of libtomcrypt. 221759cc499SJoakim Bech 222759cc499SJoakim Bech * [#149][pr149]: when testing optee os with arm trusted firmware (I 223759cc499SJoakim Bech utilized optee os tee.bin as bl32 image) on juno platform, I got an 224759cc499SJoakim Bech error. 225759cc499SJoakim Bech 226759cc499SJoakim Bech * [#161][pr161]: tee_svc_cryp.c lacks accessibility checks on 227759cc499SJoakim Bech user-supplied TEE_Attributes. 228759cc499SJoakim Bech 229759cc499SJoakim Bech[hello_world]: https://github.com/jenswi-linaro/lcu14_optee_hello_world 230759cc499SJoakim Bech[github_commits_0_1_0]: https://github.com/OP-TEE/optee_os/compare/b01047730e77127c23a36591643eeb8bb0487d68...999e4a6c0f64d3177fd3d0db234107b6fb860884 231759cc499SJoakim Bech[pr95]: https://github.com/OP-TEE/optee_os/issues/95 232759cc499SJoakim Bech[pr149]: https://github.com/OP-TEE/optee_os/issues/149 233759cc499SJoakim Bech[pr161]: https://github.com/OP-TEE/optee_os/issues/161 234759cc499SJoakim Bech 2357583c59eSCedric Chaumont* Global Platform Device Internal Core API v1.1 2367583c59eSCedric Chaumont * [#230][pr230]: Persistent object corruption support (TEE_ERROR_CORRUPT_OBJECT/_2) 2377583c59eSCedric Chaumont * [#230][pr230]: Persistent object access support (TEE_ERROR_STORAGE_NOT_AVAILABLE/_2) 238