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