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