1*0ab9388cSJens Wiklander# OP-TEE - version 3.1.0 (2018-04-13) 2*0ab9388cSJens Wiklander 3*0ab9388cSJens Wiklander- Link to the GitHub [release page][github_release_3_1_0]. 4*0ab9388cSJens Wiklander- Links to the [commits][github_commits_3_1_0] and 5*0ab9388cSJens Wiklander[pull requests][github_pr_3_1_0] merged into this release. 6*0ab9388cSJens Wiklander 7*0ab9388cSJens Wiklander[github_commits_3_1_0]: https://github.com/OP-TEE/optee_os/compare/3.0.0...3.1.0 8*0ab9388cSJens Wiklander[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 9*0ab9388cSJens Wiklander[github_release_3_1_0]: https://github.com/OP-TEE/optee_os/releases/tag/3.1.0 10*0ab9388cSJens Wiklander 11*0ab9388cSJens Wiklander# OP-TEE - version 3.0.0 (2018-01-26) 1294ee4938SJerome Forissier 1394ee4938SJerome Forissier[Link][github_commits_3_0_0] to a list of all commits between this release and 1494ee4938SJerome Forissierthe previous one (2.6.0). 1594ee4938SJerome Forissier 1694ee4938SJerome ForissierAbout backwards compatibility: Trusted Applications built with OP-TEE 2.5.0 or 1794ee4938SJerome Forissierearlier will not run properly with a *debug* build of this release due 1894ee4938SJerome Forissierto commit [0e1c6e8e][commit_0e1c6e8e] ("Dump call stack on TA panic"). 1994ee4938SJerome ForissierNon-debug builds are not affected. 2094ee4938SJerome Forissier 2194ee4938SJerome Forissier## New features 2294ee4938SJerome Forissier 2394ee4938SJerome Forissier* New supported platforms: Armada 3700 ([#1946]), Poplar ([#1999]), 64-bit 2494ee4938SJerome Forissier support for FSL ls1012ardb ([#1941]), i.MX6SX Sabreauto ([#1974]). 2594ee4938SJerome Forissier* arm32: sm: init CNTVOFF ([#2052]) 2694ee4938SJerome Forissier* Debug/info/error traces: make output more compact ([#2011]) 2794ee4938SJerome Forissier* tzc380: implement new functions ([#1994]) 2894ee4938SJerome Forissier* Secure Data Path: add pseudo-TA to convert VA to PA (#1993]) 2994ee4938SJerome Forissier* Pager: use NEON AES GCM implementation ([#1959]) 3094ee4938SJerome Forissier* Crypto: add optimized AES GCM implementation using NEON ([#1949]) 3194ee4938SJerome Forissier* Add support for using secure storage for TA anti-rollback ([#1928]) 3294ee4938SJerome Forissier* Crypto: replace struct crypto_ops with function interface ([#1923], 3394ee4938SJerome Forissier [#1931]) 3494ee4938SJerome Forissier* aosp_optee.mk: define OPTEE_BIN ([#1922]) 3594ee4938SJerome Forissier* Add build option to allow concurrent execution of single-instance TAs 3694ee4938SJerome Forissier ([#1915]) 3794ee4938SJerome Forissier* Pager: support for address sanitizer ([#1856]) 3894ee4938SJerome Forissier* Pager: make memory between CFG_TEE_RAM_START and TEE load address usable by 3994ee4938SJerome Forissier pager ([#1826]) 4094ee4938SJerome Forissier 4194ee4938SJerome Forissier## Bug fixes 4294ee4938SJerome Forissier 4394ee4938SJerome Forissier* Fix crash in tee_mmu_final() on TA loading error ([#2092]) 4494ee4938SJerome Forissier* LibTomCrypt: fix issue causing invalid output when using AES CTR with 4594ee4938SJerome Forissierhardware acceleration (CFG_CRYPTO_WITH_CE) ([#2086]) 4694ee4938SJerome Forissier* pl310: fix cache sync ([#2035]) 4794ee4938SJerome Forissier* tzc380: do not write reserved bits ([#1994]) 4894ee4938SJerome Forissier* Fix potential double free in ta_open() ([#1970]) 4994ee4938SJerome Forissier* libfdt: fix undefined behaviour in fdt_offset_ptr() ([#1969]) 5094ee4938SJerome Forissier* imx_wdog: fix register access ([#1966]) 5194ee4938SJerome Forissier* Secure storage: fix potential memory leak after early return ([#1961]) 5294ee4938SJerome Forissier* LibTomCrypt: fix double free in dsa_import() ([#1963]) 5394ee4938SJerome Forissier* RPMB: fix TA independance issue in secure storage ([#1921]) 5494ee4938SJerome Forissier* RPMB: return TEE_ERROR_ACCESS_CONFLICT instead of panicking when a TA 5594ee4938SJerome Forissier attempts to create an existing persistent object without the overwrite flag 5694ee4938SJerome Forissier ([#1919]) 5794ee4938SJerome Forissier* PSCI: pass non-secure context to psci_system_suspend() ([#1916]) 5894ee4938SJerome Forissier* Fix "Argument list too long" during "make clean" ([#1897]) 5994ee4938SJerome Forissier 6094ee4938SJerome Forissier## Security fixes 6194ee4938SJerome Forissier 6294ee4938SJerome Forissier* Mitigations and hardening against the Spectre and Meltdown vulnerabilities 6394ee4938SJerome Forissier (CVE-2017-5753, CVE-2017-5715, CVE-2017-5754). 6494ee4938SJerome Forissier 6594ee4938SJerome Forissier## Known issues 6694ee4938SJerome Forissier 6794ee4938SJerome Forissier* Secure storage (REE FS): storage size not updated after 6894ee4938SJerome ForissierTEE_TruncateObjectData() ([#2094]) 6994ee4938SJerome Forissier* Possible deadlock with CFG_WITH_PAGER=y when loading a TA and not enough 7094ee4938SJerome Forissierpage tables are available in pgt_cache ([#2080]) 7194ee4938SJerome Forissier 7294ee4938SJerome Forissier## Tested on 7394ee4938SJerome Forissier 7494ee4938SJerome ForissierThe release was tested successfully on the platforms listed below. 7594ee4938SJerome Forissier 7694ee4938SJerome Forissier<!-- ${PLATFORM}-${PLATFORM_FLAVOR}, ordered alphabetically --> 7794ee4938SJerome Forissier* d02 7894ee4938SJerome Forissier* hikey 7994ee4938SJerome Forissier* hikey-hikey960 8094ee4938SJerome Forissier* imx-mx6ulevk 8194ee4938SJerome Forissier* imx-mx7dsabresd 8294ee4938SJerome Forissier* marvell-armada7k8k 8394ee4938SJerome Forissier* marvell-armada3700 8494ee4938SJerome Forissier* mediatek-mt8173 8594ee4938SJerome Forissier* rcar-salvator_m3 8694ee4938SJerome Forissier* rockchip-rk322x 8794ee4938SJerome Forissier* rpi3 8894ee4938SJerome Forissier* sam 8994ee4938SJerome Forissier* ti 9094ee4938SJerome Forissier* vexpress-juno 9194ee4938SJerome Forissier* vexpress-qemu_armv8a 9294ee4938SJerome Forissier* vexpress-qemu_virt 9394ee4938SJerome Forissier 9494ee4938SJerome Forissier[commit_0e1c6e8e]: https://github.com/OP-TEE/optee_os/commit/0e1c6e8e 9594ee4938SJerome Forissier[github_commits_3_0_0]: https://github.com/OP-TEE/optee_os/compare/2.6.0...3.0.0 9694ee4938SJerome Forissier[#2092]: https://github.com/OP-TEE/optee_os/pull/2092 9794ee4938SJerome Forissier[#2086]: https://github.com/OP-TEE/optee_os/pull/2086 9894ee4938SJerome Forissier[#2094]: https://github.com/OP-TEE/optee_os/issues/2094 9994ee4938SJerome Forissier[#2080]: https://github.com/OP-TEE/optee_os/issues/2080 10094ee4938SJerome Forissier[#2052]: https://github.com/OP-TEE/optee_os/pull/2052 10194ee4938SJerome Forissier[#2035]: https://github.com/OP-TEE/optee_os/pull/2035 10294ee4938SJerome Forissier[#2011]: https://github.com/OP-TEE/optee_os/pull/2011 10394ee4938SJerome Forissier[#1999]: https://github.com/OP-TEE/optee_os/pull/1999 10494ee4938SJerome Forissier[#1994]: https://github.com/OP-TEE/optee_os/pull/1994 10594ee4938SJerome Forissier[#1993]: https://github.com/OP-TEE/optee_os/pull/1993 10694ee4938SJerome Forissier[#1974]: https://github.com/OP-TEE/optee_os/pull/1974 10794ee4938SJerome Forissier[#1970]: https://github.com/OP-TEE/optee_os/pull/1970 10894ee4938SJerome Forissier[#1969]: https://github.com/OP-TEE/optee_os/pull/1969 10994ee4938SJerome Forissier[#1966]: https://github.com/OP-TEE/optee_os/pull/1966 11094ee4938SJerome Forissier[#1963]: https://github.com/OP-TEE/optee_os/pull/1963 11194ee4938SJerome Forissier[#1961]: https://github.com/OP-TEE/optee_os/pull/1961 11294ee4938SJerome Forissier[#1959]: https://github.com/OP-TEE/optee_os/pull/1959 11394ee4938SJerome Forissier[#1949]: https://github.com/OP-TEE/optee_os/pull/1949 11494ee4938SJerome Forissier[#1946]: https://github.com/OP-TEE/optee_os/pull/1946 11594ee4938SJerome Forissier[#1941]: https://github.com/OP-TEE/optee_os/pull/1941 11694ee4938SJerome Forissier[#1931]: https://github.com/OP-TEE/optee_os/pull/1931 11794ee4938SJerome Forissier[#1928]: https://github.com/OP-TEE/optee_os/pull/1928 11894ee4938SJerome Forissier[#1923]: https://github.com/OP-TEE/optee_os/pull/1923 11994ee4938SJerome Forissier[#1922]: https://github.com/OP-TEE/optee_os/pull/1922 12094ee4938SJerome Forissier[#1921]: https://github.com/OP-TEE/optee_os/pull/1921 12194ee4938SJerome Forissier[#1919]: https://github.com/OP-TEE/optee_os/pull/1919 12294ee4938SJerome Forissier[#1916]: https://github.com/OP-TEE/optee_os/pull/1916 12394ee4938SJerome Forissier[#1915]: https://github.com/OP-TEE/optee_os/pull/1915 12494ee4938SJerome Forissier[#1897]: https://github.com/OP-TEE/optee_os/pull/1897 12594ee4938SJerome Forissier[#1856]: https://github.com/OP-TEE/optee_os/pull/1856 12694ee4938SJerome Forissier[#1826]: https://github.com/OP-TEE/optee_os/pull/1826 12794ee4938SJerome Forissier 1286d57389fSJerome Forissier# OP-TEE - version 2.6.0 1296d57389fSJerome Forissier 1306d57389fSJerome Forissier[Link][github_commits_2_6_0] to a list of all commits between this release and 1316d57389fSJerome Forissierthe previous one (2.5.0). 1326d57389fSJerome Forissier 1336d57389fSJerome Forissier## New features 1346d57389fSJerome Forissier 1356d57389fSJerome Forissier* New supported platforms: Atmel SAMA5 ([#1714]), HiSilicon HiKey960 ([#1684]), 1366d57389fSJerome Forissier Rockchip RK322X ([#1666]), NXP LS1043A-RDB/LS1046A-RDB ([#1787]), Marvell 1376d57389fSJerome Forissier Armada 70x0/80x0 ([#1807]). 1386d57389fSJerome Forissier* Dynamic shared memory (non-contiguous, non-secure memory can be mapped into 1396d57389fSJerome Forissier Trusted Applications VA space) ([#1631]) 1406d57389fSJerome Forissier* Dump TA call stack on panic ([#1858]) 1416d57389fSJerome Forissier* i.MX: PSCI reset ([#1849]) 1426d57389fSJerome Forissier* plat-ti: AM43xx: suspend/resume support ([#1822]) 1436d57389fSJerome Forissier* QEMU SMP support ([#1820]) 1446d57389fSJerome Forissier* plat-ti: AM43xx: disable TRNG ([#1816]) 1456d57389fSJerome Forissier* plat-ti: enable Secure Data Path by default ([#1815]) 1466d57389fSJerome Forissier* Improve symbolize.py ([#1778], [#1767], [#1766]) 1476d57389fSJerome Forissier* Early TAs (TAs linked in tee.bin) ([#1733]) 1486d57389fSJerome Forissier* Suspend/resume framework for arm32 and imx7d support ([#1729]) 1496d57389fSJerome Forissier* RK322X PSCI version, features and suspend support ([#1720]) 1506d57389fSJerome Forissier* arm32: handle aborts in system mode ([#1703]) 1516d57389fSJerome Forissier* i.MX: add SNVS SRTC support ([#1700]) 1526d57389fSJerome Forissier* GCC7 support ([#1693]) 1536d57389fSJerome Forissier* Improve detection of programming errors in locking code ([#1671], [#1670]) 1546d57389fSJerome Forissier* Support TEE RAM size larger than page directory size ([#1669]) 1556d57389fSJerome Forissier 1566d57389fSJerome Forissier## Removed features 1576d57389fSJerome Forissier 1586d57389fSJerome Forissier* Remove TUI code ([#1842]) 1596d57389fSJerome Forissier 1606d57389fSJerome Forissier## Bug fixes 1616d57389fSJerome Forissier 1626d57389fSJerome Forissier* Add missing synchronization barrier in core_mmu_map_pages() ([#1827]) 1636d57389fSJerome Forissier* Secure storage: REE FS: fix bug in error path ([#1801]) 1646d57389fSJerome Forissier* ASAN bug fixes ([#1799]) 1656d57389fSJerome Forissier* Fix race in core_mmu_user_mapping_is_active() ([#1785]) 1666d57389fSJerome Forissier* libutee: printf() and puts() fixes, add putchar() ([#1759], [#1754]) 1676d57389fSJerome Forissier* arm32: GICv3: fix FIQ masking in IRQ/ABT/SVC/UND handlers ([#1748]) 1686d57389fSJerome Forissier* arm32: preserve r12 in native_intr_handler() ([#1682]) 1696d57389fSJerome Forissier* arm64: fix print_kernel_stack() ([#1664]) 1706d57389fSJerome Forissier* benchmark: fix core data-abort ([#1658]) 1716d57389fSJerome Forissier 1726d57389fSJerome Forissier## Security fixes or enhancements 1736d57389fSJerome Forissier 1746d57389fSJerome Forissier* crypto: fix software PRNG weaknesses 1756d57389fSJerome Forissier ([OP-TEE-2017-0001][OP-TEE-2017-0001]) ([#1843]) 1766d57389fSJerome Forissier 1776d57389fSJerome Forissier## Tested on 1786d57389fSJerome Forissier 17994ee4938SJerome ForissierThe release was tested successfully on the platforms listed below. 1806d57389fSJerome ForissierIf a platform is not listed, it means the release was not tested on this 1816d57389fSJerome Forissierplatform. 1826d57389fSJerome Forissier 1836d57389fSJerome Forissier<!-- ${PLATFORM}-${PLATFORM_FLAVOR}, ordered alphabetically --> 1846d57389fSJerome Forissier* d02 1856d57389fSJerome Forissier* hikey 1866d57389fSJerome Forissier* hikey-hikey960 1876d57389fSJerome Forissier* imx-mx6ulevk 1886d57389fSJerome Forissier* imx-mx7dsabresd 1896d57389fSJerome Forissier* ls-ls1021a??? (single core) 1906d57389fSJerome Forissier* ls-ls1043ardb 1916d57389fSJerome Forissier* ls-ls1046ardb 1926d57389fSJerome Forissier* mediatek-mt8173 1936d57389fSJerome Forissier* rcar 1946d57389fSJerome Forissier* rockchip-rk322x 1956d57389fSJerome Forissier* rpi3 1966d57389fSJerome Forissier* sam 1976d57389fSJerome Forissier* stm-b2260 1986d57389fSJerome Forissier* stm-cannes 1996d57389fSJerome Forissier* ti-??? 2006d57389fSJerome Forissier* vexpress-fvp 2016d57389fSJerome Forissier* vexpress-juno 2026d57389fSJerome Forissier* vexpress-qemu_armv8a 2036d57389fSJerome Forissier* vexpress-qemu_virt 2046d57389fSJerome Forissier 20594ee4938SJerome Forissier[github_commits_2_6_0]: https://github.com/OP-TEE/optee_os/compare/2.5.0...2.6.0 2066d57389fSJerome Forissier[#1858]: https://github.com/OP-TEE/optee_os/issues/1858 2076d57389fSJerome Forissier[#1849]: https://github.com/OP-TEE/optee_os/issues/1849 2086d57389fSJerome Forissier[#1843]: https://github.com/OP-TEE/optee_os/issues/1843 2096d57389fSJerome Forissier[#1842]: https://github.com/OP-TEE/optee_os/issues/1842 2106d57389fSJerome Forissier[#1827]: https://github.com/OP-TEE/optee_os/issues/1827 2116d57389fSJerome Forissier[#1822]: https://github.com/OP-TEE/optee_os/issues/1822 2126d57389fSJerome Forissier[#1820]: https://github.com/OP-TEE/optee_os/issues/1820 2136d57389fSJerome Forissier[#1816]: https://github.com/OP-TEE/optee_os/issues/1816 2146d57389fSJerome Forissier[#1815]: https://github.com/OP-TEE/optee_os/issues/1815 2156d57389fSJerome Forissier[#1807]: https://github.com/OP-TEE/optee_os/issues/1807 2166d57389fSJerome Forissier[#1801]: https://github.com/OP-TEE/optee_os/issues/1801 2176d57389fSJerome Forissier[#1799]: https://github.com/OP-TEE/optee_os/issues/1799 2186d57389fSJerome Forissier[#1787]: https://github.com/OP-TEE/optee_os/issues/1787 2196d57389fSJerome Forissier[#1785]: https://github.com/OP-TEE/optee_os/issues/1785 2206d57389fSJerome Forissier[#1778]: https://github.com/OP-TEE/optee_os/issues/1778 2216d57389fSJerome Forissier[#1767]: https://github.com/OP-TEE/optee_os/issues/1767 2226d57389fSJerome Forissier[#1766]: https://github.com/OP-TEE/optee_os/issues/1766 2236d57389fSJerome Forissier[#1759]: https://github.com/OP-TEE/optee_os/issues/1759 2246d57389fSJerome Forissier[#1754]: https://github.com/OP-TEE/optee_os/issues/1754 2256d57389fSJerome Forissier[#1748]: https://github.com/OP-TEE/optee_os/issues/1748 2266d57389fSJerome Forissier[#1733]: https://github.com/OP-TEE/optee_os/issues/1733 2276d57389fSJerome Forissier[#1729]: https://github.com/OP-TEE/optee_os/issues/1729 2286d57389fSJerome Forissier[#1720]: https://github.com/OP-TEE/optee_os/issues/1720 2296d57389fSJerome Forissier[#1714]: https://github.com/OP-TEE/optee_os/issues/1714 2306d57389fSJerome Forissier[#1703]: https://github.com/OP-TEE/optee_os/issues/1703 2316d57389fSJerome Forissier[#1700]: https://github.com/OP-TEE/optee_os/issues/1700 2326d57389fSJerome Forissier[#1693]: https://github.com/OP-TEE/optee_os/issues/1693 2336d57389fSJerome Forissier[#1684]: https://github.com/OP-TEE/optee_os/issues/1684 2346d57389fSJerome Forissier[#1682]: https://github.com/OP-TEE/optee_os/issues/1682 2356d57389fSJerome Forissier[#1671]: https://github.com/OP-TEE/optee_os/issues/1671 2366d57389fSJerome Forissier[#1670]: https://github.com/OP-TEE/optee_os/issues/1670 2376d57389fSJerome Forissier[#1669]: https://github.com/OP-TEE/optee_os/issues/1669 2386d57389fSJerome Forissier[#1666]: https://github.com/OP-TEE/optee_os/issues/1666 2396d57389fSJerome Forissier[#1664]: https://github.com/OP-TEE/optee_os/issues/1664 2406d57389fSJerome Forissier[#1658]: https://github.com/OP-TEE/optee_os/issues/1658 2416d57389fSJerome Forissier[#1631]: https://github.com/OP-TEE/optee_os/issues/1631 2426d57389fSJerome Forissier[OP-TEE-2017-0001]: https://www.op-tee.org/security-advisories/ 2436d57389fSJerome Forissier 2445d8aaa04SJerome Forissier# OP-TEE - version 2.5.0 2455d8aaa04SJerome Forissier 2465d8aaa04SJerome Forissier[Link][github_commits_2_5_0] to a list of all commits between this release and 2475d8aaa04SJerome Forissierthe previous one (2.4.0). 2485d8aaa04SJerome Forissier 2495d8aaa04SJerome Forissier## New features 2505d8aaa04SJerome Forissier 2515d8aaa04SJerome Forissier* New supported platform: i.MX7D ([#1639]) 2525d8aaa04SJerome Forissier* Secure storage: anti-rollback protection for REE FS using RPMB FS ([#1630]) 2535d8aaa04SJerome Forissier* Assign non-secure DDR configuration from DT if CFG_DT=y ([#1623]) 2545d8aaa04SJerome Forissier* Add new image format: split image into three separate binaries suitable for 2555d8aaa04SJerome Forissier upcoming ARM Trusted Firmware ([#1589]). 2565d8aaa04SJerome Forissier* Make alignment check configurable ([#1586]) 2575d8aaa04SJerome Forissier* drivers: add TZC380 driver ([#1578]) 2585d8aaa04SJerome Forissier* plat-imx: PSCI CPU off ([#1577]) 2595d8aaa04SJerome Forissier* 64-bit paging on QEMU v8 and HiKey ([#1575], [#1592]) 2605d8aaa04SJerome Forissier* Benchmark framework ([#1365]) 2615d8aaa04SJerome Forissier* Dump call stack of user TAs on abort ([#1552]) 2625d8aaa04SJerome Forissier* plat-hikey: enable Secure Data Path ([#1440]) 2635d8aaa04SJerome Forissier* Add interface to load and decrypt/authenticate user TAs ([#1513]) 2645d8aaa04SJerome Forissier* plat-ti: add secure paging support ([#1493]) 2655d8aaa04SJerome Forissier* plat-ti: add OTP hardware key support ([#1492]) 2665d8aaa04SJerome Forissier* Support ARM GICv3 ([#1465]) 2675d8aaa04SJerome Forissier 2685d8aaa04SJerome Forissier## Removed features 2695d8aaa04SJerome Forissier 2705d8aaa04SJerome Forissier* stm-orly2 is not supported anymore ([#1650]) 2715d8aaa04SJerome Forissier* Remove secure storage based on SQL FS (`CFG_SQL_FS=y`) ([#1490]) 2725d8aaa04SJerome Forissier* Remove support for mapping user TAs with 1 MiB or 2 MiB granularity 2735d8aaa04SJerome Forissier (`CFG_SMALL_PAGE_USER_TA=n`) ([#1559]). TAs are always mapped using small 2745d8aaa04SJerome Forissier pages. 2755d8aaa04SJerome Forissier 2765d8aaa04SJerome Forissier## Bug fixes 2775d8aaa04SJerome Forissier 2785d8aaa04SJerome Forissier* Reduce size of non-pageable code ([#1621]) 2795d8aaa04SJerome Forissier* Ignore `TA_FLAG_MULTI_SESSION` and `TA_FLAG_INSTANCE_KEEP_ALIVE` when 2805d8aaa04SJerome Forissier `TA_FLAG_SINGLE_INSTANCE` is not set ([#1574]) 2815d8aaa04SJerome Forissier* libutee: remove buffering for AES GCM (PR#1573) and AES CTR ([#1580]) 2825d8aaa04SJerome Forissier* Fix ROUNDUP()/ROUNDDOWN() macros ([#1519]) 2835d8aaa04SJerome Forissier* Do not touch other bits in GICD_CTLR ([#1508]) 2845d8aaa04SJerome Forissier* Fix build issue with `DEBUG=y` and `CFG_TEE_CORE_LOG_LEVEL=0` ([#1502]) 2855d8aaa04SJerome Forissier* crypto: do not restrict hash size when algorithm is ECDSA ([#1497]) 2865d8aaa04SJerome Forissier 2875d8aaa04SJerome Forissier## Security fixes or enhancements 2885d8aaa04SJerome Forissier 2895d8aaa04SJerome Forissier- crypto: fix RSA key leakage after fault injection attack 2905d8aaa04SJerome Forissier ([OP-TEE-2016-0003][OP-TEE-2016-0003]) ([#1610]) 2915d8aaa04SJerome Forissier* crypto: fix RSA key leakage after side channel attack 2925d8aaa04SJerome Forissier ([OP-TEE-2016-0002][OP-TEE-2016-0002]) ([#1610]) 2935d8aaa04SJerome Forissier* Make pager aliased pages not always writable ([#1551]) 2945d8aaa04SJerome Forissier* Support for no-exec RO and RW data ([#1459], [#1550]) 2955d8aaa04SJerome Forissier 2965d8aaa04SJerome Forissier## New issues 2975d8aaa04SJerome Forissier 2985d8aaa04SJerome Forissier* armv7: some platform-specific code (`plat_cpu_reset_early()`) overwrites 2995d8aaa04SJerome ForissierSCTLR bits configured by generic code. This affects alignment checks (`SCTLR.A`) 3005d8aaa04SJerome Forissierand write-implies-no-exec (`SCTLR.WXN`, `SCTLR.UWXN`), which can therefore not 3015d8aaa04SJerome Forissierbe configured via the compile-time `CFG_` variables. 3025d8aaa04SJerome Forissier* armv7: plat-imx: Cortex-A9 cores should enable branch prediction (`SCLTR.Z`) 3035d8aaa04SJerome Forissierfor improved performance. 3045d8aaa04SJerome Forissier* [#1656] qemu_armv8a: init hangs when secure data path and pager are both 3055d8aaa04SJerome Forissier enabled. 3065d8aaa04SJerome Forissier 3075d8aaa04SJerome Forissier## Tested on 3085d8aaa04SJerome Forissier 3095d8aaa04SJerome ForissierIn the list below, _standard_ means that the `xtest` program passed with 3105d8aaa04SJerome Forissierits default configuration, while _extended_ means it was run successfully 3115d8aaa04SJerome Forissierwith the additional GlobalPlatform™ TEE Initial Configuration Test Suite 3125d8aaa04SJerome Forissierv1.1.0.4. 3135d8aaa04SJerome Forissier 3145d8aaa04SJerome ForissierIf a platform is not listed, it means the release was not tested on this 3155d8aaa04SJerome Forissierplatform. 3165d8aaa04SJerome Forissier 3175d8aaa04SJerome Forissier<!-- ${PLATFORM}-${PLATFORM_FLAVOR}, ordered alphabetically --> 3185d8aaa04SJerome Forissier* d02: extended 3195d8aaa04SJerome Forissier* hikey: extended 3205d8aaa04SJerome Forissier* imx-mx6ulevk: standard 3215d8aaa04SJerome Forissier* imx-mx6ullevk: standard 3225d8aaa04SJerome Forissier* imx-mx7dsabresd: standard 3235d8aaa04SJerome Forissier* ls-ls1021atwr: standard 3245d8aaa04SJerome Forissier* mediatek-mt8173: standard 3255d8aaa04SJerome Forissier* rcar-h3: standard 3265d8aaa04SJerome Forissier* rpi3: standard 3275d8aaa04SJerome Forissier* stm-b2260: extended 3285d8aaa04SJerome Forissier* stm-cannes: extended 3295d8aaa04SJerome Forissier* ti-am43xx: standard 3305d8aaa04SJerome Forissier* ti-am57xx: standard 3315d8aaa04SJerome Forissier* ti-dra7xx: standard 3325d8aaa04SJerome Forissier* vexpress-fvp: standard 3335d8aaa04SJerome Forissier* vexpress-juno: standard 3345d8aaa04SJerome Forissier* vexpress-qemu_armv8a: standard 3355d8aaa04SJerome Forissier* vexpress-qemu_virt: standard 3365d8aaa04SJerome Forissier 3375d8aaa04SJerome Forissier[github_commits_2_5_0]: https://github.com/OP-TEE/optee_os/compare/2.4.0...2.5.0-rc1 3385d8aaa04SJerome Forissier[#1656]: https://github.com/OP-TEE/optee_os/issues/1656 3395d8aaa04SJerome Forissier[#1650]: https://github.com/OP-TEE/optee_os/pull/1650 3405d8aaa04SJerome Forissier[#1639]: https://github.com/OP-TEE/optee_os/pull/1639 3415d8aaa04SJerome Forissier[#1630]: https://github.com/OP-TEE/optee_os/pull/1630 3425d8aaa04SJerome Forissier[#1623]: https://github.com/OP-TEE/optee_os/pull/1623 3435d8aaa04SJerome Forissier[#1621]: https://github.com/OP-TEE/optee_os/pull/1621 3445d8aaa04SJerome Forissier[#1610]: https://github.com/OP-TEE/optee_os/pull/1610 3455d8aaa04SJerome Forissier[#1592]: https://github.com/OP-TEE/optee_os/pull/1592 3465d8aaa04SJerome Forissier[#1589]: https://github.com/OP-TEE/optee_os/pull/1589 3475d8aaa04SJerome Forissier[#1586]: https://github.com/OP-TEE/optee_os/pull/1586 3485d8aaa04SJerome Forissier[#1580]: https://github.com/OP-TEE/optee_os/pull/1580 3495d8aaa04SJerome Forissier[#1578]: https://github.com/OP-TEE/optee_os/pull/1578 3505d8aaa04SJerome Forissier[#1577]: https://github.com/OP-TEE/optee_os/pull/1577 3515d8aaa04SJerome Forissier[#1574]: https://github.com/OP-TEE/optee_os/pull/1574 3525d8aaa04SJerome Forissier[#1559]: https://github.com/OP-TEE/optee_os/pull/1559 3535d8aaa04SJerome Forissier[#1551]: https://github.com/OP-TEE/optee_os/pull/1551 3545d8aaa04SJerome Forissier[#1550]: https://github.com/OP-TEE/optee_os/pull/1550 3555d8aaa04SJerome Forissier[#1519]: https://github.com/OP-TEE/optee_os/pull/1519 3565d8aaa04SJerome Forissier[#1502]: https://github.com/OP-TEE/optee_os/pull/1502 3575d8aaa04SJerome Forissier[#1365]: https://github.com/OP-TEE/optee_os/pull/1365 3585d8aaa04SJerome Forissier[#1552]: https://github.com/OP-TEE/optee_os/pull/1552 3595d8aaa04SJerome Forissier[#1513]: https://github.com/OP-TEE/optee_os/pull/1513 3605d8aaa04SJerome Forissier[#1508]: https://github.com/OP-TEE/optee_os/pull/1508 3615d8aaa04SJerome Forissier[#1493]: https://github.com/OP-TEE/optee_os/pull/1493 3625d8aaa04SJerome Forissier[#1497]: https://github.com/OP-TEE/optee_os/pull/1497 3635d8aaa04SJerome Forissier[#1492]: https://github.com/OP-TEE/optee_os/pull/1492 3645d8aaa04SJerome Forissier[#1490]: https://github.com/OP-TEE/optee_os/pull/1490 3655d8aaa04SJerome Forissier[#1465]: https://github.com/OP-TEE/optee_os/pull/1465 3665d8aaa04SJerome Forissier[#1459]: https://github.com/OP-TEE/optee_os/pull/1459 3675d8aaa04SJerome Forissier[#1440]: https://github.com/OP-TEE/optee_os/pull/1440 3685d8aaa04SJerome Forissier[OP-TEE-2016-0003]: https://www.op-tee.org/security-advisories/ 3695d8aaa04SJerome Forissier[OP-TEE-2016-0002]: https://www.op-tee.org/security-advisories/ 3705d8aaa04SJerome Forissier 371702609a7SJerome Forissier# OP-TEE - version 2.4.0 372702609a7SJerome Forissier 373702609a7SJerome Forissier[Link][github_commits_2_4_0] to a list of all commits between this release and 374702609a7SJerome Forissierthe previous one (2.3.0). 375702609a7SJerome Forissier 376702609a7SJerome ForissierPlease note: this release is API-compatible with the previous one, but the 377702609a7SJerome ForissierSecure Storage internal format for the REE and SQL FS is not compatible due to 378702609a7SJerome Forissiercommits [a238b74][commit_a238b74] ("core: REE FS: use the new hash tree 379702609a7SJerome Forissierinterface") and [44e900e][commit_44e900e] ("core: SQL FS: use the new hash tree 380702609a7SJerome Forissierinterface"). 381702609a7SJerome Forissier 382702609a7SJerome Forissier## New features 383702609a7SJerome Forissier 384702609a7SJerome Forissier* Add porting guidelines 385702609a7SJerome Forissier 386702609a7SJerome Forissier* Add support for Secure Data Path which allows Client and Trusted Applications 387702609a7SJerome Forissier to share references to secure memory 388702609a7SJerome Forissier 389702609a7SJerome Forissier* New supported platform: Texas Instruments AM57xx (`PLATFORM=ti-am57xx`) 390702609a7SJerome Forissier 391702609a7SJerome Forissier* ARMv7-A: add support for platform services in secure monitor and add these 392702609a7SJerome Forissier services for the DRA7xx platform 393702609a7SJerome Forissier 394702609a7SJerome Forissier* SPI framework and PL022 driver cleanup and improvements 395702609a7SJerome Forissier 396702609a7SJerome Forissier* Use CNTPCT (when available) to add entropy to the software PRNG 397702609a7SJerome Forissier 398702609a7SJerome Forissier* Add GlobalPlatform Socket API for UDP and TCP (IPv4 and IPv6) 399702609a7SJerome Forissier 400702609a7SJerome Forissier* DRA7: add TRNG driver, enable GICv2 driver 401702609a7SJerome Forissier 402702609a7SJerome Forissier* Support load address larger than 4G 403702609a7SJerome Forissier 404702609a7SJerome Forissier* libutee: preserve error code when calling TEE_Panic() for easier 405702609a7SJerome Forissier troubleshooting 406702609a7SJerome Forissier 407702609a7SJerome Forissier* Support TA profiling with gprof (-pg compiler switch) 408702609a7SJerome Forissier 409702609a7SJerome Forissier* Optimize the ELF loader for TAs when pager is enabled 410702609a7SJerome Forissier 411702609a7SJerome Forissier* Update documentation 412702609a7SJerome Forissier 413702609a7SJerome Forissier* Add paged secure shared memory that can be transferred between TAs as 414702609a7SJerome Forissier needed 415702609a7SJerome Forissier 416702609a7SJerome Forissier* Introduce MOBJ abstraction 417702609a7SJerome Forissier 418702609a7SJerome Forissier* i.MX6: add PSCI "on" function 419702609a7SJerome Forissier 420702609a7SJerome Forissier* arm32: introduce PSCI framework 421702609a7SJerome Forissier 422702609a7SJerome Forissier## Bug fixes 423702609a7SJerome Forissier 424702609a7SJerome Forissier* Secure storage: improve integrity checking of the REE and SQL filesystems by 425702609a7SJerome Forissier adding a hash tree on the internal data structures. Any external modification 426702609a7SJerome Forissier is detected, except full rollback. Fixes [#1188][issue1188]. 427702609a7SJerome Forissier 428702609a7SJerome Forissier* The linux driver will set the 'privileged' flag (TEE_GEN_CAP_PRIVILEGED) on 429702609a7SJerome Forissier the device intended for use by tee-supplicant. Fixes [#1199][issue1199]. 430702609a7SJerome Forissier 431702609a7SJerome Forissier* RPMB: don't try to program the RPMB key by default 432702609a7SJerome Forissier 433702609a7SJerome Forissier* Fix "make clean" error cases 434702609a7SJerome Forissier 435702609a7SJerome Forissier* Fix issue when resetting persistent storage enumerator [#1332][issue1332] 436702609a7SJerome Forissier 437702609a7SJerome Forissier* Fix TA panic when doing AES CTS with specific buffer sizes 438702609a7SJerome Forissier [#1203][issue1203]. 439702609a7SJerome Forissier 440702609a7SJerome Forissier## Known issues 441702609a7SJerome Forissier 442702609a7SJerome Forissier* On RPi3 xtest sometimes stall (rcu_sched self-detected stall on CPU) [#1353][issue1353] 443702609a7SJerome Forissier* For multi-core PSCI support is to be added for ls1021atwr in OP-TEE. 444702609a7SJerome Forissier* USB keyboard cannot be used to stop the u-boot timeout ([build issue131]). 445702609a7SJerome Forissier* Travis service (build.git) seems unstable from time to time. 446702609a7SJerome Forissier 447702609a7SJerome Forissier## Tested on 448702609a7SJerome Forissier 449702609a7SJerome ForissierIn the list below, _standard_ means that the `xtest` program passed with 450702609a7SJerome Forissierits default configuration, while _extended_ means it was run successfully 451702609a7SJerome Forissierwith the additional GlobalPlatform™ TEE Initial Configuration Test Suite 452702609a7SJerome Forissierv1.1.0.4. 453702609a7SJerome Forissier 454702609a7SJerome ForissierIf a platform is not listed, it means the release was not tested on this 455702609a7SJerome Forissierplatform. 456702609a7SJerome Forissier 457702609a7SJerome Forissier<!-- ${PLATFORM}-${PLATFORM_FLAVOR}, ordered alphabetically --> 458702609a7SJerome Forissier* d02: extended 459702609a7SJerome Forissier* hikey: extended 460702609a7SJerome Forissier* imx-mx6ulevk: standard 461702609a7SJerome Forissier* ls-ls1021atwr: standard (single core) 462702609a7SJerome Forissier* mediatek-mt8173: standard 463702609a7SJerome Forissier* rcar-h3: standard 464702609a7SJerome Forissier* rpi3: standard 465702609a7SJerome Forissier* stm-b2260: extended 466702609a7SJerome Forissier* ti-dra7xx: standard 467702609a7SJerome Forissier* vexpress-fvp: standard 468702609a7SJerome Forissier* vexpress-juno: standard 469702609a7SJerome Forissier* vexpress-qemu_armv8a: standard 470702609a7SJerome Forissier* vexpress-qemu_virt: standard 471702609a7SJerome Forissier* zynqmp-zc1751_dc1: standard 472702609a7SJerome Forissier* zynqmp-zc1751_dc2: standard 473702609a7SJerome Forissier* zynqmp-zcu102: standard 474702609a7SJerome Forissier 475702609a7SJerome Forissier[github_commits_2_4_0]: https://github.com/OP-TEE/optee_os/compare/2.3.0...2.4.0 476702609a7SJerome Forissier[issue1332]: https://github.com/OP-TEE/optee_os/issues/1332 477702609a7SJerome Forissier[issue1353]: https://github.com/OP-TEE/optee_os/issues/1353 478702609a7SJerome Forissier[build issue131]: https://github.com/OP-TEE/build/issues/131 479702609a7SJerome Forissier[commit_a238b74]: https://github.com/OP-TEE/optee_os/commit/a238b744b1b3 480702609a7SJerome Forissier[commit_44e900e]: https://github.com/OP-TEE/optee_os/commit/44e900eabfc1 481702609a7SJerome Forissier 48228fcee17SJerome Forissier# OP-TEE - version 2.3.0 48328fcee17SJerome Forissier 48428fcee17SJerome Forissier[Link][github_commits_2_3_0] to a list of all commits between this release and 48528fcee17SJerome Forissierthe previous one (2.2.0). 48628fcee17SJerome Forissier 48728fcee17SJerome ForissierPlease note: this release is API-compatible with the previous one, but the 48828fcee17SJerome ForissierSecure Storage internal format for the REE FS is not compatible due to commit 48928fcee17SJerome Forissier[361fb3e][commit_361fb3e] ("core: REE FS: use a single file per object"). 49028fcee17SJerome Forissier 49128fcee17SJerome Forissier[commit_361fb3e]: https://github.com/OP-TEE/optee_os/commit/361fb3e 49228fcee17SJerome Forissier 49328fcee17SJerome Forissier## New features 49428fcee17SJerome Forissier 49528fcee17SJerome Forissier* New supported platform: Xilinx Zynq 7000 ZC702 (`PLATFORM=zynq7k-zc702`) 49628fcee17SJerome Forissier 49728fcee17SJerome Forissier* Add debug assertions to spinlocks and mutexes 49828fcee17SJerome Forissier 49928fcee17SJerome Forissier* Add more CP15 register access macros for Cortex-A9 50028fcee17SJerome Forissier 50128fcee17SJerome Forissier* ARMv7-A: redesign secure monitor to make it easier to register services 50228fcee17SJerome Forissier 50328fcee17SJerome Forissier* ARMv7-A: cleanup boot arguments 50428fcee17SJerome Forissier 50528fcee17SJerome Forissier* libutee: extend `TEE_CheckMemoryAccessRights()` with 50628fcee17SJerome Forissier `TEE_MEMORY_ACCESS_SECURE` and `TEE_MEMORY_ACCESS_NONSECURE` 50728fcee17SJerome Forissier 50828fcee17SJerome Forissier* plat-hikey: enable SPI by default and add sample test code 50928fcee17SJerome Forissier 51028fcee17SJerome Forissier* Consider `CFLAGS_ta_arm64` and `CFLAGS_ta_arm32` when building TAs 51128fcee17SJerome Forissier 51228fcee17SJerome Forissier* Secure storage refactoring 51328fcee17SJerome Forissier - Simplify interface with tee-supplicant. Minimize round trips with normal 51428fcee17SJerome Forissier world, especially by adding a cache for FS RPC payload data. 51528fcee17SJerome Forissier - REE FS: use a single file per object, remove block cache. 51628fcee17SJerome Forissier 51728fcee17SJerome Forissier* Print call stack in panic() 51828fcee17SJerome Forissier 51928fcee17SJerome Forissier## Bug fixes 52028fcee17SJerome Forissier 52128fcee17SJerome Forissier* Fix UUID encoding when communicating with normal world (use big endian 52228fcee17SJerome Forissier mode instead of native endianness). Related to this, the string format 52328fcee17SJerome Forissier for UUIDs has changed in tee-supplicant, so that TA file names now follow 52428fcee17SJerome Forissier the format defined in RFC4122 (a missing hyphen was added). The old format 52528fcee17SJerome Forissier is still supported, but deprecated, and will likely be removed with the 52628fcee17SJerome Forissier next major release. 52728fcee17SJerome Forissier 52828fcee17SJerome Forissier* Drop write permission to non-writable ELF segments after TA loading is 52928fcee17SJerome Forissier complete. 53028fcee17SJerome Forissier 53128fcee17SJerome Forissier* mm: fix confusing memory mapping debug traces 53228fcee17SJerome Forissier 53328fcee17SJerome Forissier* plat-ti: fix issues with MMU mapping 53428fcee17SJerome Forissier 53528fcee17SJerome Forissier* crypto: fix clearing of big numbers 53628fcee17SJerome Forissier 53728fcee17SJerome Forissier* build: allow spaces and double quotes in CFG_ variables 53828fcee17SJerome Forissier 53928fcee17SJerome Forissier* mm: use paddr_t to support both 32- and 64-bit architectures properly. 54028fcee17SJerome Forissier Resolves 32-bit truncation error when pool is at top of 32 bit address 54128fcee17SJerome Forissier space on 64-bit architecture. 54228fcee17SJerome Forissier 54328fcee17SJerome Forissier* plat-stm: support pager. Fix pager on ARMv7-A SMP boards. 54428fcee17SJerome Forissier 54528fcee17SJerome Forissier* Fix debug output of Trusted Applications (remove "ERROR: TEE-CORE:" prefix) 54628fcee17SJerome Forissier 54728fcee17SJerome Forissier* Do not consider TA memref parameters as TA private memory 54828fcee17SJerome Forissier 54928fcee17SJerome Forissier* crypto: fix `cipher_final()` which would not call `cbc_done()` for CBC_MAC 55028fcee17SJerome Forissier algorithms 55128fcee17SJerome Forissier 55228fcee17SJerome Forissier* fix for 16-way PL310 55328fcee17SJerome Forissier 55428fcee17SJerome Forissier* arm32: fix call stack unwinding (`print_stack()`) 55528fcee17SJerome Forissier 55628fcee17SJerome Forissier* arm32: fix spinlock assembly code 55728fcee17SJerome Forissier 55828fcee17SJerome Forissier* plat-stm, plat-imx: fix SCR initalization 55928fcee17SJerome Forissier 56028fcee17SJerome Forissier* Fix user L1 MMU entries calculation (non-LPAE), allowing TTBCR.N values 56128fcee17SJerome Forissier other than 7. 56228fcee17SJerome Forissier 56328fcee17SJerome Forissier* mtk-mt8173: fix panic caused by incorrect size of SHMEM 56428fcee17SJerome Forissier 56528fcee17SJerome Forissier* plat-stm: fix RNG driver (non-flat mapping) 56628fcee17SJerome Forissier 56728fcee17SJerome Forissier## Known issues 56828fcee17SJerome Forissier 56928fcee17SJerome Forissier* New issues open on GitHub 57028fcee17SJerome Forissier * [#1203][issue1203] AES-CTS mode will fail when inlen=0x100, in_incr=0x80 57128fcee17SJerome Forissier * [#1199][issue1199] Both tee and teepriv reported GlobalPlatform compliant 57228fcee17SJerome Forissier * [#1188][issue1188] Secure storage (SQL FS and REE FS): blocks not tied to 57328fcee17SJerome Forissier current meta header 57428fcee17SJerome Forissier * [#1172][issue1172] paddr_t should be larger than 32 bits when 57528fcee17SJerome Forissier CFG_WITH_LPAE is enabled 57628fcee17SJerome Forissier 57728fcee17SJerome Forissier## Tested on 57828fcee17SJerome Forissier 57928fcee17SJerome ForissierIn the list below, _standard_ means that the `xtest` program passed with 58028fcee17SJerome Forissierits default configuration, while _extended_ means it was run successfully 58128fcee17SJerome Forissierwith the additional GlobalPlatform™ TEE Initial Configuration Test Suite 58228fcee17SJerome Forissierv1.1.0.4. 58328fcee17SJerome Forissier 58428fcee17SJerome ForissierIf a platform is not listed, it means the release was not tested on this 58528fcee17SJerome Forissierplatform. 58628fcee17SJerome Forissier 58728fcee17SJerome Forissier<!-- ${PLATFORM}-${PLATFORM_FLAVOR}, ordered alphabetically --> 58828fcee17SJerome Forissier* d02: extended 58928fcee17SJerome Forissier* hikey: extended 59028fcee17SJerome Forissier* imx-mx6ulevk: standard 59128fcee17SJerome Forissier* ls-ls1021atwr: standard 59228fcee17SJerome Forissier* mediatek-mt8173: standard 59328fcee17SJerome Forissier* rcar-h3: standard 59428fcee17SJerome Forissier* rpi3: standard 59528fcee17SJerome Forissier* stm-b2260: extended 59628fcee17SJerome Forissier* stm-cannes: extended 59728fcee17SJerome Forissier* ti-dra7xx: standard 59828fcee17SJerome Forissier* vexpress-fvp: standard 59928fcee17SJerome Forissier* vexpress-juno: standard 60028fcee17SJerome Forissier* vexpress-qemu_armv8a: standard 60128fcee17SJerome Forissier* vexpress-qemu_virt: extended 60228fcee17SJerome Forissier* zynqmp-zcu102: standard 60328fcee17SJerome Forissier 60428fcee17SJerome Forissier[github_commits_2_3_0]: https://github.com/OP-TEE/optee_os/compare/2.2.0...2.3.0 60528fcee17SJerome Forissier[issue1172]: https://github.com/OP-TEE/optee_os/issues/1172 60628fcee17SJerome Forissier[issue1188]: https://github.com/OP-TEE/optee_os/issues/1188 60728fcee17SJerome Forissier[issue1199]: https://github.com/OP-TEE/optee_os/issues/1199 60828fcee17SJerome Forissier[issue1203]: https://github.com/OP-TEE/optee_os/issues/1203 60928fcee17SJerome Forissier 610c0c5d399SJerome Forissier# OP-TEE - version 2.2.0 611c0c5d399SJerome Forissier 612c0c5d399SJerome Forissier[Link][github_commits_2_2_0] to a list of all commits between this release and 613c0c5d399SJerome Forissierthe previous one (2.1.0). 614c0c5d399SJerome Forissier 615c0c5d399SJerome ForissierPlease note: this release is API-compatible with the previous one, but the 616c0c5d399SJerome ForissierSecure Storage internal format is not compatible due to commit 617c0c5d399SJerome Forissier[fde4a75][commit_fde4a75] ("storage: encrypt the FEK with a TA-specific key"). 618c0c5d399SJerome Forissier 619c0c5d399SJerome Forissier[commit_fde4a75]: https://github.com/OP-TEE/optee_os/commit/fde4a75 620c0c5d399SJerome Forissier 621c0c5d399SJerome Forissier## New features 622c0c5d399SJerome Forissier 623c0c5d399SJerome Forissier* New supported platforms: 624c0c5d399SJerome Forissier * Freescale i.MX6 Quad SABRE Lite & SD 625c0c5d399SJerome Forissier * HiSilicon D02 626c0c5d399SJerome Forissier * Raspberry Pi3 627c0c5d399SJerome Forissier * Renesas RCAR H3 628c0c5d399SJerome Forissier * STMicroelectronics b2260 - h410 629c0c5d399SJerome Forissier 630c0c5d399SJerome Forissier* Pager: Support paging of read/write pages by encrypting them with AES-GCM. 631c0c5d399SJerome Forissier Support paging of user TAs. Add global setting for TZSRAM size 632c0c5d399SJerome Forissier (CFG_CORE_TZSRAM_EMUL_SIZE), defaults to 300K. 633c0c5d399SJerome Forissier 634c0c5d399SJerome Forissier* Support for more than 8 CPU cores 635c0c5d399SJerome Forissier 636c0c5d399SJerome Forissier* Added SPI framework and PL022 driver 637c0c5d399SJerome Forissier 638c0c5d399SJerome Forissier* GPIO: framework supports multiple instances, PL061 driver now has get/set 639c0c5d399SJerome Forissier interrupt and mode control functions 640c0c5d399SJerome Forissier 641c0c5d399SJerome Forissier* Secure storage: Encrypt the File Encryption Key with a TA-specific key for 642c0c5d399SJerome Forissier better TA isolation. Add build-time and run-time support for multiple storage 643c0c5d399SJerome Forissier backends. Add SQLite backend. 644c0c5d399SJerome Forissier 645c0c5d399SJerome Forissier* Trusted User Interface: some code is introduced to support the implementation 646c0c5d399SJerome Forissier of TUI. This includes: a generic framebuffer driver, display and serial 647c0c5d399SJerome Forissier abstractions, and drivers for PL111 (LCD) / PL050 (KMI) / TZC400 and PS2 648c0c5d399SJerome Forissier mouse. 649c0c5d399SJerome Forissier 650c0c5d399SJerome Forissier* AES acceleration using ARMv8-A Cryptographic Extensions instructions is 651c0c5d399SJerome Forissier now supported in AArch32 mode 652c0c5d399SJerome Forissier 653c0c5d399SJerome Forissier* Add support for GCC flags: -fsanitize=undefined and -fsanitize=kernel-address 654c0c5d399SJerome Forissier 655c0c5d399SJerome Forissier* Use a global setting for core heap size (CFG_CORE_HEAP_SIZE), 64K by default. 656c0c5d399SJerome Forissier 657c0c5d399SJerome Forissier* Add macros to unwind and print the call stack of TEE core 658c0c5d399SJerome Forissier 659c0c5d399SJerome Forissier* Libtomcrypt: sync with the latest `develop` branch. 660c0c5d399SJerome Forissier 661c0c5d399SJerome Forissier* The Trusted Application SDK (ta_dev_kit.mk) can produce libraries (.a) 662c0c5d399SJerome Forissier 663c0c5d399SJerome Forissier* Rework assertions and TEE core panics and properly honor NDEBUG 664c0c5d399SJerome Forissier 665c0c5d399SJerome Forissier## Bug fixes 666c0c5d399SJerome Forissier 667c0c5d399SJerome Forissier* Fix incorrect algorithm passed to cipher.final() 668c0c5d399SJerome Forissier 669c0c5d399SJerome Forissier* scripts: support Python 2.x and 3.x 670c0c5d399SJerome Forissier 671c0c5d399SJerome Forissier* Secure storage: Add proper locking to support concurrent access. Fix sign 672c0c5d399SJerome Forissier extension bug with offset parameter of syscall storage_obj_seek which could 673c0c5d399SJerome Forissier cause errors in Aarch32 mode. Fix reading beyond end of file. 674c0c5d399SJerome Forissier 675c0c5d399SJerome Forissier* Aarch64: mask all maskable exceptions before doing a normal return from call. 676c0c5d399SJerome Forissier 677c0c5d399SJerome Forissier* Device Tree: add no-map property to OP-TEE node in reserved-memory. 678c0c5d399SJerome Forissier 679c0c5d399SJerome Forissier* LibTomcrypt: fix CVE-2016-6129 680c0c5d399SJerome Forissier 681c0c5d399SJerome Forissier## Known issues 682c0c5d399SJerome Forissier 683c0c5d399SJerome Forissier* New issues open on GitHub 684c0c5d399SJerome Forissier * [#1093][issue1093] rcar-h3: xtest 6010 hangs 685c0c5d399SJerome Forissier * [#1092][issue1092] rcar-h3: xtest 4010 fails 686c0c5d399SJerome Forissier * [#1081][issue1081] Bad mapping of TA secure memref parameters 687c0c5d399SJerome Forissier * [#1071][issue1071] __data_end may not correctly represent text start position when using CFG_WITH_PAGER 688c0c5d399SJerome Forissier * [#1069][issue1069] armv7/Aarch32: crash in stack unwind (DPRINT_STACK()) 689c0c5d399SJerome Forissier 690c0c5d399SJerome Forissier## Tested on 691c0c5d399SJerome Forissier 692c0c5d399SJerome ForissierIn the list below, _standard_ means that the `xtest` program passed with 693c0c5d399SJerome Forissierits default configuration, while _extended_ means it was run successfully 694c0c5d399SJerome Forissierwith the additional GlobalPlatform™ TEE Initial Configuration Test Suite 695c0c5d399SJerome Forissierv1.1.0.4. 696c0c5d399SJerome Forissier 697c0c5d399SJerome ForissierIf a platform is not listed, it means the release was not tested on this 698c0c5d399SJerome Forissierplatform. 699c0c5d399SJerome Forissier 700c0c5d399SJerome Forissier<!-- ${PLATFORM}-${PLATFORM_FLAVOR}, ordered alphabetically --> 701c0c5d399SJerome Forissier* d02: extended 702c0c5d399SJerome Forissier* hikey: extended 703c0c5d399SJerome Forissier* imx-mx6qsabrelite: standard 704c0c5d399SJerome Forissier* imx-mx6qsabresd: standard 705c0c5d399SJerome Forissier* rcar-h3: standard, pass except issues [#1092][issue1092] and [#1093][issue1093] 706c0c5d399SJerome Forissier* rpi3: standard 707c0c5d399SJerome Forissier* stm-b2260: standard 708c0c5d399SJerome Forissier* stm-cannes: standard 709c0c5d399SJerome Forissier* ti-dra7xx: standard 710c0c5d399SJerome Forissier* vexpress-fvp: standard 711c0c5d399SJerome Forissier* vexpress-juno: standard 712c0c5d399SJerome Forissier* vexpress-qemu_armv8a: standard 713c0c5d399SJerome Forissier* vexpress-qemu_virt: extended 714c0c5d399SJerome Forissier* zynqmp-zcu102: standard 715c0c5d399SJerome Forissier 716c0c5d399SJerome Forissier[github_commits_2_2_0]: https://github.com/OP-TEE/optee_os/compare/2.1.0...2.2.0 717c0c5d399SJerome Forissier[issue1081]: https://github.com/OP-TEE/optee_os/issues/1081 718c0c5d399SJerome Forissier[issue1071]: https://github.com/OP-TEE/optee_os/issues/1071 719c0c5d399SJerome Forissier[issue1069]: https://github.com/OP-TEE/optee_os/issues/1069 720c0c5d399SJerome Forissier[issue1092]: https://github.com/OP-TEE/optee_os/issues/1092 721c0c5d399SJerome Forissier[issue1093]: https://github.com/OP-TEE/optee_os/issues/1093 722c0c5d399SJerome Forissier 723ac3cc110SPascal Brand# OP-TEE - version 2.1.0 724a0cd5d60SPascal Brand 725ac3cc110SPascal Brand## New features 726ac3cc110SPascal Brand 727ac3cc110SPascal Brand* New supported platforms: 728ac3cc110SPascal Brand * Xilinx Zynq UltraScale+ MPSOC 729ac3cc110SPascal Brand * Spreadtrum SC9860 730ac3cc110SPascal Brand 731ac3cc110SPascal Brand* GCC5 support 732ac3cc110SPascal Brand 733ac3cc110SPascal Brand* Non Linear Mapping support: In OP-TEE kernel mode, the physical to virtual 734ac3cc110SPascal Brand addresses was linear until this release, meaning the virtual addresses 735ac3cc110SPascal Brand were equal to the physical addresses. This is no more the case in this 736ac3cc110SPascal Brand release. 737ac3cc110SPascal Brand 738ac3cc110SPascal Brand* Font rendering routines have been introduced in order to ease an 739ac3cc110SPascal Brand implementation of Trusted UI. 740ac3cc110SPascal Brand 741ac3cc110SPascal Brand* File Storage: Possibility to use the normal world filesystem and the RPMB 742ac3cc110SPascal Brand implementations simultaneously. 743ac3cc110SPascal Brand 744ac3cc110SPascal Brand* AOSP: There is a [local manifest][aosp_local_manifest] to build OP-TEE into an AOSP build, running on HiKey. 745ac3cc110SPascal Brand Please refer to the README in that repo for instructions. 746ac3cc110SPascal Brand 747ac3cc110SPascal Brand* OpenEmbedded: In addition to the makefile-based build described in the optee_os README, there is an 748ac3cc110SPascal Brand [OpenEmbedded-based build][oe_build] that supports Qemu (32-bit), FVP (64-bit), and HiKey (64-bit). 749ac3cc110SPascal Brand Please refer to the README in that repo for instructions. 750ac3cc110SPascal Brand 751ac3cc110SPascal Brand* [Link][github_commits_2_1_0] to a list of all commits between this and 752ac3cc110SPascal Brand previous release. 753ac3cc110SPascal Brand 754ac3cc110SPascal Brand 755ac3cc110SPascal Brand## Tested on 756ac3cc110SPascal BrandDefinitions: 757ac3cc110SPascal Brand 758ac3cc110SPascal Brand| Type | Meaning | 759ac3cc110SPascal Brand| ---- | ------- | 760ac3cc110SPascal Brand| Standard tests | The [optee_test][optee_test] project. | 761ac3cc110SPascal Brand| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.1.0.4. | 762ac3cc110SPascal Brand 763ac3cc110SPascal Brand* ARM Juno Board (vexpress-juno), standard. 764ac3cc110SPascal Brand* Foundation Models (vexpress-fvp), standard tests + extended tests, 765ac3cc110SPascal Brand using FVP ARM V8 Foundation Platformr0p0 (platform build 10.0.37) 766ac3cc110SPascal Brand* FSL i.MX6 UltraLite EVK (imx), standard. 767ac3cc110SPascal Brand* FSL ls1021a (ls-ls1021atwr), standard tests. 768ac3cc110SPascal Brand* HiKey (hikey), standard + extended tests. 769ac3cc110SPascal Brand* QEMU (vexpress-qemu), standard + extended tests. 770ac3cc110SPascal Brand* Xilinx Zynq UltraScale+ MPSOC, standard tests 771ac3cc110SPascal Brand 772ac3cc110SPascal BrandNote that the following platform has not been tested: 773ac3cc110SPascal Brand* MTK8173-EVB (mediatek-mt8173) 774ac3cc110SPascal Brand 775ac3cc110SPascal Brand 776ac3cc110SPascal Brand## Known issues 777ac3cc110SPascal Brand* Issue(s) open on GitHub 778ac3cc110SPascal Brand * [#868][pr868]: python-wand font generation sometimes times out 779ac3cc110SPascal Brand * [#863][pr863]: "double free or corruption" error when building optee_os 780ac3cc110SPascal Brand * [#858][pr858]: UUIDs in binary format have wrong endinanness 781ac3cc110SPascal Brand * [#857][pr857]: Formatting of UUIDs is incorrect 782ac3cc110SPascal Brand * [#847][pr847]: optee_os panic(TEE-CORE: Assertion) 783ac3cc110SPascal Brand * [#838][pr838]: TUI font rendering is _very_ slow 784ac3cc110SPascal Brand * [#814][pr814]: Persistent objects : save informations after close 785ac3cc110SPascal Brand * [#665][pr665]: xtest 1013 stalled on HiKey when log levels are 4 and optee_os is on its own UART 786ac3cc110SPascal Brand * [#506][pr506]: tee-supplicant panic & ta panic 787ac3cc110SPascal Brand 788ac3cc110SPascal Brand[github_commits_2_1_0]: https://github.com/OP-TEE/optee_os/compare/2.0.0...2.1.0 789ac3cc110SPascal Brand[pr868]: https://github.com/OP-TEE/optee_os/issues/868 790ac3cc110SPascal Brand[pr863]: https://github.com/OP-TEE/optee_os/issues/863 791ac3cc110SPascal Brand[pr858]: https://github.com/OP-TEE/optee_os/issues/858 792ac3cc110SPascal Brand[pr857]: https://github.com/OP-TEE/optee_os/issues/857 793ac3cc110SPascal Brand[pr847]: https://github.com/OP-TEE/optee_os/issues/847 794ac3cc110SPascal Brand[pr838]: https://github.com/OP-TEE/optee_os/issues/838 795ac3cc110SPascal Brand[pr814]: https://github.com/OP-TEE/optee_os/issues/814 796ac3cc110SPascal Brand[pr665]: https://github.com/OP-TEE/optee_os/issues/665 797ac3cc110SPascal Brand[aosp_local_manifest]: https://github.com/linaro-swg/optee_android_manifest 798ac3cc110SPascal Brand[oe_build]: https://github.com/linaro-swg/oe-optee 799ac3cc110SPascal Brand 800ac3cc110SPascal Brand# OP-TEE - version 2.0.0 801a0cd5d60SPascal Brand 802a0cd5d60SPascal Brand## New features 803a0cd5d60SPascal Brand 804a0cd5d60SPascal Brand* Generic driver: A new generic TEE driver is in the process of being 805a0cd5d60SPascal Brand [upstreamed][gendrv_v9]. 806a0cd5d60SPascal Brand In this release, [OP-TEE/optee_linuxdriver][optee_linuxdriver] is no more used. 807a0cd5d60SPascal Brand Instead, linux v4.5 is being patched using the proposed Generic TEE Driver, 808a0cd5d60SPascal Brand as it can be found in [https://github.com/linaro-swg/linux/tree/optee][linux_optee] 809a0cd5d60SPascal Brand 810a0cd5d60SPascal Brand* RPMB support: Secure Storage can now use Replay Protected Memory Block (RPMB) partition 811a0cd5d60SPascal Brand of an eMMC device. Check the [full documentation][rpmb_doc] 812a0cd5d60SPascal Brand 813a0cd5d60SPascal Brand* Hard-float ABI is now available. 814a0cd5d60SPascal Brand 815a0cd5d60SPascal Brand* [Link][github_commits_2_0_0] to a list of all commits between this and 816a0cd5d60SPascal Brand previous release. 817a0cd5d60SPascal Brand 818a0cd5d60SPascal Brand 819a0cd5d60SPascal Brand## Tested on 820a0cd5d60SPascal BrandDefinitions: 821a0cd5d60SPascal Brand 822a0cd5d60SPascal Brand| Type | Meaning | 823a0cd5d60SPascal Brand| ---- | ------- | 824a0cd5d60SPascal Brand| Standard tests | The [optee_test][optee_test] project. | 825a0cd5d60SPascal Brand| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.1.0.4. | 826a0cd5d60SPascal Brand 827a0cd5d60SPascal Brand* ARM Juno Board (vexpress-juno), standard. 828a0cd5d60SPascal Brand* Foundation Models (vexpress-fvp), standard tests + extended tests, 829a0cd5d60SPascal Brand using FVP ARM V8 Foundation Platformr0p0 (platform build 9.5.40) 830eb00c7b9SPascal Brand* FSL ls1021a (ls-ls1021atwr), standard. 831a0cd5d60SPascal Brand* HiKey (hikey), standard. 832a0cd5d60SPascal Brand* MTK8173-EVB (mediatek-mt8173), standard. 833a0cd5d60SPascal Brand* QEMU (vexpress-qemu), standard + extended tests. 834a0cd5d60SPascal Brand* STM Cannes (stm-cannes), standard + extended tests. 835a0cd5d60SPascal Brand 836a0cd5d60SPascal Brand## Known issues 837a0cd5d60SPascal Brand* Issue(s) open on GitHub 838a0cd5d60SPascal Brand * [#40][prld40] BUG_ON() when re-using RPC buffer to tee-supplicant 839a0cd5d60SPascal Brand * [#506][pr506]: tee-supplicant panic & ta panic 840a0cd5d60SPascal Brand 841a0cd5d60SPascal Brand[github_commits_2_0_0]: https://github.com/OP-TEE/optee_os/compare/1.1.0...2.0.0 842a0cd5d60SPascal Brand[rpmb_doc]: https://github.com/OP-TEE/optee_os/blob/master/documentation/secure_storage_rpmb.md 843a0cd5d60SPascal Brand[optee_linuxdriver]: https://github.com/OP-TEE/optee_linuxdriver 844a0cd5d60SPascal Brand[gendrv_v9]: https://lkml.org/lkml/2016/4/1/205 845a0cd5d60SPascal Brand[linux_optee]: https://github.com/linaro-swg/linux/tree/optee 846a0cd5d60SPascal Brand 847a0cd5d60SPascal Brand 848c5bbfb4dSPascal Brand# OP-TEE - version 1.1.0 849c5bbfb4dSPascal Brand 850c5bbfb4dSPascal Brand 851c5bbfb4dSPascal Brand## New features 852c5bbfb4dSPascal Brand 853c5bbfb4dSPascal Brand* Softfloat library: floating point support is now available in 32bits TA. 854c5bbfb4dSPascal Brand 855c5bbfb4dSPascal Brand* Support running 64-bits TA: on ARMv8-A platform, TA can be compiled in 856c5bbfb4dSPascal Brand AArch32 and/or in AArch64 in case the core is compiled in AArch64. 857c5bbfb4dSPascal Brand An example can be found in HiKey configuration file. Using the following 858c5bbfb4dSPascal Brand excerpt code, the user TA libraries are compiled in both AArch32 and 859c5bbfb4dSPascal Brand AArch64, and can be found in `out/arm-plat-hikey/export-ta_arm32` and 860c5bbfb4dSPascal Brand `out/arm-plat-hikey/export-ta_arm64` 861c5bbfb4dSPascal Brand 862c5bbfb4dSPascal Brand``` 863c5bbfb4dSPascal Brand ta-targets = ta_arm32 864c5bbfb4dSPascal Brand ta-targets += ta_arm64 865c5bbfb4dSPascal Brand``` 866c5bbfb4dSPascal Brand 867c5bbfb4dSPascal Brand* Concurrent TA support: multiple TA can run in parallel on 868c5bbfb4dSPascal Brand several cores. 869c5bbfb4dSPascal Brand 870c5bbfb4dSPascal Brand* New tests added in xtest test suite: concurrent TA (xtest 1013), 871c5bbfb4dSPascal Brand floating point tests (xtest 1006 and os_test TA) and corruption 872c5bbfb4dSPascal Brand file storage (xtest 20000) 873c5bbfb4dSPascal Brand 874c5bbfb4dSPascal Brand* [Link][github_commits_1_1_0] to a list of all commits between this and 875c5bbfb4dSPascal Brand previous release. 876c5bbfb4dSPascal Brand 877c5bbfb4dSPascal Brand 878c5bbfb4dSPascal Brand## Tested on 879c5bbfb4dSPascal BrandDefinitions: 880c5bbfb4dSPascal Brand 881c5bbfb4dSPascal Brand| Type | Meaning | 882c5bbfb4dSPascal Brand| ---- | ------- | 883c5bbfb4dSPascal Brand| Standard tests | The [optee_test][optee_test] project. | 884c5bbfb4dSPascal Brand| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.1.0.4. | 885c5bbfb4dSPascal Brand| Hello world test | Plain hello world Trusted Application such as [this][hello_world]. | 886c5bbfb4dSPascal Brand 887c5bbfb4dSPascal Brand* Foundation Models (vexpress-fvp), standard tests + extended tests, 888c5bbfb4dSPascal Brand using FVP ARM V8 Foundation Platformr0p0 (platform build 9.5.40) 889c5bbfb4dSPascal Brand* HiKey (hikey), standard + extended tests. 890c5bbfb4dSPascal Brand* MT8173 (mediatek), standard tests. 891c5bbfb4dSPascal Brand* QEMU (vexpress-qemu), standard + extended tests. 892c5bbfb4dSPascal Brand* STM Cannes (stm-cannes), standard + extended tests. 893c5bbfb4dSPascal Brand 894c5bbfb4dSPascal Brand## Known issues 895c5bbfb4dSPascal Brand* Secure Storage is implemented, but note that anti-rollback protection 896c5bbfb4dSPascal Brand is not implemented yet. 897c5bbfb4dSPascal Brand 898c5bbfb4dSPascal Brand* Issue(s) open on GitHub 899c5bbfb4dSPascal Brand * [#40][prld40] BUG_ON() when re-using RPC buffer to tee-supplicant 900c5bbfb4dSPascal Brand * [#296][pr296]: Connecting RPMB to the storage APIs. 901c5bbfb4dSPascal Brand * [#493][pr493]: setup_juno_optee: unable to find pre-built binaries 902c5bbfb4dSPascal Brand * [#506][pr506]: tee-supplicant panic & ta panic 903c5bbfb4dSPascal Brand 904c5bbfb4dSPascal Brand[prld40]: https://github.com/OP-TEE/optee_linuxdriver/issues/40 905c5bbfb4dSPascal Brand[pr506]: https://github.com/OP-TEE/optee_os/issues/506 906c5bbfb4dSPascal Brand[github_commits_1_1_0]: https://github.com/OP-TEE/optee_os/compare/1.0.1...1.1.0 907c5bbfb4dSPascal Brand 908c5bbfb4dSPascal Brand 909c5bbfb4dSPascal Brand 9108a7ee79dSPascal Brand# OP-TEE - version 1.0.0 9118a7ee79dSPascal Brand 9128a7ee79dSPascal BrandOP-TEE is now maintained by Linaro. Contributors do not need to 9138a7ee79dSPascal Brandsign a CLA anymore, but must follow the rules of the [DCO][DCO] 9148a7ee79dSPascal Brand(Developer Certificate of Origin) instead. 9158a7ee79dSPascal Brand 9168a7ee79dSPascal Brand 9178a7ee79dSPascal Brand## New features 9188a7ee79dSPascal Brand 9198a7ee79dSPascal Brand* Add hardware support for Texas Instruments DRA7xx, ARMv7 (plat-ti) 9208a7ee79dSPascal Brand 9218a7ee79dSPascal Brand* GlobalPlatform™ TEE Internal Core API Specification v1.1, 9228a7ee79dSPascal Brand including ECC algorithms. 9238a7ee79dSPascal Brand 9248a7ee79dSPascal Brand* Secure Storage: Files stored by the REE are now encrypted. Operations 9258a7ee79dSPascal Brand are made atomic in order to prevent inconsistencies in case of errors 9268a7ee79dSPascal Brand during the storage operations. [Slides][LCStorage] describing the 9278a7ee79dSPascal Brand Secure Storage have been presented at the Linaro Connect SFO15. 9288a7ee79dSPascal Brand 9298a7ee79dSPascal Brand* Change of format of the Trusted Applications: they follow a 9308a7ee79dSPascal Brand [signed ELF format][elf] 9318a7ee79dSPascal Brand 9328a7ee79dSPascal Brand* Rework thread [synchronization][synchro] in optee_os. 9338a7ee79dSPascal Brand 9348a7ee79dSPascal Brand* Use of ARMv8 native cryptographic support. 9358a7ee79dSPascal Brand 9368a7ee79dSPascal Brand* [OP-TEE/optee_test][optee_test] test suite is released. 9378a7ee79dSPascal Brand 9388a7ee79dSPascal Brand* Introduce [OP-TEE/manifest][manifest] and [OP-TEE/build][build] 9398a7ee79dSPascal Brand to setup and build QEMU, FVP, HiKey and Mediatek platforms. Setup scripts 9408a7ee79dSPascal Brand that used to be in optee_os have been removed, except for Juno board. 9418a7ee79dSPascal Brand 94295422146SPascal Brand* [Link][github_commits_1_0_0] to a list of all commits between this and 94395422146SPascal Brand previous release. 94495422146SPascal Brand 9458a7ee79dSPascal Brand 9468a7ee79dSPascal Brand## Tested on 9478a7ee79dSPascal BrandDefinitions: 9488a7ee79dSPascal Brand 9498a7ee79dSPascal Brand| Type | Meaning | 9508a7ee79dSPascal Brand| ---- | ------- | 9518a7ee79dSPascal Brand| Standard tests | The [optee_test][optee_test] project. | 9528a7ee79dSPascal Brand| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.1.0.4. | 9538a7ee79dSPascal Brand| Hello world test | Plain hello world Trusted Application such as [this][hello_world]. | 9548a7ee79dSPascal Brand 9558a7ee79dSPascal Brand* ARM Juno Board (vexpress-juno), standard + extended tests. 9568a7ee79dSPascal Brand* Foundation Models (vexpress-fvp), standard tests. 9578a7ee79dSPascal Brand* HiKey (hikey), standard + extended tests. 9588a7ee79dSPascal Brand* MT8173 (mediatek), standard tests. 9598a7ee79dSPascal Brand* QEMU (vexpress-qemu), standard + extended tests. 9608a7ee79dSPascal Brand* STM Cannes (stm-cannes), standard + extended tests. 9618a7ee79dSPascal Brand 96295422146SPascal Brand## Known issues 96395422146SPascal Brand* Secure Storage is implemented, but note that anti-rollback protection 96495422146SPascal Brand is not implemented yet. 96595422146SPascal Brand 96695422146SPascal Brand* Issue(s) open on GitHub 96795422146SPascal Brand * [#210][pr210]: libteec.so 32-bit does not communicate well 96895422146SPascal Brand with 64-bit kernel module 96995422146SPascal Brand * [#296][pr296]: Connecting RPMB to the storage APIs. 97095422146SPascal Brand * [#493][pr493]: setup_juno_optee: unable to find pre-built binaries 97195422146SPascal Brand * [#494][pr494]: HiKey: xtest 7671 fails (1.0.0-rc2) 97295422146SPascal Brand 97395422146SPascal Brand[pr210]: https://github.com/OP-TEE/optee_os/issues/210 97495422146SPascal Brand[pr296]: https://github.com/OP-TEE/optee_os/issues/296 97595422146SPascal Brand[pr493]: https://github.com/OP-TEE/optee_os/issues/493 97695422146SPascal Brand[pr494]: https://github.com/OP-TEE/optee_os/issues/494 97795422146SPascal Brand[github_commits_1_0_0]: https://github.com/OP-TEE/optee_os/compare/0.3.0...1.0.0 9788a7ee79dSPascal Brand[DCO]: https://github.com/OP-TEE/optee_os/blob/master/Notice.md#contributions 9798a7ee79dSPascal Brand[LCStorage]: http://www.slideshare.net/linaroorg/sfo15503-secure-storage-in-optee 9808a7ee79dSPascal Brand[synchro]: https://github.com/OP-TEE/optee_os/blob/master/documentation/optee_design.md#4-thread-handling 9818a7ee79dSPascal Brand[elf]: https://github.com/OP-TEE/optee_os/blob/master/documentation/optee_design.md#format 9828a7ee79dSPascal Brand[optee_test]: https://github.com/OP-TEE/optee_test 9838a7ee79dSPascal Brand[manifest]: https://github.com/OP-TEE/manifest 9848a7ee79dSPascal Brand[build]: https://github.com/OP-TEE/build 9858a7ee79dSPascal Brand 98695422146SPascal Brand 98795422146SPascal Brand 98811d59085SPascal Brand# OP-TEE - version 0.3.0 98911d59085SPascal Brand 99011d59085SPascal Brand## New features 99111d59085SPascal Brand 99211d59085SPascal Brand* Add hardware support for 99311d59085SPascal Brand * Mediatek MT8173 Board, ARMv8-A (plat-mediatek) 99411d59085SPascal Brand * Hisilicon HiKey Board, ARMv8-A (plat-hikey) 99511d59085SPascal Brand* AArch64 build of optee_os is now possible through the configuration `CFG_ARM64_core=y` 99611d59085SPascal Brand* Secure Storage: Data can be encrypted prior to their storage in the non-secure. 99711d59085SPascal Brand Build is configured using `CFG_ENC_FS=y` 99811d59085SPascal Brand* A generic boot scheme can be used. Boot configuration is commonalized. This helps 99911d59085SPascal Brand new board support. It is applied on plat-hikey, plat-vexpress, plat-mediatek, plat-stm 100011d59085SPascal Brand and plat-vexpress. 100111d59085SPascal Brand 100211d59085SPascal Brand## Tested on 100311d59085SPascal BrandDefinitions: 100411d59085SPascal Brand 100511d59085SPascal Brand| Type | Meaning | 100611d59085SPascal Brand| ---- | ------- | 100711d59085SPascal Brand| Standard tests | The optee_test project. | 100811d59085SPascal Brand| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.1.0.4. | 100911d59085SPascal Brand| Hello world test | Plain hello world Trusted Application such as [this][hello_world]. | 101011d59085SPascal Brand 101111d59085SPascal Brand* ARM Juno Board (vexpress-juno), standard tests. 101211d59085SPascal Brand* Foundation Models (vexpress-fvp), standard tests. 101311d59085SPascal Brand* HiKey (hikey), standard tests. 101411d59085SPascal Brand* MT8173 (mediatek), standard tests. 101511d59085SPascal Brand* QEMU (vexpress-qemu), standard + extended tests. 101611d59085SPascal Brand* STM Cannes (stm-cannes), standard + extended tests. 101711d59085SPascal Brand 101811d59085SPascal Brand------------------------------------------- 101911d59085SPascal Brand 1020f5117af2SPascal Brand# OP-TEE - version 0.2.0 1021759cc499SJoakim Bech 1022f5117af2SPascal Brand## New features 1023f5117af2SPascal Brand 1024f5117af2SPascal Brand### Linux Driver Refactoring 1025f5117af2SPascal Brand 1026f5117af2SPascal BrandLinux Driver has been refactored. It is now split in two parts: 1027f5117af2SPascal Brand* optee.ko, the generic Linux driver. It contains all functionality 1028f5117af2SPascal Brand common to all backends. 1029f5117af2SPascal Brand* optee_armtz.ko, a specific backend dedicated to the TrustZone optee. 1030f5117af2SPascal Brand It depends on optee.ko. 1031f5117af2SPascal Brand 1032f5117af2SPascal BrandLoading the TrustZone optee linux driver module is now performed using 1033f5117af2SPascal Brand 1034f5117af2SPascal Brand modprobe optee_armtz 1035f5117af2SPascal Brand 1036f5117af2SPascal BrandThanks to the dependency between the generic and the backend modules, optee.ko is then automatically loaded. 1037f5117af2SPascal Brand 1038f5117af2SPascal Brand### Misc new features 1039f5117af2SPascal Brand* support PL310 lock down at TEE boot 1040f5117af2SPascal Brand* add 64bits support (division / print) 1041f5117af2SPascal Brand 1042f5117af2SPascal Brand## Tested on 1043f5117af2SPascal BrandDefinitions: 1044f5117af2SPascal Brand 1045f5117af2SPascal Brand| Type | Meaning | 1046f5117af2SPascal Brand| ---- | ------- | 1047f5117af2SPascal Brand| Standard tests | The optee_test project. | 1048f5117af2SPascal Brand| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.1.0.4. | 1049f5117af2SPascal Brand| Hello world test | Plain hello world Trusted Application such as [this][hello_world]. | 1050f5117af2SPascal Brand 1051f5117af2SPascal Brand* ARM Juno Board (vexpress-juno), standard tests + extended tests. 1052f5117af2SPascal Brand 1053f5117af2SPascal Brand* Foundation Models (vexpress-fvp), standard + extended tests. 1054f5117af2SPascal Brand 1055f5117af2SPascal Brand* QEMU (vexpress-qemu), standard + extended tests. 1056f5117af2SPascal Brand 1057f5117af2SPascal Brand* STM Cannes (stm-cannes), standard + extended tests. 1058f5117af2SPascal Brand 1059f5117af2SPascal Brand 106028fcee17SJerome Forissier## Issues resolved since last release 1061f5117af2SPascal Brand* Fix user TA trace issue, in order each TA is able to select its own trace level 1062f5117af2SPascal Brand 1063f5117af2SPascal Brand 1064f5117af2SPascal Brand------------------------------------------- 1065f5117af2SPascal Brand# OP-TEE - version 0.1.0 1066f5117af2SPascal Brand 1067f5117af2SPascal Brand## New features 1068759cc499SJoakim BechBelow is a summary of the most important features added, but at the end you will 1069759cc499SJoakim Bechfind a link that present you all commits between the current and previous 1070759cc499SJoakim Bechrelease tag. 1071759cc499SJoakim Bech 1072759cc499SJoakim Bech* GlobalPlatform Client API v1.0 support. 1073759cc499SJoakim Bech 1074759cc499SJoakim Bech* GlobalPlatform Internal API v1.0 support. 1075759cc499SJoakim Bech 1076759cc499SJoakim Bech* GlobalPlatform Secure Elements v1.0 support. 1077759cc499SJoakim Bech 1078759cc499SJoakim Bech* Add hardware support for 1079759cc499SJoakim Bech 1080759cc499SJoakim Bech * Allwinner A80, ARMv7-A. 1081759cc499SJoakim Bech 1082759cc499SJoakim Bech * ARM Juno Board, ARMv8-A. 1083759cc499SJoakim Bech 1084759cc499SJoakim Bech * Foundation Models, ARMv8-A. 1085759cc499SJoakim Bech 1086759cc499SJoakim Bech * Fast Models, ARMv8-A. 1087759cc499SJoakim Bech 1088759cc499SJoakim Bech * QEMU, ARMv7-A. 1089759cc499SJoakim Bech 1090759cc499SJoakim Bech * STM Cannes, ARMv7-A. 1091759cc499SJoakim Bech 1092759cc499SJoakim Bech * STM Orly2, ARMv7-A. 1093759cc499SJoakim Bech 1094759cc499SJoakim Bech* Add LibTomCrypt as the default software cryptographic library. 1095759cc499SJoakim Bech 1096759cc499SJoakim Bech* Add cryptographic abstraction layer in on secure side to ease the use of 1097759cc499SJoakim Bech other cryptographic software libraries or adding support for hardware 1098759cc499SJoakim Bech acceleration. 1099759cc499SJoakim Bech 1100759cc499SJoakim Bech* Extended cryptographic API with support for HKDF, Concat KDF and PBKDF2. 1101759cc499SJoakim Bech 1102759cc499SJoakim Bech* SHA-1 and SHA-256 ARMv8-A crypto extension implementation. 1103759cc499SJoakim Bech 1104759cc499SJoakim Bech* Enabled paging support in OP-TEE OS. 1105759cc499SJoakim Bech 1106759cc499SJoakim Bech* Add support for xtest (both standard and extended) in QEMU and FVP setup 1107759cc499SJoakim Bech scripts. 1108759cc499SJoakim Bech 1109759cc499SJoakim Bech* Add documentation for the OS design, cryptographic abstraction layer, secure 1110759cc499SJoakim Bech elements design, the build system, GitHub usage, key derivation extensions, 1111759cc499SJoakim Bech ARM-Trusted Firmware usage within OP-TEE and GlobalPlatform usage within 1112759cc499SJoakim Bech OP-TEE. 1113759cc499SJoakim Bech 1114759cc499SJoakim Bech* Integrate support for Travis CI. 1115759cc499SJoakim Bech 1116759cc499SJoakim Bech* [Link][github_commits_0_1_0] to a list of all commits between this and 1117759cc499SJoakim Bech previous release. 1118759cc499SJoakim Bech 1119759cc499SJoakim Bech 1120f5117af2SPascal Brand## Tested on 1121759cc499SJoakim BechDefinitions: 1122759cc499SJoakim Bech 1123759cc499SJoakim Bech| Type | Meaning | 1124759cc499SJoakim Bech| ---- | ------- | 1125759cc499SJoakim Bech| Standard tests | The optee_test project. | 1126759cc499SJoakim Bech| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.0.0. | 1127759cc499SJoakim Bech| Hello world test | Plain hello world Trusted Application such as [this][hello_world]. | 1128759cc499SJoakim Bech 1129759cc499SJoakim Bech* Allwinner A80 (plat-sunxi), hello world test. 1130759cc499SJoakim Bech 1131759cc499SJoakim Bech* ARM Juno Board (vexpress-juno), standard tests. 1132759cc499SJoakim Bech 1133759cc499SJoakim Bech* Foundation Models (plat-vexpress-fvp), standard + extended tests 1134759cc499SJoakim Bech 1135759cc499SJoakim Bech* QEMU (plat-vexpress-qemu), standard + extended tests (and Secure Elements 1136759cc499SJoakim Bech tested separately). 1137759cc499SJoakim Bech 1138759cc499SJoakim Bech* STM Cannes (plat-stm-cannes), standard + extended tests. 1139759cc499SJoakim Bech 1140759cc499SJoakim Bech 114128fcee17SJerome Forissier## Issues resolved since last release 1142759cc499SJoakim BechN/A since this is the first release tag on OP-TEE. 1143759cc499SJoakim Bech 1144759cc499SJoakim Bech 1145f5117af2SPascal Brand## Known issues 1146759cc499SJoakim Bech* Storage is implemented, but not "Secure storage", meaning that a client 1147759cc499SJoakim Bech needs to do encrypt files on their own before storing the files. 1148759cc499SJoakim Bech 1149759cc499SJoakim Bech* Issue(s) open on GitHub 1150759cc499SJoakim Bech * [#95][pr95]: An error about building the test code of libtomcrypt. 1151759cc499SJoakim Bech 1152759cc499SJoakim Bech * [#149][pr149]: when testing optee os with arm trusted firmware (I 1153759cc499SJoakim Bech utilized optee os tee.bin as bl32 image) on juno platform, I got an 1154759cc499SJoakim Bech error. 1155759cc499SJoakim Bech 1156759cc499SJoakim Bech * [#161][pr161]: tee_svc_cryp.c lacks accessibility checks on 1157759cc499SJoakim Bech user-supplied TEE_Attributes. 1158759cc499SJoakim Bech 1159759cc499SJoakim Bech[hello_world]: https://github.com/jenswi-linaro/lcu14_optee_hello_world 1160759cc499SJoakim Bech[github_commits_0_1_0]: https://github.com/OP-TEE/optee_os/compare/b01047730e77127c23a36591643eeb8bb0487d68...999e4a6c0f64d3177fd3d0db234107b6fb860884 1161759cc499SJoakim Bech[pr95]: https://github.com/OP-TEE/optee_os/issues/95 1162759cc499SJoakim Bech[pr149]: https://github.com/OP-TEE/optee_os/issues/149 1163759cc499SJoakim Bech[pr161]: https://github.com/OP-TEE/optee_os/issues/161 1164759cc499SJoakim Bech 11657583c59eSCedric Chaumont* Global Platform Device Internal Core API v1.1 11667583c59eSCedric Chaumont * [#230][pr230]: Persistent object corruption support (TEE_ERROR_CORRUPT_OBJECT/_2) 11677583c59eSCedric Chaumont * [#230][pr230]: Persistent object access support (TEE_ERROR_STORAGE_NOT_AVAILABLE/_2) 1168