1*c5bbfb4dSPascal Brand# OP-TEE - version 1.1.0 2*c5bbfb4dSPascal Brand 3*c5bbfb4dSPascal Brand 4*c5bbfb4dSPascal Brand## New features 5*c5bbfb4dSPascal Brand 6*c5bbfb4dSPascal Brand* Softfloat library: floating point support is now available in 32bits TA. 7*c5bbfb4dSPascal Brand 8*c5bbfb4dSPascal Brand* Support running 64-bits TA: on ARMv8-A platform, TA can be compiled in 9*c5bbfb4dSPascal Brand AArch32 and/or in AArch64 in case the core is compiled in AArch64. 10*c5bbfb4dSPascal Brand An example can be found in HiKey configuration file. Using the following 11*c5bbfb4dSPascal Brand excerpt code, the user TA libraries are compiled in both AArch32 and 12*c5bbfb4dSPascal Brand AArch64, and can be found in `out/arm-plat-hikey/export-ta_arm32` and 13*c5bbfb4dSPascal Brand `out/arm-plat-hikey/export-ta_arm64` 14*c5bbfb4dSPascal Brand 15*c5bbfb4dSPascal Brand``` 16*c5bbfb4dSPascal Brand ta-targets = ta_arm32 17*c5bbfb4dSPascal Brand ta-targets += ta_arm64 18*c5bbfb4dSPascal Brand``` 19*c5bbfb4dSPascal Brand 20*c5bbfb4dSPascal Brand* Concurrent TA support: multiple TA can run in parallel on 21*c5bbfb4dSPascal Brand several cores. 22*c5bbfb4dSPascal Brand 23*c5bbfb4dSPascal Brand* New tests added in xtest test suite: concurrent TA (xtest 1013), 24*c5bbfb4dSPascal Brand floating point tests (xtest 1006 and os_test TA) and corruption 25*c5bbfb4dSPascal Brand file storage (xtest 20000) 26*c5bbfb4dSPascal Brand 27*c5bbfb4dSPascal Brand* [Link][github_commits_1_1_0] to a list of all commits between this and 28*c5bbfb4dSPascal Brand previous release. 29*c5bbfb4dSPascal Brand 30*c5bbfb4dSPascal Brand 31*c5bbfb4dSPascal Brand## Tested on 32*c5bbfb4dSPascal BrandDefinitions: 33*c5bbfb4dSPascal Brand 34*c5bbfb4dSPascal Brand| Type | Meaning | 35*c5bbfb4dSPascal Brand| ---- | ------- | 36*c5bbfb4dSPascal Brand| Standard tests | The [optee_test][optee_test] project. | 37*c5bbfb4dSPascal Brand| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.1.0.4. | 38*c5bbfb4dSPascal Brand| Hello world test | Plain hello world Trusted Application such as [this][hello_world]. | 39*c5bbfb4dSPascal Brand 40*c5bbfb4dSPascal Brand* Foundation Models (vexpress-fvp), standard tests + extended tests, 41*c5bbfb4dSPascal Brand using FVP ARM V8 Foundation Platformr0p0 (platform build 9.5.40) 42*c5bbfb4dSPascal Brand* HiKey (hikey), standard + extended tests. 43*c5bbfb4dSPascal Brand* MT8173 (mediatek), standard tests. 44*c5bbfb4dSPascal Brand* QEMU (vexpress-qemu), standard + extended tests. 45*c5bbfb4dSPascal Brand* STM Cannes (stm-cannes), standard + extended tests. 46*c5bbfb4dSPascal Brand 47*c5bbfb4dSPascal Brand## Known issues 48*c5bbfb4dSPascal Brand* Secure Storage is implemented, but note that anti-rollback protection 49*c5bbfb4dSPascal Brand is not implemented yet. 50*c5bbfb4dSPascal Brand 51*c5bbfb4dSPascal Brand* Issue(s) open on GitHub 52*c5bbfb4dSPascal Brand * [#40][prld40] BUG_ON() when re-using RPC buffer to tee-supplicant 53*c5bbfb4dSPascal Brand * [#296][pr296]: Connecting RPMB to the storage APIs. 54*c5bbfb4dSPascal Brand * [#493][pr493]: setup_juno_optee: unable to find pre-built binaries 55*c5bbfb4dSPascal Brand * [#506][pr506]: tee-supplicant panic & ta panic 56*c5bbfb4dSPascal Brand 57*c5bbfb4dSPascal Brand[prld40]: https://github.com/OP-TEE/optee_linuxdriver/issues/40 58*c5bbfb4dSPascal Brand[pr506]: https://github.com/OP-TEE/optee_os/issues/506 59*c5bbfb4dSPascal Brand[github_commits_1_1_0]: https://github.com/OP-TEE/optee_os/compare/1.0.1...1.1.0 60*c5bbfb4dSPascal Brand 61*c5bbfb4dSPascal Brand 62*c5bbfb4dSPascal Brand 638a7ee79dSPascal Brand# OP-TEE - version 1.0.0 648a7ee79dSPascal Brand 658a7ee79dSPascal BrandOP-TEE is now maintained by Linaro. Contributors do not need to 668a7ee79dSPascal Brandsign a CLA anymore, but must follow the rules of the [DCO][DCO] 678a7ee79dSPascal Brand(Developer Certificate of Origin) instead. 688a7ee79dSPascal Brand 698a7ee79dSPascal Brand 708a7ee79dSPascal Brand## New features 718a7ee79dSPascal Brand 728a7ee79dSPascal Brand* Add hardware support for Texas Instruments DRA7xx, ARMv7 (plat-ti) 738a7ee79dSPascal Brand 748a7ee79dSPascal Brand* GlobalPlatform™ TEE Internal Core API Specification v1.1, 758a7ee79dSPascal Brand including ECC algorithms. 768a7ee79dSPascal Brand 778a7ee79dSPascal Brand* Secure Storage: Files stored by the REE are now encrypted. Operations 788a7ee79dSPascal Brand are made atomic in order to prevent inconsistencies in case of errors 798a7ee79dSPascal Brand during the storage operations. [Slides][LCStorage] describing the 808a7ee79dSPascal Brand Secure Storage have been presented at the Linaro Connect SFO15. 818a7ee79dSPascal Brand 828a7ee79dSPascal Brand* Change of format of the Trusted Applications: they follow a 838a7ee79dSPascal Brand [signed ELF format][elf] 848a7ee79dSPascal Brand 858a7ee79dSPascal Brand* Rework thread [synchronization][synchro] in optee_os. 868a7ee79dSPascal Brand 878a7ee79dSPascal Brand* Use of ARMv8 native cryptographic support. 888a7ee79dSPascal Brand 898a7ee79dSPascal Brand* [OP-TEE/optee_test][optee_test] test suite is released. 908a7ee79dSPascal Brand 918a7ee79dSPascal Brand* Introduce [OP-TEE/manifest][manifest] and [OP-TEE/build][build] 928a7ee79dSPascal Brand to setup and build QEMU, FVP, HiKey and Mediatek platforms. Setup scripts 938a7ee79dSPascal Brand that used to be in optee_os have been removed, except for Juno board. 948a7ee79dSPascal Brand 9595422146SPascal Brand* [Link][github_commits_1_0_0] to a list of all commits between this and 9695422146SPascal Brand previous release. 9795422146SPascal Brand 988a7ee79dSPascal Brand 998a7ee79dSPascal Brand## Tested on 1008a7ee79dSPascal BrandDefinitions: 1018a7ee79dSPascal Brand 1028a7ee79dSPascal Brand| Type | Meaning | 1038a7ee79dSPascal Brand| ---- | ------- | 1048a7ee79dSPascal Brand| Standard tests | The [optee_test][optee_test] project. | 1058a7ee79dSPascal Brand| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.1.0.4. | 1068a7ee79dSPascal Brand| Hello world test | Plain hello world Trusted Application such as [this][hello_world]. | 1078a7ee79dSPascal Brand 1088a7ee79dSPascal Brand* ARM Juno Board (vexpress-juno), standard + extended tests. 1098a7ee79dSPascal Brand* Foundation Models (vexpress-fvp), standard tests. 1108a7ee79dSPascal Brand* HiKey (hikey), standard + extended tests. 1118a7ee79dSPascal Brand* MT8173 (mediatek), standard tests. 1128a7ee79dSPascal Brand* QEMU (vexpress-qemu), standard + extended tests. 1138a7ee79dSPascal Brand* STM Cannes (stm-cannes), standard + extended tests. 1148a7ee79dSPascal Brand 11595422146SPascal Brand## Known issues 11695422146SPascal Brand* Secure Storage is implemented, but note that anti-rollback protection 11795422146SPascal Brand is not implemented yet. 11895422146SPascal Brand 11995422146SPascal Brand* Issue(s) open on GitHub 12095422146SPascal Brand * [#210][pr210]: libteec.so 32-bit does not communicate well 12195422146SPascal Brand with 64-bit kernel module 12295422146SPascal Brand * [#296][pr296]: Connecting RPMB to the storage APIs. 12395422146SPascal Brand * [#493][pr493]: setup_juno_optee: unable to find pre-built binaries 12495422146SPascal Brand * [#494][pr494]: HiKey: xtest 7671 fails (1.0.0-rc2) 12595422146SPascal Brand 12695422146SPascal Brand[pr210]: https://github.com/OP-TEE/optee_os/issues/210 12795422146SPascal Brand[pr296]: https://github.com/OP-TEE/optee_os/issues/296 12895422146SPascal Brand[pr493]: https://github.com/OP-TEE/optee_os/issues/493 12995422146SPascal Brand[pr494]: https://github.com/OP-TEE/optee_os/issues/494 13095422146SPascal Brand[github_commits_1_0_0]: https://github.com/OP-TEE/optee_os/compare/0.3.0...1.0.0 1318a7ee79dSPascal Brand[DCO]: https://github.com/OP-TEE/optee_os/blob/master/Notice.md#contributions 1328a7ee79dSPascal Brand[LCStorage]: http://www.slideshare.net/linaroorg/sfo15503-secure-storage-in-optee 1338a7ee79dSPascal Brand[synchro]: https://github.com/OP-TEE/optee_os/blob/master/documentation/optee_design.md#4-thread-handling 1348a7ee79dSPascal Brand[elf]: https://github.com/OP-TEE/optee_os/blob/master/documentation/optee_design.md#format 1358a7ee79dSPascal Brand[optee_test]: https://github.com/OP-TEE/optee_test 1368a7ee79dSPascal Brand[manifest]: https://github.com/OP-TEE/manifest 1378a7ee79dSPascal Brand[build]: https://github.com/OP-TEE/build 1388a7ee79dSPascal Brand 13995422146SPascal Brand 14095422146SPascal Brand 14111d59085SPascal Brand# OP-TEE - version 0.3.0 14211d59085SPascal Brand 14311d59085SPascal Brand## New features 14411d59085SPascal Brand 14511d59085SPascal Brand* Add hardware support for 14611d59085SPascal Brand * Mediatek MT8173 Board, ARMv8-A (plat-mediatek) 14711d59085SPascal Brand * Hisilicon HiKey Board, ARMv8-A (plat-hikey) 14811d59085SPascal Brand* AArch64 build of optee_os is now possible through the configuration `CFG_ARM64_core=y` 14911d59085SPascal Brand* Secure Storage: Data can be encrypted prior to their storage in the non-secure. 15011d59085SPascal Brand Build is configured using `CFG_ENC_FS=y` 15111d59085SPascal Brand* A generic boot scheme can be used. Boot configuration is commonalized. This helps 15211d59085SPascal Brand new board support. It is applied on plat-hikey, plat-vexpress, plat-mediatek, plat-stm 15311d59085SPascal Brand and plat-vexpress. 15411d59085SPascal Brand 15511d59085SPascal Brand## Tested on 15611d59085SPascal BrandDefinitions: 15711d59085SPascal Brand 15811d59085SPascal Brand| Type | Meaning | 15911d59085SPascal Brand| ---- | ------- | 16011d59085SPascal Brand| Standard tests | The optee_test project. | 16111d59085SPascal Brand| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.1.0.4. | 16211d59085SPascal Brand| Hello world test | Plain hello world Trusted Application such as [this][hello_world]. | 16311d59085SPascal Brand 16411d59085SPascal Brand* ARM Juno Board (vexpress-juno), standard tests. 16511d59085SPascal Brand* Foundation Models (vexpress-fvp), standard tests. 16611d59085SPascal Brand* HiKey (hikey), standard tests. 16711d59085SPascal Brand* MT8173 (mediatek), standard tests. 16811d59085SPascal Brand* QEMU (vexpress-qemu), standard + extended tests. 16911d59085SPascal Brand* STM Cannes (stm-cannes), standard + extended tests. 17011d59085SPascal Brand 17111d59085SPascal Brand------------------------------------------- 17211d59085SPascal Brand 173f5117af2SPascal Brand# OP-TEE - version 0.2.0 174759cc499SJoakim Bech 175f5117af2SPascal Brand## New features 176f5117af2SPascal Brand 177f5117af2SPascal Brand### Linux Driver Refactoring 178f5117af2SPascal Brand 179f5117af2SPascal BrandLinux Driver has been refactored. It is now split in two parts: 180f5117af2SPascal Brand* optee.ko, the generic Linux driver. It contains all functionality 181f5117af2SPascal Brand common to all backends. 182f5117af2SPascal Brand* optee_armtz.ko, a specific backend dedicated to the TrustZone optee. 183f5117af2SPascal Brand It depends on optee.ko. 184f5117af2SPascal Brand 185f5117af2SPascal BrandLoading the TrustZone optee linux driver module is now performed using 186f5117af2SPascal Brand 187f5117af2SPascal Brand modprobe optee_armtz 188f5117af2SPascal Brand 189f5117af2SPascal BrandThanks to the dependency between the generic and the backend modules, optee.ko is then automatically loaded. 190f5117af2SPascal Brand 191f5117af2SPascal Brand### Misc new features 192f5117af2SPascal Brand* support PL310 lock down at TEE boot 193f5117af2SPascal Brand* add 64bits support (division / print) 194f5117af2SPascal Brand 195f5117af2SPascal Brand## Tested on 196f5117af2SPascal BrandDefinitions: 197f5117af2SPascal Brand 198f5117af2SPascal Brand| Type | Meaning | 199f5117af2SPascal Brand| ---- | ------- | 200f5117af2SPascal Brand| Standard tests | The optee_test project. | 201f5117af2SPascal Brand| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.1.0.4. | 202f5117af2SPascal Brand| Hello world test | Plain hello world Trusted Application such as [this][hello_world]. | 203f5117af2SPascal Brand 204f5117af2SPascal Brand* ARM Juno Board (vexpress-juno), standard tests + extended tests. 205f5117af2SPascal Brand 206f5117af2SPascal Brand* Foundation Models (vexpress-fvp), standard + extended tests. 207f5117af2SPascal Brand 208f5117af2SPascal Brand* QEMU (vexpress-qemu), standard + extended tests. 209f5117af2SPascal Brand 210f5117af2SPascal Brand* STM Cannes (stm-cannes), standard + extended tests. 211f5117af2SPascal Brand 212f5117af2SPascal Brand 213f5117af2SPascal Brand## Issues resolved since last release 214f5117af2SPascal Brand* Fix user TA trace issue, in order each TA is able to select its own trace level 215f5117af2SPascal Brand 216f5117af2SPascal Brand 217f5117af2SPascal Brand------------------------------------------- 218f5117af2SPascal Brand#OP-TEE - version 0.1.0 219f5117af2SPascal Brand 220f5117af2SPascal Brand## New features 221759cc499SJoakim BechBelow is a summary of the most important features added, but at the end you will 222759cc499SJoakim Bechfind a link that present you all commits between the current and previous 223759cc499SJoakim Bechrelease tag. 224759cc499SJoakim Bech 225759cc499SJoakim Bech* GlobalPlatform Client API v1.0 support. 226759cc499SJoakim Bech 227759cc499SJoakim Bech* GlobalPlatform Internal API v1.0 support. 228759cc499SJoakim Bech 229759cc499SJoakim Bech* GlobalPlatform Secure Elements v1.0 support. 230759cc499SJoakim Bech 231759cc499SJoakim Bech* Add hardware support for 232759cc499SJoakim Bech 233759cc499SJoakim Bech * Allwinner A80, ARMv7-A. 234759cc499SJoakim Bech 235759cc499SJoakim Bech * ARM Juno Board, ARMv8-A. 236759cc499SJoakim Bech 237759cc499SJoakim Bech * Foundation Models, ARMv8-A. 238759cc499SJoakim Bech 239759cc499SJoakim Bech * Fast Models, ARMv8-A. 240759cc499SJoakim Bech 241759cc499SJoakim Bech * QEMU, ARMv7-A. 242759cc499SJoakim Bech 243759cc499SJoakim Bech * STM Cannes, ARMv7-A. 244759cc499SJoakim Bech 245759cc499SJoakim Bech * STM Orly2, ARMv7-A. 246759cc499SJoakim Bech 247759cc499SJoakim Bech* Add LibTomCrypt as the default software cryptographic library. 248759cc499SJoakim Bech 249759cc499SJoakim Bech* Add cryptographic abstraction layer in on secure side to ease the use of 250759cc499SJoakim Bech other cryptographic software libraries or adding support for hardware 251759cc499SJoakim Bech acceleration. 252759cc499SJoakim Bech 253759cc499SJoakim Bech* Extended cryptographic API with support for HKDF, Concat KDF and PBKDF2. 254759cc499SJoakim Bech 255759cc499SJoakim Bech* SHA-1 and SHA-256 ARMv8-A crypto extension implementation. 256759cc499SJoakim Bech 257759cc499SJoakim Bech* Enabled paging support in OP-TEE OS. 258759cc499SJoakim Bech 259759cc499SJoakim Bech* Add support for xtest (both standard and extended) in QEMU and FVP setup 260759cc499SJoakim Bech scripts. 261759cc499SJoakim Bech 262759cc499SJoakim Bech* Add documentation for the OS design, cryptographic abstraction layer, secure 263759cc499SJoakim Bech elements design, the build system, GitHub usage, key derivation extensions, 264759cc499SJoakim Bech ARM-Trusted Firmware usage within OP-TEE and GlobalPlatform usage within 265759cc499SJoakim Bech OP-TEE. 266759cc499SJoakim Bech 267759cc499SJoakim Bech* Integrate support for Travis CI. 268759cc499SJoakim Bech 269759cc499SJoakim Bech* [Link][github_commits_0_1_0] to a list of all commits between this and 270759cc499SJoakim Bech previous release. 271759cc499SJoakim Bech 272759cc499SJoakim Bech 273f5117af2SPascal Brand## Tested on 274759cc499SJoakim BechDefinitions: 275759cc499SJoakim Bech 276759cc499SJoakim Bech| Type | Meaning | 277759cc499SJoakim Bech| ---- | ------- | 278759cc499SJoakim Bech| Standard tests | The optee_test project. | 279759cc499SJoakim Bech| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.0.0. | 280759cc499SJoakim Bech| Hello world test | Plain hello world Trusted Application such as [this][hello_world]. | 281759cc499SJoakim Bech 282759cc499SJoakim Bech* Allwinner A80 (plat-sunxi), hello world test. 283759cc499SJoakim Bech 284759cc499SJoakim Bech* ARM Juno Board (vexpress-juno), standard tests. 285759cc499SJoakim Bech 286759cc499SJoakim Bech* Foundation Models (plat-vexpress-fvp), standard + extended tests 287759cc499SJoakim Bech 288759cc499SJoakim Bech* QEMU (plat-vexpress-qemu), standard + extended tests (and Secure Elements 289759cc499SJoakim Bech tested separately). 290759cc499SJoakim Bech 291759cc499SJoakim Bech* STM Cannes (plat-stm-cannes), standard + extended tests. 292759cc499SJoakim Bech 293759cc499SJoakim Bech 294f5117af2SPascal Brand## Issues resolved since last release 295759cc499SJoakim BechN/A since this is the first release tag on OP-TEE. 296759cc499SJoakim Bech 297759cc499SJoakim Bech 298f5117af2SPascal Brand## Known issues 299759cc499SJoakim Bech* Storage is implemented, but not "Secure storage", meaning that a client 300759cc499SJoakim Bech needs to do encrypt files on their own before storing the files. 301759cc499SJoakim Bech 302759cc499SJoakim Bech* Issue(s) open on GitHub 303759cc499SJoakim Bech * [#95][pr95]: An error about building the test code of libtomcrypt. 304759cc499SJoakim Bech 305759cc499SJoakim Bech * [#149][pr149]: when testing optee os with arm trusted firmware (I 306759cc499SJoakim Bech utilized optee os tee.bin as bl32 image) on juno platform, I got an 307759cc499SJoakim Bech error. 308759cc499SJoakim Bech 309759cc499SJoakim Bech * [#161][pr161]: tee_svc_cryp.c lacks accessibility checks on 310759cc499SJoakim Bech user-supplied TEE_Attributes. 311759cc499SJoakim Bech 312759cc499SJoakim Bech[hello_world]: https://github.com/jenswi-linaro/lcu14_optee_hello_world 313759cc499SJoakim Bech[github_commits_0_1_0]: https://github.com/OP-TEE/optee_os/compare/b01047730e77127c23a36591643eeb8bb0487d68...999e4a6c0f64d3177fd3d0db234107b6fb860884 314759cc499SJoakim Bech[pr95]: https://github.com/OP-TEE/optee_os/issues/95 315759cc499SJoakim Bech[pr149]: https://github.com/OP-TEE/optee_os/issues/149 316759cc499SJoakim Bech[pr161]: https://github.com/OP-TEE/optee_os/issues/161 317759cc499SJoakim Bech 3187583c59eSCedric Chaumont* Global Platform Device Internal Core API v1.1 3197583c59eSCedric Chaumont * [#230][pr230]: Persistent object corruption support (TEE_ERROR_CORRUPT_OBJECT/_2) 3207583c59eSCedric Chaumont * [#230][pr230]: Persistent object access support (TEE_ERROR_STORAGE_NOT_AVAILABLE/_2) 321