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