xref: /optee_os/CHANGELOG.md (revision f398d4923da875370149ffee45c963d7adb41495)
1*f398d492SJerome Forissier# OP-TEE - version 3.6.0 (2019-07-05)
2*f398d492SJerome Forissier
3*f398d492SJerome Forissier- Link to the GitHub [release page][github_release_3_6_0].
4*f398d492SJerome Forissier- Links to the [commits][github_commits_3_6_0] and
5*f398d492SJerome Forissier[pull requests][github_pr_3_6_0] merged into this release.
6*f398d492SJerome Forissier
7*f398d492SJerome Forissier[github_release_3_6_0]: https://github.com/OP-TEE/optee_os/releases/tag/3.6.0
8*f398d492SJerome Forissier[github_commits_3_6_0]: https://github.com/OP-TEE/optee_os/compare/3.5.0...3.6.0
9*f398d492SJerome Forissier[github_pr_3_6_0]: https://github.com/OP-TEE/optee_os/pulls?q=is%3Apr+is%3Amerged+base%3Amaster+merged%3A2019-04-26..2019-07-05
10*f398d492SJerome Forissier
115df2a985SJoakim Bech# OP-TEE - version 3.5.0 (2019-04-26)
125df2a985SJoakim Bech
135df2a985SJoakim Bech- Link to the GitHub [release page][github_release_3_5_0].
145df2a985SJoakim Bech- Links to the [commits][github_commits_3_5_0] and
155df2a985SJoakim Bech[pull requests][github_pr_3_5_0] merged into this release.
165df2a985SJoakim Bech
175df2a985SJoakim Bech[github_release_3_5_0]: https://github.com/OP-TEE/optee_os/releases/tag/3.5.0
185df2a985SJoakim Bech[github_commits_3_5_0]: https://github.com/OP-TEE/optee_os/compare/3.4.0...3.5.0
195df2a985SJoakim Bech[github_pr_3_5_0]: https://github.com/OP-TEE/optee_os/pulls?q=is%3Apr+is%3Amerged+base%3Amaster+merged%3A2019-01-26..2019-04-26
205df2a985SJoakim Bech
21406c609bSJerome Forissier# OP-TEE - version 3.4.0 (2019-01-25)
22406c609bSJerome Forissier
23406c609bSJerome Forissier- Link to the GitHub [release page][github_release_3_4_0].
24406c609bSJerome Forissier- Links to the [commits][github_commits_3_4_0] and
25406c609bSJerome Forissier[pull requests][github_pr_3_4_0] merged into this release.
26406c609bSJerome Forissier
27406c609bSJerome Forissier[github_release_3_4_0]: https://github.com/OP-TEE/optee_os/releases/tag/3.4.0
28406c609bSJerome Forissier[github_commits_3_4_0]: https://github.com/OP-TEE/optee_os/compare/3.3.0...3.4.0
29406c609bSJerome Forissier[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
30406c609bSJerome Forissier
31ee595e95SJerome Forissier# OP-TEE - version 3.3.0 (2018-10-12)
32ee595e95SJerome Forissier
33ee595e95SJerome Forissier- Link to the GitHub [release page][github_release_3_3_0].
34ee595e95SJerome Forissier- Links to the [commits][github_commits_3_3_0] and
35ee595e95SJerome Forissier[pull requests][github_pr_3_3_0] merged into this release.
36ee595e95SJerome Forissier
37ee595e95SJerome Forissier[github_release_3_3_0]: https://github.com/OP-TEE/optee_os/releases/tag/3.3.0
38ee595e95SJerome Forissier[github_commits_3_3_0]: https://github.com/OP-TEE/optee_os/compare/3.2.0...3.3.0
39ee595e95SJerome Forissier[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
40ee595e95SJerome Forissier
4153bf1c38SJerome Forissier# OP-TEE - version 3.2.0 (2018-07-04)
4253bf1c38SJerome Forissier
4353bf1c38SJerome Forissier- Link to the GitHub [release page][github_release_3_2_0].
4453bf1c38SJerome Forissier- Links to the [commits][github_commits_3_2_0] and
4553bf1c38SJerome Forissier[pull requests][github_pr_3_2_0] merged into this release.
4653bf1c38SJerome Forissier
4753bf1c38SJerome Forissier## Known issues
4853bf1c38SJerome Forissier
4953bf1c38SJerome Forissier* HiKey960: assertion in bget create_free_block() \[memalign() self-test\] ([#2414])
5053bf1c38SJerome Forissier* D02: assertion '!have_spinlock()' ([#2437])
5153bf1c38SJerome Forissier
5253bf1c38SJerome Forissier[github_commits_3_2_0]: https://github.com/OP-TEE/optee_os/compare/3.1.0...3.2.0
5353bf1c38SJerome Forissier[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
5453bf1c38SJerome Forissier[github_release_3_2_0]: https://github.com/OP-TEE/optee_os/releases/tag/3.2.0
5553bf1c38SJerome Forissier[#2414]: https://github.com/OP-TEE/optee_os/issues/2414
5653bf1c38SJerome Forissier[#2437]: https://github.com/OP-TEE/optee_os/issues/2437
5753bf1c38SJerome Forissier
580ab9388cSJens Wiklander# OP-TEE - version 3.1.0 (2018-04-13)
590ab9388cSJens Wiklander
600ab9388cSJens Wiklander- Link to the GitHub [release page][github_release_3_1_0].
610ab9388cSJens Wiklander- Links to the [commits][github_commits_3_1_0] and
620ab9388cSJens Wiklander[pull requests][github_pr_3_1_0] merged into this release.
630ab9388cSJens Wiklander
640ab9388cSJens Wiklander[github_commits_3_1_0]: https://github.com/OP-TEE/optee_os/compare/3.0.0...3.1.0
650ab9388cSJens 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
660ab9388cSJens Wiklander[github_release_3_1_0]: https://github.com/OP-TEE/optee_os/releases/tag/3.1.0
670ab9388cSJens Wiklander
680ab9388cSJens Wiklander# OP-TEE - version 3.0.0 (2018-01-26)
6994ee4938SJerome Forissier
7094ee4938SJerome Forissier[Link][github_commits_3_0_0] to a list of all commits between this release and
7194ee4938SJerome Forissierthe previous one (2.6.0).
7294ee4938SJerome Forissier
7394ee4938SJerome ForissierAbout backwards compatibility: Trusted Applications built with OP-TEE 2.5.0 or
7494ee4938SJerome Forissierearlier will not run properly with a *debug* build of this release due
7594ee4938SJerome Forissierto commit [0e1c6e8e][commit_0e1c6e8e] ("Dump call stack on TA panic").
7694ee4938SJerome ForissierNon-debug builds are not affected.
7794ee4938SJerome Forissier
7894ee4938SJerome Forissier## New features
7994ee4938SJerome Forissier
8094ee4938SJerome Forissier* New supported platforms: Armada 3700 ([#1946]), Poplar ([#1999]), 64-bit
8194ee4938SJerome Forissier  support for FSL ls1012ardb ([#1941]), i.MX6SX Sabreauto ([#1974]).
8294ee4938SJerome Forissier* arm32: sm: init CNTVOFF ([#2052])
8394ee4938SJerome Forissier* Debug/info/error traces: make output more compact ([#2011])
8494ee4938SJerome Forissier* tzc380: implement new functions ([#1994])
8594ee4938SJerome Forissier* Secure Data Path: add pseudo-TA to convert VA to PA (#1993])
8694ee4938SJerome Forissier* Pager: use NEON AES GCM implementation ([#1959])
8794ee4938SJerome Forissier* Crypto: add optimized AES GCM implementation using NEON ([#1949])
8894ee4938SJerome Forissier* Add support for using secure storage for TA anti-rollback ([#1928])
8994ee4938SJerome Forissier* Crypto: replace struct crypto_ops with function interface ([#1923],
9094ee4938SJerome Forissier  [#1931])
9194ee4938SJerome Forissier* aosp_optee.mk: define OPTEE_BIN ([#1922])
9294ee4938SJerome Forissier* Add build option to allow concurrent execution of single-instance TAs
9394ee4938SJerome Forissier  ([#1915])
9494ee4938SJerome Forissier* Pager: support for address sanitizer ([#1856])
9594ee4938SJerome Forissier* Pager: make memory between CFG_TEE_RAM_START and TEE load address usable by
9694ee4938SJerome Forissier  pager ([#1826])
9794ee4938SJerome Forissier
9894ee4938SJerome Forissier## Bug fixes
9994ee4938SJerome Forissier
10094ee4938SJerome Forissier* Fix crash in tee_mmu_final() on TA loading error ([#2092])
10194ee4938SJerome Forissier* LibTomCrypt: fix issue causing invalid output when using AES CTR with
10294ee4938SJerome Forissierhardware acceleration (CFG_CRYPTO_WITH_CE) ([#2086])
10394ee4938SJerome Forissier* pl310: fix cache sync ([#2035])
10494ee4938SJerome Forissier* tzc380: do not write reserved bits ([#1994])
10594ee4938SJerome Forissier* Fix potential double free in ta_open() ([#1970])
10694ee4938SJerome Forissier* libfdt: fix undefined behaviour in fdt_offset_ptr() ([#1969])
10794ee4938SJerome Forissier* imx_wdog: fix register access ([#1966])
10894ee4938SJerome Forissier* Secure storage: fix potential memory leak after early return ([#1961])
10994ee4938SJerome Forissier* LibTomCrypt: fix double free in dsa_import() ([#1963])
11094ee4938SJerome Forissier* RPMB: fix TA independance issue in secure storage ([#1921])
11194ee4938SJerome Forissier* RPMB: return TEE_ERROR_ACCESS_CONFLICT instead of panicking when a TA
11294ee4938SJerome Forissier  attempts to create an existing persistent object without the overwrite flag
11394ee4938SJerome Forissier  ([#1919])
11494ee4938SJerome Forissier* PSCI: pass non-secure context to psci_system_suspend() ([#1916])
11594ee4938SJerome Forissier* Fix "Argument list too long" during "make clean" ([#1897])
11694ee4938SJerome Forissier
11794ee4938SJerome Forissier## Security fixes
11894ee4938SJerome Forissier
11994ee4938SJerome Forissier* Mitigations and hardening against the Spectre and Meltdown vulnerabilities
12094ee4938SJerome Forissier  (CVE-2017-5753, CVE-2017-5715, CVE-2017-5754).
12194ee4938SJerome Forissier
12294ee4938SJerome Forissier## Known issues
12394ee4938SJerome Forissier
12494ee4938SJerome Forissier* Secure storage (REE FS): storage size not updated after
12594ee4938SJerome ForissierTEE_TruncateObjectData() ([#2094])
12694ee4938SJerome Forissier* Possible deadlock with CFG_WITH_PAGER=y when loading a TA and not enough
12794ee4938SJerome Forissierpage tables are available in pgt_cache ([#2080])
12894ee4938SJerome Forissier
12994ee4938SJerome Forissier## Tested on
13094ee4938SJerome Forissier
13194ee4938SJerome ForissierThe release was tested successfully on the platforms listed below.
13294ee4938SJerome Forissier
13394ee4938SJerome Forissier<!-- ${PLATFORM}-${PLATFORM_FLAVOR}, ordered alphabetically -->
13494ee4938SJerome Forissier* d02
13594ee4938SJerome Forissier* hikey
13694ee4938SJerome Forissier* hikey-hikey960
13794ee4938SJerome Forissier* imx-mx6ulevk
13894ee4938SJerome Forissier* imx-mx7dsabresd
13994ee4938SJerome Forissier* marvell-armada7k8k
14094ee4938SJerome Forissier* marvell-armada3700
14194ee4938SJerome Forissier* mediatek-mt8173
14294ee4938SJerome Forissier* rcar-salvator_m3
14394ee4938SJerome Forissier* rockchip-rk322x
14494ee4938SJerome Forissier* rpi3
14594ee4938SJerome Forissier* sam
14694ee4938SJerome Forissier* ti
14794ee4938SJerome Forissier* vexpress-juno
14894ee4938SJerome Forissier* vexpress-qemu_armv8a
14994ee4938SJerome Forissier* vexpress-qemu_virt
15094ee4938SJerome Forissier
15194ee4938SJerome Forissier[commit_0e1c6e8e]: https://github.com/OP-TEE/optee_os/commit/0e1c6e8e
15294ee4938SJerome Forissier[github_commits_3_0_0]: https://github.com/OP-TEE/optee_os/compare/2.6.0...3.0.0
15394ee4938SJerome Forissier[#2092]: https://github.com/OP-TEE/optee_os/pull/2092
15494ee4938SJerome Forissier[#2086]: https://github.com/OP-TEE/optee_os/pull/2086
15594ee4938SJerome Forissier[#2094]: https://github.com/OP-TEE/optee_os/issues/2094
15694ee4938SJerome Forissier[#2080]: https://github.com/OP-TEE/optee_os/issues/2080
15794ee4938SJerome Forissier[#2052]: https://github.com/OP-TEE/optee_os/pull/2052
15894ee4938SJerome Forissier[#2035]: https://github.com/OP-TEE/optee_os/pull/2035
15994ee4938SJerome Forissier[#2011]: https://github.com/OP-TEE/optee_os/pull/2011
16094ee4938SJerome Forissier[#1999]: https://github.com/OP-TEE/optee_os/pull/1999
16194ee4938SJerome Forissier[#1994]: https://github.com/OP-TEE/optee_os/pull/1994
16294ee4938SJerome Forissier[#1993]: https://github.com/OP-TEE/optee_os/pull/1993
16394ee4938SJerome Forissier[#1974]: https://github.com/OP-TEE/optee_os/pull/1974
16494ee4938SJerome Forissier[#1970]: https://github.com/OP-TEE/optee_os/pull/1970
16594ee4938SJerome Forissier[#1969]: https://github.com/OP-TEE/optee_os/pull/1969
16694ee4938SJerome Forissier[#1966]: https://github.com/OP-TEE/optee_os/pull/1966
16794ee4938SJerome Forissier[#1963]: https://github.com/OP-TEE/optee_os/pull/1963
16894ee4938SJerome Forissier[#1961]: https://github.com/OP-TEE/optee_os/pull/1961
16994ee4938SJerome Forissier[#1959]: https://github.com/OP-TEE/optee_os/pull/1959
17094ee4938SJerome Forissier[#1949]: https://github.com/OP-TEE/optee_os/pull/1949
17194ee4938SJerome Forissier[#1946]: https://github.com/OP-TEE/optee_os/pull/1946
17294ee4938SJerome Forissier[#1941]: https://github.com/OP-TEE/optee_os/pull/1941
17394ee4938SJerome Forissier[#1931]: https://github.com/OP-TEE/optee_os/pull/1931
17494ee4938SJerome Forissier[#1928]: https://github.com/OP-TEE/optee_os/pull/1928
17594ee4938SJerome Forissier[#1923]: https://github.com/OP-TEE/optee_os/pull/1923
17694ee4938SJerome Forissier[#1922]: https://github.com/OP-TEE/optee_os/pull/1922
17794ee4938SJerome Forissier[#1921]: https://github.com/OP-TEE/optee_os/pull/1921
17894ee4938SJerome Forissier[#1919]: https://github.com/OP-TEE/optee_os/pull/1919
17994ee4938SJerome Forissier[#1916]: https://github.com/OP-TEE/optee_os/pull/1916
18094ee4938SJerome Forissier[#1915]: https://github.com/OP-TEE/optee_os/pull/1915
18194ee4938SJerome Forissier[#1897]: https://github.com/OP-TEE/optee_os/pull/1897
18294ee4938SJerome Forissier[#1856]: https://github.com/OP-TEE/optee_os/pull/1856
18394ee4938SJerome Forissier[#1826]: https://github.com/OP-TEE/optee_os/pull/1826
18494ee4938SJerome Forissier
1856d57389fSJerome Forissier# OP-TEE - version 2.6.0
1866d57389fSJerome Forissier
1876d57389fSJerome Forissier[Link][github_commits_2_6_0] to a list of all commits between this release and
1886d57389fSJerome Forissierthe previous one (2.5.0).
1896d57389fSJerome Forissier
1906d57389fSJerome Forissier## New features
1916d57389fSJerome Forissier
1926d57389fSJerome Forissier* New supported platforms: Atmel SAMA5 ([#1714]), HiSilicon HiKey960 ([#1684]),
1936d57389fSJerome Forissier  Rockchip RK322X ([#1666]), NXP LS1043A-RDB/LS1046A-RDB ([#1787]), Marvell
1946d57389fSJerome Forissier  Armada 70x0/80x0 ([#1807]).
1956d57389fSJerome Forissier* Dynamic shared memory (non-contiguous, non-secure memory can be mapped into
1966d57389fSJerome Forissier  Trusted Applications VA space) ([#1631])
1976d57389fSJerome Forissier* Dump TA call stack on panic ([#1858])
1986d57389fSJerome Forissier* i.MX: PSCI reset ([#1849])
1996d57389fSJerome Forissier* plat-ti: AM43xx: suspend/resume support ([#1822])
2006d57389fSJerome Forissier* QEMU SMP support ([#1820])
2016d57389fSJerome Forissier* plat-ti: AM43xx: disable TRNG ([#1816])
2026d57389fSJerome Forissier* plat-ti: enable Secure Data Path by default ([#1815])
2036d57389fSJerome Forissier* Improve symbolize.py ([#1778], [#1767], [#1766])
2046d57389fSJerome Forissier* Early TAs (TAs linked in tee.bin) ([#1733])
2056d57389fSJerome Forissier* Suspend/resume framework for arm32 and imx7d support ([#1729])
2066d57389fSJerome Forissier* RK322X PSCI version, features and suspend support ([#1720])
2076d57389fSJerome Forissier* arm32: handle aborts in system mode ([#1703])
2086d57389fSJerome Forissier* i.MX: add SNVS SRTC support ([#1700])
2096d57389fSJerome Forissier* GCC7 support ([#1693])
2106d57389fSJerome Forissier* Improve detection of programming errors in locking code ([#1671], [#1670])
2116d57389fSJerome Forissier* Support TEE RAM size larger than page directory size ([#1669])
2126d57389fSJerome Forissier
2136d57389fSJerome Forissier## Removed features
2146d57389fSJerome Forissier
2156d57389fSJerome Forissier* Remove TUI code ([#1842])
2166d57389fSJerome Forissier
2176d57389fSJerome Forissier## Bug fixes
2186d57389fSJerome Forissier
2196d57389fSJerome Forissier* Add missing synchronization barrier in core_mmu_map_pages() ([#1827])
2206d57389fSJerome Forissier* Secure storage: REE FS: fix bug in error path ([#1801])
2216d57389fSJerome Forissier* ASAN bug fixes ([#1799])
2226d57389fSJerome Forissier* Fix race in core_mmu_user_mapping_is_active() ([#1785])
2236d57389fSJerome Forissier* libutee: printf() and puts() fixes, add putchar() ([#1759], [#1754])
2246d57389fSJerome Forissier* arm32: GICv3: fix FIQ masking in IRQ/ABT/SVC/UND handlers ([#1748])
2256d57389fSJerome Forissier* arm32: preserve r12 in native_intr_handler() ([#1682])
2266d57389fSJerome Forissier* arm64: fix print_kernel_stack() ([#1664])
2276d57389fSJerome Forissier* benchmark: fix core data-abort ([#1658])
2286d57389fSJerome Forissier
2296d57389fSJerome Forissier## Security fixes or enhancements
2306d57389fSJerome Forissier
2316d57389fSJerome Forissier* crypto: fix software PRNG weaknesses
2326d57389fSJerome Forissier  ([OP-TEE-2017-0001][OP-TEE-2017-0001]) ([#1843])
2336d57389fSJerome Forissier
2346d57389fSJerome Forissier## Tested on
2356d57389fSJerome Forissier
23694ee4938SJerome ForissierThe release was tested successfully on the platforms listed below.
2376d57389fSJerome ForissierIf a platform is not listed, it means the release was not tested on this
2386d57389fSJerome Forissierplatform.
2396d57389fSJerome Forissier
2406d57389fSJerome Forissier<!-- ${PLATFORM}-${PLATFORM_FLAVOR}, ordered alphabetically -->
2416d57389fSJerome Forissier* d02
2426d57389fSJerome Forissier* hikey
2436d57389fSJerome Forissier* hikey-hikey960
2446d57389fSJerome Forissier* imx-mx6ulevk
2456d57389fSJerome Forissier* imx-mx7dsabresd
2466d57389fSJerome Forissier* ls-ls1021a??? (single core)
2476d57389fSJerome Forissier* ls-ls1043ardb
2486d57389fSJerome Forissier* ls-ls1046ardb
2496d57389fSJerome Forissier* mediatek-mt8173
2506d57389fSJerome Forissier* rcar
2516d57389fSJerome Forissier* rockchip-rk322x
2526d57389fSJerome Forissier* rpi3
2536d57389fSJerome Forissier* sam
2546d57389fSJerome Forissier* stm-b2260
2556d57389fSJerome Forissier* stm-cannes
2566d57389fSJerome Forissier* ti-???
2576d57389fSJerome Forissier* vexpress-fvp
2586d57389fSJerome Forissier* vexpress-juno
2596d57389fSJerome Forissier* vexpress-qemu_armv8a
2606d57389fSJerome Forissier* vexpress-qemu_virt
2616d57389fSJerome Forissier
26294ee4938SJerome Forissier[github_commits_2_6_0]: https://github.com/OP-TEE/optee_os/compare/2.5.0...2.6.0
2636d57389fSJerome Forissier[#1858]: https://github.com/OP-TEE/optee_os/issues/1858
2646d57389fSJerome Forissier[#1849]: https://github.com/OP-TEE/optee_os/issues/1849
2656d57389fSJerome Forissier[#1843]: https://github.com/OP-TEE/optee_os/issues/1843
2666d57389fSJerome Forissier[#1842]: https://github.com/OP-TEE/optee_os/issues/1842
2676d57389fSJerome Forissier[#1827]: https://github.com/OP-TEE/optee_os/issues/1827
2686d57389fSJerome Forissier[#1822]: https://github.com/OP-TEE/optee_os/issues/1822
2696d57389fSJerome Forissier[#1820]: https://github.com/OP-TEE/optee_os/issues/1820
2706d57389fSJerome Forissier[#1816]: https://github.com/OP-TEE/optee_os/issues/1816
2716d57389fSJerome Forissier[#1815]: https://github.com/OP-TEE/optee_os/issues/1815
2726d57389fSJerome Forissier[#1807]: https://github.com/OP-TEE/optee_os/issues/1807
2736d57389fSJerome Forissier[#1801]: https://github.com/OP-TEE/optee_os/issues/1801
2746d57389fSJerome Forissier[#1799]: https://github.com/OP-TEE/optee_os/issues/1799
2756d57389fSJerome Forissier[#1787]: https://github.com/OP-TEE/optee_os/issues/1787
2766d57389fSJerome Forissier[#1785]: https://github.com/OP-TEE/optee_os/issues/1785
2776d57389fSJerome Forissier[#1778]: https://github.com/OP-TEE/optee_os/issues/1778
2786d57389fSJerome Forissier[#1767]: https://github.com/OP-TEE/optee_os/issues/1767
2796d57389fSJerome Forissier[#1766]: https://github.com/OP-TEE/optee_os/issues/1766
2806d57389fSJerome Forissier[#1759]: https://github.com/OP-TEE/optee_os/issues/1759
2816d57389fSJerome Forissier[#1754]: https://github.com/OP-TEE/optee_os/issues/1754
2826d57389fSJerome Forissier[#1748]: https://github.com/OP-TEE/optee_os/issues/1748
2836d57389fSJerome Forissier[#1733]: https://github.com/OP-TEE/optee_os/issues/1733
2846d57389fSJerome Forissier[#1729]: https://github.com/OP-TEE/optee_os/issues/1729
2856d57389fSJerome Forissier[#1720]: https://github.com/OP-TEE/optee_os/issues/1720
2866d57389fSJerome Forissier[#1714]: https://github.com/OP-TEE/optee_os/issues/1714
2876d57389fSJerome Forissier[#1703]: https://github.com/OP-TEE/optee_os/issues/1703
2886d57389fSJerome Forissier[#1700]: https://github.com/OP-TEE/optee_os/issues/1700
2896d57389fSJerome Forissier[#1693]: https://github.com/OP-TEE/optee_os/issues/1693
2906d57389fSJerome Forissier[#1684]: https://github.com/OP-TEE/optee_os/issues/1684
2916d57389fSJerome Forissier[#1682]: https://github.com/OP-TEE/optee_os/issues/1682
2926d57389fSJerome Forissier[#1671]: https://github.com/OP-TEE/optee_os/issues/1671
2936d57389fSJerome Forissier[#1670]: https://github.com/OP-TEE/optee_os/issues/1670
2946d57389fSJerome Forissier[#1669]: https://github.com/OP-TEE/optee_os/issues/1669
2956d57389fSJerome Forissier[#1666]: https://github.com/OP-TEE/optee_os/issues/1666
2966d57389fSJerome Forissier[#1664]: https://github.com/OP-TEE/optee_os/issues/1664
2976d57389fSJerome Forissier[#1658]: https://github.com/OP-TEE/optee_os/issues/1658
2986d57389fSJerome Forissier[#1631]: https://github.com/OP-TEE/optee_os/issues/1631
2996d57389fSJerome Forissier[OP-TEE-2017-0001]: https://www.op-tee.org/security-advisories/
3006d57389fSJerome Forissier
3015d8aaa04SJerome Forissier# OP-TEE - version 2.5.0
3025d8aaa04SJerome Forissier
3035d8aaa04SJerome Forissier[Link][github_commits_2_5_0] to a list of all commits between this release and
3045d8aaa04SJerome Forissierthe previous one (2.4.0).
3055d8aaa04SJerome Forissier
3065d8aaa04SJerome Forissier## New features
3075d8aaa04SJerome Forissier
3085d8aaa04SJerome Forissier* New supported platform: i.MX7D ([#1639])
3095d8aaa04SJerome Forissier* Secure storage: anti-rollback protection for REE FS using RPMB FS ([#1630])
3105d8aaa04SJerome Forissier* Assign non-secure DDR configuration from DT if CFG_DT=y ([#1623])
3115d8aaa04SJerome Forissier* Add new image format: split image into three separate binaries suitable for
3125d8aaa04SJerome Forissier  upcoming ARM Trusted Firmware ([#1589]).
3135d8aaa04SJerome Forissier* Make alignment check configurable ([#1586])
3145d8aaa04SJerome Forissier* drivers: add TZC380 driver ([#1578])
3155d8aaa04SJerome Forissier* plat-imx: PSCI CPU off ([#1577])
3165d8aaa04SJerome Forissier* 64-bit paging on QEMU v8 and HiKey ([#1575], [#1592])
3175d8aaa04SJerome Forissier* Benchmark framework ([#1365])
3185d8aaa04SJerome Forissier* Dump call stack of user TAs on abort ([#1552])
3195d8aaa04SJerome Forissier* plat-hikey: enable Secure Data Path ([#1440])
3205d8aaa04SJerome Forissier* Add interface to load and decrypt/authenticate user TAs ([#1513])
3215d8aaa04SJerome Forissier* plat-ti: add secure paging support ([#1493])
3225d8aaa04SJerome Forissier* plat-ti: add OTP hardware key support ([#1492])
3235d8aaa04SJerome Forissier* Support ARM GICv3 ([#1465])
3245d8aaa04SJerome Forissier
3255d8aaa04SJerome Forissier## Removed features
3265d8aaa04SJerome Forissier
3275d8aaa04SJerome Forissier* stm-orly2 is not supported anymore ([#1650])
3285d8aaa04SJerome Forissier* Remove secure storage based on SQL FS (`CFG_SQL_FS=y`) ([#1490])
3295d8aaa04SJerome Forissier* Remove support for mapping user TAs with 1 MiB or 2 MiB granularity
3305d8aaa04SJerome Forissier  (`CFG_SMALL_PAGE_USER_TA=n`) ([#1559]). TAs are always mapped using small
3315d8aaa04SJerome Forissier  pages.
3325d8aaa04SJerome Forissier
3335d8aaa04SJerome Forissier## Bug fixes
3345d8aaa04SJerome Forissier
3355d8aaa04SJerome Forissier* Reduce size of non-pageable code ([#1621])
3365d8aaa04SJerome Forissier* Ignore `TA_FLAG_MULTI_SESSION` and `TA_FLAG_INSTANCE_KEEP_ALIVE` when
3375d8aaa04SJerome Forissier  `TA_FLAG_SINGLE_INSTANCE` is not set ([#1574])
3385d8aaa04SJerome Forissier* libutee: remove buffering for AES GCM (PR#1573) and AES CTR ([#1580])
3395d8aaa04SJerome Forissier* Fix ROUNDUP()/ROUNDDOWN() macros ([#1519])
3405d8aaa04SJerome Forissier* Do not touch other bits in GICD_CTLR ([#1508])
3415d8aaa04SJerome Forissier* Fix build issue with `DEBUG=y` and `CFG_TEE_CORE_LOG_LEVEL=0` ([#1502])
3425d8aaa04SJerome Forissier* crypto: do not restrict hash size when algorithm is ECDSA ([#1497])
3435d8aaa04SJerome Forissier
3445d8aaa04SJerome Forissier## Security fixes or enhancements
3455d8aaa04SJerome Forissier
3465d8aaa04SJerome Forissier- crypto: fix RSA key leakage after fault injection attack
3475d8aaa04SJerome Forissier  ([OP-TEE-2016-0003][OP-TEE-2016-0003])  ([#1610])
3485d8aaa04SJerome Forissier* crypto: fix RSA key leakage after side channel attack
3495d8aaa04SJerome Forissier  ([OP-TEE-2016-0002][OP-TEE-2016-0002]) ([#1610])
3505d8aaa04SJerome Forissier* Make pager aliased pages not always writable ([#1551])
3515d8aaa04SJerome Forissier* Support for no-exec RO and RW data ([#1459], [#1550])
3525d8aaa04SJerome Forissier
3535d8aaa04SJerome Forissier## New issues
3545d8aaa04SJerome Forissier
3555d8aaa04SJerome Forissier* armv7: some platform-specific code (`plat_cpu_reset_early()`) overwrites
3565d8aaa04SJerome ForissierSCTLR bits configured by generic code. This affects alignment checks (`SCTLR.A`)
3575d8aaa04SJerome Forissierand write-implies-no-exec (`SCTLR.WXN`, `SCTLR.UWXN`), which can therefore not
3585d8aaa04SJerome Forissierbe configured via the compile-time `CFG_` variables.
3595d8aaa04SJerome Forissier* armv7: plat-imx: Cortex-A9 cores should enable branch prediction (`SCLTR.Z`)
3605d8aaa04SJerome Forissierfor improved performance.
3615d8aaa04SJerome Forissier* [#1656] qemu_armv8a: init hangs when secure data path and pager are both
3625d8aaa04SJerome Forissier  enabled.
3635d8aaa04SJerome Forissier
3645d8aaa04SJerome Forissier## Tested on
3655d8aaa04SJerome Forissier
3665d8aaa04SJerome ForissierIn the list below, _standard_ means that the `xtest` program passed with
3675d8aaa04SJerome Forissierits default configuration, while _extended_ means it was run successfully
3685d8aaa04SJerome Forissierwith the additional GlobalPlatform™ TEE Initial Configuration Test Suite
3695d8aaa04SJerome Forissierv1.1.0.4.
3705d8aaa04SJerome Forissier
3715d8aaa04SJerome ForissierIf a platform is not listed, it means the release was not tested on this
3725d8aaa04SJerome Forissierplatform.
3735d8aaa04SJerome Forissier
3745d8aaa04SJerome Forissier<!-- ${PLATFORM}-${PLATFORM_FLAVOR}, ordered alphabetically -->
3755d8aaa04SJerome Forissier* d02: extended
3765d8aaa04SJerome Forissier* hikey: extended
3775d8aaa04SJerome Forissier* imx-mx6ulevk: standard
3785d8aaa04SJerome Forissier* imx-mx6ullevk: standard
3795d8aaa04SJerome Forissier* imx-mx7dsabresd: standard
3805d8aaa04SJerome Forissier* ls-ls1021atwr: standard
3815d8aaa04SJerome Forissier* mediatek-mt8173: standard
3825d8aaa04SJerome Forissier* rcar-h3: standard
3835d8aaa04SJerome Forissier* rpi3: standard
3845d8aaa04SJerome Forissier* stm-b2260: extended
3855d8aaa04SJerome Forissier* stm-cannes: extended
3865d8aaa04SJerome Forissier* ti-am43xx: standard
3875d8aaa04SJerome Forissier* ti-am57xx: standard
3885d8aaa04SJerome Forissier* ti-dra7xx: standard
3895d8aaa04SJerome Forissier* vexpress-fvp: standard
3905d8aaa04SJerome Forissier* vexpress-juno: standard
3915d8aaa04SJerome Forissier* vexpress-qemu_armv8a: standard
3925d8aaa04SJerome Forissier* vexpress-qemu_virt: standard
3935d8aaa04SJerome Forissier
3945d8aaa04SJerome Forissier[github_commits_2_5_0]: https://github.com/OP-TEE/optee_os/compare/2.4.0...2.5.0-rc1
3955d8aaa04SJerome Forissier[#1656]: https://github.com/OP-TEE/optee_os/issues/1656
3965d8aaa04SJerome Forissier[#1650]: https://github.com/OP-TEE/optee_os/pull/1650
3975d8aaa04SJerome Forissier[#1639]: https://github.com/OP-TEE/optee_os/pull/1639
3985d8aaa04SJerome Forissier[#1630]: https://github.com/OP-TEE/optee_os/pull/1630
3995d8aaa04SJerome Forissier[#1623]: https://github.com/OP-TEE/optee_os/pull/1623
4005d8aaa04SJerome Forissier[#1621]: https://github.com/OP-TEE/optee_os/pull/1621
4015d8aaa04SJerome Forissier[#1610]: https://github.com/OP-TEE/optee_os/pull/1610
4025d8aaa04SJerome Forissier[#1592]: https://github.com/OP-TEE/optee_os/pull/1592
4035d8aaa04SJerome Forissier[#1589]: https://github.com/OP-TEE/optee_os/pull/1589
4045d8aaa04SJerome Forissier[#1586]: https://github.com/OP-TEE/optee_os/pull/1586
4055d8aaa04SJerome Forissier[#1580]: https://github.com/OP-TEE/optee_os/pull/1580
4065d8aaa04SJerome Forissier[#1578]: https://github.com/OP-TEE/optee_os/pull/1578
4075d8aaa04SJerome Forissier[#1577]: https://github.com/OP-TEE/optee_os/pull/1577
4085d8aaa04SJerome Forissier[#1574]: https://github.com/OP-TEE/optee_os/pull/1574
4095d8aaa04SJerome Forissier[#1559]: https://github.com/OP-TEE/optee_os/pull/1559
4105d8aaa04SJerome Forissier[#1551]: https://github.com/OP-TEE/optee_os/pull/1551
4115d8aaa04SJerome Forissier[#1550]: https://github.com/OP-TEE/optee_os/pull/1550
4125d8aaa04SJerome Forissier[#1519]: https://github.com/OP-TEE/optee_os/pull/1519
4135d8aaa04SJerome Forissier[#1502]: https://github.com/OP-TEE/optee_os/pull/1502
4145d8aaa04SJerome Forissier[#1365]: https://github.com/OP-TEE/optee_os/pull/1365
4155d8aaa04SJerome Forissier[#1552]: https://github.com/OP-TEE/optee_os/pull/1552
4165d8aaa04SJerome Forissier[#1513]: https://github.com/OP-TEE/optee_os/pull/1513
4175d8aaa04SJerome Forissier[#1508]: https://github.com/OP-TEE/optee_os/pull/1508
4185d8aaa04SJerome Forissier[#1493]: https://github.com/OP-TEE/optee_os/pull/1493
4195d8aaa04SJerome Forissier[#1497]: https://github.com/OP-TEE/optee_os/pull/1497
4205d8aaa04SJerome Forissier[#1492]: https://github.com/OP-TEE/optee_os/pull/1492
4215d8aaa04SJerome Forissier[#1490]: https://github.com/OP-TEE/optee_os/pull/1490
4225d8aaa04SJerome Forissier[#1465]: https://github.com/OP-TEE/optee_os/pull/1465
4235d8aaa04SJerome Forissier[#1459]: https://github.com/OP-TEE/optee_os/pull/1459
4245d8aaa04SJerome Forissier[#1440]: https://github.com/OP-TEE/optee_os/pull/1440
4255d8aaa04SJerome Forissier[OP-TEE-2016-0003]: https://www.op-tee.org/security-advisories/
4265d8aaa04SJerome Forissier[OP-TEE-2016-0002]: https://www.op-tee.org/security-advisories/
4275d8aaa04SJerome Forissier
428702609a7SJerome Forissier# OP-TEE - version 2.4.0
429702609a7SJerome Forissier
430702609a7SJerome Forissier[Link][github_commits_2_4_0] to a list of all commits between this release and
431702609a7SJerome Forissierthe previous one (2.3.0).
432702609a7SJerome Forissier
433702609a7SJerome ForissierPlease note: this release is API-compatible with the previous one, but the
434702609a7SJerome ForissierSecure Storage internal format for the REE and SQL FS is not compatible due to
435702609a7SJerome Forissiercommits [a238b74][commit_a238b74] ("core: REE FS: use the new hash tree
436702609a7SJerome Forissierinterface") and [44e900e][commit_44e900e] ("core: SQL FS: use the new hash tree
437702609a7SJerome Forissierinterface").
438702609a7SJerome Forissier
439702609a7SJerome Forissier## New features
440702609a7SJerome Forissier
441702609a7SJerome Forissier* Add porting guidelines
442702609a7SJerome Forissier
443702609a7SJerome Forissier* Add support for Secure Data Path which allows Client and Trusted Applications
444702609a7SJerome Forissier  to share references to secure memory
445702609a7SJerome Forissier
446702609a7SJerome Forissier* New supported platform: Texas Instruments AM57xx (`PLATFORM=ti-am57xx`)
447702609a7SJerome Forissier
448702609a7SJerome Forissier* ARMv7-A: add support for platform services in secure monitor and add these
449702609a7SJerome Forissier  services for the DRA7xx platform
450702609a7SJerome Forissier
451702609a7SJerome Forissier* SPI framework and PL022 driver cleanup and improvements
452702609a7SJerome Forissier
453702609a7SJerome Forissier* Use CNTPCT (when available) to add entropy to the software PRNG
454702609a7SJerome Forissier
455702609a7SJerome Forissier* Add GlobalPlatform Socket API for UDP and TCP (IPv4 and IPv6)
456702609a7SJerome Forissier
457702609a7SJerome Forissier* DRA7: add TRNG driver, enable GICv2 driver
458702609a7SJerome Forissier
459702609a7SJerome Forissier* Support load address larger than 4G
460702609a7SJerome Forissier
461702609a7SJerome Forissier* libutee: preserve error code when calling TEE_Panic() for easier
462702609a7SJerome Forissier  troubleshooting
463702609a7SJerome Forissier
464702609a7SJerome Forissier* Support TA profiling with gprof (-pg compiler switch)
465702609a7SJerome Forissier
466702609a7SJerome Forissier* Optimize the ELF loader for TAs when pager is enabled
467702609a7SJerome Forissier
468702609a7SJerome Forissier* Update documentation
469702609a7SJerome Forissier
470702609a7SJerome Forissier* Add paged secure shared memory that can be transferred between TAs as
471702609a7SJerome Forissier  needed
472702609a7SJerome Forissier
473702609a7SJerome Forissier* Introduce MOBJ abstraction
474702609a7SJerome Forissier
475702609a7SJerome Forissier* i.MX6: add PSCI "on" function
476702609a7SJerome Forissier
477702609a7SJerome Forissier* arm32: introduce PSCI framework
478702609a7SJerome Forissier
479702609a7SJerome Forissier## Bug fixes
480702609a7SJerome Forissier
481702609a7SJerome Forissier* Secure storage: improve integrity checking of the REE and SQL filesystems by
482702609a7SJerome Forissier  adding a hash tree on the internal data structures. Any external modification
483702609a7SJerome Forissier  is detected, except full rollback. Fixes [#1188][issue1188].
484702609a7SJerome Forissier
485702609a7SJerome Forissier* The linux driver will set the 'privileged' flag (TEE_GEN_CAP_PRIVILEGED) on
486702609a7SJerome Forissier  the device intended for use by tee-supplicant. Fixes [#1199][issue1199].
487702609a7SJerome Forissier
488702609a7SJerome Forissier* RPMB: don't try to program the RPMB key by default
489702609a7SJerome Forissier
490702609a7SJerome Forissier* Fix "make clean" error cases
491702609a7SJerome Forissier
492702609a7SJerome Forissier* Fix issue when resetting persistent storage enumerator [#1332][issue1332]
493702609a7SJerome Forissier
494702609a7SJerome Forissier* Fix TA panic when doing AES CTS with specific buffer sizes
495702609a7SJerome Forissier  [#1203][issue1203].
496702609a7SJerome Forissier
497702609a7SJerome Forissier## Known issues
498702609a7SJerome Forissier
499702609a7SJerome Forissier* On RPi3 xtest sometimes stall (rcu_sched self-detected stall on CPU) [#1353][issue1353]
500702609a7SJerome Forissier* For multi-core PSCI support is to be added for ls1021atwr in OP-TEE.
501702609a7SJerome Forissier* USB keyboard cannot be used to stop the u-boot timeout ([build issue131]).
502702609a7SJerome Forissier* Travis service (build.git) seems unstable from time to time.
503702609a7SJerome Forissier
504702609a7SJerome Forissier## Tested on
505702609a7SJerome Forissier
506702609a7SJerome ForissierIn the list below, _standard_ means that the `xtest` program passed with
507702609a7SJerome Forissierits default configuration, while _extended_ means it was run successfully
508702609a7SJerome Forissierwith the additional GlobalPlatform™ TEE Initial Configuration Test Suite
509702609a7SJerome Forissierv1.1.0.4.
510702609a7SJerome Forissier
511702609a7SJerome ForissierIf a platform is not listed, it means the release was not tested on this
512702609a7SJerome Forissierplatform.
513702609a7SJerome Forissier
514702609a7SJerome Forissier<!-- ${PLATFORM}-${PLATFORM_FLAVOR}, ordered alphabetically -->
515702609a7SJerome Forissier* d02: extended
516702609a7SJerome Forissier* hikey: extended
517702609a7SJerome Forissier* imx-mx6ulevk: standard
518702609a7SJerome Forissier* ls-ls1021atwr: standard (single core)
519702609a7SJerome Forissier* mediatek-mt8173: standard
520702609a7SJerome Forissier* rcar-h3: standard
521702609a7SJerome Forissier* rpi3: standard
522702609a7SJerome Forissier* stm-b2260: extended
523702609a7SJerome Forissier* ti-dra7xx: standard
524702609a7SJerome Forissier* vexpress-fvp: standard
525702609a7SJerome Forissier* vexpress-juno: standard
526702609a7SJerome Forissier* vexpress-qemu_armv8a: standard
527702609a7SJerome Forissier* vexpress-qemu_virt: standard
528702609a7SJerome Forissier* zynqmp-zc1751_dc1: standard
529702609a7SJerome Forissier* zynqmp-zc1751_dc2: standard
530702609a7SJerome Forissier* zynqmp-zcu102: standard
531702609a7SJerome Forissier
532702609a7SJerome Forissier[github_commits_2_4_0]: https://github.com/OP-TEE/optee_os/compare/2.3.0...2.4.0
533702609a7SJerome Forissier[issue1332]: https://github.com/OP-TEE/optee_os/issues/1332
534702609a7SJerome Forissier[issue1353]: https://github.com/OP-TEE/optee_os/issues/1353
535702609a7SJerome Forissier[build issue131]: https://github.com/OP-TEE/build/issues/131
536702609a7SJerome Forissier[commit_a238b74]: https://github.com/OP-TEE/optee_os/commit/a238b744b1b3
537702609a7SJerome Forissier[commit_44e900e]: https://github.com/OP-TEE/optee_os/commit/44e900eabfc1
538702609a7SJerome Forissier
53928fcee17SJerome Forissier# OP-TEE - version 2.3.0
54028fcee17SJerome Forissier
54128fcee17SJerome Forissier[Link][github_commits_2_3_0] to a list of all commits between this release and
54228fcee17SJerome Forissierthe previous one (2.2.0).
54328fcee17SJerome Forissier
54428fcee17SJerome ForissierPlease note: this release is API-compatible with the previous one, but the
54528fcee17SJerome ForissierSecure Storage internal format for the REE FS is not compatible due to commit
54628fcee17SJerome Forissier[361fb3e][commit_361fb3e] ("core: REE FS: use a single file per object").
54728fcee17SJerome Forissier
54828fcee17SJerome Forissier[commit_361fb3e]: https://github.com/OP-TEE/optee_os/commit/361fb3e
54928fcee17SJerome Forissier
55028fcee17SJerome Forissier## New features
55128fcee17SJerome Forissier
55228fcee17SJerome Forissier* New supported platform: Xilinx Zynq 7000 ZC702 (`PLATFORM=zynq7k-zc702`)
55328fcee17SJerome Forissier
55428fcee17SJerome Forissier* Add debug assertions to spinlocks and mutexes
55528fcee17SJerome Forissier
55628fcee17SJerome Forissier* Add more CP15 register access macros for Cortex-A9
55728fcee17SJerome Forissier
55828fcee17SJerome Forissier* ARMv7-A: redesign secure monitor to make it easier to register services
55928fcee17SJerome Forissier
56028fcee17SJerome Forissier* ARMv7-A: cleanup boot arguments
56128fcee17SJerome Forissier
56228fcee17SJerome Forissier* libutee: extend `TEE_CheckMemoryAccessRights()` with
56328fcee17SJerome Forissier  `TEE_MEMORY_ACCESS_SECURE` and `TEE_MEMORY_ACCESS_NONSECURE`
56428fcee17SJerome Forissier
56528fcee17SJerome Forissier* plat-hikey: enable SPI by default and add sample test code
56628fcee17SJerome Forissier
56728fcee17SJerome Forissier* Consider `CFLAGS_ta_arm64` and `CFLAGS_ta_arm32` when building TAs
56828fcee17SJerome Forissier
56928fcee17SJerome Forissier* Secure storage refactoring
57028fcee17SJerome Forissier  - Simplify interface with tee-supplicant. Minimize round trips with normal
57128fcee17SJerome Forissier    world, especially by adding a cache for FS RPC payload data.
57228fcee17SJerome Forissier  - REE FS: use a single file per object, remove block cache.
57328fcee17SJerome Forissier
57428fcee17SJerome Forissier* Print call stack in panic()
57528fcee17SJerome Forissier
57628fcee17SJerome Forissier## Bug fixes
57728fcee17SJerome Forissier
57828fcee17SJerome Forissier* Fix UUID encoding when communicating with normal world (use big endian
57928fcee17SJerome Forissier  mode instead of native endianness). Related to this, the string format
58028fcee17SJerome Forissier  for UUIDs has changed in tee-supplicant, so that TA file names now follow
58128fcee17SJerome Forissier  the format defined in RFC4122 (a missing hyphen was added). The old format
58228fcee17SJerome Forissier  is still supported, but deprecated, and will likely be removed with the
58328fcee17SJerome Forissier  next major release.
58428fcee17SJerome Forissier
58528fcee17SJerome Forissier* Drop write permission to non-writable ELF segments after TA loading is
58628fcee17SJerome Forissier  complete.
58728fcee17SJerome Forissier
58828fcee17SJerome Forissier* mm: fix confusing memory mapping debug traces
58928fcee17SJerome Forissier
59028fcee17SJerome Forissier* plat-ti: fix issues with MMU mapping
59128fcee17SJerome Forissier
59228fcee17SJerome Forissier* crypto: fix clearing of big numbers
59328fcee17SJerome Forissier
59428fcee17SJerome Forissier* build: allow spaces and double quotes in CFG_ variables
59528fcee17SJerome Forissier
59628fcee17SJerome Forissier* mm: use paddr_t to support both 32- and 64-bit architectures properly.
59728fcee17SJerome Forissier  Resolves 32-bit truncation error when pool is at top of 32 bit address
59828fcee17SJerome Forissier  space on 64-bit architecture.
59928fcee17SJerome Forissier
60028fcee17SJerome Forissier* plat-stm: support pager. Fix pager on ARMv7-A SMP boards.
60128fcee17SJerome Forissier
60228fcee17SJerome Forissier* Fix debug output of Trusted Applications (remove "ERROR: TEE-CORE:" prefix)
60328fcee17SJerome Forissier
60428fcee17SJerome Forissier* Do not consider TA memref parameters as TA private memory
60528fcee17SJerome Forissier
60628fcee17SJerome Forissier* crypto: fix `cipher_final()` which would not call `cbc_done()` for CBC_MAC
60728fcee17SJerome Forissier  algorithms
60828fcee17SJerome Forissier
60928fcee17SJerome Forissier* fix for 16-way PL310
61028fcee17SJerome Forissier
61128fcee17SJerome Forissier* arm32: fix call stack unwinding (`print_stack()`)
61228fcee17SJerome Forissier
61328fcee17SJerome Forissier* arm32: fix spinlock assembly code
61428fcee17SJerome Forissier
61528fcee17SJerome Forissier* plat-stm, plat-imx: fix SCR initalization
61628fcee17SJerome Forissier
61728fcee17SJerome Forissier* Fix user L1 MMU entries calculation (non-LPAE), allowing TTBCR.N values
61828fcee17SJerome Forissier  other than 7.
61928fcee17SJerome Forissier
62028fcee17SJerome Forissier* mtk-mt8173: fix panic caused by incorrect size of SHMEM
62128fcee17SJerome Forissier
62228fcee17SJerome Forissier* plat-stm: fix RNG driver (non-flat mapping)
62328fcee17SJerome Forissier
62428fcee17SJerome Forissier## Known issues
62528fcee17SJerome Forissier
62628fcee17SJerome Forissier* New issues open on GitHub
62728fcee17SJerome Forissier  * [#1203][issue1203] AES-CTS mode will fail when inlen=0x100, in_incr=0x80
62828fcee17SJerome Forissier  * [#1199][issue1199] Both tee and teepriv reported GlobalPlatform compliant
62928fcee17SJerome Forissier  * [#1188][issue1188] Secure storage (SQL FS and REE FS): blocks not tied to
63028fcee17SJerome Forissier    current meta header
63128fcee17SJerome Forissier  * [#1172][issue1172] paddr_t should be larger than 32 bits when
63228fcee17SJerome Forissier    CFG_WITH_LPAE is enabled
63328fcee17SJerome Forissier
63428fcee17SJerome Forissier## Tested on
63528fcee17SJerome Forissier
63628fcee17SJerome ForissierIn the list below, _standard_ means that the `xtest` program passed with
63728fcee17SJerome Forissierits default configuration, while _extended_ means it was run successfully
63828fcee17SJerome Forissierwith the additional GlobalPlatform™ TEE Initial Configuration Test Suite
63928fcee17SJerome Forissierv1.1.0.4.
64028fcee17SJerome Forissier
64128fcee17SJerome ForissierIf a platform is not listed, it means the release was not tested on this
64228fcee17SJerome Forissierplatform.
64328fcee17SJerome Forissier
64428fcee17SJerome Forissier<!-- ${PLATFORM}-${PLATFORM_FLAVOR}, ordered alphabetically -->
64528fcee17SJerome Forissier* d02: extended
64628fcee17SJerome Forissier* hikey: extended
64728fcee17SJerome Forissier* imx-mx6ulevk: standard
64828fcee17SJerome Forissier* ls-ls1021atwr: standard
64928fcee17SJerome Forissier* mediatek-mt8173: standard
65028fcee17SJerome Forissier* rcar-h3: standard
65128fcee17SJerome Forissier* rpi3: standard
65228fcee17SJerome Forissier* stm-b2260: extended
65328fcee17SJerome Forissier* stm-cannes: extended
65428fcee17SJerome Forissier* ti-dra7xx: standard
65528fcee17SJerome Forissier* vexpress-fvp: standard
65628fcee17SJerome Forissier* vexpress-juno: standard
65728fcee17SJerome Forissier* vexpress-qemu_armv8a: standard
65828fcee17SJerome Forissier* vexpress-qemu_virt: extended
65928fcee17SJerome Forissier* zynqmp-zcu102: standard
66028fcee17SJerome Forissier
66128fcee17SJerome Forissier[github_commits_2_3_0]: https://github.com/OP-TEE/optee_os/compare/2.2.0...2.3.0
66228fcee17SJerome Forissier[issue1172]: https://github.com/OP-TEE/optee_os/issues/1172
66328fcee17SJerome Forissier[issue1188]: https://github.com/OP-TEE/optee_os/issues/1188
66428fcee17SJerome Forissier[issue1199]: https://github.com/OP-TEE/optee_os/issues/1199
66528fcee17SJerome Forissier[issue1203]: https://github.com/OP-TEE/optee_os/issues/1203
66628fcee17SJerome Forissier
667c0c5d399SJerome Forissier# OP-TEE - version 2.2.0
668c0c5d399SJerome Forissier
669c0c5d399SJerome Forissier[Link][github_commits_2_2_0] to a list of all commits between this release and
670c0c5d399SJerome Forissierthe previous one (2.1.0).
671c0c5d399SJerome Forissier
672c0c5d399SJerome ForissierPlease note: this release is API-compatible with the previous one, but the
673c0c5d399SJerome ForissierSecure Storage internal format is not compatible due to commit
674c0c5d399SJerome Forissier[fde4a75][commit_fde4a75] ("storage: encrypt the FEK with a TA-specific key").
675c0c5d399SJerome Forissier
676c0c5d399SJerome Forissier[commit_fde4a75]: https://github.com/OP-TEE/optee_os/commit/fde4a75
677c0c5d399SJerome Forissier
678c0c5d399SJerome Forissier## New features
679c0c5d399SJerome Forissier
680c0c5d399SJerome Forissier* New supported platforms:
681c0c5d399SJerome Forissier	* Freescale i.MX6 Quad SABRE Lite & SD
682c0c5d399SJerome Forissier	* HiSilicon D02
683c0c5d399SJerome Forissier	* Raspberry Pi3
684c0c5d399SJerome Forissier	* Renesas RCAR H3
685c0c5d399SJerome Forissier	* STMicroelectronics b2260 - h410
686c0c5d399SJerome Forissier
687c0c5d399SJerome Forissier* Pager: Support paging of read/write pages by encrypting them with AES-GCM.
688c0c5d399SJerome Forissier  Support paging of user TAs. Add global setting for TZSRAM size
689c0c5d399SJerome Forissier  (CFG_CORE_TZSRAM_EMUL_SIZE), defaults to 300K.
690c0c5d399SJerome Forissier
691c0c5d399SJerome Forissier* Support for more than 8 CPU cores
692c0c5d399SJerome Forissier
693c0c5d399SJerome Forissier* Added SPI framework and PL022 driver
694c0c5d399SJerome Forissier
695c0c5d399SJerome Forissier* GPIO: framework supports multiple instances, PL061 driver now has get/set
696c0c5d399SJerome Forissier  interrupt and mode control functions
697c0c5d399SJerome Forissier
698c0c5d399SJerome Forissier* Secure storage: Encrypt the File Encryption Key with a TA-specific key for
699c0c5d399SJerome Forissier  better TA isolation. Add build-time and run-time support for multiple storage
700c0c5d399SJerome Forissier  backends. Add SQLite backend.
701c0c5d399SJerome Forissier
702c0c5d399SJerome Forissier* Trusted User Interface: some code is introduced to support the implementation
703c0c5d399SJerome Forissier  of TUI. This includes: a generic framebuffer driver, display and serial
704c0c5d399SJerome Forissier  abstractions, and drivers for PL111 (LCD) / PL050 (KMI) / TZC400 and PS2
705c0c5d399SJerome Forissier  mouse.
706c0c5d399SJerome Forissier
707c0c5d399SJerome Forissier* AES acceleration using ARMv8-A Cryptographic Extensions instructions is
708c0c5d399SJerome Forissier  now supported in AArch32 mode
709c0c5d399SJerome Forissier
710c0c5d399SJerome Forissier* Add support for GCC flags: -fsanitize=undefined and -fsanitize=kernel-address
711c0c5d399SJerome Forissier
712c0c5d399SJerome Forissier* Use a global setting for core heap size (CFG_CORE_HEAP_SIZE), 64K by default.
713c0c5d399SJerome Forissier
714c0c5d399SJerome Forissier* Add macros to unwind and print the call stack of TEE core
715c0c5d399SJerome Forissier
716c0c5d399SJerome Forissier* Libtomcrypt: sync with the latest `develop` branch.
717c0c5d399SJerome Forissier
718c0c5d399SJerome Forissier* The Trusted Application SDK (ta_dev_kit.mk) can produce libraries (.a)
719c0c5d399SJerome Forissier
720c0c5d399SJerome Forissier* Rework assertions and TEE core panics and properly honor NDEBUG
721c0c5d399SJerome Forissier
722c0c5d399SJerome Forissier## Bug fixes
723c0c5d399SJerome Forissier
724c0c5d399SJerome Forissier* Fix incorrect algorithm passed to cipher.final()
725c0c5d399SJerome Forissier
726c0c5d399SJerome Forissier* scripts: support Python 2.x and 3.x
727c0c5d399SJerome Forissier
728c0c5d399SJerome Forissier* Secure storage: Add proper locking to support concurrent access. Fix sign
729c0c5d399SJerome Forissier  extension bug with offset parameter of syscall storage_obj_seek which could
730c0c5d399SJerome Forissier  cause errors in Aarch32 mode. Fix reading beyond end of file.
731c0c5d399SJerome Forissier
732c0c5d399SJerome Forissier* Aarch64: mask all maskable exceptions before doing a normal return from call.
733c0c5d399SJerome Forissier
734c0c5d399SJerome Forissier* Device Tree: add no-map property to OP-TEE node in reserved-memory.
735c0c5d399SJerome Forissier
736c0c5d399SJerome Forissier* LibTomcrypt: fix CVE-2016-6129
737c0c5d399SJerome Forissier
738c0c5d399SJerome Forissier## Known issues
739c0c5d399SJerome Forissier
740c0c5d399SJerome Forissier* New issues open on GitHub
741c0c5d399SJerome Forissier  * [#1093][issue1093] rcar-h3: xtest 6010 hangs
742c0c5d399SJerome Forissier  * [#1092][issue1092] rcar-h3: xtest 4010 fails
743c0c5d399SJerome Forissier  * [#1081][issue1081] Bad mapping of TA secure memref parameters
744c0c5d399SJerome Forissier  * [#1071][issue1071] __data_end may not correctly represent text start position when using CFG_WITH_PAGER
745c0c5d399SJerome Forissier  * [#1069][issue1069] armv7/Aarch32: crash in stack unwind (DPRINT_STACK())
746c0c5d399SJerome Forissier
747c0c5d399SJerome Forissier## Tested on
748c0c5d399SJerome Forissier
749c0c5d399SJerome ForissierIn the list below, _standard_ means that the `xtest` program passed with
750c0c5d399SJerome Forissierits default configuration, while _extended_ means it was run successfully
751c0c5d399SJerome Forissierwith the additional GlobalPlatform™ TEE Initial Configuration Test Suite
752c0c5d399SJerome Forissierv1.1.0.4.
753c0c5d399SJerome Forissier
754c0c5d399SJerome ForissierIf a platform is not listed, it means the release was not tested on this
755c0c5d399SJerome Forissierplatform.
756c0c5d399SJerome Forissier
757c0c5d399SJerome Forissier<!-- ${PLATFORM}-${PLATFORM_FLAVOR}, ordered alphabetically -->
758c0c5d399SJerome Forissier* d02: extended
759c0c5d399SJerome Forissier* hikey: extended
760c0c5d399SJerome Forissier* imx-mx6qsabrelite: standard
761c0c5d399SJerome Forissier* imx-mx6qsabresd: standard
762c0c5d399SJerome Forissier* rcar-h3: standard, pass except issues [#1092][issue1092] and [#1093][issue1093]
763c0c5d399SJerome Forissier* rpi3: standard
764c0c5d399SJerome Forissier* stm-b2260: standard
765c0c5d399SJerome Forissier* stm-cannes: standard
766c0c5d399SJerome Forissier* ti-dra7xx: standard
767c0c5d399SJerome Forissier* vexpress-fvp: standard
768c0c5d399SJerome Forissier* vexpress-juno: standard
769c0c5d399SJerome Forissier* vexpress-qemu_armv8a: standard
770c0c5d399SJerome Forissier* vexpress-qemu_virt: extended
771c0c5d399SJerome Forissier* zynqmp-zcu102: standard
772c0c5d399SJerome Forissier
773c0c5d399SJerome Forissier[github_commits_2_2_0]: https://github.com/OP-TEE/optee_os/compare/2.1.0...2.2.0
774c0c5d399SJerome Forissier[issue1081]: https://github.com/OP-TEE/optee_os/issues/1081
775c0c5d399SJerome Forissier[issue1071]: https://github.com/OP-TEE/optee_os/issues/1071
776c0c5d399SJerome Forissier[issue1069]: https://github.com/OP-TEE/optee_os/issues/1069
777c0c5d399SJerome Forissier[issue1092]: https://github.com/OP-TEE/optee_os/issues/1092
778c0c5d399SJerome Forissier[issue1093]: https://github.com/OP-TEE/optee_os/issues/1093
779c0c5d399SJerome Forissier
780ac3cc110SPascal Brand# OP-TEE - version 2.1.0
781a0cd5d60SPascal Brand
782ac3cc110SPascal Brand## New features
783ac3cc110SPascal Brand
784ac3cc110SPascal Brand* New supported platforms:
785ac3cc110SPascal Brand	* Xilinx Zynq UltraScale+ MPSOC
786ac3cc110SPascal Brand	* Spreadtrum SC9860
787ac3cc110SPascal Brand
788ac3cc110SPascal Brand* GCC5 support
789ac3cc110SPascal Brand
790ac3cc110SPascal Brand* Non Linear Mapping support: In OP-TEE kernel mode, the physical to virtual
791ac3cc110SPascal Brand  addresses was linear until this release, meaning the virtual addresses
792ac3cc110SPascal Brand  were equal to the physical addresses. This is no more the case in this
793ac3cc110SPascal Brand  release.
794ac3cc110SPascal Brand
795ac3cc110SPascal Brand* Font rendering routines have been introduced in order to ease an
796ac3cc110SPascal Brand  implementation of Trusted UI.
797ac3cc110SPascal Brand
798ac3cc110SPascal Brand* File Storage: Possibility to use the normal world filesystem and the RPMB
799ac3cc110SPascal Brand  implementations simultaneously.
800ac3cc110SPascal Brand
801ac3cc110SPascal Brand* AOSP: There is a [local manifest][aosp_local_manifest] to build OP-TEE into an AOSP build, running on HiKey.
802ac3cc110SPascal Brand  Please refer to the README in that repo for instructions.
803ac3cc110SPascal Brand
804ac3cc110SPascal Brand* OpenEmbedded: In addition to the makefile-based build described in the optee_os README, there is an
805ac3cc110SPascal Brand  [OpenEmbedded-based build][oe_build] that supports Qemu (32-bit), FVP (64-bit), and HiKey (64-bit).
806ac3cc110SPascal Brand  Please refer to the README in that repo for instructions.
807ac3cc110SPascal Brand
808ac3cc110SPascal Brand* [Link][github_commits_2_1_0] to a list of all commits between this and
809ac3cc110SPascal Brand  previous release.
810ac3cc110SPascal Brand
811ac3cc110SPascal Brand
812ac3cc110SPascal Brand## Tested on
813ac3cc110SPascal BrandDefinitions:
814ac3cc110SPascal Brand
815ac3cc110SPascal Brand| Type | Meaning |
816ac3cc110SPascal Brand| ---- | ------- |
817ac3cc110SPascal Brand| Standard tests | The [optee_test][optee_test] project. |
818ac3cc110SPascal Brand| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.1.0.4. |
819ac3cc110SPascal Brand
820ac3cc110SPascal Brand*	ARM Juno Board (vexpress-juno), standard.
821ac3cc110SPascal Brand*	Foundation Models (vexpress-fvp), standard tests + extended tests,
822ac3cc110SPascal Brand	using FVP ARM V8 Foundation Platformr0p0 (platform build 10.0.37)
823ac3cc110SPascal Brand*	FSL i.MX6 UltraLite EVK (imx), standard.
824ac3cc110SPascal Brand*	FSL ls1021a (ls-ls1021atwr), standard tests.
825ac3cc110SPascal Brand*	HiKey (hikey), standard + extended tests.
826ac3cc110SPascal Brand*	QEMU (vexpress-qemu), standard + extended tests.
827ac3cc110SPascal Brand*	Xilinx Zynq UltraScale+ MPSOC, standard tests
828ac3cc110SPascal Brand
829ac3cc110SPascal BrandNote that the following platform has not been tested:
830ac3cc110SPascal Brand*	MTK8173-EVB (mediatek-mt8173)
831ac3cc110SPascal Brand
832ac3cc110SPascal Brand
833ac3cc110SPascal Brand## Known issues
834ac3cc110SPascal Brand* Issue(s) open on GitHub
835ac3cc110SPascal Brand  * [#868][pr868]: python-wand font generation sometimes times out
836ac3cc110SPascal Brand  * [#863][pr863]: "double free or corruption" error when building optee_os
837ac3cc110SPascal Brand  * [#858][pr858]: UUIDs in binary format have wrong endinanness
838ac3cc110SPascal Brand  * [#857][pr857]: Formatting of UUIDs is incorrect
839ac3cc110SPascal Brand  * [#847][pr847]: optee_os panic(TEE-CORE: Assertion)
840ac3cc110SPascal Brand  * [#838][pr838]: TUI font rendering is _very_ slow
841ac3cc110SPascal Brand  * [#814][pr814]: Persistent objects : save informations after close
842ac3cc110SPascal Brand  * [#665][pr665]: xtest 1013 stalled on HiKey when log levels are 4 and optee_os is on its own UART
843ac3cc110SPascal Brand  * [#506][pr506]: tee-supplicant panic & ta panic
844ac3cc110SPascal Brand
845ac3cc110SPascal Brand[github_commits_2_1_0]: https://github.com/OP-TEE/optee_os/compare/2.0.0...2.1.0
846ac3cc110SPascal Brand[pr868]: https://github.com/OP-TEE/optee_os/issues/868
847ac3cc110SPascal Brand[pr863]: https://github.com/OP-TEE/optee_os/issues/863
848ac3cc110SPascal Brand[pr858]: https://github.com/OP-TEE/optee_os/issues/858
849ac3cc110SPascal Brand[pr857]: https://github.com/OP-TEE/optee_os/issues/857
850ac3cc110SPascal Brand[pr847]: https://github.com/OP-TEE/optee_os/issues/847
851ac3cc110SPascal Brand[pr838]: https://github.com/OP-TEE/optee_os/issues/838
852ac3cc110SPascal Brand[pr814]: https://github.com/OP-TEE/optee_os/issues/814
853ac3cc110SPascal Brand[pr665]: https://github.com/OP-TEE/optee_os/issues/665
854ac3cc110SPascal Brand[aosp_local_manifest]: https://github.com/linaro-swg/optee_android_manifest
855ac3cc110SPascal Brand[oe_build]: https://github.com/linaro-swg/oe-optee
856ac3cc110SPascal Brand
857ac3cc110SPascal Brand# OP-TEE - version 2.0.0
858a0cd5d60SPascal Brand
859a0cd5d60SPascal Brand## New features
860a0cd5d60SPascal Brand
861a0cd5d60SPascal Brand* Generic driver: A new generic TEE driver is in the process of being
862a0cd5d60SPascal Brand  [upstreamed][gendrv_v9].
863a0cd5d60SPascal Brand  In this release, [OP-TEE/optee_linuxdriver][optee_linuxdriver] is no more used.
864a0cd5d60SPascal Brand  Instead, linux v4.5 is being patched using the proposed Generic TEE Driver,
865a0cd5d60SPascal Brand  as it can be found in [https://github.com/linaro-swg/linux/tree/optee][linux_optee]
866a0cd5d60SPascal Brand
867a0cd5d60SPascal Brand* RPMB support: Secure Storage can now use Replay Protected Memory Block (RPMB) partition
868a0cd5d60SPascal Brand  of an eMMC device. Check the [full documentation][rpmb_doc]
869a0cd5d60SPascal Brand
870a0cd5d60SPascal Brand* Hard-float ABI is now available.
871a0cd5d60SPascal Brand
872a0cd5d60SPascal Brand* [Link][github_commits_2_0_0] to a list of all commits between this and
873a0cd5d60SPascal Brand  previous release.
874a0cd5d60SPascal Brand
875a0cd5d60SPascal Brand
876a0cd5d60SPascal Brand## Tested on
877a0cd5d60SPascal BrandDefinitions:
878a0cd5d60SPascal Brand
879a0cd5d60SPascal Brand| Type | Meaning |
880a0cd5d60SPascal Brand| ---- | ------- |
881a0cd5d60SPascal Brand| Standard tests | The [optee_test][optee_test] project. |
882a0cd5d60SPascal Brand| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.1.0.4. |
883a0cd5d60SPascal Brand
884a0cd5d60SPascal Brand*	ARM Juno Board (vexpress-juno), standard.
885a0cd5d60SPascal Brand*	Foundation Models (vexpress-fvp), standard tests + extended tests,
886a0cd5d60SPascal Brand	using FVP ARM V8 Foundation Platformr0p0 (platform build 9.5.40)
887eb00c7b9SPascal Brand*	FSL ls1021a (ls-ls1021atwr), standard.
888a0cd5d60SPascal Brand*	HiKey (hikey), standard.
889a0cd5d60SPascal Brand*	MTK8173-EVB (mediatek-mt8173), standard.
890a0cd5d60SPascal Brand*	QEMU (vexpress-qemu), standard + extended tests.
891a0cd5d60SPascal Brand*	STM Cannes (stm-cannes), standard + extended tests.
892a0cd5d60SPascal Brand
893a0cd5d60SPascal Brand## Known issues
894a0cd5d60SPascal Brand* Issue(s) open on GitHub
895a0cd5d60SPascal Brand  * [#40][prld40] BUG_ON() when re-using RPC buffer to tee-supplicant
896a0cd5d60SPascal Brand  * [#506][pr506]: tee-supplicant panic & ta panic
897a0cd5d60SPascal Brand
898a0cd5d60SPascal Brand[github_commits_2_0_0]: https://github.com/OP-TEE/optee_os/compare/1.1.0...2.0.0
899a0cd5d60SPascal Brand[rpmb_doc]: https://github.com/OP-TEE/optee_os/blob/master/documentation/secure_storage_rpmb.md
900a0cd5d60SPascal Brand[optee_linuxdriver]: https://github.com/OP-TEE/optee_linuxdriver
901a0cd5d60SPascal Brand[gendrv_v9]: https://lkml.org/lkml/2016/4/1/205
902a0cd5d60SPascal Brand[linux_optee]: https://github.com/linaro-swg/linux/tree/optee
903a0cd5d60SPascal Brand
904a0cd5d60SPascal Brand
905c5bbfb4dSPascal Brand# OP-TEE - version 1.1.0
906c5bbfb4dSPascal Brand
907c5bbfb4dSPascal Brand
908c5bbfb4dSPascal Brand## New features
909c5bbfb4dSPascal Brand
910c5bbfb4dSPascal Brand* Softfloat library: floating point support is now available in 32bits TA.
911c5bbfb4dSPascal Brand
912c5bbfb4dSPascal Brand* Support running 64-bits TA: on ARMv8-A platform, TA can be compiled in
913c5bbfb4dSPascal Brand  AArch32 and/or in AArch64 in case the core is compiled in AArch64.
914c5bbfb4dSPascal Brand  An example can be found in HiKey configuration file. Using the following
915c5bbfb4dSPascal Brand  excerpt code, the user TA libraries are compiled in both AArch32 and
916c5bbfb4dSPascal Brand  AArch64, and can be found in `out/arm-plat-hikey/export-ta_arm32` and
917c5bbfb4dSPascal Brand  `out/arm-plat-hikey/export-ta_arm64`
918c5bbfb4dSPascal Brand
919c5bbfb4dSPascal Brand```
920c5bbfb4dSPascal Brand    ta-targets = ta_arm32
921c5bbfb4dSPascal Brand    ta-targets += ta_arm64
922c5bbfb4dSPascal Brand```
923c5bbfb4dSPascal Brand
924c5bbfb4dSPascal Brand* Concurrent TA support: multiple TA can run in parallel on
925c5bbfb4dSPascal Brand  several cores.
926c5bbfb4dSPascal Brand
927c5bbfb4dSPascal Brand* New tests added in xtest test suite: concurrent TA (xtest 1013),
928c5bbfb4dSPascal Brand  floating point tests (xtest 1006 and os_test TA) and corruption
929c5bbfb4dSPascal Brand  file storage (xtest 20000)
930c5bbfb4dSPascal Brand
931c5bbfb4dSPascal Brand* [Link][github_commits_1_1_0] to a list of all commits between this and
932c5bbfb4dSPascal Brand  previous release.
933c5bbfb4dSPascal Brand
934c5bbfb4dSPascal Brand
935c5bbfb4dSPascal Brand## Tested on
936c5bbfb4dSPascal BrandDefinitions:
937c5bbfb4dSPascal Brand
938c5bbfb4dSPascal Brand| Type | Meaning |
939c5bbfb4dSPascal Brand| ---- | ------- |
940c5bbfb4dSPascal Brand| Standard tests | The [optee_test][optee_test] project. |
941c5bbfb4dSPascal Brand| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.1.0.4. |
942c5bbfb4dSPascal Brand| Hello world test | Plain hello world Trusted Application such as [this][hello_world]. |
943c5bbfb4dSPascal Brand
944c5bbfb4dSPascal Brand*	Foundation Models (vexpress-fvp), standard tests + extended tests,
945c5bbfb4dSPascal Brand	using FVP ARM V8 Foundation Platformr0p0 (platform build 9.5.40)
946c5bbfb4dSPascal Brand*	HiKey (hikey), standard + extended tests.
947c5bbfb4dSPascal Brand*	MT8173 (mediatek), standard tests.
948c5bbfb4dSPascal Brand*	QEMU (vexpress-qemu), standard + extended tests.
949c5bbfb4dSPascal Brand*	STM Cannes (stm-cannes), standard + extended tests.
950c5bbfb4dSPascal Brand
951c5bbfb4dSPascal Brand## Known issues
952c5bbfb4dSPascal Brand* Secure Storage is implemented, but note that anti-rollback protection
953c5bbfb4dSPascal Brand  is not implemented yet.
954c5bbfb4dSPascal Brand
955c5bbfb4dSPascal Brand* Issue(s) open on GitHub
956c5bbfb4dSPascal Brand  * [#40][prld40] BUG_ON() when re-using RPC buffer to tee-supplicant
957c5bbfb4dSPascal Brand  * [#296][pr296]: Connecting RPMB to the storage APIs.
958c5bbfb4dSPascal Brand  * [#493][pr493]: setup_juno_optee: unable to find pre-built binaries
959c5bbfb4dSPascal Brand  * [#506][pr506]: tee-supplicant panic & ta panic
960c5bbfb4dSPascal Brand
961c5bbfb4dSPascal Brand[prld40]: https://github.com/OP-TEE/optee_linuxdriver/issues/40
962c5bbfb4dSPascal Brand[pr506]: https://github.com/OP-TEE/optee_os/issues/506
963c5bbfb4dSPascal Brand[github_commits_1_1_0]: https://github.com/OP-TEE/optee_os/compare/1.0.1...1.1.0
964c5bbfb4dSPascal Brand
965c5bbfb4dSPascal Brand
966c5bbfb4dSPascal Brand
9678a7ee79dSPascal Brand# OP-TEE - version 1.0.0
9688a7ee79dSPascal Brand
9698a7ee79dSPascal BrandOP-TEE is now maintained by Linaro. Contributors do not need to
9708a7ee79dSPascal Brandsign a CLA anymore, but must follow the rules of the [DCO][DCO]
9718a7ee79dSPascal Brand(Developer Certificate of Origin) instead.
9728a7ee79dSPascal Brand
9738a7ee79dSPascal Brand
9748a7ee79dSPascal Brand## New features
9758a7ee79dSPascal Brand
9768a7ee79dSPascal Brand* Add hardware support for Texas Instruments DRA7xx, ARMv7 (plat-ti)
9778a7ee79dSPascal Brand
9788a7ee79dSPascal Brand* GlobalPlatform™ TEE Internal Core API Specification v1.1,
9798a7ee79dSPascal Brand  including ECC algorithms.
9808a7ee79dSPascal Brand
9818a7ee79dSPascal Brand* Secure Storage: Files stored by the REE are now encrypted. Operations
9828a7ee79dSPascal Brand  are made atomic in order to prevent inconsistencies in case of errors
9838a7ee79dSPascal Brand  during the storage operations. [Slides][LCStorage] describing the
9848a7ee79dSPascal Brand  Secure Storage have been presented at the Linaro Connect SFO15.
9858a7ee79dSPascal Brand
9868a7ee79dSPascal Brand* Change of format of the Trusted Applications: they follow a
9878a7ee79dSPascal Brand  [signed ELF format][elf]
9888a7ee79dSPascal Brand
9898a7ee79dSPascal Brand* Rework thread [synchronization][synchro] in optee_os.
9908a7ee79dSPascal Brand
9918a7ee79dSPascal Brand* Use of ARMv8 native cryptographic support.
9928a7ee79dSPascal Brand
9938a7ee79dSPascal Brand* [OP-TEE/optee_test][optee_test] test suite is released.
9948a7ee79dSPascal Brand
9958a7ee79dSPascal Brand* Introduce [OP-TEE/manifest][manifest] and [OP-TEE/build][build]
9968a7ee79dSPascal Brand  to setup and build QEMU, FVP, HiKey and Mediatek platforms. Setup scripts
9978a7ee79dSPascal Brand  that used to be in optee_os have been removed, except for Juno board.
9988a7ee79dSPascal Brand
99995422146SPascal Brand* [Link][github_commits_1_0_0] to a list of all commits between this and
100095422146SPascal Brand  previous release.
100195422146SPascal Brand
10028a7ee79dSPascal Brand
10038a7ee79dSPascal Brand## Tested on
10048a7ee79dSPascal BrandDefinitions:
10058a7ee79dSPascal Brand
10068a7ee79dSPascal Brand| Type | Meaning |
10078a7ee79dSPascal Brand| ---- | ------- |
10088a7ee79dSPascal Brand| Standard tests | The [optee_test][optee_test] project. |
10098a7ee79dSPascal Brand| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.1.0.4. |
10108a7ee79dSPascal Brand| Hello world test | Plain hello world Trusted Application such as [this][hello_world]. |
10118a7ee79dSPascal Brand
10128a7ee79dSPascal Brand*	ARM Juno Board (vexpress-juno), standard + extended tests.
10138a7ee79dSPascal Brand*	Foundation Models (vexpress-fvp), standard tests.
10148a7ee79dSPascal Brand*	HiKey (hikey), standard + extended tests.
10158a7ee79dSPascal Brand*	MT8173 (mediatek), standard tests.
10168a7ee79dSPascal Brand*	QEMU (vexpress-qemu), standard + extended tests.
10178a7ee79dSPascal Brand*	STM Cannes (stm-cannes), standard + extended tests.
10188a7ee79dSPascal Brand
101995422146SPascal Brand## Known issues
102095422146SPascal Brand* Secure Storage is implemented, but note that anti-rollback protection
102195422146SPascal Brand  is not implemented yet.
102295422146SPascal Brand
102395422146SPascal Brand* Issue(s) open on GitHub
102495422146SPascal Brand  * [#210][pr210]: libteec.so 32-bit does not communicate well
102595422146SPascal Brand    with 64-bit kernel module
102695422146SPascal Brand  * [#296][pr296]: Connecting RPMB to the storage APIs.
102795422146SPascal Brand  * [#493][pr493]: setup_juno_optee: unable to find pre-built binaries
102895422146SPascal Brand  * [#494][pr494]: HiKey: xtest 7671 fails (1.0.0-rc2)
102995422146SPascal Brand
103095422146SPascal Brand[pr210]: https://github.com/OP-TEE/optee_os/issues/210
103195422146SPascal Brand[pr296]: https://github.com/OP-TEE/optee_os/issues/296
103295422146SPascal Brand[pr493]: https://github.com/OP-TEE/optee_os/issues/493
103395422146SPascal Brand[pr494]: https://github.com/OP-TEE/optee_os/issues/494
103495422146SPascal Brand[github_commits_1_0_0]: https://github.com/OP-TEE/optee_os/compare/0.3.0...1.0.0
10358a7ee79dSPascal Brand[DCO]: https://github.com/OP-TEE/optee_os/blob/master/Notice.md#contributions
10368a7ee79dSPascal Brand[LCStorage]: http://www.slideshare.net/linaroorg/sfo15503-secure-storage-in-optee
10378a7ee79dSPascal Brand[synchro]: https://github.com/OP-TEE/optee_os/blob/master/documentation/optee_design.md#4-thread-handling
10388a7ee79dSPascal Brand[elf]: https://github.com/OP-TEE/optee_os/blob/master/documentation/optee_design.md#format
10398a7ee79dSPascal Brand[optee_test]: https://github.com/OP-TEE/optee_test
10408a7ee79dSPascal Brand[manifest]: https://github.com/OP-TEE/manifest
10418a7ee79dSPascal Brand[build]: https://github.com/OP-TEE/build
10428a7ee79dSPascal Brand
104395422146SPascal Brand
104495422146SPascal Brand
104511d59085SPascal Brand# OP-TEE - version 0.3.0
104611d59085SPascal Brand
104711d59085SPascal Brand## New features
104811d59085SPascal Brand
104911d59085SPascal Brand*   Add hardware support for
105011d59085SPascal Brand	*   Mediatek MT8173 Board, ARMv8-A (plat-mediatek)
105111d59085SPascal Brand	*   Hisilicon HiKey Board, ARMv8-A (plat-hikey)
105211d59085SPascal Brand*   AArch64 build of optee_os is now possible through the configuration `CFG_ARM64_core=y`
105311d59085SPascal Brand*	Secure Storage: Data can be encrypted prior to their storage in the non-secure.
105411d59085SPascal Brand	Build is configured using `CFG_ENC_FS=y`
105511d59085SPascal Brand*	A generic boot scheme can be used. Boot configuration is commonalized. This helps
105611d59085SPascal Brand	new board support. It is applied on plat-hikey, plat-vexpress, plat-mediatek, plat-stm
105711d59085SPascal Brand    and plat-vexpress.
105811d59085SPascal Brand
105911d59085SPascal Brand## Tested on
106011d59085SPascal BrandDefinitions:
106111d59085SPascal Brand
106211d59085SPascal Brand| Type | Meaning |
106311d59085SPascal Brand| ---- | ------- |
106411d59085SPascal Brand| Standard tests | The optee_test project. |
106511d59085SPascal Brand| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.1.0.4. |
106611d59085SPascal Brand| Hello world test | Plain hello world Trusted Application such as [this][hello_world]. |
106711d59085SPascal Brand
106811d59085SPascal Brand*	ARM Juno Board (vexpress-juno), standard tests.
106911d59085SPascal Brand*	Foundation Models (vexpress-fvp), standard tests.
107011d59085SPascal Brand*	HiKey (hikey), standard tests.
107111d59085SPascal Brand*	MT8173 (mediatek), standard tests.
107211d59085SPascal Brand*	QEMU (vexpress-qemu), standard + extended tests.
107311d59085SPascal Brand*	STM Cannes (stm-cannes), standard + extended tests.
107411d59085SPascal Brand
107511d59085SPascal Brand-------------------------------------------
107611d59085SPascal Brand
1077f5117af2SPascal Brand# OP-TEE - version 0.2.0
1078759cc499SJoakim Bech
1079f5117af2SPascal Brand## New features
1080f5117af2SPascal Brand
1081f5117af2SPascal Brand### Linux Driver Refactoring
1082f5117af2SPascal Brand
1083f5117af2SPascal BrandLinux Driver has been refactored. It is now split in two parts:
1084f5117af2SPascal Brand*	optee.ko, the generic Linux driver. It contains all functionality
1085f5117af2SPascal Brand	common to all backends.
1086f5117af2SPascal Brand*	optee_armtz.ko, a specific backend dedicated to the TrustZone optee.
1087f5117af2SPascal Brand	It depends on optee.ko.
1088f5117af2SPascal Brand
1089f5117af2SPascal BrandLoading the TrustZone optee linux driver module is now performed using
1090f5117af2SPascal Brand
1091f5117af2SPascal Brand    modprobe optee_armtz
1092f5117af2SPascal Brand
1093f5117af2SPascal BrandThanks to the dependency between the generic and the backend modules, optee.ko is then automatically loaded.
1094f5117af2SPascal Brand
1095f5117af2SPascal Brand### Misc new features
1096f5117af2SPascal Brand* support PL310 lock down at TEE boot
1097f5117af2SPascal Brand* add 64bits support (division / print)
1098f5117af2SPascal Brand
1099f5117af2SPascal Brand## Tested on
1100f5117af2SPascal BrandDefinitions:
1101f5117af2SPascal Brand
1102f5117af2SPascal Brand| Type | Meaning |
1103f5117af2SPascal Brand| ---- | ------- |
1104f5117af2SPascal Brand| Standard tests | The optee_test project. |
1105f5117af2SPascal Brand| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.1.0.4. |
1106f5117af2SPascal Brand| Hello world test | Plain hello world Trusted Application such as [this][hello_world]. |
1107f5117af2SPascal Brand
1108f5117af2SPascal Brand*   ARM Juno Board (vexpress-juno), standard tests + extended tests.
1109f5117af2SPascal Brand
1110f5117af2SPascal Brand*   Foundation Models (vexpress-fvp), standard + extended tests.
1111f5117af2SPascal Brand
1112f5117af2SPascal Brand*   QEMU (vexpress-qemu), standard + extended tests.
1113f5117af2SPascal Brand
1114f5117af2SPascal Brand*   STM Cannes (stm-cannes), standard + extended tests.
1115f5117af2SPascal Brand
1116f5117af2SPascal Brand
111728fcee17SJerome Forissier## Issues resolved since last release
1118f5117af2SPascal Brand*	Fix user TA trace issue, in order each TA is able to select its own trace level
1119f5117af2SPascal Brand
1120f5117af2SPascal Brand
1121f5117af2SPascal Brand-------------------------------------------
1122f5117af2SPascal Brand# OP-TEE - version 0.1.0
1123f5117af2SPascal Brand
1124f5117af2SPascal Brand## New features
1125759cc499SJoakim BechBelow is a summary of the most important features added, but at the end you will
1126759cc499SJoakim Bechfind a link that present you all commits between the current and previous
1127759cc499SJoakim Bechrelease tag.
1128759cc499SJoakim Bech
1129759cc499SJoakim Bech*   GlobalPlatform Client API v1.0 support.
1130759cc499SJoakim Bech
1131759cc499SJoakim Bech*   GlobalPlatform Internal API v1.0 support.
1132759cc499SJoakim Bech
1133759cc499SJoakim Bech*   GlobalPlatform Secure Elements v1.0 support.
1134759cc499SJoakim Bech
1135759cc499SJoakim Bech*   Add hardware support for
1136759cc499SJoakim Bech
1137759cc499SJoakim Bech    *   Allwinner A80, ARMv7-A.
1138759cc499SJoakim Bech
1139759cc499SJoakim Bech    *   ARM Juno Board, ARMv8-A.
1140759cc499SJoakim Bech
1141759cc499SJoakim Bech    *   Foundation Models, ARMv8-A.
1142759cc499SJoakim Bech
1143759cc499SJoakim Bech    *   Fast Models, ARMv8-A.
1144759cc499SJoakim Bech
1145759cc499SJoakim Bech    *   QEMU, ARMv7-A.
1146759cc499SJoakim Bech
1147759cc499SJoakim Bech    *   STM Cannes, ARMv7-A.
1148759cc499SJoakim Bech
1149759cc499SJoakim Bech    *   STM Orly2, ARMv7-A.
1150759cc499SJoakim Bech
1151759cc499SJoakim Bech*   Add LibTomCrypt as the default software cryptographic library.
1152759cc499SJoakim Bech
1153759cc499SJoakim Bech*   Add cryptographic abstraction layer in on secure side to ease the use of
1154759cc499SJoakim Bech    other cryptographic software libraries or adding support for hardware
1155759cc499SJoakim Bech    acceleration.
1156759cc499SJoakim Bech
1157759cc499SJoakim Bech*   Extended cryptographic API with support for HKDF, Concat KDF and PBKDF2.
1158759cc499SJoakim Bech
1159759cc499SJoakim Bech*   SHA-1 and SHA-256 ARMv8-A crypto extension implementation.
1160759cc499SJoakim Bech
1161759cc499SJoakim Bech*   Enabled paging support in OP-TEE OS.
1162759cc499SJoakim Bech
1163759cc499SJoakim Bech*   Add support for xtest (both standard and extended) in QEMU and FVP setup
1164759cc499SJoakim Bech    scripts.
1165759cc499SJoakim Bech
1166759cc499SJoakim Bech*   Add documentation for the OS design, cryptographic abstraction layer, secure
1167759cc499SJoakim Bech    elements design, the build system, GitHub usage, key derivation extensions,
1168759cc499SJoakim Bech    ARM-Trusted Firmware usage within OP-TEE and GlobalPlatform usage within
1169759cc499SJoakim Bech    OP-TEE.
1170759cc499SJoakim Bech
1171759cc499SJoakim Bech*   Integrate support for Travis CI.
1172759cc499SJoakim Bech
1173759cc499SJoakim Bech*   [Link][github_commits_0_1_0] to a list of all commits between this and
1174759cc499SJoakim Bech    previous release.
1175759cc499SJoakim Bech
1176759cc499SJoakim Bech
1177f5117af2SPascal Brand## Tested on
1178759cc499SJoakim BechDefinitions:
1179759cc499SJoakim Bech
1180759cc499SJoakim Bech| Type | Meaning |
1181759cc499SJoakim Bech| ---- | ------- |
1182759cc499SJoakim Bech| Standard tests | The optee_test project. |
1183759cc499SJoakim Bech| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.0.0. |
1184759cc499SJoakim Bech| Hello world test | Plain hello world Trusted Application such as [this][hello_world]. |
1185759cc499SJoakim Bech
1186759cc499SJoakim Bech*   Allwinner A80 (plat-sunxi), hello world test.
1187759cc499SJoakim Bech
1188759cc499SJoakim Bech*   ARM Juno Board (vexpress-juno), standard tests.
1189759cc499SJoakim Bech
1190759cc499SJoakim Bech*   Foundation Models (plat-vexpress-fvp), standard + extended tests
1191759cc499SJoakim Bech
1192759cc499SJoakim Bech*   QEMU (plat-vexpress-qemu), standard + extended tests (and Secure Elements
1193759cc499SJoakim Bech    tested separately).
1194759cc499SJoakim Bech
1195759cc499SJoakim Bech*   STM Cannes (plat-stm-cannes), standard + extended tests.
1196759cc499SJoakim Bech
1197759cc499SJoakim Bech
119828fcee17SJerome Forissier## Issues resolved since last release
1199759cc499SJoakim BechN/A since this is the first release tag on OP-TEE.
1200759cc499SJoakim Bech
1201759cc499SJoakim Bech
1202f5117af2SPascal Brand## Known issues
1203759cc499SJoakim Bech*   Storage is implemented, but not "Secure storage", meaning that a client
1204759cc499SJoakim Bech    needs to do encrypt files on their own before storing the files.
1205759cc499SJoakim Bech
1206759cc499SJoakim Bech*   Issue(s) open on GitHub
1207759cc499SJoakim Bech    *   [#95][pr95]: An error about building the test code of libtomcrypt.
1208759cc499SJoakim Bech
1209759cc499SJoakim Bech    *   [#149][pr149]: when testing optee os with arm trusted firmware (I
1210759cc499SJoakim Bech	utilized optee os tee.bin as bl32 image) on juno platform, I got an
1211759cc499SJoakim Bech        error.
1212759cc499SJoakim Bech
1213759cc499SJoakim Bech    *   [#161][pr161]: tee_svc_cryp.c lacks accessibility checks on
1214759cc499SJoakim Bech        user-supplied TEE_Attributes.
1215759cc499SJoakim Bech
1216759cc499SJoakim Bech[hello_world]: https://github.com/jenswi-linaro/lcu14_optee_hello_world
1217759cc499SJoakim Bech[github_commits_0_1_0]: https://github.com/OP-TEE/optee_os/compare/b01047730e77127c23a36591643eeb8bb0487d68...999e4a6c0f64d3177fd3d0db234107b6fb860884
1218759cc499SJoakim Bech[pr95]: https://github.com/OP-TEE/optee_os/issues/95
1219759cc499SJoakim Bech[pr149]: https://github.com/OP-TEE/optee_os/issues/149
1220759cc499SJoakim Bech[pr161]: https://github.com/OP-TEE/optee_os/issues/161
1221759cc499SJoakim Bech
12227583c59eSCedric Chaumont*   Global Platform Device Internal Core API v1.1
12237583c59eSCedric Chaumont    *   [#230][pr230]: Persistent object corruption support (TEE_ERROR_CORRUPT_OBJECT/_2)
12247583c59eSCedric Chaumont    *   [#230][pr230]: Persistent object access support (TEE_ERROR_STORAGE_NOT_AVAILABLE/_2)
1225