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