1# OP-TEE - version 1.1.0 2 3 4## New features 5 6* Softfloat library: floating point support is now available in 32bits TA. 7 8* Support running 64-bits TA: on ARMv8-A platform, TA can be compiled in 9 AArch32 and/or in AArch64 in case the core is compiled in AArch64. 10 An example can be found in HiKey configuration file. Using the following 11 excerpt code, the user TA libraries are compiled in both AArch32 and 12 AArch64, and can be found in `out/arm-plat-hikey/export-ta_arm32` and 13 `out/arm-plat-hikey/export-ta_arm64` 14 15``` 16 ta-targets = ta_arm32 17 ta-targets += ta_arm64 18``` 19 20* Concurrent TA support: multiple TA can run in parallel on 21 several cores. 22 23* New tests added in xtest test suite: concurrent TA (xtest 1013), 24 floating point tests (xtest 1006 and os_test TA) and corruption 25 file storage (xtest 20000) 26 27* [Link][github_commits_1_1_0] to a list of all commits between this and 28 previous release. 29 30 31## Tested on 32Definitions: 33 34| Type | Meaning | 35| ---- | ------- | 36| Standard tests | The [optee_test][optee_test] project. | 37| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.1.0.4. | 38| Hello world test | Plain hello world Trusted Application such as [this][hello_world]. | 39 40* Foundation Models (vexpress-fvp), standard tests + extended tests, 41 using FVP ARM V8 Foundation Platformr0p0 (platform build 9.5.40) 42* HiKey (hikey), standard + extended tests. 43* MT8173 (mediatek), standard tests. 44* QEMU (vexpress-qemu), standard + extended tests. 45* STM Cannes (stm-cannes), standard + extended tests. 46 47## Known issues 48* Secure Storage is implemented, but note that anti-rollback protection 49 is not implemented yet. 50 51* Issue(s) open on GitHub 52 * [#40][prld40] BUG_ON() when re-using RPC buffer to tee-supplicant 53 * [#296][pr296]: Connecting RPMB to the storage APIs. 54 * [#493][pr493]: setup_juno_optee: unable to find pre-built binaries 55 * [#506][pr506]: tee-supplicant panic & ta panic 56 57[prld40]: https://github.com/OP-TEE/optee_linuxdriver/issues/40 58[pr506]: https://github.com/OP-TEE/optee_os/issues/506 59[github_commits_1_1_0]: https://github.com/OP-TEE/optee_os/compare/1.0.1...1.1.0 60 61 62 63# OP-TEE - version 1.0.0 64 65OP-TEE is now maintained by Linaro. Contributors do not need to 66sign a CLA anymore, but must follow the rules of the [DCO][DCO] 67(Developer Certificate of Origin) instead. 68 69 70## New features 71 72* Add hardware support for Texas Instruments DRA7xx, ARMv7 (plat-ti) 73 74* GlobalPlatform™ TEE Internal Core API Specification v1.1, 75 including ECC algorithms. 76 77* Secure Storage: Files stored by the REE are now encrypted. Operations 78 are made atomic in order to prevent inconsistencies in case of errors 79 during the storage operations. [Slides][LCStorage] describing the 80 Secure Storage have been presented at the Linaro Connect SFO15. 81 82* Change of format of the Trusted Applications: they follow a 83 [signed ELF format][elf] 84 85* Rework thread [synchronization][synchro] in optee_os. 86 87* Use of ARMv8 native cryptographic support. 88 89* [OP-TEE/optee_test][optee_test] test suite is released. 90 91* Introduce [OP-TEE/manifest][manifest] and [OP-TEE/build][build] 92 to setup and build QEMU, FVP, HiKey and Mediatek platforms. Setup scripts 93 that used to be in optee_os have been removed, except for Juno board. 94 95* [Link][github_commits_1_0_0] to a list of all commits between this and 96 previous release. 97 98 99## Tested on 100Definitions: 101 102| Type | Meaning | 103| ---- | ------- | 104| Standard tests | The [optee_test][optee_test] project. | 105| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.1.0.4. | 106| Hello world test | Plain hello world Trusted Application such as [this][hello_world]. | 107 108* ARM Juno Board (vexpress-juno), standard + extended tests. 109* Foundation Models (vexpress-fvp), standard tests. 110* HiKey (hikey), standard + extended tests. 111* MT8173 (mediatek), standard tests. 112* QEMU (vexpress-qemu), standard + extended tests. 113* STM Cannes (stm-cannes), standard + extended tests. 114 115## Known issues 116* Secure Storage is implemented, but note that anti-rollback protection 117 is not implemented yet. 118 119* Issue(s) open on GitHub 120 * [#210][pr210]: libteec.so 32-bit does not communicate well 121 with 64-bit kernel module 122 * [#296][pr296]: Connecting RPMB to the storage APIs. 123 * [#493][pr493]: setup_juno_optee: unable to find pre-built binaries 124 * [#494][pr494]: HiKey: xtest 7671 fails (1.0.0-rc2) 125 126[pr210]: https://github.com/OP-TEE/optee_os/issues/210 127[pr296]: https://github.com/OP-TEE/optee_os/issues/296 128[pr493]: https://github.com/OP-TEE/optee_os/issues/493 129[pr494]: https://github.com/OP-TEE/optee_os/issues/494 130[github_commits_1_0_0]: https://github.com/OP-TEE/optee_os/compare/0.3.0...1.0.0 131[DCO]: https://github.com/OP-TEE/optee_os/blob/master/Notice.md#contributions 132[LCStorage]: http://www.slideshare.net/linaroorg/sfo15503-secure-storage-in-optee 133[synchro]: https://github.com/OP-TEE/optee_os/blob/master/documentation/optee_design.md#4-thread-handling 134[elf]: https://github.com/OP-TEE/optee_os/blob/master/documentation/optee_design.md#format 135[optee_test]: https://github.com/OP-TEE/optee_test 136[manifest]: https://github.com/OP-TEE/manifest 137[build]: https://github.com/OP-TEE/build 138 139 140 141# OP-TEE - version 0.3.0 142 143## New features 144 145* Add hardware support for 146 * Mediatek MT8173 Board, ARMv8-A (plat-mediatek) 147 * Hisilicon HiKey Board, ARMv8-A (plat-hikey) 148* AArch64 build of optee_os is now possible through the configuration `CFG_ARM64_core=y` 149* Secure Storage: Data can be encrypted prior to their storage in the non-secure. 150 Build is configured using `CFG_ENC_FS=y` 151* A generic boot scheme can be used. Boot configuration is commonalized. This helps 152 new board support. It is applied on plat-hikey, plat-vexpress, plat-mediatek, plat-stm 153 and plat-vexpress. 154 155## Tested on 156Definitions: 157 158| Type | Meaning | 159| ---- | ------- | 160| Standard tests | The optee_test project. | 161| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.1.0.4. | 162| Hello world test | Plain hello world Trusted Application such as [this][hello_world]. | 163 164* ARM Juno Board (vexpress-juno), standard tests. 165* Foundation Models (vexpress-fvp), standard tests. 166* HiKey (hikey), standard tests. 167* MT8173 (mediatek), standard tests. 168* QEMU (vexpress-qemu), standard + extended tests. 169* STM Cannes (stm-cannes), standard + extended tests. 170 171------------------------------------------- 172 173# OP-TEE - version 0.2.0 174 175## New features 176 177### Linux Driver Refactoring 178 179Linux Driver has been refactored. It is now split in two parts: 180* optee.ko, the generic Linux driver. It contains all functionality 181 common to all backends. 182* optee_armtz.ko, a specific backend dedicated to the TrustZone optee. 183 It depends on optee.ko. 184 185Loading the TrustZone optee linux driver module is now performed using 186 187 modprobe optee_armtz 188 189Thanks to the dependency between the generic and the backend modules, optee.ko is then automatically loaded. 190 191### Misc new features 192* support PL310 lock down at TEE boot 193* add 64bits support (division / print) 194 195## Tested on 196Definitions: 197 198| Type | Meaning | 199| ---- | ------- | 200| Standard tests | The optee_test project. | 201| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.1.0.4. | 202| Hello world test | Plain hello world Trusted Application such as [this][hello_world]. | 203 204* ARM Juno Board (vexpress-juno), standard tests + extended tests. 205 206* Foundation Models (vexpress-fvp), standard + extended tests. 207 208* QEMU (vexpress-qemu), standard + extended tests. 209 210* STM Cannes (stm-cannes), standard + extended tests. 211 212 213## Issues resolved since last release 214* Fix user TA trace issue, in order each TA is able to select its own trace level 215 216 217------------------------------------------- 218#OP-TEE - version 0.1.0 219 220## New features 221Below is a summary of the most important features added, but at the end you will 222find a link that present you all commits between the current and previous 223release tag. 224 225* GlobalPlatform Client API v1.0 support. 226 227* GlobalPlatform Internal API v1.0 support. 228 229* GlobalPlatform Secure Elements v1.0 support. 230 231* Add hardware support for 232 233 * Allwinner A80, ARMv7-A. 234 235 * ARM Juno Board, ARMv8-A. 236 237 * Foundation Models, ARMv8-A. 238 239 * Fast Models, ARMv8-A. 240 241 * QEMU, ARMv7-A. 242 243 * STM Cannes, ARMv7-A. 244 245 * STM Orly2, ARMv7-A. 246 247* Add LibTomCrypt as the default software cryptographic library. 248 249* Add cryptographic abstraction layer in on secure side to ease the use of 250 other cryptographic software libraries or adding support for hardware 251 acceleration. 252 253* Extended cryptographic API with support for HKDF, Concat KDF and PBKDF2. 254 255* SHA-1 and SHA-256 ARMv8-A crypto extension implementation. 256 257* Enabled paging support in OP-TEE OS. 258 259* Add support for xtest (both standard and extended) in QEMU and FVP setup 260 scripts. 261 262* Add documentation for the OS design, cryptographic abstraction layer, secure 263 elements design, the build system, GitHub usage, key derivation extensions, 264 ARM-Trusted Firmware usage within OP-TEE and GlobalPlatform usage within 265 OP-TEE. 266 267* Integrate support for Travis CI. 268 269* [Link][github_commits_0_1_0] to a list of all commits between this and 270 previous release. 271 272 273## Tested on 274Definitions: 275 276| Type | Meaning | 277| ---- | ------- | 278| Standard tests | The optee_test project. | 279| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.0.0. | 280| Hello world test | Plain hello world Trusted Application such as [this][hello_world]. | 281 282* Allwinner A80 (plat-sunxi), hello world test. 283 284* ARM Juno Board (vexpress-juno), standard tests. 285 286* Foundation Models (plat-vexpress-fvp), standard + extended tests 287 288* QEMU (plat-vexpress-qemu), standard + extended tests (and Secure Elements 289 tested separately). 290 291* STM Cannes (plat-stm-cannes), standard + extended tests. 292 293 294## Issues resolved since last release 295N/A since this is the first release tag on OP-TEE. 296 297 298## Known issues 299* Storage is implemented, but not "Secure storage", meaning that a client 300 needs to do encrypt files on their own before storing the files. 301 302* Issue(s) open on GitHub 303 * [#95][pr95]: An error about building the test code of libtomcrypt. 304 305 * [#149][pr149]: when testing optee os with arm trusted firmware (I 306 utilized optee os tee.bin as bl32 image) on juno platform, I got an 307 error. 308 309 * [#161][pr161]: tee_svc_cryp.c lacks accessibility checks on 310 user-supplied TEE_Attributes. 311 312[hello_world]: https://github.com/jenswi-linaro/lcu14_optee_hello_world 313[github_commits_0_1_0]: https://github.com/OP-TEE/optee_os/compare/b01047730e77127c23a36591643eeb8bb0487d68...999e4a6c0f64d3177fd3d0db234107b6fb860884 314[pr95]: https://github.com/OP-TEE/optee_os/issues/95 315[pr149]: https://github.com/OP-TEE/optee_os/issues/149 316[pr161]: https://github.com/OP-TEE/optee_os/issues/161 317 318* Global Platform Device Internal Core API v1.1 319 * [#230][pr230]: Persistent object corruption support (TEE_ERROR_CORRUPT_OBJECT/_2) 320 * [#230][pr230]: Persistent object access support (TEE_ERROR_STORAGE_NOT_AVAILABLE/_2) 321