18a7ee79dSPascal Brand# OP-TEE - version 1.0.0 28a7ee79dSPascal Brand 38a7ee79dSPascal BrandOP-TEE is now maintained by Linaro. Contributors do not need to 48a7ee79dSPascal Brandsign a CLA anymore, but must follow the rules of the [DCO][DCO] 58a7ee79dSPascal Brand(Developer Certificate of Origin) instead. 68a7ee79dSPascal Brand 78a7ee79dSPascal Brand 88a7ee79dSPascal Brand## New features 98a7ee79dSPascal Brand 108a7ee79dSPascal Brand* Add hardware support for Texas Instruments DRA7xx, ARMv7 (plat-ti) 118a7ee79dSPascal Brand 128a7ee79dSPascal Brand* GlobalPlatform™ TEE Internal Core API Specification v1.1, 138a7ee79dSPascal Brand including ECC algorithms. 148a7ee79dSPascal Brand 158a7ee79dSPascal Brand* Secure Storage: Files stored by the REE are now encrypted. Operations 168a7ee79dSPascal Brand are made atomic in order to prevent inconsistencies in case of errors 178a7ee79dSPascal Brand during the storage operations. [Slides][LCStorage] describing the 188a7ee79dSPascal Brand Secure Storage have been presented at the Linaro Connect SFO15. 198a7ee79dSPascal Brand 208a7ee79dSPascal Brand* Change of format of the Trusted Applications: they follow a 218a7ee79dSPascal Brand [signed ELF format][elf] 228a7ee79dSPascal Brand 238a7ee79dSPascal Brand* Rework thread [synchronization][synchro] in optee_os. 248a7ee79dSPascal Brand 258a7ee79dSPascal Brand* Use of ARMv8 native cryptographic support. 268a7ee79dSPascal Brand 278a7ee79dSPascal Brand* [OP-TEE/optee_test][optee_test] test suite is released. 288a7ee79dSPascal Brand 298a7ee79dSPascal Brand* Introduce [OP-TEE/manifest][manifest] and [OP-TEE/build][build] 308a7ee79dSPascal Brand to setup and build QEMU, FVP, HiKey and Mediatek platforms. Setup scripts 318a7ee79dSPascal Brand that used to be in optee_os have been removed, except for Juno board. 328a7ee79dSPascal Brand 33*95422146SPascal Brand* [Link][github_commits_1_0_0] to a list of all commits between this and 34*95422146SPascal Brand previous release. 35*95422146SPascal Brand 368a7ee79dSPascal Brand 378a7ee79dSPascal Brand## Tested on 388a7ee79dSPascal BrandDefinitions: 398a7ee79dSPascal Brand 408a7ee79dSPascal Brand| Type | Meaning | 418a7ee79dSPascal Brand| ---- | ------- | 428a7ee79dSPascal Brand| Standard tests | The [optee_test][optee_test] project. | 438a7ee79dSPascal Brand| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.1.0.4. | 448a7ee79dSPascal Brand| Hello world test | Plain hello world Trusted Application such as [this][hello_world]. | 458a7ee79dSPascal Brand 468a7ee79dSPascal Brand* ARM Juno Board (vexpress-juno), standard + extended tests. 478a7ee79dSPascal Brand* Foundation Models (vexpress-fvp), standard tests. 488a7ee79dSPascal Brand* HiKey (hikey), standard + extended tests. 498a7ee79dSPascal Brand* MT8173 (mediatek), standard tests. 508a7ee79dSPascal Brand* QEMU (vexpress-qemu), standard + extended tests. 518a7ee79dSPascal Brand* STM Cannes (stm-cannes), standard + extended tests. 528a7ee79dSPascal Brand 53*95422146SPascal Brand## Known issues 54*95422146SPascal Brand* Secure Storage is implemented, but note that anti-rollback protection 55*95422146SPascal Brand is not implemented yet. 56*95422146SPascal Brand 57*95422146SPascal Brand* Issue(s) open on GitHub 58*95422146SPascal Brand * [#210][pr210]: libteec.so 32-bit does not communicate well 59*95422146SPascal Brand with 64-bit kernel module 60*95422146SPascal Brand * [#296][pr296]: Connecting RPMB to the storage APIs. 61*95422146SPascal Brand * [#493][pr493]: setup_juno_optee: unable to find pre-built binaries 62*95422146SPascal Brand * [#494][pr494]: HiKey: xtest 7671 fails (1.0.0-rc2) 63*95422146SPascal Brand 64*95422146SPascal Brand[pr210]: https://github.com/OP-TEE/optee_os/issues/210 65*95422146SPascal Brand[pr296]: https://github.com/OP-TEE/optee_os/issues/296 66*95422146SPascal Brand[pr493]: https://github.com/OP-TEE/optee_os/issues/493 67*95422146SPascal Brand[pr494]: https://github.com/OP-TEE/optee_os/issues/494 68*95422146SPascal Brand[github_commits_1_0_0]: https://github.com/OP-TEE/optee_os/compare/0.3.0...1.0.0 698a7ee79dSPascal Brand[DCO]: https://github.com/OP-TEE/optee_os/blob/master/Notice.md#contributions 708a7ee79dSPascal Brand[LCStorage]: http://www.slideshare.net/linaroorg/sfo15503-secure-storage-in-optee 718a7ee79dSPascal Brand[synchro]: https://github.com/OP-TEE/optee_os/blob/master/documentation/optee_design.md#4-thread-handling 728a7ee79dSPascal Brand[elf]: https://github.com/OP-TEE/optee_os/blob/master/documentation/optee_design.md#format 738a7ee79dSPascal Brand[optee_test]: https://github.com/OP-TEE/optee_test 748a7ee79dSPascal Brand[manifest]: https://github.com/OP-TEE/manifest 758a7ee79dSPascal Brand[build]: https://github.com/OP-TEE/build 768a7ee79dSPascal Brand 77*95422146SPascal Brand 78*95422146SPascal Brand 7911d59085SPascal Brand# OP-TEE - version 0.3.0 8011d59085SPascal Brand 8111d59085SPascal Brand## New features 8211d59085SPascal Brand 8311d59085SPascal Brand* Add hardware support for 8411d59085SPascal Brand * Mediatek MT8173 Board, ARMv8-A (plat-mediatek) 8511d59085SPascal Brand * Hisilicon HiKey Board, ARMv8-A (plat-hikey) 8611d59085SPascal Brand* AArch64 build of optee_os is now possible through the configuration `CFG_ARM64_core=y` 8711d59085SPascal Brand* Secure Storage: Data can be encrypted prior to their storage in the non-secure. 8811d59085SPascal Brand Build is configured using `CFG_ENC_FS=y` 8911d59085SPascal Brand* A generic boot scheme can be used. Boot configuration is commonalized. This helps 9011d59085SPascal Brand new board support. It is applied on plat-hikey, plat-vexpress, plat-mediatek, plat-stm 9111d59085SPascal Brand and plat-vexpress. 9211d59085SPascal Brand 9311d59085SPascal Brand## Tested on 9411d59085SPascal BrandDefinitions: 9511d59085SPascal Brand 9611d59085SPascal Brand| Type | Meaning | 9711d59085SPascal Brand| ---- | ------- | 9811d59085SPascal Brand| Standard tests | The optee_test project. | 9911d59085SPascal Brand| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.1.0.4. | 10011d59085SPascal Brand| Hello world test | Plain hello world Trusted Application such as [this][hello_world]. | 10111d59085SPascal Brand 10211d59085SPascal Brand* ARM Juno Board (vexpress-juno), standard tests. 10311d59085SPascal Brand* Foundation Models (vexpress-fvp), standard tests. 10411d59085SPascal Brand* HiKey (hikey), standard tests. 10511d59085SPascal Brand* MT8173 (mediatek), standard tests. 10611d59085SPascal Brand* QEMU (vexpress-qemu), standard + extended tests. 10711d59085SPascal Brand* STM Cannes (stm-cannes), standard + extended tests. 10811d59085SPascal Brand 10911d59085SPascal Brand------------------------------------------- 11011d59085SPascal Brand 111f5117af2SPascal Brand# OP-TEE - version 0.2.0 112759cc499SJoakim Bech 113f5117af2SPascal Brand## New features 114f5117af2SPascal Brand 115f5117af2SPascal Brand### Linux Driver Refactoring 116f5117af2SPascal Brand 117f5117af2SPascal BrandLinux Driver has been refactored. It is now split in two parts: 118f5117af2SPascal Brand* optee.ko, the generic Linux driver. It contains all functionality 119f5117af2SPascal Brand common to all backends. 120f5117af2SPascal Brand* optee_armtz.ko, a specific backend dedicated to the TrustZone optee. 121f5117af2SPascal Brand It depends on optee.ko. 122f5117af2SPascal Brand 123f5117af2SPascal BrandLoading the TrustZone optee linux driver module is now performed using 124f5117af2SPascal Brand 125f5117af2SPascal Brand modprobe optee_armtz 126f5117af2SPascal Brand 127f5117af2SPascal BrandThanks to the dependency between the generic and the backend modules, optee.ko is then automatically loaded. 128f5117af2SPascal Brand 129f5117af2SPascal Brand### Misc new features 130f5117af2SPascal Brand* support PL310 lock down at TEE boot 131f5117af2SPascal Brand* add 64bits support (division / print) 132f5117af2SPascal Brand 133f5117af2SPascal Brand## Tested on 134f5117af2SPascal BrandDefinitions: 135f5117af2SPascal Brand 136f5117af2SPascal Brand| Type | Meaning | 137f5117af2SPascal Brand| ---- | ------- | 138f5117af2SPascal Brand| Standard tests | The optee_test project. | 139f5117af2SPascal Brand| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.1.0.4. | 140f5117af2SPascal Brand| Hello world test | Plain hello world Trusted Application such as [this][hello_world]. | 141f5117af2SPascal Brand 142f5117af2SPascal Brand* ARM Juno Board (vexpress-juno), standard tests + extended tests. 143f5117af2SPascal Brand 144f5117af2SPascal Brand* Foundation Models (vexpress-fvp), standard + extended tests. 145f5117af2SPascal Brand 146f5117af2SPascal Brand* QEMU (vexpress-qemu), standard + extended tests. 147f5117af2SPascal Brand 148f5117af2SPascal Brand* STM Cannes (stm-cannes), standard + extended tests. 149f5117af2SPascal Brand 150f5117af2SPascal Brand 151f5117af2SPascal Brand## Issues resolved since last release 152f5117af2SPascal Brand* Fix user TA trace issue, in order each TA is able to select its own trace level 153f5117af2SPascal Brand 154f5117af2SPascal Brand 155f5117af2SPascal Brand------------------------------------------- 156f5117af2SPascal Brand#OP-TEE - version 0.1.0 157f5117af2SPascal Brand 158f5117af2SPascal Brand## New features 159759cc499SJoakim BechBelow is a summary of the most important features added, but at the end you will 160759cc499SJoakim Bechfind a link that present you all commits between the current and previous 161759cc499SJoakim Bechrelease tag. 162759cc499SJoakim Bech 163759cc499SJoakim Bech* GlobalPlatform Client API v1.0 support. 164759cc499SJoakim Bech 165759cc499SJoakim Bech* GlobalPlatform Internal API v1.0 support. 166759cc499SJoakim Bech 167759cc499SJoakim Bech* GlobalPlatform Secure Elements v1.0 support. 168759cc499SJoakim Bech 169759cc499SJoakim Bech* Add hardware support for 170759cc499SJoakim Bech 171759cc499SJoakim Bech * Allwinner A80, ARMv7-A. 172759cc499SJoakim Bech 173759cc499SJoakim Bech * ARM Juno Board, ARMv8-A. 174759cc499SJoakim Bech 175759cc499SJoakim Bech * Foundation Models, ARMv8-A. 176759cc499SJoakim Bech 177759cc499SJoakim Bech * Fast Models, ARMv8-A. 178759cc499SJoakim Bech 179759cc499SJoakim Bech * QEMU, ARMv7-A. 180759cc499SJoakim Bech 181759cc499SJoakim Bech * STM Cannes, ARMv7-A. 182759cc499SJoakim Bech 183759cc499SJoakim Bech * STM Orly2, ARMv7-A. 184759cc499SJoakim Bech 185759cc499SJoakim Bech* Add LibTomCrypt as the default software cryptographic library. 186759cc499SJoakim Bech 187759cc499SJoakim Bech* Add cryptographic abstraction layer in on secure side to ease the use of 188759cc499SJoakim Bech other cryptographic software libraries or adding support for hardware 189759cc499SJoakim Bech acceleration. 190759cc499SJoakim Bech 191759cc499SJoakim Bech* Extended cryptographic API with support for HKDF, Concat KDF and PBKDF2. 192759cc499SJoakim Bech 193759cc499SJoakim Bech* SHA-1 and SHA-256 ARMv8-A crypto extension implementation. 194759cc499SJoakim Bech 195759cc499SJoakim Bech* Enabled paging support in OP-TEE OS. 196759cc499SJoakim Bech 197759cc499SJoakim Bech* Add support for xtest (both standard and extended) in QEMU and FVP setup 198759cc499SJoakim Bech scripts. 199759cc499SJoakim Bech 200759cc499SJoakim Bech* Add documentation for the OS design, cryptographic abstraction layer, secure 201759cc499SJoakim Bech elements design, the build system, GitHub usage, key derivation extensions, 202759cc499SJoakim Bech ARM-Trusted Firmware usage within OP-TEE and GlobalPlatform usage within 203759cc499SJoakim Bech OP-TEE. 204759cc499SJoakim Bech 205759cc499SJoakim Bech* Integrate support for Travis CI. 206759cc499SJoakim Bech 207759cc499SJoakim Bech* [Link][github_commits_0_1_0] to a list of all commits between this and 208759cc499SJoakim Bech previous release. 209759cc499SJoakim Bech 210759cc499SJoakim Bech 211f5117af2SPascal Brand## Tested on 212759cc499SJoakim BechDefinitions: 213759cc499SJoakim Bech 214759cc499SJoakim Bech| Type | Meaning | 215759cc499SJoakim Bech| ---- | ------- | 216759cc499SJoakim Bech| Standard tests | The optee_test project. | 217759cc499SJoakim Bech| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.0.0. | 218759cc499SJoakim Bech| Hello world test | Plain hello world Trusted Application such as [this][hello_world]. | 219759cc499SJoakim Bech 220759cc499SJoakim Bech* Allwinner A80 (plat-sunxi), hello world test. 221759cc499SJoakim Bech 222759cc499SJoakim Bech* ARM Juno Board (vexpress-juno), standard tests. 223759cc499SJoakim Bech 224759cc499SJoakim Bech* Foundation Models (plat-vexpress-fvp), standard + extended tests 225759cc499SJoakim Bech 226759cc499SJoakim Bech* QEMU (plat-vexpress-qemu), standard + extended tests (and Secure Elements 227759cc499SJoakim Bech tested separately). 228759cc499SJoakim Bech 229759cc499SJoakim Bech* STM Cannes (plat-stm-cannes), standard + extended tests. 230759cc499SJoakim Bech 231759cc499SJoakim Bech 232f5117af2SPascal Brand## Issues resolved since last release 233759cc499SJoakim BechN/A since this is the first release tag on OP-TEE. 234759cc499SJoakim Bech 235759cc499SJoakim Bech 236f5117af2SPascal Brand## Known issues 237759cc499SJoakim Bech* Storage is implemented, but not "Secure storage", meaning that a client 238759cc499SJoakim Bech needs to do encrypt files on their own before storing the files. 239759cc499SJoakim Bech 240759cc499SJoakim Bech* Issue(s) open on GitHub 241759cc499SJoakim Bech * [#95][pr95]: An error about building the test code of libtomcrypt. 242759cc499SJoakim Bech 243759cc499SJoakim Bech * [#149][pr149]: when testing optee os with arm trusted firmware (I 244759cc499SJoakim Bech utilized optee os tee.bin as bl32 image) on juno platform, I got an 245759cc499SJoakim Bech error. 246759cc499SJoakim Bech 247759cc499SJoakim Bech * [#161][pr161]: tee_svc_cryp.c lacks accessibility checks on 248759cc499SJoakim Bech user-supplied TEE_Attributes. 249759cc499SJoakim Bech 250759cc499SJoakim Bech[hello_world]: https://github.com/jenswi-linaro/lcu14_optee_hello_world 251759cc499SJoakim Bech[github_commits_0_1_0]: https://github.com/OP-TEE/optee_os/compare/b01047730e77127c23a36591643eeb8bb0487d68...999e4a6c0f64d3177fd3d0db234107b6fb860884 252759cc499SJoakim Bech[pr95]: https://github.com/OP-TEE/optee_os/issues/95 253759cc499SJoakim Bech[pr149]: https://github.com/OP-TEE/optee_os/issues/149 254759cc499SJoakim Bech[pr161]: https://github.com/OP-TEE/optee_os/issues/161 255759cc499SJoakim Bech 2567583c59eSCedric Chaumont* Global Platform Device Internal Core API v1.1 2577583c59eSCedric Chaumont * [#230][pr230]: Persistent object corruption support (TEE_ERROR_CORRUPT_OBJECT/_2) 2587583c59eSCedric Chaumont * [#230][pr230]: Persistent object access support (TEE_ERROR_STORAGE_NOT_AVAILABLE/_2) 259