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