1# OP-TEE - version 3.2.0 (2018-07-04) 2 3- Link to the GitHub [release page][github_release_3_2_0]. 4- Links to the [commits][github_commits_3_2_0] and 5[pull requests][github_pr_3_2_0] merged into this release. 6 7## Known issues 8 9* HiKey960: assertion in bget create_free_block() \[memalign() self-test\] ([#2414]) 10* D02: assertion '!have_spinlock()' ([#2437]) 11 12[github_commits_3_2_0]: https://github.com/OP-TEE/optee_os/compare/3.1.0...3.2.0 13[github_pr_3_2_0]: https://github.com/OP-TEE/optee_os/pulls?q=is%3Apr+is%3Amerged+base%3Amaster+merged%3A2018-04-13..2018-07-04 14[github_release_3_2_0]: https://github.com/OP-TEE/optee_os/releases/tag/3.2.0 15[#2414]: https://github.com/OP-TEE/optee_os/issues/2414 16[#2437]: https://github.com/OP-TEE/optee_os/issues/2437 17 18# OP-TEE - version 3.1.0 (2018-04-13) 19 20- Link to the GitHub [release page][github_release_3_1_0]. 21- Links to the [commits][github_commits_3_1_0] and 22[pull requests][github_pr_3_1_0] merged into this release. 23 24[github_commits_3_1_0]: https://github.com/OP-TEE/optee_os/compare/3.0.0...3.1.0 25[github_pr_3_1_0]: https://github.com/OP-TEE/optee_os/pulls?q=is%3Apr+is%3Amerged+base%3Amaster+merged%3A2018-01-26..2018-04-13 26[github_release_3_1_0]: https://github.com/OP-TEE/optee_os/releases/tag/3.1.0 27 28# OP-TEE - version 3.0.0 (2018-01-26) 29 30[Link][github_commits_3_0_0] to a list of all commits between this release and 31the previous one (2.6.0). 32 33About backwards compatibility: Trusted Applications built with OP-TEE 2.5.0 or 34earlier will not run properly with a *debug* build of this release due 35to commit [0e1c6e8e][commit_0e1c6e8e] ("Dump call stack on TA panic"). 36Non-debug builds are not affected. 37 38## New features 39 40* New supported platforms: Armada 3700 ([#1946]), Poplar ([#1999]), 64-bit 41 support for FSL ls1012ardb ([#1941]), i.MX6SX Sabreauto ([#1974]). 42* arm32: sm: init CNTVOFF ([#2052]) 43* Debug/info/error traces: make output more compact ([#2011]) 44* tzc380: implement new functions ([#1994]) 45* Secure Data Path: add pseudo-TA to convert VA to PA (#1993]) 46* Pager: use NEON AES GCM implementation ([#1959]) 47* Crypto: add optimized AES GCM implementation using NEON ([#1949]) 48* Add support for using secure storage for TA anti-rollback ([#1928]) 49* Crypto: replace struct crypto_ops with function interface ([#1923], 50 [#1931]) 51* aosp_optee.mk: define OPTEE_BIN ([#1922]) 52* Add build option to allow concurrent execution of single-instance TAs 53 ([#1915]) 54* Pager: support for address sanitizer ([#1856]) 55* Pager: make memory between CFG_TEE_RAM_START and TEE load address usable by 56 pager ([#1826]) 57 58## Bug fixes 59 60* Fix crash in tee_mmu_final() on TA loading error ([#2092]) 61* LibTomCrypt: fix issue causing invalid output when using AES CTR with 62hardware acceleration (CFG_CRYPTO_WITH_CE) ([#2086]) 63* pl310: fix cache sync ([#2035]) 64* tzc380: do not write reserved bits ([#1994]) 65* Fix potential double free in ta_open() ([#1970]) 66* libfdt: fix undefined behaviour in fdt_offset_ptr() ([#1969]) 67* imx_wdog: fix register access ([#1966]) 68* Secure storage: fix potential memory leak after early return ([#1961]) 69* LibTomCrypt: fix double free in dsa_import() ([#1963]) 70* RPMB: fix TA independance issue in secure storage ([#1921]) 71* RPMB: return TEE_ERROR_ACCESS_CONFLICT instead of panicking when a TA 72 attempts to create an existing persistent object without the overwrite flag 73 ([#1919]) 74* PSCI: pass non-secure context to psci_system_suspend() ([#1916]) 75* Fix "Argument list too long" during "make clean" ([#1897]) 76 77## Security fixes 78 79* Mitigations and hardening against the Spectre and Meltdown vulnerabilities 80 (CVE-2017-5753, CVE-2017-5715, CVE-2017-5754). 81 82## Known issues 83 84* Secure storage (REE FS): storage size not updated after 85TEE_TruncateObjectData() ([#2094]) 86* Possible deadlock with CFG_WITH_PAGER=y when loading a TA and not enough 87page tables are available in pgt_cache ([#2080]) 88 89## Tested on 90 91The release was tested successfully on the platforms listed below. 92 93<!-- ${PLATFORM}-${PLATFORM_FLAVOR}, ordered alphabetically --> 94* d02 95* hikey 96* hikey-hikey960 97* imx-mx6ulevk 98* imx-mx7dsabresd 99* marvell-armada7k8k 100* marvell-armada3700 101* mediatek-mt8173 102* rcar-salvator_m3 103* rockchip-rk322x 104* rpi3 105* sam 106* ti 107* vexpress-juno 108* vexpress-qemu_armv8a 109* vexpress-qemu_virt 110 111[commit_0e1c6e8e]: https://github.com/OP-TEE/optee_os/commit/0e1c6e8e 112[github_commits_3_0_0]: https://github.com/OP-TEE/optee_os/compare/2.6.0...3.0.0 113[#2092]: https://github.com/OP-TEE/optee_os/pull/2092 114[#2086]: https://github.com/OP-TEE/optee_os/pull/2086 115[#2094]: https://github.com/OP-TEE/optee_os/issues/2094 116[#2080]: https://github.com/OP-TEE/optee_os/issues/2080 117[#2052]: https://github.com/OP-TEE/optee_os/pull/2052 118[#2035]: https://github.com/OP-TEE/optee_os/pull/2035 119[#2011]: https://github.com/OP-TEE/optee_os/pull/2011 120[#1999]: https://github.com/OP-TEE/optee_os/pull/1999 121[#1994]: https://github.com/OP-TEE/optee_os/pull/1994 122[#1993]: https://github.com/OP-TEE/optee_os/pull/1993 123[#1974]: https://github.com/OP-TEE/optee_os/pull/1974 124[#1970]: https://github.com/OP-TEE/optee_os/pull/1970 125[#1969]: https://github.com/OP-TEE/optee_os/pull/1969 126[#1966]: https://github.com/OP-TEE/optee_os/pull/1966 127[#1963]: https://github.com/OP-TEE/optee_os/pull/1963 128[#1961]: https://github.com/OP-TEE/optee_os/pull/1961 129[#1959]: https://github.com/OP-TEE/optee_os/pull/1959 130[#1949]: https://github.com/OP-TEE/optee_os/pull/1949 131[#1946]: https://github.com/OP-TEE/optee_os/pull/1946 132[#1941]: https://github.com/OP-TEE/optee_os/pull/1941 133[#1931]: https://github.com/OP-TEE/optee_os/pull/1931 134[#1928]: https://github.com/OP-TEE/optee_os/pull/1928 135[#1923]: https://github.com/OP-TEE/optee_os/pull/1923 136[#1922]: https://github.com/OP-TEE/optee_os/pull/1922 137[#1921]: https://github.com/OP-TEE/optee_os/pull/1921 138[#1919]: https://github.com/OP-TEE/optee_os/pull/1919 139[#1916]: https://github.com/OP-TEE/optee_os/pull/1916 140[#1915]: https://github.com/OP-TEE/optee_os/pull/1915 141[#1897]: https://github.com/OP-TEE/optee_os/pull/1897 142[#1856]: https://github.com/OP-TEE/optee_os/pull/1856 143[#1826]: https://github.com/OP-TEE/optee_os/pull/1826 144 145# OP-TEE - version 2.6.0 146 147[Link][github_commits_2_6_0] to a list of all commits between this release and 148the previous one (2.5.0). 149 150## New features 151 152* New supported platforms: Atmel SAMA5 ([#1714]), HiSilicon HiKey960 ([#1684]), 153 Rockchip RK322X ([#1666]), NXP LS1043A-RDB/LS1046A-RDB ([#1787]), Marvell 154 Armada 70x0/80x0 ([#1807]). 155* Dynamic shared memory (non-contiguous, non-secure memory can be mapped into 156 Trusted Applications VA space) ([#1631]) 157* Dump TA call stack on panic ([#1858]) 158* i.MX: PSCI reset ([#1849]) 159* plat-ti: AM43xx: suspend/resume support ([#1822]) 160* QEMU SMP support ([#1820]) 161* plat-ti: AM43xx: disable TRNG ([#1816]) 162* plat-ti: enable Secure Data Path by default ([#1815]) 163* Improve symbolize.py ([#1778], [#1767], [#1766]) 164* Early TAs (TAs linked in tee.bin) ([#1733]) 165* Suspend/resume framework for arm32 and imx7d support ([#1729]) 166* RK322X PSCI version, features and suspend support ([#1720]) 167* arm32: handle aborts in system mode ([#1703]) 168* i.MX: add SNVS SRTC support ([#1700]) 169* GCC7 support ([#1693]) 170* Improve detection of programming errors in locking code ([#1671], [#1670]) 171* Support TEE RAM size larger than page directory size ([#1669]) 172 173## Removed features 174 175* Remove TUI code ([#1842]) 176 177## Bug fixes 178 179* Add missing synchronization barrier in core_mmu_map_pages() ([#1827]) 180* Secure storage: REE FS: fix bug in error path ([#1801]) 181* ASAN bug fixes ([#1799]) 182* Fix race in core_mmu_user_mapping_is_active() ([#1785]) 183* libutee: printf() and puts() fixes, add putchar() ([#1759], [#1754]) 184* arm32: GICv3: fix FIQ masking in IRQ/ABT/SVC/UND handlers ([#1748]) 185* arm32: preserve r12 in native_intr_handler() ([#1682]) 186* arm64: fix print_kernel_stack() ([#1664]) 187* benchmark: fix core data-abort ([#1658]) 188 189## Security fixes or enhancements 190 191* crypto: fix software PRNG weaknesses 192 ([OP-TEE-2017-0001][OP-TEE-2017-0001]) ([#1843]) 193 194## Tested on 195 196The release was tested successfully on the platforms listed below. 197If a platform is not listed, it means the release was not tested on this 198platform. 199 200<!-- ${PLATFORM}-${PLATFORM_FLAVOR}, ordered alphabetically --> 201* d02 202* hikey 203* hikey-hikey960 204* imx-mx6ulevk 205* imx-mx7dsabresd 206* ls-ls1021a??? (single core) 207* ls-ls1043ardb 208* ls-ls1046ardb 209* mediatek-mt8173 210* rcar 211* rockchip-rk322x 212* rpi3 213* sam 214* stm-b2260 215* stm-cannes 216* ti-??? 217* vexpress-fvp 218* vexpress-juno 219* vexpress-qemu_armv8a 220* vexpress-qemu_virt 221 222[github_commits_2_6_0]: https://github.com/OP-TEE/optee_os/compare/2.5.0...2.6.0 223[#1858]: https://github.com/OP-TEE/optee_os/issues/1858 224[#1849]: https://github.com/OP-TEE/optee_os/issues/1849 225[#1843]: https://github.com/OP-TEE/optee_os/issues/1843 226[#1842]: https://github.com/OP-TEE/optee_os/issues/1842 227[#1827]: https://github.com/OP-TEE/optee_os/issues/1827 228[#1822]: https://github.com/OP-TEE/optee_os/issues/1822 229[#1820]: https://github.com/OP-TEE/optee_os/issues/1820 230[#1816]: https://github.com/OP-TEE/optee_os/issues/1816 231[#1815]: https://github.com/OP-TEE/optee_os/issues/1815 232[#1807]: https://github.com/OP-TEE/optee_os/issues/1807 233[#1801]: https://github.com/OP-TEE/optee_os/issues/1801 234[#1799]: https://github.com/OP-TEE/optee_os/issues/1799 235[#1787]: https://github.com/OP-TEE/optee_os/issues/1787 236[#1785]: https://github.com/OP-TEE/optee_os/issues/1785 237[#1778]: https://github.com/OP-TEE/optee_os/issues/1778 238[#1767]: https://github.com/OP-TEE/optee_os/issues/1767 239[#1766]: https://github.com/OP-TEE/optee_os/issues/1766 240[#1759]: https://github.com/OP-TEE/optee_os/issues/1759 241[#1754]: https://github.com/OP-TEE/optee_os/issues/1754 242[#1748]: https://github.com/OP-TEE/optee_os/issues/1748 243[#1733]: https://github.com/OP-TEE/optee_os/issues/1733 244[#1729]: https://github.com/OP-TEE/optee_os/issues/1729 245[#1720]: https://github.com/OP-TEE/optee_os/issues/1720 246[#1714]: https://github.com/OP-TEE/optee_os/issues/1714 247[#1703]: https://github.com/OP-TEE/optee_os/issues/1703 248[#1700]: https://github.com/OP-TEE/optee_os/issues/1700 249[#1693]: https://github.com/OP-TEE/optee_os/issues/1693 250[#1684]: https://github.com/OP-TEE/optee_os/issues/1684 251[#1682]: https://github.com/OP-TEE/optee_os/issues/1682 252[#1671]: https://github.com/OP-TEE/optee_os/issues/1671 253[#1670]: https://github.com/OP-TEE/optee_os/issues/1670 254[#1669]: https://github.com/OP-TEE/optee_os/issues/1669 255[#1666]: https://github.com/OP-TEE/optee_os/issues/1666 256[#1664]: https://github.com/OP-TEE/optee_os/issues/1664 257[#1658]: https://github.com/OP-TEE/optee_os/issues/1658 258[#1631]: https://github.com/OP-TEE/optee_os/issues/1631 259[OP-TEE-2017-0001]: https://www.op-tee.org/security-advisories/ 260 261# OP-TEE - version 2.5.0 262 263[Link][github_commits_2_5_0] to a list of all commits between this release and 264the previous one (2.4.0). 265 266## New features 267 268* New supported platform: i.MX7D ([#1639]) 269* Secure storage: anti-rollback protection for REE FS using RPMB FS ([#1630]) 270* Assign non-secure DDR configuration from DT if CFG_DT=y ([#1623]) 271* Add new image format: split image into three separate binaries suitable for 272 upcoming ARM Trusted Firmware ([#1589]). 273* Make alignment check configurable ([#1586]) 274* drivers: add TZC380 driver ([#1578]) 275* plat-imx: PSCI CPU off ([#1577]) 276* 64-bit paging on QEMU v8 and HiKey ([#1575], [#1592]) 277* Benchmark framework ([#1365]) 278* Dump call stack of user TAs on abort ([#1552]) 279* plat-hikey: enable Secure Data Path ([#1440]) 280* Add interface to load and decrypt/authenticate user TAs ([#1513]) 281* plat-ti: add secure paging support ([#1493]) 282* plat-ti: add OTP hardware key support ([#1492]) 283* Support ARM GICv3 ([#1465]) 284 285## Removed features 286 287* stm-orly2 is not supported anymore ([#1650]) 288* Remove secure storage based on SQL FS (`CFG_SQL_FS=y`) ([#1490]) 289* Remove support for mapping user TAs with 1 MiB or 2 MiB granularity 290 (`CFG_SMALL_PAGE_USER_TA=n`) ([#1559]). TAs are always mapped using small 291 pages. 292 293## Bug fixes 294 295* Reduce size of non-pageable code ([#1621]) 296* Ignore `TA_FLAG_MULTI_SESSION` and `TA_FLAG_INSTANCE_KEEP_ALIVE` when 297 `TA_FLAG_SINGLE_INSTANCE` is not set ([#1574]) 298* libutee: remove buffering for AES GCM (PR#1573) and AES CTR ([#1580]) 299* Fix ROUNDUP()/ROUNDDOWN() macros ([#1519]) 300* Do not touch other bits in GICD_CTLR ([#1508]) 301* Fix build issue with `DEBUG=y` and `CFG_TEE_CORE_LOG_LEVEL=0` ([#1502]) 302* crypto: do not restrict hash size when algorithm is ECDSA ([#1497]) 303 304## Security fixes or enhancements 305 306- crypto: fix RSA key leakage after fault injection attack 307 ([OP-TEE-2016-0003][OP-TEE-2016-0003]) ([#1610]) 308* crypto: fix RSA key leakage after side channel attack 309 ([OP-TEE-2016-0002][OP-TEE-2016-0002]) ([#1610]) 310* Make pager aliased pages not always writable ([#1551]) 311* Support for no-exec RO and RW data ([#1459], [#1550]) 312 313## New issues 314 315* armv7: some platform-specific code (`plat_cpu_reset_early()`) overwrites 316SCTLR bits configured by generic code. This affects alignment checks (`SCTLR.A`) 317and write-implies-no-exec (`SCTLR.WXN`, `SCTLR.UWXN`), which can therefore not 318be configured via the compile-time `CFG_` variables. 319* armv7: plat-imx: Cortex-A9 cores should enable branch prediction (`SCLTR.Z`) 320for improved performance. 321* [#1656] qemu_armv8a: init hangs when secure data path and pager are both 322 enabled. 323 324## Tested on 325 326In the list below, _standard_ means that the `xtest` program passed with 327its default configuration, while _extended_ means it was run successfully 328with the additional GlobalPlatform™ TEE Initial Configuration Test Suite 329v1.1.0.4. 330 331If a platform is not listed, it means the release was not tested on this 332platform. 333 334<!-- ${PLATFORM}-${PLATFORM_FLAVOR}, ordered alphabetically --> 335* d02: extended 336* hikey: extended 337* imx-mx6ulevk: standard 338* imx-mx6ullevk: standard 339* imx-mx7dsabresd: standard 340* ls-ls1021atwr: standard 341* mediatek-mt8173: standard 342* rcar-h3: standard 343* rpi3: standard 344* stm-b2260: extended 345* stm-cannes: extended 346* ti-am43xx: standard 347* ti-am57xx: standard 348* ti-dra7xx: standard 349* vexpress-fvp: standard 350* vexpress-juno: standard 351* vexpress-qemu_armv8a: standard 352* vexpress-qemu_virt: standard 353 354[github_commits_2_5_0]: https://github.com/OP-TEE/optee_os/compare/2.4.0...2.5.0-rc1 355[#1656]: https://github.com/OP-TEE/optee_os/issues/1656 356[#1650]: https://github.com/OP-TEE/optee_os/pull/1650 357[#1639]: https://github.com/OP-TEE/optee_os/pull/1639 358[#1630]: https://github.com/OP-TEE/optee_os/pull/1630 359[#1623]: https://github.com/OP-TEE/optee_os/pull/1623 360[#1621]: https://github.com/OP-TEE/optee_os/pull/1621 361[#1610]: https://github.com/OP-TEE/optee_os/pull/1610 362[#1592]: https://github.com/OP-TEE/optee_os/pull/1592 363[#1589]: https://github.com/OP-TEE/optee_os/pull/1589 364[#1586]: https://github.com/OP-TEE/optee_os/pull/1586 365[#1580]: https://github.com/OP-TEE/optee_os/pull/1580 366[#1578]: https://github.com/OP-TEE/optee_os/pull/1578 367[#1577]: https://github.com/OP-TEE/optee_os/pull/1577 368[#1574]: https://github.com/OP-TEE/optee_os/pull/1574 369[#1559]: https://github.com/OP-TEE/optee_os/pull/1559 370[#1551]: https://github.com/OP-TEE/optee_os/pull/1551 371[#1550]: https://github.com/OP-TEE/optee_os/pull/1550 372[#1519]: https://github.com/OP-TEE/optee_os/pull/1519 373[#1502]: https://github.com/OP-TEE/optee_os/pull/1502 374[#1365]: https://github.com/OP-TEE/optee_os/pull/1365 375[#1552]: https://github.com/OP-TEE/optee_os/pull/1552 376[#1513]: https://github.com/OP-TEE/optee_os/pull/1513 377[#1508]: https://github.com/OP-TEE/optee_os/pull/1508 378[#1493]: https://github.com/OP-TEE/optee_os/pull/1493 379[#1497]: https://github.com/OP-TEE/optee_os/pull/1497 380[#1492]: https://github.com/OP-TEE/optee_os/pull/1492 381[#1490]: https://github.com/OP-TEE/optee_os/pull/1490 382[#1465]: https://github.com/OP-TEE/optee_os/pull/1465 383[#1459]: https://github.com/OP-TEE/optee_os/pull/1459 384[#1440]: https://github.com/OP-TEE/optee_os/pull/1440 385[OP-TEE-2016-0003]: https://www.op-tee.org/security-advisories/ 386[OP-TEE-2016-0002]: https://www.op-tee.org/security-advisories/ 387 388# OP-TEE - version 2.4.0 389 390[Link][github_commits_2_4_0] to a list of all commits between this release and 391the previous one (2.3.0). 392 393Please note: this release is API-compatible with the previous one, but the 394Secure Storage internal format for the REE and SQL FS is not compatible due to 395commits [a238b74][commit_a238b74] ("core: REE FS: use the new hash tree 396interface") and [44e900e][commit_44e900e] ("core: SQL FS: use the new hash tree 397interface"). 398 399## New features 400 401* Add porting guidelines 402 403* Add support for Secure Data Path which allows Client and Trusted Applications 404 to share references to secure memory 405 406* New supported platform: Texas Instruments AM57xx (`PLATFORM=ti-am57xx`) 407 408* ARMv7-A: add support for platform services in secure monitor and add these 409 services for the DRA7xx platform 410 411* SPI framework and PL022 driver cleanup and improvements 412 413* Use CNTPCT (when available) to add entropy to the software PRNG 414 415* Add GlobalPlatform Socket API for UDP and TCP (IPv4 and IPv6) 416 417* DRA7: add TRNG driver, enable GICv2 driver 418 419* Support load address larger than 4G 420 421* libutee: preserve error code when calling TEE_Panic() for easier 422 troubleshooting 423 424* Support TA profiling with gprof (-pg compiler switch) 425 426* Optimize the ELF loader for TAs when pager is enabled 427 428* Update documentation 429 430* Add paged secure shared memory that can be transferred between TAs as 431 needed 432 433* Introduce MOBJ abstraction 434 435* i.MX6: add PSCI "on" function 436 437* arm32: introduce PSCI framework 438 439## Bug fixes 440 441* Secure storage: improve integrity checking of the REE and SQL filesystems by 442 adding a hash tree on the internal data structures. Any external modification 443 is detected, except full rollback. Fixes [#1188][issue1188]. 444 445* The linux driver will set the 'privileged' flag (TEE_GEN_CAP_PRIVILEGED) on 446 the device intended for use by tee-supplicant. Fixes [#1199][issue1199]. 447 448* RPMB: don't try to program the RPMB key by default 449 450* Fix "make clean" error cases 451 452* Fix issue when resetting persistent storage enumerator [#1332][issue1332] 453 454* Fix TA panic when doing AES CTS with specific buffer sizes 455 [#1203][issue1203]. 456 457## Known issues 458 459* On RPi3 xtest sometimes stall (rcu_sched self-detected stall on CPU) [#1353][issue1353] 460* For multi-core PSCI support is to be added for ls1021atwr in OP-TEE. 461* USB keyboard cannot be used to stop the u-boot timeout ([build issue131]). 462* Travis service (build.git) seems unstable from time to time. 463 464## Tested on 465 466In the list below, _standard_ means that the `xtest` program passed with 467its default configuration, while _extended_ means it was run successfully 468with the additional GlobalPlatform™ TEE Initial Configuration Test Suite 469v1.1.0.4. 470 471If a platform is not listed, it means the release was not tested on this 472platform. 473 474<!-- ${PLATFORM}-${PLATFORM_FLAVOR}, ordered alphabetically --> 475* d02: extended 476* hikey: extended 477* imx-mx6ulevk: standard 478* ls-ls1021atwr: standard (single core) 479* mediatek-mt8173: standard 480* rcar-h3: standard 481* rpi3: standard 482* stm-b2260: extended 483* ti-dra7xx: standard 484* vexpress-fvp: standard 485* vexpress-juno: standard 486* vexpress-qemu_armv8a: standard 487* vexpress-qemu_virt: standard 488* zynqmp-zc1751_dc1: standard 489* zynqmp-zc1751_dc2: standard 490* zynqmp-zcu102: standard 491 492[github_commits_2_4_0]: https://github.com/OP-TEE/optee_os/compare/2.3.0...2.4.0 493[issue1332]: https://github.com/OP-TEE/optee_os/issues/1332 494[issue1353]: https://github.com/OP-TEE/optee_os/issues/1353 495[build issue131]: https://github.com/OP-TEE/build/issues/131 496[commit_a238b74]: https://github.com/OP-TEE/optee_os/commit/a238b744b1b3 497[commit_44e900e]: https://github.com/OP-TEE/optee_os/commit/44e900eabfc1 498 499# OP-TEE - version 2.3.0 500 501[Link][github_commits_2_3_0] to a list of all commits between this release and 502the previous one (2.2.0). 503 504Please note: this release is API-compatible with the previous one, but the 505Secure Storage internal format for the REE FS is not compatible due to commit 506[361fb3e][commit_361fb3e] ("core: REE FS: use a single file per object"). 507 508[commit_361fb3e]: https://github.com/OP-TEE/optee_os/commit/361fb3e 509 510## New features 511 512* New supported platform: Xilinx Zynq 7000 ZC702 (`PLATFORM=zynq7k-zc702`) 513 514* Add debug assertions to spinlocks and mutexes 515 516* Add more CP15 register access macros for Cortex-A9 517 518* ARMv7-A: redesign secure monitor to make it easier to register services 519 520* ARMv7-A: cleanup boot arguments 521 522* libutee: extend `TEE_CheckMemoryAccessRights()` with 523 `TEE_MEMORY_ACCESS_SECURE` and `TEE_MEMORY_ACCESS_NONSECURE` 524 525* plat-hikey: enable SPI by default and add sample test code 526 527* Consider `CFLAGS_ta_arm64` and `CFLAGS_ta_arm32` when building TAs 528 529* Secure storage refactoring 530 - Simplify interface with tee-supplicant. Minimize round trips with normal 531 world, especially by adding a cache for FS RPC payload data. 532 - REE FS: use a single file per object, remove block cache. 533 534* Print call stack in panic() 535 536## Bug fixes 537 538* Fix UUID encoding when communicating with normal world (use big endian 539 mode instead of native endianness). Related to this, the string format 540 for UUIDs has changed in tee-supplicant, so that TA file names now follow 541 the format defined in RFC4122 (a missing hyphen was added). The old format 542 is still supported, but deprecated, and will likely be removed with the 543 next major release. 544 545* Drop write permission to non-writable ELF segments after TA loading is 546 complete. 547 548* mm: fix confusing memory mapping debug traces 549 550* plat-ti: fix issues with MMU mapping 551 552* crypto: fix clearing of big numbers 553 554* build: allow spaces and double quotes in CFG_ variables 555 556* mm: use paddr_t to support both 32- and 64-bit architectures properly. 557 Resolves 32-bit truncation error when pool is at top of 32 bit address 558 space on 64-bit architecture. 559 560* plat-stm: support pager. Fix pager on ARMv7-A SMP boards. 561 562* Fix debug output of Trusted Applications (remove "ERROR: TEE-CORE:" prefix) 563 564* Do not consider TA memref parameters as TA private memory 565 566* crypto: fix `cipher_final()` which would not call `cbc_done()` for CBC_MAC 567 algorithms 568 569* fix for 16-way PL310 570 571* arm32: fix call stack unwinding (`print_stack()`) 572 573* arm32: fix spinlock assembly code 574 575* plat-stm, plat-imx: fix SCR initalization 576 577* Fix user L1 MMU entries calculation (non-LPAE), allowing TTBCR.N values 578 other than 7. 579 580* mtk-mt8173: fix panic caused by incorrect size of SHMEM 581 582* plat-stm: fix RNG driver (non-flat mapping) 583 584## Known issues 585 586* New issues open on GitHub 587 * [#1203][issue1203] AES-CTS mode will fail when inlen=0x100, in_incr=0x80 588 * [#1199][issue1199] Both tee and teepriv reported GlobalPlatform compliant 589 * [#1188][issue1188] Secure storage (SQL FS and REE FS): blocks not tied to 590 current meta header 591 * [#1172][issue1172] paddr_t should be larger than 32 bits when 592 CFG_WITH_LPAE is enabled 593 594## Tested on 595 596In the list below, _standard_ means that the `xtest` program passed with 597its default configuration, while _extended_ means it was run successfully 598with the additional GlobalPlatform™ TEE Initial Configuration Test Suite 599v1.1.0.4. 600 601If a platform is not listed, it means the release was not tested on this 602platform. 603 604<!-- ${PLATFORM}-${PLATFORM_FLAVOR}, ordered alphabetically --> 605* d02: extended 606* hikey: extended 607* imx-mx6ulevk: standard 608* ls-ls1021atwr: standard 609* mediatek-mt8173: standard 610* rcar-h3: standard 611* rpi3: standard 612* stm-b2260: extended 613* stm-cannes: extended 614* ti-dra7xx: standard 615* vexpress-fvp: standard 616* vexpress-juno: standard 617* vexpress-qemu_armv8a: standard 618* vexpress-qemu_virt: extended 619* zynqmp-zcu102: standard 620 621[github_commits_2_3_0]: https://github.com/OP-TEE/optee_os/compare/2.2.0...2.3.0 622[issue1172]: https://github.com/OP-TEE/optee_os/issues/1172 623[issue1188]: https://github.com/OP-TEE/optee_os/issues/1188 624[issue1199]: https://github.com/OP-TEE/optee_os/issues/1199 625[issue1203]: https://github.com/OP-TEE/optee_os/issues/1203 626 627# OP-TEE - version 2.2.0 628 629[Link][github_commits_2_2_0] to a list of all commits between this release and 630the previous one (2.1.0). 631 632Please note: this release is API-compatible with the previous one, but the 633Secure Storage internal format is not compatible due to commit 634[fde4a75][commit_fde4a75] ("storage: encrypt the FEK with a TA-specific key"). 635 636[commit_fde4a75]: https://github.com/OP-TEE/optee_os/commit/fde4a75 637 638## New features 639 640* New supported platforms: 641 * Freescale i.MX6 Quad SABRE Lite & SD 642 * HiSilicon D02 643 * Raspberry Pi3 644 * Renesas RCAR H3 645 * STMicroelectronics b2260 - h410 646 647* Pager: Support paging of read/write pages by encrypting them with AES-GCM. 648 Support paging of user TAs. Add global setting for TZSRAM size 649 (CFG_CORE_TZSRAM_EMUL_SIZE), defaults to 300K. 650 651* Support for more than 8 CPU cores 652 653* Added SPI framework and PL022 driver 654 655* GPIO: framework supports multiple instances, PL061 driver now has get/set 656 interrupt and mode control functions 657 658* Secure storage: Encrypt the File Encryption Key with a TA-specific key for 659 better TA isolation. Add build-time and run-time support for multiple storage 660 backends. Add SQLite backend. 661 662* Trusted User Interface: some code is introduced to support the implementation 663 of TUI. This includes: a generic framebuffer driver, display and serial 664 abstractions, and drivers for PL111 (LCD) / PL050 (KMI) / TZC400 and PS2 665 mouse. 666 667* AES acceleration using ARMv8-A Cryptographic Extensions instructions is 668 now supported in AArch32 mode 669 670* Add support for GCC flags: -fsanitize=undefined and -fsanitize=kernel-address 671 672* Use a global setting for core heap size (CFG_CORE_HEAP_SIZE), 64K by default. 673 674* Add macros to unwind and print the call stack of TEE core 675 676* Libtomcrypt: sync with the latest `develop` branch. 677 678* The Trusted Application SDK (ta_dev_kit.mk) can produce libraries (.a) 679 680* Rework assertions and TEE core panics and properly honor NDEBUG 681 682## Bug fixes 683 684* Fix incorrect algorithm passed to cipher.final() 685 686* scripts: support Python 2.x and 3.x 687 688* Secure storage: Add proper locking to support concurrent access. Fix sign 689 extension bug with offset parameter of syscall storage_obj_seek which could 690 cause errors in Aarch32 mode. Fix reading beyond end of file. 691 692* Aarch64: mask all maskable exceptions before doing a normal return from call. 693 694* Device Tree: add no-map property to OP-TEE node in reserved-memory. 695 696* LibTomcrypt: fix CVE-2016-6129 697 698## Known issues 699 700* New issues open on GitHub 701 * [#1093][issue1093] rcar-h3: xtest 6010 hangs 702 * [#1092][issue1092] rcar-h3: xtest 4010 fails 703 * [#1081][issue1081] Bad mapping of TA secure memref parameters 704 * [#1071][issue1071] __data_end may not correctly represent text start position when using CFG_WITH_PAGER 705 * [#1069][issue1069] armv7/Aarch32: crash in stack unwind (DPRINT_STACK()) 706 707## Tested on 708 709In the list below, _standard_ means that the `xtest` program passed with 710its default configuration, while _extended_ means it was run successfully 711with the additional GlobalPlatform™ TEE Initial Configuration Test Suite 712v1.1.0.4. 713 714If a platform is not listed, it means the release was not tested on this 715platform. 716 717<!-- ${PLATFORM}-${PLATFORM_FLAVOR}, ordered alphabetically --> 718* d02: extended 719* hikey: extended 720* imx-mx6qsabrelite: standard 721* imx-mx6qsabresd: standard 722* rcar-h3: standard, pass except issues [#1092][issue1092] and [#1093][issue1093] 723* rpi3: standard 724* stm-b2260: standard 725* stm-cannes: standard 726* ti-dra7xx: standard 727* vexpress-fvp: standard 728* vexpress-juno: standard 729* vexpress-qemu_armv8a: standard 730* vexpress-qemu_virt: extended 731* zynqmp-zcu102: standard 732 733[github_commits_2_2_0]: https://github.com/OP-TEE/optee_os/compare/2.1.0...2.2.0 734[issue1081]: https://github.com/OP-TEE/optee_os/issues/1081 735[issue1071]: https://github.com/OP-TEE/optee_os/issues/1071 736[issue1069]: https://github.com/OP-TEE/optee_os/issues/1069 737[issue1092]: https://github.com/OP-TEE/optee_os/issues/1092 738[issue1093]: https://github.com/OP-TEE/optee_os/issues/1093 739 740# OP-TEE - version 2.1.0 741 742## New features 743 744* New supported platforms: 745 * Xilinx Zynq UltraScale+ MPSOC 746 * Spreadtrum SC9860 747 748* GCC5 support 749 750* Non Linear Mapping support: In OP-TEE kernel mode, the physical to virtual 751 addresses was linear until this release, meaning the virtual addresses 752 were equal to the physical addresses. This is no more the case in this 753 release. 754 755* Font rendering routines have been introduced in order to ease an 756 implementation of Trusted UI. 757 758* File Storage: Possibility to use the normal world filesystem and the RPMB 759 implementations simultaneously. 760 761* AOSP: There is a [local manifest][aosp_local_manifest] to build OP-TEE into an AOSP build, running on HiKey. 762 Please refer to the README in that repo for instructions. 763 764* OpenEmbedded: In addition to the makefile-based build described in the optee_os README, there is an 765 [OpenEmbedded-based build][oe_build] that supports Qemu (32-bit), FVP (64-bit), and HiKey (64-bit). 766 Please refer to the README in that repo for instructions. 767 768* [Link][github_commits_2_1_0] to a list of all commits between this and 769 previous release. 770 771 772## Tested on 773Definitions: 774 775| Type | Meaning | 776| ---- | ------- | 777| Standard tests | The [optee_test][optee_test] project. | 778| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.1.0.4. | 779 780* ARM Juno Board (vexpress-juno), standard. 781* Foundation Models (vexpress-fvp), standard tests + extended tests, 782 using FVP ARM V8 Foundation Platformr0p0 (platform build 10.0.37) 783* FSL i.MX6 UltraLite EVK (imx), standard. 784* FSL ls1021a (ls-ls1021atwr), standard tests. 785* HiKey (hikey), standard + extended tests. 786* QEMU (vexpress-qemu), standard + extended tests. 787* Xilinx Zynq UltraScale+ MPSOC, standard tests 788 789Note that the following platform has not been tested: 790* MTK8173-EVB (mediatek-mt8173) 791 792 793## Known issues 794* Issue(s) open on GitHub 795 * [#868][pr868]: python-wand font generation sometimes times out 796 * [#863][pr863]: "double free or corruption" error when building optee_os 797 * [#858][pr858]: UUIDs in binary format have wrong endinanness 798 * [#857][pr857]: Formatting of UUIDs is incorrect 799 * [#847][pr847]: optee_os panic(TEE-CORE: Assertion) 800 * [#838][pr838]: TUI font rendering is _very_ slow 801 * [#814][pr814]: Persistent objects : save informations after close 802 * [#665][pr665]: xtest 1013 stalled on HiKey when log levels are 4 and optee_os is on its own UART 803 * [#506][pr506]: tee-supplicant panic & ta panic 804 805[github_commits_2_1_0]: https://github.com/OP-TEE/optee_os/compare/2.0.0...2.1.0 806[pr868]: https://github.com/OP-TEE/optee_os/issues/868 807[pr863]: https://github.com/OP-TEE/optee_os/issues/863 808[pr858]: https://github.com/OP-TEE/optee_os/issues/858 809[pr857]: https://github.com/OP-TEE/optee_os/issues/857 810[pr847]: https://github.com/OP-TEE/optee_os/issues/847 811[pr838]: https://github.com/OP-TEE/optee_os/issues/838 812[pr814]: https://github.com/OP-TEE/optee_os/issues/814 813[pr665]: https://github.com/OP-TEE/optee_os/issues/665 814[aosp_local_manifest]: https://github.com/linaro-swg/optee_android_manifest 815[oe_build]: https://github.com/linaro-swg/oe-optee 816 817# OP-TEE - version 2.0.0 818 819## New features 820 821* Generic driver: A new generic TEE driver is in the process of being 822 [upstreamed][gendrv_v9]. 823 In this release, [OP-TEE/optee_linuxdriver][optee_linuxdriver] is no more used. 824 Instead, linux v4.5 is being patched using the proposed Generic TEE Driver, 825 as it can be found in [https://github.com/linaro-swg/linux/tree/optee][linux_optee] 826 827* RPMB support: Secure Storage can now use Replay Protected Memory Block (RPMB) partition 828 of an eMMC device. Check the [full documentation][rpmb_doc] 829 830* Hard-float ABI is now available. 831 832* [Link][github_commits_2_0_0] to a list of all commits between this and 833 previous release. 834 835 836## Tested on 837Definitions: 838 839| Type | Meaning | 840| ---- | ------- | 841| Standard tests | The [optee_test][optee_test] project. | 842| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.1.0.4. | 843 844* ARM Juno Board (vexpress-juno), standard. 845* Foundation Models (vexpress-fvp), standard tests + extended tests, 846 using FVP ARM V8 Foundation Platformr0p0 (platform build 9.5.40) 847* FSL ls1021a (ls-ls1021atwr), standard. 848* HiKey (hikey), standard. 849* MTK8173-EVB (mediatek-mt8173), standard. 850* QEMU (vexpress-qemu), standard + extended tests. 851* STM Cannes (stm-cannes), standard + extended tests. 852 853## Known issues 854* Issue(s) open on GitHub 855 * [#40][prld40] BUG_ON() when re-using RPC buffer to tee-supplicant 856 * [#506][pr506]: tee-supplicant panic & ta panic 857 858[github_commits_2_0_0]: https://github.com/OP-TEE/optee_os/compare/1.1.0...2.0.0 859[rpmb_doc]: https://github.com/OP-TEE/optee_os/blob/master/documentation/secure_storage_rpmb.md 860[optee_linuxdriver]: https://github.com/OP-TEE/optee_linuxdriver 861[gendrv_v9]: https://lkml.org/lkml/2016/4/1/205 862[linux_optee]: https://github.com/linaro-swg/linux/tree/optee 863 864 865# OP-TEE - version 1.1.0 866 867 868## New features 869 870* Softfloat library: floating point support is now available in 32bits TA. 871 872* Support running 64-bits TA: on ARMv8-A platform, TA can be compiled in 873 AArch32 and/or in AArch64 in case the core is compiled in AArch64. 874 An example can be found in HiKey configuration file. Using the following 875 excerpt code, the user TA libraries are compiled in both AArch32 and 876 AArch64, and can be found in `out/arm-plat-hikey/export-ta_arm32` and 877 `out/arm-plat-hikey/export-ta_arm64` 878 879``` 880 ta-targets = ta_arm32 881 ta-targets += ta_arm64 882``` 883 884* Concurrent TA support: multiple TA can run in parallel on 885 several cores. 886 887* New tests added in xtest test suite: concurrent TA (xtest 1013), 888 floating point tests (xtest 1006 and os_test TA) and corruption 889 file storage (xtest 20000) 890 891* [Link][github_commits_1_1_0] to a list of all commits between this and 892 previous release. 893 894 895## Tested on 896Definitions: 897 898| Type | Meaning | 899| ---- | ------- | 900| Standard tests | The [optee_test][optee_test] project. | 901| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.1.0.4. | 902| Hello world test | Plain hello world Trusted Application such as [this][hello_world]. | 903 904* Foundation Models (vexpress-fvp), standard tests + extended tests, 905 using FVP ARM V8 Foundation Platformr0p0 (platform build 9.5.40) 906* HiKey (hikey), standard + extended tests. 907* MT8173 (mediatek), standard tests. 908* QEMU (vexpress-qemu), standard + extended tests. 909* STM Cannes (stm-cannes), standard + extended tests. 910 911## Known issues 912* Secure Storage is implemented, but note that anti-rollback protection 913 is not implemented yet. 914 915* Issue(s) open on GitHub 916 * [#40][prld40] BUG_ON() when re-using RPC buffer to tee-supplicant 917 * [#296][pr296]: Connecting RPMB to the storage APIs. 918 * [#493][pr493]: setup_juno_optee: unable to find pre-built binaries 919 * [#506][pr506]: tee-supplicant panic & ta panic 920 921[prld40]: https://github.com/OP-TEE/optee_linuxdriver/issues/40 922[pr506]: https://github.com/OP-TEE/optee_os/issues/506 923[github_commits_1_1_0]: https://github.com/OP-TEE/optee_os/compare/1.0.1...1.1.0 924 925 926 927# OP-TEE - version 1.0.0 928 929OP-TEE is now maintained by Linaro. Contributors do not need to 930sign a CLA anymore, but must follow the rules of the [DCO][DCO] 931(Developer Certificate of Origin) instead. 932 933 934## New features 935 936* Add hardware support for Texas Instruments DRA7xx, ARMv7 (plat-ti) 937 938* GlobalPlatform™ TEE Internal Core API Specification v1.1, 939 including ECC algorithms. 940 941* Secure Storage: Files stored by the REE are now encrypted. Operations 942 are made atomic in order to prevent inconsistencies in case of errors 943 during the storage operations. [Slides][LCStorage] describing the 944 Secure Storage have been presented at the Linaro Connect SFO15. 945 946* Change of format of the Trusted Applications: they follow a 947 [signed ELF format][elf] 948 949* Rework thread [synchronization][synchro] in optee_os. 950 951* Use of ARMv8 native cryptographic support. 952 953* [OP-TEE/optee_test][optee_test] test suite is released. 954 955* Introduce [OP-TEE/manifest][manifest] and [OP-TEE/build][build] 956 to setup and build QEMU, FVP, HiKey and Mediatek platforms. Setup scripts 957 that used to be in optee_os have been removed, except for Juno board. 958 959* [Link][github_commits_1_0_0] to a list of all commits between this and 960 previous release. 961 962 963## Tested on 964Definitions: 965 966| Type | Meaning | 967| ---- | ------- | 968| Standard tests | The [optee_test][optee_test] project. | 969| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.1.0.4. | 970| Hello world test | Plain hello world Trusted Application such as [this][hello_world]. | 971 972* ARM Juno Board (vexpress-juno), standard + extended tests. 973* Foundation Models (vexpress-fvp), standard tests. 974* HiKey (hikey), standard + extended tests. 975* MT8173 (mediatek), standard tests. 976* QEMU (vexpress-qemu), standard + extended tests. 977* STM Cannes (stm-cannes), standard + extended tests. 978 979## Known issues 980* Secure Storage is implemented, but note that anti-rollback protection 981 is not implemented yet. 982 983* Issue(s) open on GitHub 984 * [#210][pr210]: libteec.so 32-bit does not communicate well 985 with 64-bit kernel module 986 * [#296][pr296]: Connecting RPMB to the storage APIs. 987 * [#493][pr493]: setup_juno_optee: unable to find pre-built binaries 988 * [#494][pr494]: HiKey: xtest 7671 fails (1.0.0-rc2) 989 990[pr210]: https://github.com/OP-TEE/optee_os/issues/210 991[pr296]: https://github.com/OP-TEE/optee_os/issues/296 992[pr493]: https://github.com/OP-TEE/optee_os/issues/493 993[pr494]: https://github.com/OP-TEE/optee_os/issues/494 994[github_commits_1_0_0]: https://github.com/OP-TEE/optee_os/compare/0.3.0...1.0.0 995[DCO]: https://github.com/OP-TEE/optee_os/blob/master/Notice.md#contributions 996[LCStorage]: http://www.slideshare.net/linaroorg/sfo15503-secure-storage-in-optee 997[synchro]: https://github.com/OP-TEE/optee_os/blob/master/documentation/optee_design.md#4-thread-handling 998[elf]: https://github.com/OP-TEE/optee_os/blob/master/documentation/optee_design.md#format 999[optee_test]: https://github.com/OP-TEE/optee_test 1000[manifest]: https://github.com/OP-TEE/manifest 1001[build]: https://github.com/OP-TEE/build 1002 1003 1004 1005# OP-TEE - version 0.3.0 1006 1007## New features 1008 1009* Add hardware support for 1010 * Mediatek MT8173 Board, ARMv8-A (plat-mediatek) 1011 * Hisilicon HiKey Board, ARMv8-A (plat-hikey) 1012* AArch64 build of optee_os is now possible through the configuration `CFG_ARM64_core=y` 1013* Secure Storage: Data can be encrypted prior to their storage in the non-secure. 1014 Build is configured using `CFG_ENC_FS=y` 1015* A generic boot scheme can be used. Boot configuration is commonalized. This helps 1016 new board support. It is applied on plat-hikey, plat-vexpress, plat-mediatek, plat-stm 1017 and plat-vexpress. 1018 1019## Tested on 1020Definitions: 1021 1022| Type | Meaning | 1023| ---- | ------- | 1024| Standard tests | The optee_test project. | 1025| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.1.0.4. | 1026| Hello world test | Plain hello world Trusted Application such as [this][hello_world]. | 1027 1028* ARM Juno Board (vexpress-juno), standard tests. 1029* Foundation Models (vexpress-fvp), standard tests. 1030* HiKey (hikey), standard tests. 1031* MT8173 (mediatek), standard tests. 1032* QEMU (vexpress-qemu), standard + extended tests. 1033* STM Cannes (stm-cannes), standard + extended tests. 1034 1035------------------------------------------- 1036 1037# OP-TEE - version 0.2.0 1038 1039## New features 1040 1041### Linux Driver Refactoring 1042 1043Linux Driver has been refactored. It is now split in two parts: 1044* optee.ko, the generic Linux driver. It contains all functionality 1045 common to all backends. 1046* optee_armtz.ko, a specific backend dedicated to the TrustZone optee. 1047 It depends on optee.ko. 1048 1049Loading the TrustZone optee linux driver module is now performed using 1050 1051 modprobe optee_armtz 1052 1053Thanks to the dependency between the generic and the backend modules, optee.ko is then automatically loaded. 1054 1055### Misc new features 1056* support PL310 lock down at TEE boot 1057* add 64bits support (division / print) 1058 1059## Tested on 1060Definitions: 1061 1062| Type | Meaning | 1063| ---- | ------- | 1064| Standard tests | The optee_test project. | 1065| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.1.0.4. | 1066| Hello world test | Plain hello world Trusted Application such as [this][hello_world]. | 1067 1068* ARM Juno Board (vexpress-juno), standard tests + extended tests. 1069 1070* Foundation Models (vexpress-fvp), standard + extended tests. 1071 1072* QEMU (vexpress-qemu), standard + extended tests. 1073 1074* STM Cannes (stm-cannes), standard + extended tests. 1075 1076 1077## Issues resolved since last release 1078* Fix user TA trace issue, in order each TA is able to select its own trace level 1079 1080 1081------------------------------------------- 1082# OP-TEE - version 0.1.0 1083 1084## New features 1085Below is a summary of the most important features added, but at the end you will 1086find a link that present you all commits between the current and previous 1087release tag. 1088 1089* GlobalPlatform Client API v1.0 support. 1090 1091* GlobalPlatform Internal API v1.0 support. 1092 1093* GlobalPlatform Secure Elements v1.0 support. 1094 1095* Add hardware support for 1096 1097 * Allwinner A80, ARMv7-A. 1098 1099 * ARM Juno Board, ARMv8-A. 1100 1101 * Foundation Models, ARMv8-A. 1102 1103 * Fast Models, ARMv8-A. 1104 1105 * QEMU, ARMv7-A. 1106 1107 * STM Cannes, ARMv7-A. 1108 1109 * STM Orly2, ARMv7-A. 1110 1111* Add LibTomCrypt as the default software cryptographic library. 1112 1113* Add cryptographic abstraction layer in on secure side to ease the use of 1114 other cryptographic software libraries or adding support for hardware 1115 acceleration. 1116 1117* Extended cryptographic API with support for HKDF, Concat KDF and PBKDF2. 1118 1119* SHA-1 and SHA-256 ARMv8-A crypto extension implementation. 1120 1121* Enabled paging support in OP-TEE OS. 1122 1123* Add support for xtest (both standard and extended) in QEMU and FVP setup 1124 scripts. 1125 1126* Add documentation for the OS design, cryptographic abstraction layer, secure 1127 elements design, the build system, GitHub usage, key derivation extensions, 1128 ARM-Trusted Firmware usage within OP-TEE and GlobalPlatform usage within 1129 OP-TEE. 1130 1131* Integrate support for Travis CI. 1132 1133* [Link][github_commits_0_1_0] to a list of all commits between this and 1134 previous release. 1135 1136 1137## Tested on 1138Definitions: 1139 1140| Type | Meaning | 1141| ---- | ------- | 1142| Standard tests | The optee_test project. | 1143| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.0.0. | 1144| Hello world test | Plain hello world Trusted Application such as [this][hello_world]. | 1145 1146* Allwinner A80 (plat-sunxi), hello world test. 1147 1148* ARM Juno Board (vexpress-juno), standard tests. 1149 1150* Foundation Models (plat-vexpress-fvp), standard + extended tests 1151 1152* QEMU (plat-vexpress-qemu), standard + extended tests (and Secure Elements 1153 tested separately). 1154 1155* STM Cannes (plat-stm-cannes), standard + extended tests. 1156 1157 1158## Issues resolved since last release 1159N/A since this is the first release tag on OP-TEE. 1160 1161 1162## Known issues 1163* Storage is implemented, but not "Secure storage", meaning that a client 1164 needs to do encrypt files on their own before storing the files. 1165 1166* Issue(s) open on GitHub 1167 * [#95][pr95]: An error about building the test code of libtomcrypt. 1168 1169 * [#149][pr149]: when testing optee os with arm trusted firmware (I 1170 utilized optee os tee.bin as bl32 image) on juno platform, I got an 1171 error. 1172 1173 * [#161][pr161]: tee_svc_cryp.c lacks accessibility checks on 1174 user-supplied TEE_Attributes. 1175 1176[hello_world]: https://github.com/jenswi-linaro/lcu14_optee_hello_world 1177[github_commits_0_1_0]: https://github.com/OP-TEE/optee_os/compare/b01047730e77127c23a36591643eeb8bb0487d68...999e4a6c0f64d3177fd3d0db234107b6fb860884 1178[pr95]: https://github.com/OP-TEE/optee_os/issues/95 1179[pr149]: https://github.com/OP-TEE/optee_os/issues/149 1180[pr161]: https://github.com/OP-TEE/optee_os/issues/161 1181 1182* Global Platform Device Internal Core API v1.1 1183 * [#230][pr230]: Persistent object corruption support (TEE_ERROR_CORRUPT_OBJECT/_2) 1184 * [#230][pr230]: Persistent object access support (TEE_ERROR_STORAGE_NOT_AVAILABLE/_2) 1185