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