1# OP-TEE - version 2.3.0 2 3[Link][github_commits_2_3_0] to a list of all commits between this release and 4the previous one (2.2.0). 5 6Please note: this release is API-compatible with the previous one, but the 7Secure Storage internal format for the REE FS is not compatible due to commit 8[361fb3e][commit_361fb3e] ("core: REE FS: use a single file per object"). 9 10[commit_361fb3e]: https://github.com/OP-TEE/optee_os/commit/361fb3e 11 12## New features 13 14* New supported platform: Xilinx Zynq 7000 ZC702 (`PLATFORM=zynq7k-zc702`) 15 16* Add debug assertions to spinlocks and mutexes 17 18* Add more CP15 register access macros for Cortex-A9 19 20* ARMv7-A: redesign secure monitor to make it easier to register services 21 22* ARMv7-A: cleanup boot arguments 23 24* libutee: extend `TEE_CheckMemoryAccessRights()` with 25 `TEE_MEMORY_ACCESS_SECURE` and `TEE_MEMORY_ACCESS_NONSECURE` 26 27* plat-hikey: enable SPI by default and add sample test code 28 29* Consider `CFLAGS_ta_arm64` and `CFLAGS_ta_arm32` when building TAs 30 31* Secure storage refactoring 32 - Simplify interface with tee-supplicant. Minimize round trips with normal 33 world, especially by adding a cache for FS RPC payload data. 34 - REE FS: use a single file per object, remove block cache. 35 36* Print call stack in panic() 37 38## Bug fixes 39 40* Fix UUID encoding when communicating with normal world (use big endian 41 mode instead of native endianness). Related to this, the string format 42 for UUIDs has changed in tee-supplicant, so that TA file names now follow 43 the format defined in RFC4122 (a missing hyphen was added). The old format 44 is still supported, but deprecated, and will likely be removed with the 45 next major release. 46 47* Drop write permission to non-writable ELF segments after TA loading is 48 complete. 49 50* mm: fix confusing memory mapping debug traces 51 52* plat-ti: fix issues with MMU mapping 53 54* crypto: fix clearing of big numbers 55 56* build: allow spaces and double quotes in CFG_ variables 57 58* mm: use paddr_t to support both 32- and 64-bit architectures properly. 59 Resolves 32-bit truncation error when pool is at top of 32 bit address 60 space on 64-bit architecture. 61 62* plat-stm: support pager. Fix pager on ARMv7-A SMP boards. 63 64* Fix debug output of Trusted Applications (remove "ERROR: TEE-CORE:" prefix) 65 66* Do not consider TA memref parameters as TA private memory 67 68* crypto: fix `cipher_final()` which would not call `cbc_done()` for CBC_MAC 69 algorithms 70 71* fix for 16-way PL310 72 73* arm32: fix call stack unwinding (`print_stack()`) 74 75* arm32: fix spinlock assembly code 76 77* plat-stm, plat-imx: fix SCR initalization 78 79* Fix user L1 MMU entries calculation (non-LPAE), allowing TTBCR.N values 80 other than 7. 81 82* mtk-mt8173: fix panic caused by incorrect size of SHMEM 83 84* plat-stm: fix RNG driver (non-flat mapping) 85 86## Known issues 87 88* New issues open on GitHub 89 * [#1203][issue1203] AES-CTS mode will fail when inlen=0x100, in_incr=0x80 90 * [#1199][issue1199] Both tee and teepriv reported GlobalPlatform compliant 91 * [#1188][issue1188] Secure storage (SQL FS and REE FS): blocks not tied to 92 current meta header 93 * [#1172][issue1172] paddr_t should be larger than 32 bits when 94 CFG_WITH_LPAE is enabled 95 96## Tested on 97 98In the list below, _standard_ means that the `xtest` program passed with 99its default configuration, while _extended_ means it was run successfully 100with the additional GlobalPlatform™ TEE Initial Configuration Test Suite 101v1.1.0.4. 102 103If a platform is not listed, it means the release was not tested on this 104platform. 105 106<!-- ${PLATFORM}-${PLATFORM_FLAVOR}, ordered alphabetically --> 107* d02: extended 108* hikey: extended 109* imx-mx6ulevk: standard 110* ls-ls1021atwr: standard 111* mediatek-mt8173: standard 112* rcar-h3: standard 113* rpi3: standard 114* stm-b2260: extended 115* stm-cannes: extended 116* ti-dra7xx: standard 117* vexpress-fvp: standard 118* vexpress-juno: standard 119* vexpress-qemu_armv8a: standard 120* vexpress-qemu_virt: extended 121* zynqmp-zcu102: standard 122 123[github_commits_2_3_0]: https://github.com/OP-TEE/optee_os/compare/2.2.0...2.3.0 124[issue1172]: https://github.com/OP-TEE/optee_os/issues/1172 125[issue1188]: https://github.com/OP-TEE/optee_os/issues/1188 126[issue1199]: https://github.com/OP-TEE/optee_os/issues/1199 127[issue1203]: https://github.com/OP-TEE/optee_os/issues/1203 128 129# OP-TEE - version 2.2.0 130 131[Link][github_commits_2_2_0] to a list of all commits between this release and 132the previous one (2.1.0). 133 134Please note: this release is API-compatible with the previous one, but the 135Secure Storage internal format is not compatible due to commit 136[fde4a75][commit_fde4a75] ("storage: encrypt the FEK with a TA-specific key"). 137 138[commit_fde4a75]: https://github.com/OP-TEE/optee_os/commit/fde4a75 139 140## New features 141 142* New supported platforms: 143 * Freescale i.MX6 Quad SABRE Lite & SD 144 * HiSilicon D02 145 * Raspberry Pi3 146 * Renesas RCAR H3 147 * STMicroelectronics b2260 - h410 148 149* Pager: Support paging of read/write pages by encrypting them with AES-GCM. 150 Support paging of user TAs. Add global setting for TZSRAM size 151 (CFG_CORE_TZSRAM_EMUL_SIZE), defaults to 300K. 152 153* Support for more than 8 CPU cores 154 155* Added SPI framework and PL022 driver 156 157* GPIO: framework supports multiple instances, PL061 driver now has get/set 158 interrupt and mode control functions 159 160* Secure storage: Encrypt the File Encryption Key with a TA-specific key for 161 better TA isolation. Add build-time and run-time support for multiple storage 162 backends. Add SQLite backend. 163 164* Trusted User Interface: some code is introduced to support the implementation 165 of TUI. This includes: a generic framebuffer driver, display and serial 166 abstractions, and drivers for PL111 (LCD) / PL050 (KMI) / TZC400 and PS2 167 mouse. 168 169* AES acceleration using ARMv8-A Cryptographic Extensions instructions is 170 now supported in AArch32 mode 171 172* Add support for GCC flags: -fsanitize=undefined and -fsanitize=kernel-address 173 174* Use a global setting for core heap size (CFG_CORE_HEAP_SIZE), 64K by default. 175 176* Add macros to unwind and print the call stack of TEE core 177 178* Libtomcrypt: sync with the latest `develop` branch. 179 180* The Trusted Application SDK (ta_dev_kit.mk) can produce libraries (.a) 181 182* Rework assertions and TEE core panics and properly honor NDEBUG 183 184## Bug fixes 185 186* Fix incorrect algorithm passed to cipher.final() 187 188* scripts: support Python 2.x and 3.x 189 190* Secure storage: Add proper locking to support concurrent access. Fix sign 191 extension bug with offset parameter of syscall storage_obj_seek which could 192 cause errors in Aarch32 mode. Fix reading beyond end of file. 193 194* Aarch64: mask all maskable exceptions before doing a normal return from call. 195 196* Device Tree: add no-map property to OP-TEE node in reserved-memory. 197 198* LibTomcrypt: fix CVE-2016-6129 199 200## Known issues 201 202* New issues open on GitHub 203 * [#1093][issue1093] rcar-h3: xtest 6010 hangs 204 * [#1092][issue1092] rcar-h3: xtest 4010 fails 205 * [#1081][issue1081] Bad mapping of TA secure memref parameters 206 * [#1071][issue1071] __data_end may not correctly represent text start position when using CFG_WITH_PAGER 207 * [#1069][issue1069] armv7/Aarch32: crash in stack unwind (DPRINT_STACK()) 208 209## Tested on 210 211In the list below, _standard_ means that the `xtest` program passed with 212its default configuration, while _extended_ means it was run successfully 213with the additional GlobalPlatform™ TEE Initial Configuration Test Suite 214v1.1.0.4. 215 216If a platform is not listed, it means the release was not tested on this 217platform. 218 219<!-- ${PLATFORM}-${PLATFORM_FLAVOR}, ordered alphabetically --> 220* d02: extended 221* hikey: extended 222* imx-mx6qsabrelite: standard 223* imx-mx6qsabresd: standard 224* rcar-h3: standard, pass except issues [#1092][issue1092] and [#1093][issue1093] 225* rpi3: standard 226* stm-b2260: standard 227* stm-cannes: standard 228* ti-dra7xx: standard 229* vexpress-fvp: standard 230* vexpress-juno: standard 231* vexpress-qemu_armv8a: standard 232* vexpress-qemu_virt: extended 233* zynqmp-zcu102: standard 234 235[github_commits_2_2_0]: https://github.com/OP-TEE/optee_os/compare/2.1.0...2.2.0 236[issue1081]: https://github.com/OP-TEE/optee_os/issues/1081 237[issue1071]: https://github.com/OP-TEE/optee_os/issues/1071 238[issue1069]: https://github.com/OP-TEE/optee_os/issues/1069 239[issue1092]: https://github.com/OP-TEE/optee_os/issues/1092 240[issue1093]: https://github.com/OP-TEE/optee_os/issues/1093 241 242# OP-TEE - version 2.1.0 243 244## New features 245 246* New supported platforms: 247 * Xilinx Zynq UltraScale+ MPSOC 248 * Spreadtrum SC9860 249 250* GCC5 support 251 252* Non Linear Mapping support: In OP-TEE kernel mode, the physical to virtual 253 addresses was linear until this release, meaning the virtual addresses 254 were equal to the physical addresses. This is no more the case in this 255 release. 256 257* Font rendering routines have been introduced in order to ease an 258 implementation of Trusted UI. 259 260* File Storage: Possibility to use the normal world filesystem and the RPMB 261 implementations simultaneously. 262 263* AOSP: There is a [local manifest][aosp_local_manifest] to build OP-TEE into an AOSP build, running on HiKey. 264 Please refer to the README in that repo for instructions. 265 266* OpenEmbedded: In addition to the makefile-based build described in the optee_os README, there is an 267 [OpenEmbedded-based build][oe_build] that supports Qemu (32-bit), FVP (64-bit), and HiKey (64-bit). 268 Please refer to the README in that repo for instructions. 269 270* [Link][github_commits_2_1_0] to a list of all commits between this and 271 previous release. 272 273 274## Tested on 275Definitions: 276 277| Type | Meaning | 278| ---- | ------- | 279| Standard tests | The [optee_test][optee_test] project. | 280| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.1.0.4. | 281 282* ARM Juno Board (vexpress-juno), standard. 283* Foundation Models (vexpress-fvp), standard tests + extended tests, 284 using FVP ARM V8 Foundation Platformr0p0 (platform build 10.0.37) 285* FSL i.MX6 UltraLite EVK (imx), standard. 286* FSL ls1021a (ls-ls1021atwr), standard tests. 287* HiKey (hikey), standard + extended tests. 288* QEMU (vexpress-qemu), standard + extended tests. 289* Xilinx Zynq UltraScale+ MPSOC, standard tests 290 291Note that the following platform has not been tested: 292* MTK8173-EVB (mediatek-mt8173) 293 294 295## Known issues 296* Issue(s) open on GitHub 297 * [#868][pr868]: python-wand font generation sometimes times out 298 * [#863][pr863]: "double free or corruption" error when building optee_os 299 * [#858][pr858]: UUIDs in binary format have wrong endinanness 300 * [#857][pr857]: Formatting of UUIDs is incorrect 301 * [#847][pr847]: optee_os panic(TEE-CORE: Assertion) 302 * [#838][pr838]: TUI font rendering is _very_ slow 303 * [#814][pr814]: Persistent objects : save informations after close 304 * [#665][pr665]: xtest 1013 stalled on HiKey when log levels are 4 and optee_os is on its own UART 305 * [#506][pr506]: tee-supplicant panic & ta panic 306 307[github_commits_2_1_0]: https://github.com/OP-TEE/optee_os/compare/2.0.0...2.1.0 308[pr868]: https://github.com/OP-TEE/optee_os/issues/868 309[pr863]: https://github.com/OP-TEE/optee_os/issues/863 310[pr858]: https://github.com/OP-TEE/optee_os/issues/858 311[pr857]: https://github.com/OP-TEE/optee_os/issues/857 312[pr847]: https://github.com/OP-TEE/optee_os/issues/847 313[pr838]: https://github.com/OP-TEE/optee_os/issues/838 314[pr814]: https://github.com/OP-TEE/optee_os/issues/814 315[pr665]: https://github.com/OP-TEE/optee_os/issues/665 316[aosp_local_manifest]: https://github.com/linaro-swg/optee_android_manifest 317[oe_build]: https://github.com/linaro-swg/oe-optee 318 319# OP-TEE - version 2.0.0 320 321## New features 322 323* Generic driver: A new generic TEE driver is in the process of being 324 [upstreamed][gendrv_v9]. 325 In this release, [OP-TEE/optee_linuxdriver][optee_linuxdriver] is no more used. 326 Instead, linux v4.5 is being patched using the proposed Generic TEE Driver, 327 as it can be found in [https://github.com/linaro-swg/linux/tree/optee][linux_optee] 328 329* RPMB support: Secure Storage can now use Replay Protected Memory Block (RPMB) partition 330 of an eMMC device. Check the [full documentation][rpmb_doc] 331 332* Hard-float ABI is now available. 333 334* [Link][github_commits_2_0_0] to a list of all commits between this and 335 previous release. 336 337 338## Tested on 339Definitions: 340 341| Type | Meaning | 342| ---- | ------- | 343| Standard tests | The [optee_test][optee_test] project. | 344| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.1.0.4. | 345 346* ARM Juno Board (vexpress-juno), standard. 347* Foundation Models (vexpress-fvp), standard tests + extended tests, 348 using FVP ARM V8 Foundation Platformr0p0 (platform build 9.5.40) 349* FSL ls1021a (ls-ls1021atwr), standard. 350* HiKey (hikey), standard. 351* MTK8173-EVB (mediatek-mt8173), standard. 352* QEMU (vexpress-qemu), standard + extended tests. 353* STM Cannes (stm-cannes), standard + extended tests. 354 355## Known issues 356* Issue(s) open on GitHub 357 * [#40][prld40] BUG_ON() when re-using RPC buffer to tee-supplicant 358 * [#506][pr506]: tee-supplicant panic & ta panic 359 360[github_commits_2_0_0]: https://github.com/OP-TEE/optee_os/compare/1.1.0...2.0.0 361[rpmb_doc]: https://github.com/OP-TEE/optee_os/blob/master/documentation/secure_storage_rpmb.md 362[optee_linuxdriver]: https://github.com/OP-TEE/optee_linuxdriver 363[gendrv_v9]: https://lkml.org/lkml/2016/4/1/205 364[linux_optee]: https://github.com/linaro-swg/linux/tree/optee 365 366 367# OP-TEE - version 1.1.0 368 369 370## New features 371 372* Softfloat library: floating point support is now available in 32bits TA. 373 374* Support running 64-bits TA: on ARMv8-A platform, TA can be compiled in 375 AArch32 and/or in AArch64 in case the core is compiled in AArch64. 376 An example can be found in HiKey configuration file. Using the following 377 excerpt code, the user TA libraries are compiled in both AArch32 and 378 AArch64, and can be found in `out/arm-plat-hikey/export-ta_arm32` and 379 `out/arm-plat-hikey/export-ta_arm64` 380 381``` 382 ta-targets = ta_arm32 383 ta-targets += ta_arm64 384``` 385 386* Concurrent TA support: multiple TA can run in parallel on 387 several cores. 388 389* New tests added in xtest test suite: concurrent TA (xtest 1013), 390 floating point tests (xtest 1006 and os_test TA) and corruption 391 file storage (xtest 20000) 392 393* [Link][github_commits_1_1_0] to a list of all commits between this and 394 previous release. 395 396 397## Tested on 398Definitions: 399 400| Type | Meaning | 401| ---- | ------- | 402| Standard tests | The [optee_test][optee_test] project. | 403| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.1.0.4. | 404| Hello world test | Plain hello world Trusted Application such as [this][hello_world]. | 405 406* Foundation Models (vexpress-fvp), standard tests + extended tests, 407 using FVP ARM V8 Foundation Platformr0p0 (platform build 9.5.40) 408* HiKey (hikey), standard + extended tests. 409* MT8173 (mediatek), standard tests. 410* QEMU (vexpress-qemu), standard + extended tests. 411* STM Cannes (stm-cannes), standard + extended tests. 412 413## Known issues 414* Secure Storage is implemented, but note that anti-rollback protection 415 is not implemented yet. 416 417* Issue(s) open on GitHub 418 * [#40][prld40] BUG_ON() when re-using RPC buffer to tee-supplicant 419 * [#296][pr296]: Connecting RPMB to the storage APIs. 420 * [#493][pr493]: setup_juno_optee: unable to find pre-built binaries 421 * [#506][pr506]: tee-supplicant panic & ta panic 422 423[prld40]: https://github.com/OP-TEE/optee_linuxdriver/issues/40 424[pr506]: https://github.com/OP-TEE/optee_os/issues/506 425[github_commits_1_1_0]: https://github.com/OP-TEE/optee_os/compare/1.0.1...1.1.0 426 427 428 429# OP-TEE - version 1.0.0 430 431OP-TEE is now maintained by Linaro. Contributors do not need to 432sign a CLA anymore, but must follow the rules of the [DCO][DCO] 433(Developer Certificate of Origin) instead. 434 435 436## New features 437 438* Add hardware support for Texas Instruments DRA7xx, ARMv7 (plat-ti) 439 440* GlobalPlatform™ TEE Internal Core API Specification v1.1, 441 including ECC algorithms. 442 443* Secure Storage: Files stored by the REE are now encrypted. Operations 444 are made atomic in order to prevent inconsistencies in case of errors 445 during the storage operations. [Slides][LCStorage] describing the 446 Secure Storage have been presented at the Linaro Connect SFO15. 447 448* Change of format of the Trusted Applications: they follow a 449 [signed ELF format][elf] 450 451* Rework thread [synchronization][synchro] in optee_os. 452 453* Use of ARMv8 native cryptographic support. 454 455* [OP-TEE/optee_test][optee_test] test suite is released. 456 457* Introduce [OP-TEE/manifest][manifest] and [OP-TEE/build][build] 458 to setup and build QEMU, FVP, HiKey and Mediatek platforms. Setup scripts 459 that used to be in optee_os have been removed, except for Juno board. 460 461* [Link][github_commits_1_0_0] to a list of all commits between this and 462 previous release. 463 464 465## Tested on 466Definitions: 467 468| Type | Meaning | 469| ---- | ------- | 470| Standard tests | The [optee_test][optee_test] project. | 471| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.1.0.4. | 472| Hello world test | Plain hello world Trusted Application such as [this][hello_world]. | 473 474* ARM Juno Board (vexpress-juno), standard + extended tests. 475* Foundation Models (vexpress-fvp), standard tests. 476* HiKey (hikey), standard + extended tests. 477* MT8173 (mediatek), standard tests. 478* QEMU (vexpress-qemu), standard + extended tests. 479* STM Cannes (stm-cannes), standard + extended tests. 480 481## Known issues 482* Secure Storage is implemented, but note that anti-rollback protection 483 is not implemented yet. 484 485* Issue(s) open on GitHub 486 * [#210][pr210]: libteec.so 32-bit does not communicate well 487 with 64-bit kernel module 488 * [#296][pr296]: Connecting RPMB to the storage APIs. 489 * [#493][pr493]: setup_juno_optee: unable to find pre-built binaries 490 * [#494][pr494]: HiKey: xtest 7671 fails (1.0.0-rc2) 491 492[pr210]: https://github.com/OP-TEE/optee_os/issues/210 493[pr296]: https://github.com/OP-TEE/optee_os/issues/296 494[pr493]: https://github.com/OP-TEE/optee_os/issues/493 495[pr494]: https://github.com/OP-TEE/optee_os/issues/494 496[github_commits_1_0_0]: https://github.com/OP-TEE/optee_os/compare/0.3.0...1.0.0 497[DCO]: https://github.com/OP-TEE/optee_os/blob/master/Notice.md#contributions 498[LCStorage]: http://www.slideshare.net/linaroorg/sfo15503-secure-storage-in-optee 499[synchro]: https://github.com/OP-TEE/optee_os/blob/master/documentation/optee_design.md#4-thread-handling 500[elf]: https://github.com/OP-TEE/optee_os/blob/master/documentation/optee_design.md#format 501[optee_test]: https://github.com/OP-TEE/optee_test 502[manifest]: https://github.com/OP-TEE/manifest 503[build]: https://github.com/OP-TEE/build 504 505 506 507# OP-TEE - version 0.3.0 508 509## New features 510 511* Add hardware support for 512 * Mediatek MT8173 Board, ARMv8-A (plat-mediatek) 513 * Hisilicon HiKey Board, ARMv8-A (plat-hikey) 514* AArch64 build of optee_os is now possible through the configuration `CFG_ARM64_core=y` 515* Secure Storage: Data can be encrypted prior to their storage in the non-secure. 516 Build is configured using `CFG_ENC_FS=y` 517* A generic boot scheme can be used. Boot configuration is commonalized. This helps 518 new board support. It is applied on plat-hikey, plat-vexpress, plat-mediatek, plat-stm 519 and plat-vexpress. 520 521## Tested on 522Definitions: 523 524| Type | Meaning | 525| ---- | ------- | 526| Standard tests | The optee_test project. | 527| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.1.0.4. | 528| Hello world test | Plain hello world Trusted Application such as [this][hello_world]. | 529 530* ARM Juno Board (vexpress-juno), standard tests. 531* Foundation Models (vexpress-fvp), standard tests. 532* HiKey (hikey), standard tests. 533* MT8173 (mediatek), standard tests. 534* QEMU (vexpress-qemu), standard + extended tests. 535* STM Cannes (stm-cannes), standard + extended tests. 536 537------------------------------------------- 538 539# OP-TEE - version 0.2.0 540 541## New features 542 543### Linux Driver Refactoring 544 545Linux Driver has been refactored. It is now split in two parts: 546* optee.ko, the generic Linux driver. It contains all functionality 547 common to all backends. 548* optee_armtz.ko, a specific backend dedicated to the TrustZone optee. 549 It depends on optee.ko. 550 551Loading the TrustZone optee linux driver module is now performed using 552 553 modprobe optee_armtz 554 555Thanks to the dependency between the generic and the backend modules, optee.ko is then automatically loaded. 556 557### Misc new features 558* support PL310 lock down at TEE boot 559* add 64bits support (division / print) 560 561## Tested on 562Definitions: 563 564| Type | Meaning | 565| ---- | ------- | 566| Standard tests | The optee_test project. | 567| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.1.0.4. | 568| Hello world test | Plain hello world Trusted Application such as [this][hello_world]. | 569 570* ARM Juno Board (vexpress-juno), standard tests + extended tests. 571 572* Foundation Models (vexpress-fvp), standard + extended tests. 573 574* QEMU (vexpress-qemu), standard + extended tests. 575 576* STM Cannes (stm-cannes), standard + extended tests. 577 578 579## Issues resolved since last release 580* Fix user TA trace issue, in order each TA is able to select its own trace level 581 582 583------------------------------------------- 584#OP-TEE - version 0.1.0 585 586## New features 587Below is a summary of the most important features added, but at the end you will 588find a link that present you all commits between the current and previous 589release tag. 590 591* GlobalPlatform Client API v1.0 support. 592 593* GlobalPlatform Internal API v1.0 support. 594 595* GlobalPlatform Secure Elements v1.0 support. 596 597* Add hardware support for 598 599 * Allwinner A80, ARMv7-A. 600 601 * ARM Juno Board, ARMv8-A. 602 603 * Foundation Models, ARMv8-A. 604 605 * Fast Models, ARMv8-A. 606 607 * QEMU, ARMv7-A. 608 609 * STM Cannes, ARMv7-A. 610 611 * STM Orly2, ARMv7-A. 612 613* Add LibTomCrypt as the default software cryptographic library. 614 615* Add cryptographic abstraction layer in on secure side to ease the use of 616 other cryptographic software libraries or adding support for hardware 617 acceleration. 618 619* Extended cryptographic API with support for HKDF, Concat KDF and PBKDF2. 620 621* SHA-1 and SHA-256 ARMv8-A crypto extension implementation. 622 623* Enabled paging support in OP-TEE OS. 624 625* Add support for xtest (both standard and extended) in QEMU and FVP setup 626 scripts. 627 628* Add documentation for the OS design, cryptographic abstraction layer, secure 629 elements design, the build system, GitHub usage, key derivation extensions, 630 ARM-Trusted Firmware usage within OP-TEE and GlobalPlatform usage within 631 OP-TEE. 632 633* Integrate support for Travis CI. 634 635* [Link][github_commits_0_1_0] to a list of all commits between this and 636 previous release. 637 638 639## Tested on 640Definitions: 641 642| Type | Meaning | 643| ---- | ------- | 644| Standard tests | The optee_test project. | 645| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.0.0. | 646| Hello world test | Plain hello world Trusted Application such as [this][hello_world]. | 647 648* Allwinner A80 (plat-sunxi), hello world test. 649 650* ARM Juno Board (vexpress-juno), standard tests. 651 652* Foundation Models (plat-vexpress-fvp), standard + extended tests 653 654* QEMU (plat-vexpress-qemu), standard + extended tests (and Secure Elements 655 tested separately). 656 657* STM Cannes (plat-stm-cannes), standard + extended tests. 658 659 660## Issues resolved since last release 661N/A since this is the first release tag on OP-TEE. 662 663 664## Known issues 665* Storage is implemented, but not "Secure storage", meaning that a client 666 needs to do encrypt files on their own before storing the files. 667 668* Issue(s) open on GitHub 669 * [#95][pr95]: An error about building the test code of libtomcrypt. 670 671 * [#149][pr149]: when testing optee os with arm trusted firmware (I 672 utilized optee os tee.bin as bl32 image) on juno platform, I got an 673 error. 674 675 * [#161][pr161]: tee_svc_cryp.c lacks accessibility checks on 676 user-supplied TEE_Attributes. 677 678[hello_world]: https://github.com/jenswi-linaro/lcu14_optee_hello_world 679[github_commits_0_1_0]: https://github.com/OP-TEE/optee_os/compare/b01047730e77127c23a36591643eeb8bb0487d68...999e4a6c0f64d3177fd3d0db234107b6fb860884 680[pr95]: https://github.com/OP-TEE/optee_os/issues/95 681[pr149]: https://github.com/OP-TEE/optee_os/issues/149 682[pr161]: https://github.com/OP-TEE/optee_os/issues/161 683 684* Global Platform Device Internal Core API v1.1 685 * [#230][pr230]: Persistent object corruption support (TEE_ERROR_CORRUPT_OBJECT/_2) 686 * [#230][pr230]: Persistent object access support (TEE_ERROR_STORAGE_NOT_AVAILABLE/_2) 687