xref: /optee_os/CHANGELOG.md (revision af141c61fe7a2430f3b4bb89661d8414117013b3)
1*af141c61SJens Wiklander# OP-TEE - version 3.9.0 (2020-04-22)
2*af141c61SJens Wiklander
3*af141c61SJens Wiklander- Links to the release pages, commits and pull requests merged into this release for:
4*af141c61SJens Wiklander  - OP-TEE/optee_os: [release page][OP_TEE_optee_os_release_3_9_0], [commits][OP_TEE_optee_os_commits_3_9_0] and [pull requests][OP_TEE_optee_os_pr_3_9_0]
5*af141c61SJens Wiklander  - OP-TEE/optee_client: [release page][OP_TEE_optee_client_release_3_9_0], [commits][OP_TEE_optee_client_commits_3_9_0] and [pull requests][OP_TEE_optee_client_pr_3_9_0]
6*af141c61SJens Wiklander  - OP-TEE/optee_test: [release page][OP_TEE_optee_test_release_3_9_0], [commits][OP_TEE_optee_test_commits_3_9_0] and [pull requests][OP_TEE_optee_test_pr_3_9_0]
7*af141c61SJens Wiklander  - OP-TEE/build: [release page][OP_TEE_build_release_3_9_0], [commits][OP_TEE_build_commits_3_9_0] and [pull requests][OP_TEE_build_pr_3_9_0]
8*af141c61SJens Wiklander  - linaro-swg/optee_examples: [release page][linaro_swg_optee_examples_release_3_9_0], [commits][linaro_swg_optee_examples_commits_3_9_0] and [pull requests][linaro_swg_optee_examples_pr_3_9_0]
9*af141c61SJens Wiklander
10*af141c61SJens Wiklander
11*af141c61SJens Wiklander[OP_TEE_optee_os_release_3_9_0]: https://github.com/OP-TEE/optee_os/releases/tag/3.9.0
12*af141c61SJens Wiklander[OP_TEE_optee_os_commits_3_9_0]: https://github.com/OP-TEE/optee_os/compare/3.8.0...3.9.0
13*af141c61SJens Wiklander[OP_TEE_optee_os_pr_3_9_0]: https://github.com/OP-TEE/optee_os/pulls?q=is%3Apr+is%3Amerged+base%3Amaster+merged%3A2020-01-24..2020-05-22
14*af141c61SJens Wiklander
15*af141c61SJens Wiklander[OP_TEE_optee_client_release_3_9_0]: https://github.com/OP-TEE/optee_client/releases/tag/3.9.0
16*af141c61SJens Wiklander[OP_TEE_optee_client_commits_3_9_0]: https://github.com/OP-TEE/optee_client/compare/3.8.0...3.9.0
17*af141c61SJens Wiklander[OP_TEE_optee_client_pr_3_9_0]: https://github.com/OP-TEE/optee_client/pulls?q=is%3Apr+is%3Amerged+base%3Amaster+merged%3A2020-01-24..2020-05-22
18*af141c61SJens Wiklander
19*af141c61SJens Wiklander[OP_TEE_optee_test_release_3_9_0]: https://github.com/OP-TEE/optee_test/releases/tag/3.9.0
20*af141c61SJens Wiklander[OP_TEE_optee_test_commits_3_9_0]: https://github.com/OP-TEE/optee_test/compare/3.8.0...3.9.0
21*af141c61SJens Wiklander[OP_TEE_optee_test_pr_3_9_0]: https://github.com/OP-TEE/optee_test/pulls?q=is%3Apr+is%3Amerged+base%3Amaster+merged%3A2020-01-24..2020-05-22
22*af141c61SJens Wiklander
23*af141c61SJens Wiklander[OP_TEE_build_release_3_9_0]: https://github.com/OP-TEE/build/releases/tag/3.9.0
24*af141c61SJens Wiklander[OP_TEE_build_commits_3_9_0]: https://github.com/OP-TEE/build/compare/3.8.0...3.9.0
25*af141c61SJens Wiklander[OP_TEE_build_pr_3_9_0]: https://github.com/OP-TEE/build/pulls?q=is%3Apr+is%3Amerged+base%3Amaster+merged%3A2020-01-24..2020-05-22
26*af141c61SJens Wiklander
27*af141c61SJens Wiklander[linaro_swg_optee_examples_release_3_9_0]: https://github.com/linaro-swg/optee_examples/releases/tag/3.9.0
28*af141c61SJens Wiklander[linaro_swg_optee_examples_commits_3_9_0]: https://github.com/linaro-swg/optee_examples/compare/3.8.0...3.9.0
29*af141c61SJens Wiklander[linaro_swg_optee_examples_pr_3_9_0]: https://github.com/linaro-swg/optee_examples/pulls?q=is%3Apr+is%3Amerged+base%3Amaster+merged%3A2020-01-24..2020-05-22
30*af141c61SJens Wiklander
31023e3365SJerome Forissier# OP-TEE - version 3.8.0 (2020-01-24)
32023e3365SJerome Forissier
33023e3365SJerome Forissier- Links to the release pages, commits and pull requests merged into this release for:
34023e3365SJerome Forissier  - OP-TEE/optee_os: [release page][OP_TEE_optee_os_release_3_8_0], [commits][OP_TEE_optee_os_commits_3_8_0] and [pull requests][OP_TEE_optee_os_pr_3_8_0]
35023e3365SJerome Forissier  - OP-TEE/optee_client: [release page][OP_TEE_optee_client_release_3_8_0], [commits][OP_TEE_optee_client_commits_3_8_0] and [pull requests][OP_TEE_optee_client_pr_3_8_0]
36023e3365SJerome Forissier  - OP-TEE/optee_test: [release page][OP_TEE_optee_test_release_3_8_0], [commits][OP_TEE_optee_test_commits_3_8_0] and [pull requests][OP_TEE_optee_test_pr_3_8_0]
37023e3365SJerome Forissier  - OP-TEE/build: [release page][OP_TEE_build_release_3_8_0], [commits][OP_TEE_build_commits_3_8_0] and [pull requests][OP_TEE_build_pr_3_8_0]
38023e3365SJerome Forissier  - linaro-swg/optee_examples: [release page][linaro_swg_optee_examples_release_3_8_0], [commits][linaro_swg_optee_examples_commits_3_8_0] and [pull requests][linaro_swg_optee_examples_pr_3_8_0]
39023e3365SJerome Forissier
40023e3365SJerome Forissier
41023e3365SJerome Forissier[OP_TEE_optee_os_release_3_8_0]: https://github.com/OP-TEE/optee_os/releases/tag/3.8.0
42023e3365SJerome Forissier[OP_TEE_optee_os_commits_3_8_0]: https://github.com/OP-TEE/optee_os/compare/3.7.0...3.8.0
43023e3365SJerome Forissier[OP_TEE_optee_os_pr_3_8_0]: https://github.com/OP-TEE/optee_os/pulls?q=is%3Apr+is%3Amerged+base%3Amaster+merged%3A2020-01-24..2020-01-24
44023e3365SJerome Forissier
45023e3365SJerome Forissier[OP_TEE_optee_client_release_3_8_0]: https://github.com/OP-TEE/optee_client/releases/tag/3.8.0
46023e3365SJerome Forissier[OP_TEE_optee_client_commits_3_8_0]: https://github.com/OP-TEE/optee_client/compare/3.7.0...3.8.0
47023e3365SJerome Forissier[OP_TEE_optee_client_pr_3_8_0]: https://github.com/OP-TEE/optee_client/pulls?q=is%3Apr+is%3Amerged+base%3Amaster+merged%3A2019-07-05..2020-01-24
48023e3365SJerome Forissier
49023e3365SJerome Forissier[OP_TEE_optee_test_release_3_8_0]: https://github.com/OP-TEE/optee_test/releases/tag/3.8.0
50023e3365SJerome Forissier[OP_TEE_optee_test_commits_3_8_0]: https://github.com/OP-TEE/optee_test/compare/3.7.0...3.8.0
51023e3365SJerome Forissier[OP_TEE_optee_test_pr_3_8_0]: https://github.com/OP-TEE/optee_test/pulls?q=is%3Apr+is%3Amerged+base%3Amaster+merged%3A2019-07-05..2020-01-24
52023e3365SJerome Forissier
53023e3365SJerome Forissier[OP_TEE_build_release_3_8_0]: https://github.com/OP-TEE/build/releases/tag/3.8.0
54023e3365SJerome Forissier[OP_TEE_build_commits_3_8_0]: https://github.com/OP-TEE/build/compare/3.7.0...3.8.0
55023e3365SJerome Forissier[OP_TEE_build_pr_3_8_0]: https://github.com/OP-TEE/build/pulls?q=is%3Apr+is%3Amerged+base%3Amaster+merged%3A2019-07-05..2020-01-24
56023e3365SJerome Forissier
57023e3365SJerome Forissier[linaro_swg_optee_examples_release_3_8_0]: https://github.com/linaro-swg/optee_examples/releases/tag/3.8.0
58023e3365SJerome Forissier[linaro_swg_optee_examples_commits_3_8_0]: https://github.com/linaro-swg/optee_examples/compare/3.7.0...3.8.0
59023e3365SJerome Forissier[linaro_swg_optee_examples_pr_3_8_0]: https://github.com/linaro-swg/optee_examples/pulls?q=is%3Apr+is%3Amerged+base%3Amaster+merged%3A2019-07-05..2020-01-24
60023e3365SJerome Forissier
61a2fa5018SJoakim Bech# OP-TEE - version 3.7.0 (2019-10-18)
62a2fa5018SJoakim Bech
63a2fa5018SJoakim Bech- Links to the release pages, commits and pull requests merged into this release for:
64a2fa5018SJoakim Bech  - OP-TEE/optee_os: [release page][OP_TEE_optee_os_release_3_7_0], [commits][OP_TEE_optee_os_commits_3_7_0] and [pull requests][OP_TEE_optee_os_pr_3_7_0]
65a2fa5018SJoakim Bech  - OP-TEE/optee_client: [release page][OP_TEE_optee_client_release_3_7_0], [commits][OP_TEE_optee_client_commits_3_7_0] and [pull requests][OP_TEE_optee_client_pr_3_7_0]
66a2fa5018SJoakim Bech  - OP-TEE/optee_test: [release page][OP_TEE_optee_test_release_3_7_0], [commits][OP_TEE_optee_test_commits_3_7_0] and [pull requests][OP_TEE_optee_test_pr_3_7_0]
67a2fa5018SJoakim Bech  - OP-TEE/build: [release page][OP_TEE_build_release_3_7_0], [commits][OP_TEE_build_commits_3_7_0] and [pull requests][OP_TEE_build_pr_3_7_0]
68a2fa5018SJoakim Bech  - linaro-swg/optee_examples: [release page][linaro_swg_optee_examples_release_3_7_0], [commits][linaro_swg_optee_examples_commits_3_7_0] and [pull requests][linaro_swg_optee_examples_pr_3_7_0]
69a2fa5018SJoakim Bech
70a2fa5018SJoakim Bech
71a2fa5018SJoakim Bech[OP_TEE_optee_os_release_3_7_0]: https://github.com/OP-TEE/optee_os/releases/tag/3.7.0
72a2fa5018SJoakim Bech[OP_TEE_optee_os_commits_3_7_0]: https://github.com/OP-TEE/optee_os/compare/3.6.0...3.7.0
73a2fa5018SJoakim Bech[OP_TEE_optee_os_pr_3_7_0]: https://github.com/OP-TEE/optee_os/pulls?q=is%3Apr+is%3Amerged+base%3Amaster+merged%3A2019-07-05..2019-10-18
74a2fa5018SJoakim Bech
75a2fa5018SJoakim Bech[OP_TEE_optee_client_release_3_7_0]: https://github.com/OP-TEE/optee_client/releases/tag/3.7.0
76a2fa5018SJoakim Bech[OP_TEE_optee_client_commits_3_7_0]: https://github.com/OP-TEE/optee_client/compare/3.6.0...3.7.0
77a2fa5018SJoakim Bech[OP_TEE_optee_client_pr_3_7_0]: https://github.com/OP-TEE/optee_client/pulls?q=is%3Apr+is%3Amerged+base%3Amaster+merged%3A2019-07-05..2019-10-18
78a2fa5018SJoakim Bech
79a2fa5018SJoakim Bech[OP_TEE_optee_test_release_3_7_0]: https://github.com/OP-TEE/optee_test/releases/tag/3.7.0
80a2fa5018SJoakim Bech[OP_TEE_optee_test_commits_3_7_0]: https://github.com/OP-TEE/optee_test/compare/3.6.0...3.7.0
81a2fa5018SJoakim Bech[OP_TEE_optee_test_pr_3_7_0]: https://github.com/OP-TEE/optee_test/pulls?q=is%3Apr+is%3Amerged+base%3Amaster+merged%3A2019-07-05..2019-10-18
82a2fa5018SJoakim Bech
83a2fa5018SJoakim Bech[OP_TEE_build_release_3_7_0]: https://github.com/OP-TEE/build/releases/tag/3.7.0
84a2fa5018SJoakim Bech[OP_TEE_build_commits_3_7_0]: https://github.com/OP-TEE/build/compare/3.6.0...3.7.0
85a2fa5018SJoakim Bech[OP_TEE_build_pr_3_7_0]: https://github.com/OP-TEE/build/pulls?q=is%3Apr+is%3Amerged+base%3Amaster+merged%3A2019-07-05..2019-10-18
86a2fa5018SJoakim Bech
87a2fa5018SJoakim Bech[linaro_swg_optee_examples_release_3_7_0]: https://github.com/linaro-swg/optee_examples/releases/tag/3.7.0
88a2fa5018SJoakim Bech[linaro_swg_optee_examples_commits_3_7_0]: https://github.com/linaro-swg/optee_examples/compare/3.6.0...3.7.0
89a2fa5018SJoakim Bech[linaro_swg_optee_examples_pr_3_7_0]: https://github.com/linaro-swg/optee_examples/pulls?q=is%3Apr+is%3Amerged+base%3Amaster+merged%3A2019-07-05..2019-10-18
90a2fa5018SJoakim Bech
91f398d492SJerome Forissier# OP-TEE - version 3.6.0 (2019-07-05)
92f398d492SJerome Forissier
93f398d492SJerome Forissier- Link to the GitHub [release page][github_release_3_6_0].
94f398d492SJerome Forissier- Links to the [commits][github_commits_3_6_0] and
95f398d492SJerome Forissier[pull requests][github_pr_3_6_0] merged into this release.
96f398d492SJerome Forissier
97f398d492SJerome Forissier[github_release_3_6_0]: https://github.com/OP-TEE/optee_os/releases/tag/3.6.0
98f398d492SJerome Forissier[github_commits_3_6_0]: https://github.com/OP-TEE/optee_os/compare/3.5.0...3.6.0
99f398d492SJerome 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
100f398d492SJerome Forissier
1015df2a985SJoakim Bech# OP-TEE - version 3.5.0 (2019-04-26)
1025df2a985SJoakim Bech
1035df2a985SJoakim Bech- Link to the GitHub [release page][github_release_3_5_0].
1045df2a985SJoakim Bech- Links to the [commits][github_commits_3_5_0] and
1055df2a985SJoakim Bech[pull requests][github_pr_3_5_0] merged into this release.
1065df2a985SJoakim Bech
1075df2a985SJoakim Bech[github_release_3_5_0]: https://github.com/OP-TEE/optee_os/releases/tag/3.5.0
1085df2a985SJoakim Bech[github_commits_3_5_0]: https://github.com/OP-TEE/optee_os/compare/3.4.0...3.5.0
1095df2a985SJoakim 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
1105df2a985SJoakim Bech
111406c609bSJerome Forissier# OP-TEE - version 3.4.0 (2019-01-25)
112406c609bSJerome Forissier
113406c609bSJerome Forissier- Link to the GitHub [release page][github_release_3_4_0].
114406c609bSJerome Forissier- Links to the [commits][github_commits_3_4_0] and
115406c609bSJerome Forissier[pull requests][github_pr_3_4_0] merged into this release.
116406c609bSJerome Forissier
117406c609bSJerome Forissier[github_release_3_4_0]: https://github.com/OP-TEE/optee_os/releases/tag/3.4.0
118406c609bSJerome Forissier[github_commits_3_4_0]: https://github.com/OP-TEE/optee_os/compare/3.3.0...3.4.0
119406c609bSJerome 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
120406c609bSJerome Forissier
121ee595e95SJerome Forissier# OP-TEE - version 3.3.0 (2018-10-12)
122ee595e95SJerome Forissier
123ee595e95SJerome Forissier- Link to the GitHub [release page][github_release_3_3_0].
124ee595e95SJerome Forissier- Links to the [commits][github_commits_3_3_0] and
125ee595e95SJerome Forissier[pull requests][github_pr_3_3_0] merged into this release.
126ee595e95SJerome Forissier
127ee595e95SJerome Forissier[github_release_3_3_0]: https://github.com/OP-TEE/optee_os/releases/tag/3.3.0
128ee595e95SJerome Forissier[github_commits_3_3_0]: https://github.com/OP-TEE/optee_os/compare/3.2.0...3.3.0
129ee595e95SJerome 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
130ee595e95SJerome Forissier
13153bf1c38SJerome Forissier# OP-TEE - version 3.2.0 (2018-07-04)
13253bf1c38SJerome Forissier
13353bf1c38SJerome Forissier- Link to the GitHub [release page][github_release_3_2_0].
13453bf1c38SJerome Forissier- Links to the [commits][github_commits_3_2_0] and
13553bf1c38SJerome Forissier[pull requests][github_pr_3_2_0] merged into this release.
13653bf1c38SJerome Forissier
13753bf1c38SJerome Forissier## Known issues
13853bf1c38SJerome Forissier
13953bf1c38SJerome Forissier* HiKey960: assertion in bget create_free_block() \[memalign() self-test\] ([#2414])
14053bf1c38SJerome Forissier* D02: assertion '!have_spinlock()' ([#2437])
14153bf1c38SJerome Forissier
14253bf1c38SJerome Forissier[github_commits_3_2_0]: https://github.com/OP-TEE/optee_os/compare/3.1.0...3.2.0
14353bf1c38SJerome 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
14453bf1c38SJerome Forissier[github_release_3_2_0]: https://github.com/OP-TEE/optee_os/releases/tag/3.2.0
14553bf1c38SJerome Forissier[#2414]: https://github.com/OP-TEE/optee_os/issues/2414
14653bf1c38SJerome Forissier[#2437]: https://github.com/OP-TEE/optee_os/issues/2437
14753bf1c38SJerome Forissier
1480ab9388cSJens Wiklander# OP-TEE - version 3.1.0 (2018-04-13)
1490ab9388cSJens Wiklander
1500ab9388cSJens Wiklander- Link to the GitHub [release page][github_release_3_1_0].
1510ab9388cSJens Wiklander- Links to the [commits][github_commits_3_1_0] and
1520ab9388cSJens Wiklander[pull requests][github_pr_3_1_0] merged into this release.
1530ab9388cSJens Wiklander
1540ab9388cSJens Wiklander[github_commits_3_1_0]: https://github.com/OP-TEE/optee_os/compare/3.0.0...3.1.0
1550ab9388cSJens 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
1560ab9388cSJens Wiklander[github_release_3_1_0]: https://github.com/OP-TEE/optee_os/releases/tag/3.1.0
1570ab9388cSJens Wiklander
1580ab9388cSJens Wiklander# OP-TEE - version 3.0.0 (2018-01-26)
15994ee4938SJerome Forissier
16094ee4938SJerome Forissier[Link][github_commits_3_0_0] to a list of all commits between this release and
16194ee4938SJerome Forissierthe previous one (2.6.0).
16294ee4938SJerome Forissier
16394ee4938SJerome ForissierAbout backwards compatibility: Trusted Applications built with OP-TEE 2.5.0 or
16494ee4938SJerome Forissierearlier will not run properly with a *debug* build of this release due
16594ee4938SJerome Forissierto commit [0e1c6e8e][commit_0e1c6e8e] ("Dump call stack on TA panic").
16694ee4938SJerome ForissierNon-debug builds are not affected.
16794ee4938SJerome Forissier
16894ee4938SJerome Forissier## New features
16994ee4938SJerome Forissier
17094ee4938SJerome Forissier* New supported platforms: Armada 3700 ([#1946]), Poplar ([#1999]), 64-bit
17194ee4938SJerome Forissier  support for FSL ls1012ardb ([#1941]), i.MX6SX Sabreauto ([#1974]).
17294ee4938SJerome Forissier* arm32: sm: init CNTVOFF ([#2052])
17394ee4938SJerome Forissier* Debug/info/error traces: make output more compact ([#2011])
17494ee4938SJerome Forissier* tzc380: implement new functions ([#1994])
17594ee4938SJerome Forissier* Secure Data Path: add pseudo-TA to convert VA to PA (#1993])
17694ee4938SJerome Forissier* Pager: use NEON AES GCM implementation ([#1959])
17794ee4938SJerome Forissier* Crypto: add optimized AES GCM implementation using NEON ([#1949])
17894ee4938SJerome Forissier* Add support for using secure storage for TA anti-rollback ([#1928])
17994ee4938SJerome Forissier* Crypto: replace struct crypto_ops with function interface ([#1923],
18094ee4938SJerome Forissier  [#1931])
18194ee4938SJerome Forissier* aosp_optee.mk: define OPTEE_BIN ([#1922])
18294ee4938SJerome Forissier* Add build option to allow concurrent execution of single-instance TAs
18394ee4938SJerome Forissier  ([#1915])
18494ee4938SJerome Forissier* Pager: support for address sanitizer ([#1856])
18594ee4938SJerome Forissier* Pager: make memory between CFG_TEE_RAM_START and TEE load address usable by
18694ee4938SJerome Forissier  pager ([#1826])
18794ee4938SJerome Forissier
18894ee4938SJerome Forissier## Bug fixes
18994ee4938SJerome Forissier
19094ee4938SJerome Forissier* Fix crash in tee_mmu_final() on TA loading error ([#2092])
19194ee4938SJerome Forissier* LibTomCrypt: fix issue causing invalid output when using AES CTR with
19294ee4938SJerome Forissierhardware acceleration (CFG_CRYPTO_WITH_CE) ([#2086])
19394ee4938SJerome Forissier* pl310: fix cache sync ([#2035])
19494ee4938SJerome Forissier* tzc380: do not write reserved bits ([#1994])
19594ee4938SJerome Forissier* Fix potential double free in ta_open() ([#1970])
19694ee4938SJerome Forissier* libfdt: fix undefined behaviour in fdt_offset_ptr() ([#1969])
19794ee4938SJerome Forissier* imx_wdog: fix register access ([#1966])
19894ee4938SJerome Forissier* Secure storage: fix potential memory leak after early return ([#1961])
19994ee4938SJerome Forissier* LibTomCrypt: fix double free in dsa_import() ([#1963])
20094ee4938SJerome Forissier* RPMB: fix TA independance issue in secure storage ([#1921])
20194ee4938SJerome Forissier* RPMB: return TEE_ERROR_ACCESS_CONFLICT instead of panicking when a TA
20294ee4938SJerome Forissier  attempts to create an existing persistent object without the overwrite flag
20394ee4938SJerome Forissier  ([#1919])
20494ee4938SJerome Forissier* PSCI: pass non-secure context to psci_system_suspend() ([#1916])
20594ee4938SJerome Forissier* Fix "Argument list too long" during "make clean" ([#1897])
20694ee4938SJerome Forissier
20794ee4938SJerome Forissier## Security fixes
20894ee4938SJerome Forissier
20994ee4938SJerome Forissier* Mitigations and hardening against the Spectre and Meltdown vulnerabilities
21094ee4938SJerome Forissier  (CVE-2017-5753, CVE-2017-5715, CVE-2017-5754).
21194ee4938SJerome Forissier
21294ee4938SJerome Forissier## Known issues
21394ee4938SJerome Forissier
21494ee4938SJerome Forissier* Secure storage (REE FS): storage size not updated after
21594ee4938SJerome ForissierTEE_TruncateObjectData() ([#2094])
21694ee4938SJerome Forissier* Possible deadlock with CFG_WITH_PAGER=y when loading a TA and not enough
21794ee4938SJerome Forissierpage tables are available in pgt_cache ([#2080])
21894ee4938SJerome Forissier
21994ee4938SJerome Forissier## Tested on
22094ee4938SJerome Forissier
22194ee4938SJerome ForissierThe release was tested successfully on the platforms listed below.
22294ee4938SJerome Forissier
22394ee4938SJerome Forissier<!-- ${PLATFORM}-${PLATFORM_FLAVOR}, ordered alphabetically -->
22494ee4938SJerome Forissier* d02
22594ee4938SJerome Forissier* hikey
22694ee4938SJerome Forissier* hikey-hikey960
22794ee4938SJerome Forissier* imx-mx6ulevk
22894ee4938SJerome Forissier* imx-mx7dsabresd
22994ee4938SJerome Forissier* marvell-armada7k8k
23094ee4938SJerome Forissier* marvell-armada3700
23194ee4938SJerome Forissier* mediatek-mt8173
23294ee4938SJerome Forissier* rcar-salvator_m3
23394ee4938SJerome Forissier* rockchip-rk322x
23494ee4938SJerome Forissier* rpi3
23594ee4938SJerome Forissier* sam
23694ee4938SJerome Forissier* ti
23794ee4938SJerome Forissier* vexpress-juno
23894ee4938SJerome Forissier* vexpress-qemu_armv8a
23994ee4938SJerome Forissier* vexpress-qemu_virt
24094ee4938SJerome Forissier
24194ee4938SJerome Forissier[commit_0e1c6e8e]: https://github.com/OP-TEE/optee_os/commit/0e1c6e8e
24294ee4938SJerome Forissier[github_commits_3_0_0]: https://github.com/OP-TEE/optee_os/compare/2.6.0...3.0.0
24394ee4938SJerome Forissier[#2092]: https://github.com/OP-TEE/optee_os/pull/2092
24494ee4938SJerome Forissier[#2086]: https://github.com/OP-TEE/optee_os/pull/2086
24594ee4938SJerome Forissier[#2094]: https://github.com/OP-TEE/optee_os/issues/2094
24694ee4938SJerome Forissier[#2080]: https://github.com/OP-TEE/optee_os/issues/2080
24794ee4938SJerome Forissier[#2052]: https://github.com/OP-TEE/optee_os/pull/2052
24894ee4938SJerome Forissier[#2035]: https://github.com/OP-TEE/optee_os/pull/2035
24994ee4938SJerome Forissier[#2011]: https://github.com/OP-TEE/optee_os/pull/2011
25094ee4938SJerome Forissier[#1999]: https://github.com/OP-TEE/optee_os/pull/1999
25194ee4938SJerome Forissier[#1994]: https://github.com/OP-TEE/optee_os/pull/1994
25294ee4938SJerome Forissier[#1993]: https://github.com/OP-TEE/optee_os/pull/1993
25394ee4938SJerome Forissier[#1974]: https://github.com/OP-TEE/optee_os/pull/1974
25494ee4938SJerome Forissier[#1970]: https://github.com/OP-TEE/optee_os/pull/1970
25594ee4938SJerome Forissier[#1969]: https://github.com/OP-TEE/optee_os/pull/1969
25694ee4938SJerome Forissier[#1966]: https://github.com/OP-TEE/optee_os/pull/1966
25794ee4938SJerome Forissier[#1963]: https://github.com/OP-TEE/optee_os/pull/1963
25894ee4938SJerome Forissier[#1961]: https://github.com/OP-TEE/optee_os/pull/1961
25994ee4938SJerome Forissier[#1959]: https://github.com/OP-TEE/optee_os/pull/1959
26094ee4938SJerome Forissier[#1949]: https://github.com/OP-TEE/optee_os/pull/1949
26194ee4938SJerome Forissier[#1946]: https://github.com/OP-TEE/optee_os/pull/1946
26294ee4938SJerome Forissier[#1941]: https://github.com/OP-TEE/optee_os/pull/1941
26394ee4938SJerome Forissier[#1931]: https://github.com/OP-TEE/optee_os/pull/1931
26494ee4938SJerome Forissier[#1928]: https://github.com/OP-TEE/optee_os/pull/1928
26594ee4938SJerome Forissier[#1923]: https://github.com/OP-TEE/optee_os/pull/1923
26694ee4938SJerome Forissier[#1922]: https://github.com/OP-TEE/optee_os/pull/1922
26794ee4938SJerome Forissier[#1921]: https://github.com/OP-TEE/optee_os/pull/1921
26894ee4938SJerome Forissier[#1919]: https://github.com/OP-TEE/optee_os/pull/1919
26994ee4938SJerome Forissier[#1916]: https://github.com/OP-TEE/optee_os/pull/1916
27094ee4938SJerome Forissier[#1915]: https://github.com/OP-TEE/optee_os/pull/1915
27194ee4938SJerome Forissier[#1897]: https://github.com/OP-TEE/optee_os/pull/1897
27294ee4938SJerome Forissier[#1856]: https://github.com/OP-TEE/optee_os/pull/1856
27394ee4938SJerome Forissier[#1826]: https://github.com/OP-TEE/optee_os/pull/1826
27494ee4938SJerome Forissier
2756d57389fSJerome Forissier# OP-TEE - version 2.6.0
2766d57389fSJerome Forissier
2776d57389fSJerome Forissier[Link][github_commits_2_6_0] to a list of all commits between this release and
2786d57389fSJerome Forissierthe previous one (2.5.0).
2796d57389fSJerome Forissier
2806d57389fSJerome Forissier## New features
2816d57389fSJerome Forissier
2826d57389fSJerome Forissier* New supported platforms: Atmel SAMA5 ([#1714]), HiSilicon HiKey960 ([#1684]),
2836d57389fSJerome Forissier  Rockchip RK322X ([#1666]), NXP LS1043A-RDB/LS1046A-RDB ([#1787]), Marvell
2846d57389fSJerome Forissier  Armada 70x0/80x0 ([#1807]).
2856d57389fSJerome Forissier* Dynamic shared memory (non-contiguous, non-secure memory can be mapped into
2866d57389fSJerome Forissier  Trusted Applications VA space) ([#1631])
2876d57389fSJerome Forissier* Dump TA call stack on panic ([#1858])
2886d57389fSJerome Forissier* i.MX: PSCI reset ([#1849])
2896d57389fSJerome Forissier* plat-ti: AM43xx: suspend/resume support ([#1822])
2906d57389fSJerome Forissier* QEMU SMP support ([#1820])
2916d57389fSJerome Forissier* plat-ti: AM43xx: disable TRNG ([#1816])
2926d57389fSJerome Forissier* plat-ti: enable Secure Data Path by default ([#1815])
2936d57389fSJerome Forissier* Improve symbolize.py ([#1778], [#1767], [#1766])
2946d57389fSJerome Forissier* Early TAs (TAs linked in tee.bin) ([#1733])
2956d57389fSJerome Forissier* Suspend/resume framework for arm32 and imx7d support ([#1729])
2966d57389fSJerome Forissier* RK322X PSCI version, features and suspend support ([#1720])
2976d57389fSJerome Forissier* arm32: handle aborts in system mode ([#1703])
2986d57389fSJerome Forissier* i.MX: add SNVS SRTC support ([#1700])
2996d57389fSJerome Forissier* GCC7 support ([#1693])
3006d57389fSJerome Forissier* Improve detection of programming errors in locking code ([#1671], [#1670])
3016d57389fSJerome Forissier* Support TEE RAM size larger than page directory size ([#1669])
3026d57389fSJerome Forissier
3036d57389fSJerome Forissier## Removed features
3046d57389fSJerome Forissier
3056d57389fSJerome Forissier* Remove TUI code ([#1842])
3066d57389fSJerome Forissier
3076d57389fSJerome Forissier## Bug fixes
3086d57389fSJerome Forissier
3096d57389fSJerome Forissier* Add missing synchronization barrier in core_mmu_map_pages() ([#1827])
3106d57389fSJerome Forissier* Secure storage: REE FS: fix bug in error path ([#1801])
3116d57389fSJerome Forissier* ASAN bug fixes ([#1799])
3126d57389fSJerome Forissier* Fix race in core_mmu_user_mapping_is_active() ([#1785])
3136d57389fSJerome Forissier* libutee: printf() and puts() fixes, add putchar() ([#1759], [#1754])
3146d57389fSJerome Forissier* arm32: GICv3: fix FIQ masking in IRQ/ABT/SVC/UND handlers ([#1748])
3156d57389fSJerome Forissier* arm32: preserve r12 in native_intr_handler() ([#1682])
3166d57389fSJerome Forissier* arm64: fix print_kernel_stack() ([#1664])
3176d57389fSJerome Forissier* benchmark: fix core data-abort ([#1658])
3186d57389fSJerome Forissier
3196d57389fSJerome Forissier## Security fixes or enhancements
3206d57389fSJerome Forissier
3216d57389fSJerome Forissier* crypto: fix software PRNG weaknesses
3226d57389fSJerome Forissier  ([OP-TEE-2017-0001][OP-TEE-2017-0001]) ([#1843])
3236d57389fSJerome Forissier
3246d57389fSJerome Forissier## Tested on
3256d57389fSJerome Forissier
32694ee4938SJerome ForissierThe release was tested successfully on the platforms listed below.
3276d57389fSJerome ForissierIf a platform is not listed, it means the release was not tested on this
3286d57389fSJerome Forissierplatform.
3296d57389fSJerome Forissier
3306d57389fSJerome Forissier<!-- ${PLATFORM}-${PLATFORM_FLAVOR}, ordered alphabetically -->
3316d57389fSJerome Forissier* d02
3326d57389fSJerome Forissier* hikey
3336d57389fSJerome Forissier* hikey-hikey960
3346d57389fSJerome Forissier* imx-mx6ulevk
3356d57389fSJerome Forissier* imx-mx7dsabresd
3366d57389fSJerome Forissier* ls-ls1021a??? (single core)
3376d57389fSJerome Forissier* ls-ls1043ardb
3386d57389fSJerome Forissier* ls-ls1046ardb
3396d57389fSJerome Forissier* mediatek-mt8173
3406d57389fSJerome Forissier* rcar
3416d57389fSJerome Forissier* rockchip-rk322x
3426d57389fSJerome Forissier* rpi3
3436d57389fSJerome Forissier* sam
3446d57389fSJerome Forissier* stm-b2260
3456d57389fSJerome Forissier* stm-cannes
3466d57389fSJerome Forissier* ti-???
3476d57389fSJerome Forissier* vexpress-fvp
3486d57389fSJerome Forissier* vexpress-juno
3496d57389fSJerome Forissier* vexpress-qemu_armv8a
3506d57389fSJerome Forissier* vexpress-qemu_virt
3516d57389fSJerome Forissier
35294ee4938SJerome Forissier[github_commits_2_6_0]: https://github.com/OP-TEE/optee_os/compare/2.5.0...2.6.0
3536d57389fSJerome Forissier[#1858]: https://github.com/OP-TEE/optee_os/issues/1858
3546d57389fSJerome Forissier[#1849]: https://github.com/OP-TEE/optee_os/issues/1849
3556d57389fSJerome Forissier[#1843]: https://github.com/OP-TEE/optee_os/issues/1843
3566d57389fSJerome Forissier[#1842]: https://github.com/OP-TEE/optee_os/issues/1842
3576d57389fSJerome Forissier[#1827]: https://github.com/OP-TEE/optee_os/issues/1827
3586d57389fSJerome Forissier[#1822]: https://github.com/OP-TEE/optee_os/issues/1822
3596d57389fSJerome Forissier[#1820]: https://github.com/OP-TEE/optee_os/issues/1820
3606d57389fSJerome Forissier[#1816]: https://github.com/OP-TEE/optee_os/issues/1816
3616d57389fSJerome Forissier[#1815]: https://github.com/OP-TEE/optee_os/issues/1815
3626d57389fSJerome Forissier[#1807]: https://github.com/OP-TEE/optee_os/issues/1807
3636d57389fSJerome Forissier[#1801]: https://github.com/OP-TEE/optee_os/issues/1801
3646d57389fSJerome Forissier[#1799]: https://github.com/OP-TEE/optee_os/issues/1799
3656d57389fSJerome Forissier[#1787]: https://github.com/OP-TEE/optee_os/issues/1787
3666d57389fSJerome Forissier[#1785]: https://github.com/OP-TEE/optee_os/issues/1785
3676d57389fSJerome Forissier[#1778]: https://github.com/OP-TEE/optee_os/issues/1778
3686d57389fSJerome Forissier[#1767]: https://github.com/OP-TEE/optee_os/issues/1767
3696d57389fSJerome Forissier[#1766]: https://github.com/OP-TEE/optee_os/issues/1766
3706d57389fSJerome Forissier[#1759]: https://github.com/OP-TEE/optee_os/issues/1759
3716d57389fSJerome Forissier[#1754]: https://github.com/OP-TEE/optee_os/issues/1754
3726d57389fSJerome Forissier[#1748]: https://github.com/OP-TEE/optee_os/issues/1748
3736d57389fSJerome Forissier[#1733]: https://github.com/OP-TEE/optee_os/issues/1733
3746d57389fSJerome Forissier[#1729]: https://github.com/OP-TEE/optee_os/issues/1729
3756d57389fSJerome Forissier[#1720]: https://github.com/OP-TEE/optee_os/issues/1720
3766d57389fSJerome Forissier[#1714]: https://github.com/OP-TEE/optee_os/issues/1714
3776d57389fSJerome Forissier[#1703]: https://github.com/OP-TEE/optee_os/issues/1703
3786d57389fSJerome Forissier[#1700]: https://github.com/OP-TEE/optee_os/issues/1700
3796d57389fSJerome Forissier[#1693]: https://github.com/OP-TEE/optee_os/issues/1693
3806d57389fSJerome Forissier[#1684]: https://github.com/OP-TEE/optee_os/issues/1684
3816d57389fSJerome Forissier[#1682]: https://github.com/OP-TEE/optee_os/issues/1682
3826d57389fSJerome Forissier[#1671]: https://github.com/OP-TEE/optee_os/issues/1671
3836d57389fSJerome Forissier[#1670]: https://github.com/OP-TEE/optee_os/issues/1670
3846d57389fSJerome Forissier[#1669]: https://github.com/OP-TEE/optee_os/issues/1669
3856d57389fSJerome Forissier[#1666]: https://github.com/OP-TEE/optee_os/issues/1666
3866d57389fSJerome Forissier[#1664]: https://github.com/OP-TEE/optee_os/issues/1664
3876d57389fSJerome Forissier[#1658]: https://github.com/OP-TEE/optee_os/issues/1658
3886d57389fSJerome Forissier[#1631]: https://github.com/OP-TEE/optee_os/issues/1631
3896d57389fSJerome Forissier[OP-TEE-2017-0001]: https://www.op-tee.org/security-advisories/
3906d57389fSJerome Forissier
3915d8aaa04SJerome Forissier# OP-TEE - version 2.5.0
3925d8aaa04SJerome Forissier
3935d8aaa04SJerome Forissier[Link][github_commits_2_5_0] to a list of all commits between this release and
3945d8aaa04SJerome Forissierthe previous one (2.4.0).
3955d8aaa04SJerome Forissier
3965d8aaa04SJerome Forissier## New features
3975d8aaa04SJerome Forissier
3985d8aaa04SJerome Forissier* New supported platform: i.MX7D ([#1639])
3995d8aaa04SJerome Forissier* Secure storage: anti-rollback protection for REE FS using RPMB FS ([#1630])
4005d8aaa04SJerome Forissier* Assign non-secure DDR configuration from DT if CFG_DT=y ([#1623])
4015d8aaa04SJerome Forissier* Add new image format: split image into three separate binaries suitable for
4025d8aaa04SJerome Forissier  upcoming ARM Trusted Firmware ([#1589]).
4035d8aaa04SJerome Forissier* Make alignment check configurable ([#1586])
4045d8aaa04SJerome Forissier* drivers: add TZC380 driver ([#1578])
4055d8aaa04SJerome Forissier* plat-imx: PSCI CPU off ([#1577])
4065d8aaa04SJerome Forissier* 64-bit paging on QEMU v8 and HiKey ([#1575], [#1592])
4075d8aaa04SJerome Forissier* Benchmark framework ([#1365])
4085d8aaa04SJerome Forissier* Dump call stack of user TAs on abort ([#1552])
4095d8aaa04SJerome Forissier* plat-hikey: enable Secure Data Path ([#1440])
4105d8aaa04SJerome Forissier* Add interface to load and decrypt/authenticate user TAs ([#1513])
4115d8aaa04SJerome Forissier* plat-ti: add secure paging support ([#1493])
4125d8aaa04SJerome Forissier* plat-ti: add OTP hardware key support ([#1492])
4135d8aaa04SJerome Forissier* Support ARM GICv3 ([#1465])
4145d8aaa04SJerome Forissier
4155d8aaa04SJerome Forissier## Removed features
4165d8aaa04SJerome Forissier
4175d8aaa04SJerome Forissier* stm-orly2 is not supported anymore ([#1650])
4185d8aaa04SJerome Forissier* Remove secure storage based on SQL FS (`CFG_SQL_FS=y`) ([#1490])
4195d8aaa04SJerome Forissier* Remove support for mapping user TAs with 1 MiB or 2 MiB granularity
4205d8aaa04SJerome Forissier  (`CFG_SMALL_PAGE_USER_TA=n`) ([#1559]). TAs are always mapped using small
4215d8aaa04SJerome Forissier  pages.
4225d8aaa04SJerome Forissier
4235d8aaa04SJerome Forissier## Bug fixes
4245d8aaa04SJerome Forissier
4255d8aaa04SJerome Forissier* Reduce size of non-pageable code ([#1621])
4265d8aaa04SJerome Forissier* Ignore `TA_FLAG_MULTI_SESSION` and `TA_FLAG_INSTANCE_KEEP_ALIVE` when
4275d8aaa04SJerome Forissier  `TA_FLAG_SINGLE_INSTANCE` is not set ([#1574])
4285d8aaa04SJerome Forissier* libutee: remove buffering for AES GCM (PR#1573) and AES CTR ([#1580])
4295d8aaa04SJerome Forissier* Fix ROUNDUP()/ROUNDDOWN() macros ([#1519])
4305d8aaa04SJerome Forissier* Do not touch other bits in GICD_CTLR ([#1508])
4315d8aaa04SJerome Forissier* Fix build issue with `DEBUG=y` and `CFG_TEE_CORE_LOG_LEVEL=0` ([#1502])
4325d8aaa04SJerome Forissier* crypto: do not restrict hash size when algorithm is ECDSA ([#1497])
4335d8aaa04SJerome Forissier
4345d8aaa04SJerome Forissier## Security fixes or enhancements
4355d8aaa04SJerome Forissier
4365d8aaa04SJerome Forissier- crypto: fix RSA key leakage after fault injection attack
4375d8aaa04SJerome Forissier  ([OP-TEE-2016-0003][OP-TEE-2016-0003])  ([#1610])
4385d8aaa04SJerome Forissier* crypto: fix RSA key leakage after side channel attack
4395d8aaa04SJerome Forissier  ([OP-TEE-2016-0002][OP-TEE-2016-0002]) ([#1610])
4405d8aaa04SJerome Forissier* Make pager aliased pages not always writable ([#1551])
4415d8aaa04SJerome Forissier* Support for no-exec RO and RW data ([#1459], [#1550])
4425d8aaa04SJerome Forissier
4435d8aaa04SJerome Forissier## New issues
4445d8aaa04SJerome Forissier
4455d8aaa04SJerome Forissier* armv7: some platform-specific code (`plat_cpu_reset_early()`) overwrites
4465d8aaa04SJerome ForissierSCTLR bits configured by generic code. This affects alignment checks (`SCTLR.A`)
4475d8aaa04SJerome Forissierand write-implies-no-exec (`SCTLR.WXN`, `SCTLR.UWXN`), which can therefore not
4485d8aaa04SJerome Forissierbe configured via the compile-time `CFG_` variables.
4495d8aaa04SJerome Forissier* armv7: plat-imx: Cortex-A9 cores should enable branch prediction (`SCLTR.Z`)
4505d8aaa04SJerome Forissierfor improved performance.
4515d8aaa04SJerome Forissier* [#1656] qemu_armv8a: init hangs when secure data path and pager are both
4525d8aaa04SJerome Forissier  enabled.
4535d8aaa04SJerome Forissier
4545d8aaa04SJerome Forissier## Tested on
4555d8aaa04SJerome Forissier
4565d8aaa04SJerome ForissierIn the list below, _standard_ means that the `xtest` program passed with
4575d8aaa04SJerome Forissierits default configuration, while _extended_ means it was run successfully
4585d8aaa04SJerome Forissierwith the additional GlobalPlatform™ TEE Initial Configuration Test Suite
4595d8aaa04SJerome Forissierv1.1.0.4.
4605d8aaa04SJerome Forissier
4615d8aaa04SJerome ForissierIf a platform is not listed, it means the release was not tested on this
4625d8aaa04SJerome Forissierplatform.
4635d8aaa04SJerome Forissier
4645d8aaa04SJerome Forissier<!-- ${PLATFORM}-${PLATFORM_FLAVOR}, ordered alphabetically -->
4655d8aaa04SJerome Forissier* d02: extended
4665d8aaa04SJerome Forissier* hikey: extended
4675d8aaa04SJerome Forissier* imx-mx6ulevk: standard
4685d8aaa04SJerome Forissier* imx-mx6ullevk: standard
4695d8aaa04SJerome Forissier* imx-mx7dsabresd: standard
4705d8aaa04SJerome Forissier* ls-ls1021atwr: standard
4715d8aaa04SJerome Forissier* mediatek-mt8173: standard
4725d8aaa04SJerome Forissier* rcar-h3: standard
4735d8aaa04SJerome Forissier* rpi3: standard
4745d8aaa04SJerome Forissier* stm-b2260: extended
4755d8aaa04SJerome Forissier* stm-cannes: extended
4765d8aaa04SJerome Forissier* ti-am43xx: standard
4775d8aaa04SJerome Forissier* ti-am57xx: standard
4785d8aaa04SJerome Forissier* ti-dra7xx: standard
4795d8aaa04SJerome Forissier* vexpress-fvp: standard
4805d8aaa04SJerome Forissier* vexpress-juno: standard
4815d8aaa04SJerome Forissier* vexpress-qemu_armv8a: standard
4825d8aaa04SJerome Forissier* vexpress-qemu_virt: standard
4835d8aaa04SJerome Forissier
4845d8aaa04SJerome Forissier[github_commits_2_5_0]: https://github.com/OP-TEE/optee_os/compare/2.4.0...2.5.0-rc1
4855d8aaa04SJerome Forissier[#1656]: https://github.com/OP-TEE/optee_os/issues/1656
4865d8aaa04SJerome Forissier[#1650]: https://github.com/OP-TEE/optee_os/pull/1650
4875d8aaa04SJerome Forissier[#1639]: https://github.com/OP-TEE/optee_os/pull/1639
4885d8aaa04SJerome Forissier[#1630]: https://github.com/OP-TEE/optee_os/pull/1630
4895d8aaa04SJerome Forissier[#1623]: https://github.com/OP-TEE/optee_os/pull/1623
4905d8aaa04SJerome Forissier[#1621]: https://github.com/OP-TEE/optee_os/pull/1621
4915d8aaa04SJerome Forissier[#1610]: https://github.com/OP-TEE/optee_os/pull/1610
4925d8aaa04SJerome Forissier[#1592]: https://github.com/OP-TEE/optee_os/pull/1592
4935d8aaa04SJerome Forissier[#1589]: https://github.com/OP-TEE/optee_os/pull/1589
4945d8aaa04SJerome Forissier[#1586]: https://github.com/OP-TEE/optee_os/pull/1586
4955d8aaa04SJerome Forissier[#1580]: https://github.com/OP-TEE/optee_os/pull/1580
4965d8aaa04SJerome Forissier[#1578]: https://github.com/OP-TEE/optee_os/pull/1578
4975d8aaa04SJerome Forissier[#1577]: https://github.com/OP-TEE/optee_os/pull/1577
4985d8aaa04SJerome Forissier[#1574]: https://github.com/OP-TEE/optee_os/pull/1574
4995d8aaa04SJerome Forissier[#1559]: https://github.com/OP-TEE/optee_os/pull/1559
5005d8aaa04SJerome Forissier[#1551]: https://github.com/OP-TEE/optee_os/pull/1551
5015d8aaa04SJerome Forissier[#1550]: https://github.com/OP-TEE/optee_os/pull/1550
5025d8aaa04SJerome Forissier[#1519]: https://github.com/OP-TEE/optee_os/pull/1519
5035d8aaa04SJerome Forissier[#1502]: https://github.com/OP-TEE/optee_os/pull/1502
5045d8aaa04SJerome Forissier[#1365]: https://github.com/OP-TEE/optee_os/pull/1365
5055d8aaa04SJerome Forissier[#1552]: https://github.com/OP-TEE/optee_os/pull/1552
5065d8aaa04SJerome Forissier[#1513]: https://github.com/OP-TEE/optee_os/pull/1513
5075d8aaa04SJerome Forissier[#1508]: https://github.com/OP-TEE/optee_os/pull/1508
5085d8aaa04SJerome Forissier[#1493]: https://github.com/OP-TEE/optee_os/pull/1493
5095d8aaa04SJerome Forissier[#1497]: https://github.com/OP-TEE/optee_os/pull/1497
5105d8aaa04SJerome Forissier[#1492]: https://github.com/OP-TEE/optee_os/pull/1492
5115d8aaa04SJerome Forissier[#1490]: https://github.com/OP-TEE/optee_os/pull/1490
5125d8aaa04SJerome Forissier[#1465]: https://github.com/OP-TEE/optee_os/pull/1465
5135d8aaa04SJerome Forissier[#1459]: https://github.com/OP-TEE/optee_os/pull/1459
5145d8aaa04SJerome Forissier[#1440]: https://github.com/OP-TEE/optee_os/pull/1440
5155d8aaa04SJerome Forissier[OP-TEE-2016-0003]: https://www.op-tee.org/security-advisories/
5165d8aaa04SJerome Forissier[OP-TEE-2016-0002]: https://www.op-tee.org/security-advisories/
5175d8aaa04SJerome Forissier
518702609a7SJerome Forissier# OP-TEE - version 2.4.0
519702609a7SJerome Forissier
520702609a7SJerome Forissier[Link][github_commits_2_4_0] to a list of all commits between this release and
521702609a7SJerome Forissierthe previous one (2.3.0).
522702609a7SJerome Forissier
523702609a7SJerome ForissierPlease note: this release is API-compatible with the previous one, but the
524702609a7SJerome ForissierSecure Storage internal format for the REE and SQL FS is not compatible due to
525702609a7SJerome Forissiercommits [a238b74][commit_a238b74] ("core: REE FS: use the new hash tree
526702609a7SJerome Forissierinterface") and [44e900e][commit_44e900e] ("core: SQL FS: use the new hash tree
527702609a7SJerome Forissierinterface").
528702609a7SJerome Forissier
529702609a7SJerome Forissier## New features
530702609a7SJerome Forissier
531702609a7SJerome Forissier* Add porting guidelines
532702609a7SJerome Forissier
533702609a7SJerome Forissier* Add support for Secure Data Path which allows Client and Trusted Applications
534702609a7SJerome Forissier  to share references to secure memory
535702609a7SJerome Forissier
536702609a7SJerome Forissier* New supported platform: Texas Instruments AM57xx (`PLATFORM=ti-am57xx`)
537702609a7SJerome Forissier
538702609a7SJerome Forissier* ARMv7-A: add support for platform services in secure monitor and add these
539702609a7SJerome Forissier  services for the DRA7xx platform
540702609a7SJerome Forissier
541702609a7SJerome Forissier* SPI framework and PL022 driver cleanup and improvements
542702609a7SJerome Forissier
543702609a7SJerome Forissier* Use CNTPCT (when available) to add entropy to the software PRNG
544702609a7SJerome Forissier
545702609a7SJerome Forissier* Add GlobalPlatform Socket API for UDP and TCP (IPv4 and IPv6)
546702609a7SJerome Forissier
547702609a7SJerome Forissier* DRA7: add TRNG driver, enable GICv2 driver
548702609a7SJerome Forissier
549702609a7SJerome Forissier* Support load address larger than 4G
550702609a7SJerome Forissier
551702609a7SJerome Forissier* libutee: preserve error code when calling TEE_Panic() for easier
552702609a7SJerome Forissier  troubleshooting
553702609a7SJerome Forissier
554702609a7SJerome Forissier* Support TA profiling with gprof (-pg compiler switch)
555702609a7SJerome Forissier
556702609a7SJerome Forissier* Optimize the ELF loader for TAs when pager is enabled
557702609a7SJerome Forissier
558702609a7SJerome Forissier* Update documentation
559702609a7SJerome Forissier
560702609a7SJerome Forissier* Add paged secure shared memory that can be transferred between TAs as
561702609a7SJerome Forissier  needed
562702609a7SJerome Forissier
563702609a7SJerome Forissier* Introduce MOBJ abstraction
564702609a7SJerome Forissier
565702609a7SJerome Forissier* i.MX6: add PSCI "on" function
566702609a7SJerome Forissier
567702609a7SJerome Forissier* arm32: introduce PSCI framework
568702609a7SJerome Forissier
569702609a7SJerome Forissier## Bug fixes
570702609a7SJerome Forissier
571702609a7SJerome Forissier* Secure storage: improve integrity checking of the REE and SQL filesystems by
572702609a7SJerome Forissier  adding a hash tree on the internal data structures. Any external modification
573702609a7SJerome Forissier  is detected, except full rollback. Fixes [#1188][issue1188].
574702609a7SJerome Forissier
575702609a7SJerome Forissier* The linux driver will set the 'privileged' flag (TEE_GEN_CAP_PRIVILEGED) on
576702609a7SJerome Forissier  the device intended for use by tee-supplicant. Fixes [#1199][issue1199].
577702609a7SJerome Forissier
578702609a7SJerome Forissier* RPMB: don't try to program the RPMB key by default
579702609a7SJerome Forissier
580702609a7SJerome Forissier* Fix "make clean" error cases
581702609a7SJerome Forissier
582702609a7SJerome Forissier* Fix issue when resetting persistent storage enumerator [#1332][issue1332]
583702609a7SJerome Forissier
584702609a7SJerome Forissier* Fix TA panic when doing AES CTS with specific buffer sizes
585702609a7SJerome Forissier  [#1203][issue1203].
586702609a7SJerome Forissier
587702609a7SJerome Forissier## Known issues
588702609a7SJerome Forissier
589702609a7SJerome Forissier* On RPi3 xtest sometimes stall (rcu_sched self-detected stall on CPU) [#1353][issue1353]
590702609a7SJerome Forissier* For multi-core PSCI support is to be added for ls1021atwr in OP-TEE.
591702609a7SJerome Forissier* USB keyboard cannot be used to stop the u-boot timeout ([build issue131]).
592702609a7SJerome Forissier* Travis service (build.git) seems unstable from time to time.
593702609a7SJerome Forissier
594702609a7SJerome Forissier## Tested on
595702609a7SJerome Forissier
596702609a7SJerome ForissierIn the list below, _standard_ means that the `xtest` program passed with
597702609a7SJerome Forissierits default configuration, while _extended_ means it was run successfully
598702609a7SJerome Forissierwith the additional GlobalPlatform™ TEE Initial Configuration Test Suite
599702609a7SJerome Forissierv1.1.0.4.
600702609a7SJerome Forissier
601702609a7SJerome ForissierIf a platform is not listed, it means the release was not tested on this
602702609a7SJerome Forissierplatform.
603702609a7SJerome Forissier
604702609a7SJerome Forissier<!-- ${PLATFORM}-${PLATFORM_FLAVOR}, ordered alphabetically -->
605702609a7SJerome Forissier* d02: extended
606702609a7SJerome Forissier* hikey: extended
607702609a7SJerome Forissier* imx-mx6ulevk: standard
608702609a7SJerome Forissier* ls-ls1021atwr: standard (single core)
609702609a7SJerome Forissier* mediatek-mt8173: standard
610702609a7SJerome Forissier* rcar-h3: standard
611702609a7SJerome Forissier* rpi3: standard
612702609a7SJerome Forissier* stm-b2260: extended
613702609a7SJerome Forissier* ti-dra7xx: standard
614702609a7SJerome Forissier* vexpress-fvp: standard
615702609a7SJerome Forissier* vexpress-juno: standard
616702609a7SJerome Forissier* vexpress-qemu_armv8a: standard
617702609a7SJerome Forissier* vexpress-qemu_virt: standard
618702609a7SJerome Forissier* zynqmp-zc1751_dc1: standard
619702609a7SJerome Forissier* zynqmp-zc1751_dc2: standard
620702609a7SJerome Forissier* zynqmp-zcu102: standard
621702609a7SJerome Forissier
622702609a7SJerome Forissier[github_commits_2_4_0]: https://github.com/OP-TEE/optee_os/compare/2.3.0...2.4.0
623702609a7SJerome Forissier[issue1332]: https://github.com/OP-TEE/optee_os/issues/1332
624702609a7SJerome Forissier[issue1353]: https://github.com/OP-TEE/optee_os/issues/1353
625702609a7SJerome Forissier[build issue131]: https://github.com/OP-TEE/build/issues/131
626702609a7SJerome Forissier[commit_a238b74]: https://github.com/OP-TEE/optee_os/commit/a238b744b1b3
627702609a7SJerome Forissier[commit_44e900e]: https://github.com/OP-TEE/optee_os/commit/44e900eabfc1
628702609a7SJerome Forissier
62928fcee17SJerome Forissier# OP-TEE - version 2.3.0
63028fcee17SJerome Forissier
63128fcee17SJerome Forissier[Link][github_commits_2_3_0] to a list of all commits between this release and
63228fcee17SJerome Forissierthe previous one (2.2.0).
63328fcee17SJerome Forissier
63428fcee17SJerome ForissierPlease note: this release is API-compatible with the previous one, but the
63528fcee17SJerome ForissierSecure Storage internal format for the REE FS is not compatible due to commit
63628fcee17SJerome Forissier[361fb3e][commit_361fb3e] ("core: REE FS: use a single file per object").
63728fcee17SJerome Forissier
63828fcee17SJerome Forissier[commit_361fb3e]: https://github.com/OP-TEE/optee_os/commit/361fb3e
63928fcee17SJerome Forissier
64028fcee17SJerome Forissier## New features
64128fcee17SJerome Forissier
64228fcee17SJerome Forissier* New supported platform: Xilinx Zynq 7000 ZC702 (`PLATFORM=zynq7k-zc702`)
64328fcee17SJerome Forissier
64428fcee17SJerome Forissier* Add debug assertions to spinlocks and mutexes
64528fcee17SJerome Forissier
64628fcee17SJerome Forissier* Add more CP15 register access macros for Cortex-A9
64728fcee17SJerome Forissier
64828fcee17SJerome Forissier* ARMv7-A: redesign secure monitor to make it easier to register services
64928fcee17SJerome Forissier
65028fcee17SJerome Forissier* ARMv7-A: cleanup boot arguments
65128fcee17SJerome Forissier
65228fcee17SJerome Forissier* libutee: extend `TEE_CheckMemoryAccessRights()` with
65328fcee17SJerome Forissier  `TEE_MEMORY_ACCESS_SECURE` and `TEE_MEMORY_ACCESS_NONSECURE`
65428fcee17SJerome Forissier
65528fcee17SJerome Forissier* plat-hikey: enable SPI by default and add sample test code
65628fcee17SJerome Forissier
65728fcee17SJerome Forissier* Consider `CFLAGS_ta_arm64` and `CFLAGS_ta_arm32` when building TAs
65828fcee17SJerome Forissier
65928fcee17SJerome Forissier* Secure storage refactoring
66028fcee17SJerome Forissier  - Simplify interface with tee-supplicant. Minimize round trips with normal
66128fcee17SJerome Forissier    world, especially by adding a cache for FS RPC payload data.
66228fcee17SJerome Forissier  - REE FS: use a single file per object, remove block cache.
66328fcee17SJerome Forissier
66428fcee17SJerome Forissier* Print call stack in panic()
66528fcee17SJerome Forissier
66628fcee17SJerome Forissier## Bug fixes
66728fcee17SJerome Forissier
66828fcee17SJerome Forissier* Fix UUID encoding when communicating with normal world (use big endian
66928fcee17SJerome Forissier  mode instead of native endianness). Related to this, the string format
67028fcee17SJerome Forissier  for UUIDs has changed in tee-supplicant, so that TA file names now follow
67128fcee17SJerome Forissier  the format defined in RFC4122 (a missing hyphen was added). The old format
67228fcee17SJerome Forissier  is still supported, but deprecated, and will likely be removed with the
67328fcee17SJerome Forissier  next major release.
67428fcee17SJerome Forissier
67528fcee17SJerome Forissier* Drop write permission to non-writable ELF segments after TA loading is
67628fcee17SJerome Forissier  complete.
67728fcee17SJerome Forissier
67828fcee17SJerome Forissier* mm: fix confusing memory mapping debug traces
67928fcee17SJerome Forissier
68028fcee17SJerome Forissier* plat-ti: fix issues with MMU mapping
68128fcee17SJerome Forissier
68228fcee17SJerome Forissier* crypto: fix clearing of big numbers
68328fcee17SJerome Forissier
68428fcee17SJerome Forissier* build: allow spaces and double quotes in CFG_ variables
68528fcee17SJerome Forissier
68628fcee17SJerome Forissier* mm: use paddr_t to support both 32- and 64-bit architectures properly.
68728fcee17SJerome Forissier  Resolves 32-bit truncation error when pool is at top of 32 bit address
68828fcee17SJerome Forissier  space on 64-bit architecture.
68928fcee17SJerome Forissier
69028fcee17SJerome Forissier* plat-stm: support pager. Fix pager on ARMv7-A SMP boards.
69128fcee17SJerome Forissier
69228fcee17SJerome Forissier* Fix debug output of Trusted Applications (remove "ERROR: TEE-CORE:" prefix)
69328fcee17SJerome Forissier
69428fcee17SJerome Forissier* Do not consider TA memref parameters as TA private memory
69528fcee17SJerome Forissier
69628fcee17SJerome Forissier* crypto: fix `cipher_final()` which would not call `cbc_done()` for CBC_MAC
69728fcee17SJerome Forissier  algorithms
69828fcee17SJerome Forissier
69928fcee17SJerome Forissier* fix for 16-way PL310
70028fcee17SJerome Forissier
70128fcee17SJerome Forissier* arm32: fix call stack unwinding (`print_stack()`)
70228fcee17SJerome Forissier
70328fcee17SJerome Forissier* arm32: fix spinlock assembly code
70428fcee17SJerome Forissier
70528fcee17SJerome Forissier* plat-stm, plat-imx: fix SCR initalization
70628fcee17SJerome Forissier
70728fcee17SJerome Forissier* Fix user L1 MMU entries calculation (non-LPAE), allowing TTBCR.N values
70828fcee17SJerome Forissier  other than 7.
70928fcee17SJerome Forissier
71028fcee17SJerome Forissier* mtk-mt8173: fix panic caused by incorrect size of SHMEM
71128fcee17SJerome Forissier
71228fcee17SJerome Forissier* plat-stm: fix RNG driver (non-flat mapping)
71328fcee17SJerome Forissier
71428fcee17SJerome Forissier## Known issues
71528fcee17SJerome Forissier
71628fcee17SJerome Forissier* New issues open on GitHub
71728fcee17SJerome Forissier  * [#1203][issue1203] AES-CTS mode will fail when inlen=0x100, in_incr=0x80
71828fcee17SJerome Forissier  * [#1199][issue1199] Both tee and teepriv reported GlobalPlatform compliant
71928fcee17SJerome Forissier  * [#1188][issue1188] Secure storage (SQL FS and REE FS): blocks not tied to
72028fcee17SJerome Forissier    current meta header
72128fcee17SJerome Forissier  * [#1172][issue1172] paddr_t should be larger than 32 bits when
72228fcee17SJerome Forissier    CFG_WITH_LPAE is enabled
72328fcee17SJerome Forissier
72428fcee17SJerome Forissier## Tested on
72528fcee17SJerome Forissier
72628fcee17SJerome ForissierIn the list below, _standard_ means that the `xtest` program passed with
72728fcee17SJerome Forissierits default configuration, while _extended_ means it was run successfully
72828fcee17SJerome Forissierwith the additional GlobalPlatform™ TEE Initial Configuration Test Suite
72928fcee17SJerome Forissierv1.1.0.4.
73028fcee17SJerome Forissier
73128fcee17SJerome ForissierIf a platform is not listed, it means the release was not tested on this
73228fcee17SJerome Forissierplatform.
73328fcee17SJerome Forissier
73428fcee17SJerome Forissier<!-- ${PLATFORM}-${PLATFORM_FLAVOR}, ordered alphabetically -->
73528fcee17SJerome Forissier* d02: extended
73628fcee17SJerome Forissier* hikey: extended
73728fcee17SJerome Forissier* imx-mx6ulevk: standard
73828fcee17SJerome Forissier* ls-ls1021atwr: standard
73928fcee17SJerome Forissier* mediatek-mt8173: standard
74028fcee17SJerome Forissier* rcar-h3: standard
74128fcee17SJerome Forissier* rpi3: standard
74228fcee17SJerome Forissier* stm-b2260: extended
74328fcee17SJerome Forissier* stm-cannes: extended
74428fcee17SJerome Forissier* ti-dra7xx: standard
74528fcee17SJerome Forissier* vexpress-fvp: standard
74628fcee17SJerome Forissier* vexpress-juno: standard
74728fcee17SJerome Forissier* vexpress-qemu_armv8a: standard
74828fcee17SJerome Forissier* vexpress-qemu_virt: extended
74928fcee17SJerome Forissier* zynqmp-zcu102: standard
75028fcee17SJerome Forissier
75128fcee17SJerome Forissier[github_commits_2_3_0]: https://github.com/OP-TEE/optee_os/compare/2.2.0...2.3.0
75228fcee17SJerome Forissier[issue1172]: https://github.com/OP-TEE/optee_os/issues/1172
75328fcee17SJerome Forissier[issue1188]: https://github.com/OP-TEE/optee_os/issues/1188
75428fcee17SJerome Forissier[issue1199]: https://github.com/OP-TEE/optee_os/issues/1199
75528fcee17SJerome Forissier[issue1203]: https://github.com/OP-TEE/optee_os/issues/1203
75628fcee17SJerome Forissier
757c0c5d399SJerome Forissier# OP-TEE - version 2.2.0
758c0c5d399SJerome Forissier
759c0c5d399SJerome Forissier[Link][github_commits_2_2_0] to a list of all commits between this release and
760c0c5d399SJerome Forissierthe previous one (2.1.0).
761c0c5d399SJerome Forissier
762c0c5d399SJerome ForissierPlease note: this release is API-compatible with the previous one, but the
763c0c5d399SJerome ForissierSecure Storage internal format is not compatible due to commit
764c0c5d399SJerome Forissier[fde4a75][commit_fde4a75] ("storage: encrypt the FEK with a TA-specific key").
765c0c5d399SJerome Forissier
766c0c5d399SJerome Forissier[commit_fde4a75]: https://github.com/OP-TEE/optee_os/commit/fde4a75
767c0c5d399SJerome Forissier
768c0c5d399SJerome Forissier## New features
769c0c5d399SJerome Forissier
770c0c5d399SJerome Forissier* New supported platforms:
771c0c5d399SJerome Forissier	* Freescale i.MX6 Quad SABRE Lite & SD
772c0c5d399SJerome Forissier	* HiSilicon D02
773c0c5d399SJerome Forissier	* Raspberry Pi3
774c0c5d399SJerome Forissier	* Renesas RCAR H3
775c0c5d399SJerome Forissier	* STMicroelectronics b2260 - h410
776c0c5d399SJerome Forissier
777c0c5d399SJerome Forissier* Pager: Support paging of read/write pages by encrypting them with AES-GCM.
778c0c5d399SJerome Forissier  Support paging of user TAs. Add global setting for TZSRAM size
779c0c5d399SJerome Forissier  (CFG_CORE_TZSRAM_EMUL_SIZE), defaults to 300K.
780c0c5d399SJerome Forissier
781c0c5d399SJerome Forissier* Support for more than 8 CPU cores
782c0c5d399SJerome Forissier
783c0c5d399SJerome Forissier* Added SPI framework and PL022 driver
784c0c5d399SJerome Forissier
785c0c5d399SJerome Forissier* GPIO: framework supports multiple instances, PL061 driver now has get/set
786c0c5d399SJerome Forissier  interrupt and mode control functions
787c0c5d399SJerome Forissier
788c0c5d399SJerome Forissier* Secure storage: Encrypt the File Encryption Key with a TA-specific key for
789c0c5d399SJerome Forissier  better TA isolation. Add build-time and run-time support for multiple storage
790c0c5d399SJerome Forissier  backends. Add SQLite backend.
791c0c5d399SJerome Forissier
792c0c5d399SJerome Forissier* Trusted User Interface: some code is introduced to support the implementation
793c0c5d399SJerome Forissier  of TUI. This includes: a generic framebuffer driver, display and serial
794c0c5d399SJerome Forissier  abstractions, and drivers for PL111 (LCD) / PL050 (KMI) / TZC400 and PS2
795c0c5d399SJerome Forissier  mouse.
796c0c5d399SJerome Forissier
797c0c5d399SJerome Forissier* AES acceleration using ARMv8-A Cryptographic Extensions instructions is
798c0c5d399SJerome Forissier  now supported in AArch32 mode
799c0c5d399SJerome Forissier
800c0c5d399SJerome Forissier* Add support for GCC flags: -fsanitize=undefined and -fsanitize=kernel-address
801c0c5d399SJerome Forissier
802c0c5d399SJerome Forissier* Use a global setting for core heap size (CFG_CORE_HEAP_SIZE), 64K by default.
803c0c5d399SJerome Forissier
804c0c5d399SJerome Forissier* Add macros to unwind and print the call stack of TEE core
805c0c5d399SJerome Forissier
806c0c5d399SJerome Forissier* Libtomcrypt: sync with the latest `develop` branch.
807c0c5d399SJerome Forissier
808c0c5d399SJerome Forissier* The Trusted Application SDK (ta_dev_kit.mk) can produce libraries (.a)
809c0c5d399SJerome Forissier
810c0c5d399SJerome Forissier* Rework assertions and TEE core panics and properly honor NDEBUG
811c0c5d399SJerome Forissier
812c0c5d399SJerome Forissier## Bug fixes
813c0c5d399SJerome Forissier
814c0c5d399SJerome Forissier* Fix incorrect algorithm passed to cipher.final()
815c0c5d399SJerome Forissier
816c0c5d399SJerome Forissier* scripts: support Python 2.x and 3.x
817c0c5d399SJerome Forissier
818c0c5d399SJerome Forissier* Secure storage: Add proper locking to support concurrent access. Fix sign
819c0c5d399SJerome Forissier  extension bug with offset parameter of syscall storage_obj_seek which could
820c0c5d399SJerome Forissier  cause errors in Aarch32 mode. Fix reading beyond end of file.
821c0c5d399SJerome Forissier
822c0c5d399SJerome Forissier* Aarch64: mask all maskable exceptions before doing a normal return from call.
823c0c5d399SJerome Forissier
824c0c5d399SJerome Forissier* Device Tree: add no-map property to OP-TEE node in reserved-memory.
825c0c5d399SJerome Forissier
826c0c5d399SJerome Forissier* LibTomcrypt: fix CVE-2016-6129
827c0c5d399SJerome Forissier
828c0c5d399SJerome Forissier## Known issues
829c0c5d399SJerome Forissier
830c0c5d399SJerome Forissier* New issues open on GitHub
831c0c5d399SJerome Forissier  * [#1093][issue1093] rcar-h3: xtest 6010 hangs
832c0c5d399SJerome Forissier  * [#1092][issue1092] rcar-h3: xtest 4010 fails
833c0c5d399SJerome Forissier  * [#1081][issue1081] Bad mapping of TA secure memref parameters
834c0c5d399SJerome Forissier  * [#1071][issue1071] __data_end may not correctly represent text start position when using CFG_WITH_PAGER
835c0c5d399SJerome Forissier  * [#1069][issue1069] armv7/Aarch32: crash in stack unwind (DPRINT_STACK())
836c0c5d399SJerome Forissier
837c0c5d399SJerome Forissier## Tested on
838c0c5d399SJerome Forissier
839c0c5d399SJerome ForissierIn the list below, _standard_ means that the `xtest` program passed with
840c0c5d399SJerome Forissierits default configuration, while _extended_ means it was run successfully
841c0c5d399SJerome Forissierwith the additional GlobalPlatform™ TEE Initial Configuration Test Suite
842c0c5d399SJerome Forissierv1.1.0.4.
843c0c5d399SJerome Forissier
844c0c5d399SJerome ForissierIf a platform is not listed, it means the release was not tested on this
845c0c5d399SJerome Forissierplatform.
846c0c5d399SJerome Forissier
847c0c5d399SJerome Forissier<!-- ${PLATFORM}-${PLATFORM_FLAVOR}, ordered alphabetically -->
848c0c5d399SJerome Forissier* d02: extended
849c0c5d399SJerome Forissier* hikey: extended
850c0c5d399SJerome Forissier* imx-mx6qsabrelite: standard
851c0c5d399SJerome Forissier* imx-mx6qsabresd: standard
852c0c5d399SJerome Forissier* rcar-h3: standard, pass except issues [#1092][issue1092] and [#1093][issue1093]
853c0c5d399SJerome Forissier* rpi3: standard
854c0c5d399SJerome Forissier* stm-b2260: standard
855c0c5d399SJerome Forissier* stm-cannes: standard
856c0c5d399SJerome Forissier* ti-dra7xx: standard
857c0c5d399SJerome Forissier* vexpress-fvp: standard
858c0c5d399SJerome Forissier* vexpress-juno: standard
859c0c5d399SJerome Forissier* vexpress-qemu_armv8a: standard
860c0c5d399SJerome Forissier* vexpress-qemu_virt: extended
861c0c5d399SJerome Forissier* zynqmp-zcu102: standard
862c0c5d399SJerome Forissier
863c0c5d399SJerome Forissier[github_commits_2_2_0]: https://github.com/OP-TEE/optee_os/compare/2.1.0...2.2.0
864c0c5d399SJerome Forissier[issue1081]: https://github.com/OP-TEE/optee_os/issues/1081
865c0c5d399SJerome Forissier[issue1071]: https://github.com/OP-TEE/optee_os/issues/1071
866c0c5d399SJerome Forissier[issue1069]: https://github.com/OP-TEE/optee_os/issues/1069
867c0c5d399SJerome Forissier[issue1092]: https://github.com/OP-TEE/optee_os/issues/1092
868c0c5d399SJerome Forissier[issue1093]: https://github.com/OP-TEE/optee_os/issues/1093
869c0c5d399SJerome Forissier
870ac3cc110SPascal Brand# OP-TEE - version 2.1.0
871a0cd5d60SPascal Brand
872ac3cc110SPascal Brand## New features
873ac3cc110SPascal Brand
874ac3cc110SPascal Brand* New supported platforms:
875ac3cc110SPascal Brand	* Xilinx Zynq UltraScale+ MPSOC
876ac3cc110SPascal Brand	* Spreadtrum SC9860
877ac3cc110SPascal Brand
878ac3cc110SPascal Brand* GCC5 support
879ac3cc110SPascal Brand
880ac3cc110SPascal Brand* Non Linear Mapping support: In OP-TEE kernel mode, the physical to virtual
881ac3cc110SPascal Brand  addresses was linear until this release, meaning the virtual addresses
882ac3cc110SPascal Brand  were equal to the physical addresses. This is no more the case in this
883ac3cc110SPascal Brand  release.
884ac3cc110SPascal Brand
885ac3cc110SPascal Brand* Font rendering routines have been introduced in order to ease an
886ac3cc110SPascal Brand  implementation of Trusted UI.
887ac3cc110SPascal Brand
888ac3cc110SPascal Brand* File Storage: Possibility to use the normal world filesystem and the RPMB
889ac3cc110SPascal Brand  implementations simultaneously.
890ac3cc110SPascal Brand
891ac3cc110SPascal Brand* AOSP: There is a [local manifest][aosp_local_manifest] to build OP-TEE into an AOSP build, running on HiKey.
892ac3cc110SPascal Brand  Please refer to the README in that repo for instructions.
893ac3cc110SPascal Brand
894ac3cc110SPascal Brand* OpenEmbedded: In addition to the makefile-based build described in the optee_os README, there is an
895ac3cc110SPascal Brand  [OpenEmbedded-based build][oe_build] that supports Qemu (32-bit), FVP (64-bit), and HiKey (64-bit).
896ac3cc110SPascal Brand  Please refer to the README in that repo for instructions.
897ac3cc110SPascal Brand
898ac3cc110SPascal Brand* [Link][github_commits_2_1_0] to a list of all commits between this and
899ac3cc110SPascal Brand  previous release.
900ac3cc110SPascal Brand
901ac3cc110SPascal Brand
902ac3cc110SPascal Brand## Tested on
903ac3cc110SPascal BrandDefinitions:
904ac3cc110SPascal Brand
905ac3cc110SPascal Brand| Type | Meaning |
906ac3cc110SPascal Brand| ---- | ------- |
907ac3cc110SPascal Brand| Standard tests | The [optee_test][optee_test] project. |
908ac3cc110SPascal Brand| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.1.0.4. |
909ac3cc110SPascal Brand
910ac3cc110SPascal Brand*	ARM Juno Board (vexpress-juno), standard.
911ac3cc110SPascal Brand*	Foundation Models (vexpress-fvp), standard tests + extended tests,
912ac3cc110SPascal Brand	using FVP ARM V8 Foundation Platformr0p0 (platform build 10.0.37)
913ac3cc110SPascal Brand*	FSL i.MX6 UltraLite EVK (imx), standard.
914ac3cc110SPascal Brand*	FSL ls1021a (ls-ls1021atwr), standard tests.
915ac3cc110SPascal Brand*	HiKey (hikey), standard + extended tests.
916ac3cc110SPascal Brand*	QEMU (vexpress-qemu), standard + extended tests.
917ac3cc110SPascal Brand*	Xilinx Zynq UltraScale+ MPSOC, standard tests
918ac3cc110SPascal Brand
919ac3cc110SPascal BrandNote that the following platform has not been tested:
920ac3cc110SPascal Brand*	MTK8173-EVB (mediatek-mt8173)
921ac3cc110SPascal Brand
922ac3cc110SPascal Brand
923ac3cc110SPascal Brand## Known issues
924ac3cc110SPascal Brand* Issue(s) open on GitHub
925ac3cc110SPascal Brand  * [#868][pr868]: python-wand font generation sometimes times out
926ac3cc110SPascal Brand  * [#863][pr863]: "double free or corruption" error when building optee_os
927ac3cc110SPascal Brand  * [#858][pr858]: UUIDs in binary format have wrong endinanness
928ac3cc110SPascal Brand  * [#857][pr857]: Formatting of UUIDs is incorrect
929ac3cc110SPascal Brand  * [#847][pr847]: optee_os panic(TEE-CORE: Assertion)
930ac3cc110SPascal Brand  * [#838][pr838]: TUI font rendering is _very_ slow
931ac3cc110SPascal Brand  * [#814][pr814]: Persistent objects : save informations after close
932ac3cc110SPascal Brand  * [#665][pr665]: xtest 1013 stalled on HiKey when log levels are 4 and optee_os is on its own UART
933ac3cc110SPascal Brand  * [#506][pr506]: tee-supplicant panic & ta panic
934ac3cc110SPascal Brand
935ac3cc110SPascal Brand[github_commits_2_1_0]: https://github.com/OP-TEE/optee_os/compare/2.0.0...2.1.0
936ac3cc110SPascal Brand[pr868]: https://github.com/OP-TEE/optee_os/issues/868
937ac3cc110SPascal Brand[pr863]: https://github.com/OP-TEE/optee_os/issues/863
938ac3cc110SPascal Brand[pr858]: https://github.com/OP-TEE/optee_os/issues/858
939ac3cc110SPascal Brand[pr857]: https://github.com/OP-TEE/optee_os/issues/857
940ac3cc110SPascal Brand[pr847]: https://github.com/OP-TEE/optee_os/issues/847
941ac3cc110SPascal Brand[pr838]: https://github.com/OP-TEE/optee_os/issues/838
942ac3cc110SPascal Brand[pr814]: https://github.com/OP-TEE/optee_os/issues/814
943ac3cc110SPascal Brand[pr665]: https://github.com/OP-TEE/optee_os/issues/665
944ac3cc110SPascal Brand[aosp_local_manifest]: https://github.com/linaro-swg/optee_android_manifest
945ac3cc110SPascal Brand[oe_build]: https://github.com/linaro-swg/oe-optee
946ac3cc110SPascal Brand
947ac3cc110SPascal Brand# OP-TEE - version 2.0.0
948a0cd5d60SPascal Brand
949a0cd5d60SPascal Brand## New features
950a0cd5d60SPascal Brand
951a0cd5d60SPascal Brand* Generic driver: A new generic TEE driver is in the process of being
952a0cd5d60SPascal Brand  [upstreamed][gendrv_v9].
953a0cd5d60SPascal Brand  In this release, [OP-TEE/optee_linuxdriver][optee_linuxdriver] is no more used.
954a0cd5d60SPascal Brand  Instead, linux v4.5 is being patched using the proposed Generic TEE Driver,
955a0cd5d60SPascal Brand  as it can be found in [https://github.com/linaro-swg/linux/tree/optee][linux_optee]
956a0cd5d60SPascal Brand
957a0cd5d60SPascal Brand* RPMB support: Secure Storage can now use Replay Protected Memory Block (RPMB) partition
958a0cd5d60SPascal Brand  of an eMMC device. Check the [full documentation][rpmb_doc]
959a0cd5d60SPascal Brand
960a0cd5d60SPascal Brand* Hard-float ABI is now available.
961a0cd5d60SPascal Brand
962a0cd5d60SPascal Brand* [Link][github_commits_2_0_0] to a list of all commits between this and
963a0cd5d60SPascal Brand  previous release.
964a0cd5d60SPascal Brand
965a0cd5d60SPascal Brand
966a0cd5d60SPascal Brand## Tested on
967a0cd5d60SPascal BrandDefinitions:
968a0cd5d60SPascal Brand
969a0cd5d60SPascal Brand| Type | Meaning |
970a0cd5d60SPascal Brand| ---- | ------- |
971a0cd5d60SPascal Brand| Standard tests | The [optee_test][optee_test] project. |
972a0cd5d60SPascal Brand| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.1.0.4. |
973a0cd5d60SPascal Brand
974a0cd5d60SPascal Brand*	ARM Juno Board (vexpress-juno), standard.
975a0cd5d60SPascal Brand*	Foundation Models (vexpress-fvp), standard tests + extended tests,
976a0cd5d60SPascal Brand	using FVP ARM V8 Foundation Platformr0p0 (platform build 9.5.40)
977eb00c7b9SPascal Brand*	FSL ls1021a (ls-ls1021atwr), standard.
978a0cd5d60SPascal Brand*	HiKey (hikey), standard.
979a0cd5d60SPascal Brand*	MTK8173-EVB (mediatek-mt8173), standard.
980a0cd5d60SPascal Brand*	QEMU (vexpress-qemu), standard + extended tests.
981a0cd5d60SPascal Brand*	STM Cannes (stm-cannes), standard + extended tests.
982a0cd5d60SPascal Brand
983a0cd5d60SPascal Brand## Known issues
984a0cd5d60SPascal Brand* Issue(s) open on GitHub
985a0cd5d60SPascal Brand  * [#40][prld40] BUG_ON() when re-using RPC buffer to tee-supplicant
986a0cd5d60SPascal Brand  * [#506][pr506]: tee-supplicant panic & ta panic
987a0cd5d60SPascal Brand
988a0cd5d60SPascal Brand[github_commits_2_0_0]: https://github.com/OP-TEE/optee_os/compare/1.1.0...2.0.0
989a0cd5d60SPascal Brand[rpmb_doc]: https://github.com/OP-TEE/optee_os/blob/master/documentation/secure_storage_rpmb.md
990a0cd5d60SPascal Brand[optee_linuxdriver]: https://github.com/OP-TEE/optee_linuxdriver
991a0cd5d60SPascal Brand[gendrv_v9]: https://lkml.org/lkml/2016/4/1/205
992a0cd5d60SPascal Brand[linux_optee]: https://github.com/linaro-swg/linux/tree/optee
993a0cd5d60SPascal Brand
994a0cd5d60SPascal Brand
995c5bbfb4dSPascal Brand# OP-TEE - version 1.1.0
996c5bbfb4dSPascal Brand
997c5bbfb4dSPascal Brand
998c5bbfb4dSPascal Brand## New features
999c5bbfb4dSPascal Brand
1000c5bbfb4dSPascal Brand* Softfloat library: floating point support is now available in 32bits TA.
1001c5bbfb4dSPascal Brand
1002c5bbfb4dSPascal Brand* Support running 64-bits TA: on ARMv8-A platform, TA can be compiled in
1003c5bbfb4dSPascal Brand  AArch32 and/or in AArch64 in case the core is compiled in AArch64.
1004c5bbfb4dSPascal Brand  An example can be found in HiKey configuration file. Using the following
1005c5bbfb4dSPascal Brand  excerpt code, the user TA libraries are compiled in both AArch32 and
1006c5bbfb4dSPascal Brand  AArch64, and can be found in `out/arm-plat-hikey/export-ta_arm32` and
1007c5bbfb4dSPascal Brand  `out/arm-plat-hikey/export-ta_arm64`
1008c5bbfb4dSPascal Brand
1009c5bbfb4dSPascal Brand```
1010c5bbfb4dSPascal Brand    ta-targets = ta_arm32
1011c5bbfb4dSPascal Brand    ta-targets += ta_arm64
1012c5bbfb4dSPascal Brand```
1013c5bbfb4dSPascal Brand
1014c5bbfb4dSPascal Brand* Concurrent TA support: multiple TA can run in parallel on
1015c5bbfb4dSPascal Brand  several cores.
1016c5bbfb4dSPascal Brand
1017c5bbfb4dSPascal Brand* New tests added in xtest test suite: concurrent TA (xtest 1013),
1018c5bbfb4dSPascal Brand  floating point tests (xtest 1006 and os_test TA) and corruption
1019c5bbfb4dSPascal Brand  file storage (xtest 20000)
1020c5bbfb4dSPascal Brand
1021c5bbfb4dSPascal Brand* [Link][github_commits_1_1_0] to a list of all commits between this and
1022c5bbfb4dSPascal Brand  previous release.
1023c5bbfb4dSPascal Brand
1024c5bbfb4dSPascal Brand
1025c5bbfb4dSPascal Brand## Tested on
1026c5bbfb4dSPascal BrandDefinitions:
1027c5bbfb4dSPascal Brand
1028c5bbfb4dSPascal Brand| Type | Meaning |
1029c5bbfb4dSPascal Brand| ---- | ------- |
1030c5bbfb4dSPascal Brand| Standard tests | The [optee_test][optee_test] project. |
1031c5bbfb4dSPascal Brand| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.1.0.4. |
1032c5bbfb4dSPascal Brand| Hello world test | Plain hello world Trusted Application such as [this][hello_world]. |
1033c5bbfb4dSPascal Brand
1034c5bbfb4dSPascal Brand*	Foundation Models (vexpress-fvp), standard tests + extended tests,
1035c5bbfb4dSPascal Brand	using FVP ARM V8 Foundation Platformr0p0 (platform build 9.5.40)
1036c5bbfb4dSPascal Brand*	HiKey (hikey), standard + extended tests.
1037c5bbfb4dSPascal Brand*	MT8173 (mediatek), standard tests.
1038c5bbfb4dSPascal Brand*	QEMU (vexpress-qemu), standard + extended tests.
1039c5bbfb4dSPascal Brand*	STM Cannes (stm-cannes), standard + extended tests.
1040c5bbfb4dSPascal Brand
1041c5bbfb4dSPascal Brand## Known issues
1042c5bbfb4dSPascal Brand* Secure Storage is implemented, but note that anti-rollback protection
1043c5bbfb4dSPascal Brand  is not implemented yet.
1044c5bbfb4dSPascal Brand
1045c5bbfb4dSPascal Brand* Issue(s) open on GitHub
1046c5bbfb4dSPascal Brand  * [#40][prld40] BUG_ON() when re-using RPC buffer to tee-supplicant
1047c5bbfb4dSPascal Brand  * [#296][pr296]: Connecting RPMB to the storage APIs.
1048c5bbfb4dSPascal Brand  * [#493][pr493]: setup_juno_optee: unable to find pre-built binaries
1049c5bbfb4dSPascal Brand  * [#506][pr506]: tee-supplicant panic & ta panic
1050c5bbfb4dSPascal Brand
1051c5bbfb4dSPascal Brand[prld40]: https://github.com/OP-TEE/optee_linuxdriver/issues/40
1052c5bbfb4dSPascal Brand[pr506]: https://github.com/OP-TEE/optee_os/issues/506
1053c5bbfb4dSPascal Brand[github_commits_1_1_0]: https://github.com/OP-TEE/optee_os/compare/1.0.1...1.1.0
1054c5bbfb4dSPascal Brand
1055c5bbfb4dSPascal Brand
1056c5bbfb4dSPascal Brand
10578a7ee79dSPascal Brand# OP-TEE - version 1.0.0
10588a7ee79dSPascal Brand
10598a7ee79dSPascal BrandOP-TEE is now maintained by Linaro. Contributors do not need to
10608a7ee79dSPascal Brandsign a CLA anymore, but must follow the rules of the [DCO][DCO]
10618a7ee79dSPascal Brand(Developer Certificate of Origin) instead.
10628a7ee79dSPascal Brand
10638a7ee79dSPascal Brand
10648a7ee79dSPascal Brand## New features
10658a7ee79dSPascal Brand
10668a7ee79dSPascal Brand* Add hardware support for Texas Instruments DRA7xx, ARMv7 (plat-ti)
10678a7ee79dSPascal Brand
10688a7ee79dSPascal Brand* GlobalPlatform™ TEE Internal Core API Specification v1.1,
10698a7ee79dSPascal Brand  including ECC algorithms.
10708a7ee79dSPascal Brand
10718a7ee79dSPascal Brand* Secure Storage: Files stored by the REE are now encrypted. Operations
10728a7ee79dSPascal Brand  are made atomic in order to prevent inconsistencies in case of errors
10738a7ee79dSPascal Brand  during the storage operations. [Slides][LCStorage] describing the
10748a7ee79dSPascal Brand  Secure Storage have been presented at the Linaro Connect SFO15.
10758a7ee79dSPascal Brand
10768a7ee79dSPascal Brand* Change of format of the Trusted Applications: they follow a
10778a7ee79dSPascal Brand  [signed ELF format][elf]
10788a7ee79dSPascal Brand
10798a7ee79dSPascal Brand* Rework thread [synchronization][synchro] in optee_os.
10808a7ee79dSPascal Brand
10818a7ee79dSPascal Brand* Use of ARMv8 native cryptographic support.
10828a7ee79dSPascal Brand
10838a7ee79dSPascal Brand* [OP-TEE/optee_test][optee_test] test suite is released.
10848a7ee79dSPascal Brand
10858a7ee79dSPascal Brand* Introduce [OP-TEE/manifest][manifest] and [OP-TEE/build][build]
10868a7ee79dSPascal Brand  to setup and build QEMU, FVP, HiKey and Mediatek platforms. Setup scripts
10878a7ee79dSPascal Brand  that used to be in optee_os have been removed, except for Juno board.
10888a7ee79dSPascal Brand
108995422146SPascal Brand* [Link][github_commits_1_0_0] to a list of all commits between this and
109095422146SPascal Brand  previous release.
109195422146SPascal Brand
10928a7ee79dSPascal Brand
10938a7ee79dSPascal Brand## Tested on
10948a7ee79dSPascal BrandDefinitions:
10958a7ee79dSPascal Brand
10968a7ee79dSPascal Brand| Type | Meaning |
10978a7ee79dSPascal Brand| ---- | ------- |
10988a7ee79dSPascal Brand| Standard tests | The [optee_test][optee_test] project. |
10998a7ee79dSPascal Brand| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.1.0.4. |
11008a7ee79dSPascal Brand| Hello world test | Plain hello world Trusted Application such as [this][hello_world]. |
11018a7ee79dSPascal Brand
11028a7ee79dSPascal Brand*	ARM Juno Board (vexpress-juno), standard + extended tests.
11038a7ee79dSPascal Brand*	Foundation Models (vexpress-fvp), standard tests.
11048a7ee79dSPascal Brand*	HiKey (hikey), standard + extended tests.
11058a7ee79dSPascal Brand*	MT8173 (mediatek), standard tests.
11068a7ee79dSPascal Brand*	QEMU (vexpress-qemu), standard + extended tests.
11078a7ee79dSPascal Brand*	STM Cannes (stm-cannes), standard + extended tests.
11088a7ee79dSPascal Brand
110995422146SPascal Brand## Known issues
111095422146SPascal Brand* Secure Storage is implemented, but note that anti-rollback protection
111195422146SPascal Brand  is not implemented yet.
111295422146SPascal Brand
111395422146SPascal Brand* Issue(s) open on GitHub
111495422146SPascal Brand  * [#210][pr210]: libteec.so 32-bit does not communicate well
111595422146SPascal Brand    with 64-bit kernel module
111695422146SPascal Brand  * [#296][pr296]: Connecting RPMB to the storage APIs.
111795422146SPascal Brand  * [#493][pr493]: setup_juno_optee: unable to find pre-built binaries
111895422146SPascal Brand  * [#494][pr494]: HiKey: xtest 7671 fails (1.0.0-rc2)
111995422146SPascal Brand
112095422146SPascal Brand[pr210]: https://github.com/OP-TEE/optee_os/issues/210
112195422146SPascal Brand[pr296]: https://github.com/OP-TEE/optee_os/issues/296
112295422146SPascal Brand[pr493]: https://github.com/OP-TEE/optee_os/issues/493
112395422146SPascal Brand[pr494]: https://github.com/OP-TEE/optee_os/issues/494
112495422146SPascal Brand[github_commits_1_0_0]: https://github.com/OP-TEE/optee_os/compare/0.3.0...1.0.0
11258a7ee79dSPascal Brand[DCO]: https://github.com/OP-TEE/optee_os/blob/master/Notice.md#contributions
11268a7ee79dSPascal Brand[LCStorage]: http://www.slideshare.net/linaroorg/sfo15503-secure-storage-in-optee
11278a7ee79dSPascal Brand[synchro]: https://github.com/OP-TEE/optee_os/blob/master/documentation/optee_design.md#4-thread-handling
11288a7ee79dSPascal Brand[elf]: https://github.com/OP-TEE/optee_os/blob/master/documentation/optee_design.md#format
11298a7ee79dSPascal Brand[optee_test]: https://github.com/OP-TEE/optee_test
11308a7ee79dSPascal Brand[manifest]: https://github.com/OP-TEE/manifest
11318a7ee79dSPascal Brand[build]: https://github.com/OP-TEE/build
11328a7ee79dSPascal Brand
113395422146SPascal Brand
113495422146SPascal Brand
113511d59085SPascal Brand# OP-TEE - version 0.3.0
113611d59085SPascal Brand
113711d59085SPascal Brand## New features
113811d59085SPascal Brand
113911d59085SPascal Brand*   Add hardware support for
114011d59085SPascal Brand	*   Mediatek MT8173 Board, ARMv8-A (plat-mediatek)
114111d59085SPascal Brand	*   Hisilicon HiKey Board, ARMv8-A (plat-hikey)
114211d59085SPascal Brand*   AArch64 build of optee_os is now possible through the configuration `CFG_ARM64_core=y`
114311d59085SPascal Brand*	Secure Storage: Data can be encrypted prior to their storage in the non-secure.
114411d59085SPascal Brand	Build is configured using `CFG_ENC_FS=y`
114511d59085SPascal Brand*	A generic boot scheme can be used. Boot configuration is commonalized. This helps
114611d59085SPascal Brand	new board support. It is applied on plat-hikey, plat-vexpress, plat-mediatek, plat-stm
114711d59085SPascal Brand    and plat-vexpress.
114811d59085SPascal Brand
114911d59085SPascal Brand## Tested on
115011d59085SPascal BrandDefinitions:
115111d59085SPascal Brand
115211d59085SPascal Brand| Type | Meaning |
115311d59085SPascal Brand| ---- | ------- |
115411d59085SPascal Brand| Standard tests | The optee_test project. |
115511d59085SPascal Brand| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.1.0.4. |
115611d59085SPascal Brand| Hello world test | Plain hello world Trusted Application such as [this][hello_world]. |
115711d59085SPascal Brand
115811d59085SPascal Brand*	ARM Juno Board (vexpress-juno), standard tests.
115911d59085SPascal Brand*	Foundation Models (vexpress-fvp), standard tests.
116011d59085SPascal Brand*	HiKey (hikey), standard tests.
116111d59085SPascal Brand*	MT8173 (mediatek), standard tests.
116211d59085SPascal Brand*	QEMU (vexpress-qemu), standard + extended tests.
116311d59085SPascal Brand*	STM Cannes (stm-cannes), standard + extended tests.
116411d59085SPascal Brand
116511d59085SPascal Brand-------------------------------------------
116611d59085SPascal Brand
1167f5117af2SPascal Brand# OP-TEE - version 0.2.0
1168759cc499SJoakim Bech
1169f5117af2SPascal Brand## New features
1170f5117af2SPascal Brand
1171f5117af2SPascal Brand### Linux Driver Refactoring
1172f5117af2SPascal Brand
1173f5117af2SPascal BrandLinux Driver has been refactored. It is now split in two parts:
1174f5117af2SPascal Brand*	optee.ko, the generic Linux driver. It contains all functionality
1175f5117af2SPascal Brand	common to all backends.
1176f5117af2SPascal Brand*	optee_armtz.ko, a specific backend dedicated to the TrustZone optee.
1177f5117af2SPascal Brand	It depends on optee.ko.
1178f5117af2SPascal Brand
1179f5117af2SPascal BrandLoading the TrustZone optee linux driver module is now performed using
1180f5117af2SPascal Brand
1181f5117af2SPascal Brand    modprobe optee_armtz
1182f5117af2SPascal Brand
1183f5117af2SPascal BrandThanks to the dependency between the generic and the backend modules, optee.ko is then automatically loaded.
1184f5117af2SPascal Brand
1185f5117af2SPascal Brand### Misc new features
1186f5117af2SPascal Brand* support PL310 lock down at TEE boot
1187f5117af2SPascal Brand* add 64bits support (division / print)
1188f5117af2SPascal Brand
1189f5117af2SPascal Brand## Tested on
1190f5117af2SPascal BrandDefinitions:
1191f5117af2SPascal Brand
1192f5117af2SPascal Brand| Type | Meaning |
1193f5117af2SPascal Brand| ---- | ------- |
1194f5117af2SPascal Brand| Standard tests | The optee_test project. |
1195f5117af2SPascal Brand| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.1.0.4. |
1196f5117af2SPascal Brand| Hello world test | Plain hello world Trusted Application such as [this][hello_world]. |
1197f5117af2SPascal Brand
1198f5117af2SPascal Brand*   ARM Juno Board (vexpress-juno), standard tests + extended tests.
1199f5117af2SPascal Brand
1200f5117af2SPascal Brand*   Foundation Models (vexpress-fvp), standard + extended tests.
1201f5117af2SPascal Brand
1202f5117af2SPascal Brand*   QEMU (vexpress-qemu), standard + extended tests.
1203f5117af2SPascal Brand
1204f5117af2SPascal Brand*   STM Cannes (stm-cannes), standard + extended tests.
1205f5117af2SPascal Brand
1206f5117af2SPascal Brand
120728fcee17SJerome Forissier## Issues resolved since last release
1208f5117af2SPascal Brand*	Fix user TA trace issue, in order each TA is able to select its own trace level
1209f5117af2SPascal Brand
1210f5117af2SPascal Brand
1211f5117af2SPascal Brand-------------------------------------------
1212f5117af2SPascal Brand# OP-TEE - version 0.1.0
1213f5117af2SPascal Brand
1214f5117af2SPascal Brand## New features
1215759cc499SJoakim BechBelow is a summary of the most important features added, but at the end you will
1216759cc499SJoakim Bechfind a link that present you all commits between the current and previous
1217759cc499SJoakim Bechrelease tag.
1218759cc499SJoakim Bech
1219759cc499SJoakim Bech*   GlobalPlatform Client API v1.0 support.
1220759cc499SJoakim Bech
1221759cc499SJoakim Bech*   GlobalPlatform Internal API v1.0 support.
1222759cc499SJoakim Bech
1223759cc499SJoakim Bech*   GlobalPlatform Secure Elements v1.0 support.
1224759cc499SJoakim Bech
1225759cc499SJoakim Bech*   Add hardware support for
1226759cc499SJoakim Bech
1227759cc499SJoakim Bech    *   Allwinner A80, ARMv7-A.
1228759cc499SJoakim Bech
1229759cc499SJoakim Bech    *   ARM Juno Board, ARMv8-A.
1230759cc499SJoakim Bech
1231759cc499SJoakim Bech    *   Foundation Models, ARMv8-A.
1232759cc499SJoakim Bech
1233759cc499SJoakim Bech    *   Fast Models, ARMv8-A.
1234759cc499SJoakim Bech
1235759cc499SJoakim Bech    *   QEMU, ARMv7-A.
1236759cc499SJoakim Bech
1237759cc499SJoakim Bech    *   STM Cannes, ARMv7-A.
1238759cc499SJoakim Bech
1239759cc499SJoakim Bech    *   STM Orly2, ARMv7-A.
1240759cc499SJoakim Bech
1241759cc499SJoakim Bech*   Add LibTomCrypt as the default software cryptographic library.
1242759cc499SJoakim Bech
1243759cc499SJoakim Bech*   Add cryptographic abstraction layer in on secure side to ease the use of
1244759cc499SJoakim Bech    other cryptographic software libraries or adding support for hardware
1245759cc499SJoakim Bech    acceleration.
1246759cc499SJoakim Bech
1247759cc499SJoakim Bech*   Extended cryptographic API with support for HKDF, Concat KDF and PBKDF2.
1248759cc499SJoakim Bech
1249759cc499SJoakim Bech*   SHA-1 and SHA-256 ARMv8-A crypto extension implementation.
1250759cc499SJoakim Bech
1251759cc499SJoakim Bech*   Enabled paging support in OP-TEE OS.
1252759cc499SJoakim Bech
1253759cc499SJoakim Bech*   Add support for xtest (both standard and extended) in QEMU and FVP setup
1254759cc499SJoakim Bech    scripts.
1255759cc499SJoakim Bech
1256759cc499SJoakim Bech*   Add documentation for the OS design, cryptographic abstraction layer, secure
1257759cc499SJoakim Bech    elements design, the build system, GitHub usage, key derivation extensions,
1258759cc499SJoakim Bech    ARM-Trusted Firmware usage within OP-TEE and GlobalPlatform usage within
1259759cc499SJoakim Bech    OP-TEE.
1260759cc499SJoakim Bech
1261759cc499SJoakim Bech*   Integrate support for Travis CI.
1262759cc499SJoakim Bech
1263759cc499SJoakim Bech*   [Link][github_commits_0_1_0] to a list of all commits between this and
1264759cc499SJoakim Bech    previous release.
1265759cc499SJoakim Bech
1266759cc499SJoakim Bech
1267f5117af2SPascal Brand## Tested on
1268759cc499SJoakim BechDefinitions:
1269759cc499SJoakim Bech
1270759cc499SJoakim Bech| Type | Meaning |
1271759cc499SJoakim Bech| ---- | ------- |
1272759cc499SJoakim Bech| Standard tests | The optee_test project. |
1273759cc499SJoakim Bech| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.0.0. |
1274759cc499SJoakim Bech| Hello world test | Plain hello world Trusted Application such as [this][hello_world]. |
1275759cc499SJoakim Bech
1276759cc499SJoakim Bech*   Allwinner A80 (plat-sunxi), hello world test.
1277759cc499SJoakim Bech
1278759cc499SJoakim Bech*   ARM Juno Board (vexpress-juno), standard tests.
1279759cc499SJoakim Bech
1280759cc499SJoakim Bech*   Foundation Models (plat-vexpress-fvp), standard + extended tests
1281759cc499SJoakim Bech
1282759cc499SJoakim Bech*   QEMU (plat-vexpress-qemu), standard + extended tests (and Secure Elements
1283759cc499SJoakim Bech    tested separately).
1284759cc499SJoakim Bech
1285759cc499SJoakim Bech*   STM Cannes (plat-stm-cannes), standard + extended tests.
1286759cc499SJoakim Bech
1287759cc499SJoakim Bech
128828fcee17SJerome Forissier## Issues resolved since last release
1289759cc499SJoakim BechN/A since this is the first release tag on OP-TEE.
1290759cc499SJoakim Bech
1291759cc499SJoakim Bech
1292f5117af2SPascal Brand## Known issues
1293759cc499SJoakim Bech*   Storage is implemented, but not "Secure storage", meaning that a client
1294759cc499SJoakim Bech    needs to do encrypt files on their own before storing the files.
1295759cc499SJoakim Bech
1296759cc499SJoakim Bech*   Issue(s) open on GitHub
1297759cc499SJoakim Bech    *   [#95][pr95]: An error about building the test code of libtomcrypt.
1298759cc499SJoakim Bech
1299759cc499SJoakim Bech    *   [#149][pr149]: when testing optee os with arm trusted firmware (I
1300759cc499SJoakim Bech	utilized optee os tee.bin as bl32 image) on juno platform, I got an
1301759cc499SJoakim Bech        error.
1302759cc499SJoakim Bech
1303759cc499SJoakim Bech    *   [#161][pr161]: tee_svc_cryp.c lacks accessibility checks on
1304759cc499SJoakim Bech        user-supplied TEE_Attributes.
1305759cc499SJoakim Bech
1306759cc499SJoakim Bech[hello_world]: https://github.com/jenswi-linaro/lcu14_optee_hello_world
1307759cc499SJoakim Bech[github_commits_0_1_0]: https://github.com/OP-TEE/optee_os/compare/b01047730e77127c23a36591643eeb8bb0487d68...999e4a6c0f64d3177fd3d0db234107b6fb860884
1308759cc499SJoakim Bech[pr95]: https://github.com/OP-TEE/optee_os/issues/95
1309759cc499SJoakim Bech[pr149]: https://github.com/OP-TEE/optee_os/issues/149
1310759cc499SJoakim Bech[pr161]: https://github.com/OP-TEE/optee_os/issues/161
1311759cc499SJoakim Bech
13127583c59eSCedric Chaumont*   Global Platform Device Internal Core API v1.1
13137583c59eSCedric Chaumont    *   [#230][pr230]: Persistent object corruption support (TEE_ERROR_CORRUPT_OBJECT/_2)
13147583c59eSCedric Chaumont    *   [#230][pr230]: Persistent object access support (TEE_ERROR_STORAGE_NOT_AVAILABLE/_2)
1315