xref: /optee_os/CHANGELOG.md (revision 6d57389f9eec0c213da917e35861a8eca4b205b3)
1*6d57389fSJerome Forissier# OP-TEE - version 2.6.0
2*6d57389fSJerome Forissier
3*6d57389fSJerome Forissier[Link][github_commits_2_6_0] to a list of all commits between this release and
4*6d57389fSJerome Forissierthe previous one (2.5.0).
5*6d57389fSJerome Forissier
6*6d57389fSJerome Forissier## New features
7*6d57389fSJerome Forissier
8*6d57389fSJerome Forissier* New supported platforms: Atmel SAMA5 ([#1714]), HiSilicon HiKey960 ([#1684]),
9*6d57389fSJerome Forissier  Rockchip RK322X ([#1666]), NXP LS1043A-RDB/LS1046A-RDB ([#1787]), Marvell
10*6d57389fSJerome Forissier  Armada 70x0/80x0 ([#1807]).
11*6d57389fSJerome Forissier* Dynamic shared memory (non-contiguous, non-secure memory can be mapped into
12*6d57389fSJerome Forissier  Trusted Applications VA space) ([#1631])
13*6d57389fSJerome Forissier* Dump TA call stack on panic ([#1858])
14*6d57389fSJerome Forissier* i.MX: PSCI reset ([#1849])
15*6d57389fSJerome Forissier* plat-ti: AM43xx: suspend/resume support ([#1822])
16*6d57389fSJerome Forissier* QEMU SMP support ([#1820])
17*6d57389fSJerome Forissier* plat-ti: AM43xx: disable TRNG ([#1816])
18*6d57389fSJerome Forissier* plat-ti: enable Secure Data Path by default ([#1815])
19*6d57389fSJerome Forissier* Improve symbolize.py ([#1778], [#1767], [#1766])
20*6d57389fSJerome Forissier* Early TAs (TAs linked in tee.bin) ([#1733])
21*6d57389fSJerome Forissier* Suspend/resume framework for arm32 and imx7d support ([#1729])
22*6d57389fSJerome Forissier* RK322X PSCI version, features and suspend support ([#1720])
23*6d57389fSJerome Forissier* arm32: handle aborts in system mode ([#1703])
24*6d57389fSJerome Forissier* i.MX: add SNVS SRTC support ([#1700])
25*6d57389fSJerome Forissier* GCC7 support ([#1693])
26*6d57389fSJerome Forissier* Improve detection of programming errors in locking code ([#1671], [#1670])
27*6d57389fSJerome Forissier* Support TEE RAM size larger than page directory size ([#1669])
28*6d57389fSJerome Forissier
29*6d57389fSJerome Forissier## Removed features
30*6d57389fSJerome Forissier
31*6d57389fSJerome Forissier* Remove TUI code ([#1842])
32*6d57389fSJerome Forissier
33*6d57389fSJerome Forissier## Bug fixes
34*6d57389fSJerome Forissier
35*6d57389fSJerome Forissier* Add missing synchronization barrier in core_mmu_map_pages() ([#1827])
36*6d57389fSJerome Forissier* Secure storage: REE FS: fix bug in error path ([#1801])
37*6d57389fSJerome Forissier* ASAN bug fixes ([#1799])
38*6d57389fSJerome Forissier* Fix race in core_mmu_user_mapping_is_active() ([#1785])
39*6d57389fSJerome Forissier* libutee: printf() and puts() fixes, add putchar() ([#1759], [#1754])
40*6d57389fSJerome Forissier* arm32: GICv3: fix FIQ masking in IRQ/ABT/SVC/UND handlers ([#1748])
41*6d57389fSJerome Forissier* arm32: preserve r12 in native_intr_handler() ([#1682])
42*6d57389fSJerome Forissier* arm64: fix print_kernel_stack() ([#1664])
43*6d57389fSJerome Forissier* benchmark: fix core data-abort ([#1658])
44*6d57389fSJerome Forissier
45*6d57389fSJerome Forissier## Security fixes or enhancements
46*6d57389fSJerome Forissier
47*6d57389fSJerome Forissier* crypto: fix software PRNG weaknesses
48*6d57389fSJerome Forissier  ([OP-TEE-2017-0001][OP-TEE-2017-0001]) ([#1843])
49*6d57389fSJerome Forissier
50*6d57389fSJerome Forissier## Tested on
51*6d57389fSJerome Forissier
52*6d57389fSJerome ForissierThe release was tested successfuly on the platforms listed below.
53*6d57389fSJerome ForissierIf a platform is not listed, it means the release was not tested on this
54*6d57389fSJerome Forissierplatform.
55*6d57389fSJerome Forissier
56*6d57389fSJerome Forissier<!-- ${PLATFORM}-${PLATFORM_FLAVOR}, ordered alphabetically -->
57*6d57389fSJerome Forissier* d02
58*6d57389fSJerome Forissier* hikey
59*6d57389fSJerome Forissier* hikey-hikey960
60*6d57389fSJerome Forissier* imx-mx6ulevk
61*6d57389fSJerome Forissier* imx-mx7dsabresd
62*6d57389fSJerome Forissier* ls-ls1021a??? (single core)
63*6d57389fSJerome Forissier* ls-ls1043ardb
64*6d57389fSJerome Forissier* ls-ls1046ardb
65*6d57389fSJerome Forissier* mediatek-mt8173
66*6d57389fSJerome Forissier* rcar
67*6d57389fSJerome Forissier* rockchip-rk322x
68*6d57389fSJerome Forissier* rpi3
69*6d57389fSJerome Forissier* sam
70*6d57389fSJerome Forissier* stm-b2260
71*6d57389fSJerome Forissier* stm-cannes
72*6d57389fSJerome Forissier* ti-???
73*6d57389fSJerome Forissier* vexpress-fvp
74*6d57389fSJerome Forissier* vexpress-juno
75*6d57389fSJerome Forissier* vexpress-qemu_armv8a
76*6d57389fSJerome Forissier* vexpress-qemu_virt
77*6d57389fSJerome Forissier
78*6d57389fSJerome Forissier[github_commits_2_6_0]: https://github.com/OP-TEE/optee_os/compare/2.5.0...HEAD
79*6d57389fSJerome Forissier[#1858]: https://github.com/OP-TEE/optee_os/issues/1858
80*6d57389fSJerome Forissier[#1849]: https://github.com/OP-TEE/optee_os/issues/1849
81*6d57389fSJerome Forissier[#1843]: https://github.com/OP-TEE/optee_os/issues/1843
82*6d57389fSJerome Forissier[#1842]: https://github.com/OP-TEE/optee_os/issues/1842
83*6d57389fSJerome Forissier[#1827]: https://github.com/OP-TEE/optee_os/issues/1827
84*6d57389fSJerome Forissier[#1822]: https://github.com/OP-TEE/optee_os/issues/1822
85*6d57389fSJerome Forissier[#1820]: https://github.com/OP-TEE/optee_os/issues/1820
86*6d57389fSJerome Forissier[#1816]: https://github.com/OP-TEE/optee_os/issues/1816
87*6d57389fSJerome Forissier[#1815]: https://github.com/OP-TEE/optee_os/issues/1815
88*6d57389fSJerome Forissier[#1807]: https://github.com/OP-TEE/optee_os/issues/1807
89*6d57389fSJerome Forissier[#1801]: https://github.com/OP-TEE/optee_os/issues/1801
90*6d57389fSJerome Forissier[#1799]: https://github.com/OP-TEE/optee_os/issues/1799
91*6d57389fSJerome Forissier[#1787]: https://github.com/OP-TEE/optee_os/issues/1787
92*6d57389fSJerome Forissier[#1785]: https://github.com/OP-TEE/optee_os/issues/1785
93*6d57389fSJerome Forissier[#1778]: https://github.com/OP-TEE/optee_os/issues/1778
94*6d57389fSJerome Forissier[#1767]: https://github.com/OP-TEE/optee_os/issues/1767
95*6d57389fSJerome Forissier[#1766]: https://github.com/OP-TEE/optee_os/issues/1766
96*6d57389fSJerome Forissier[#1759]: https://github.com/OP-TEE/optee_os/issues/1759
97*6d57389fSJerome Forissier[#1754]: https://github.com/OP-TEE/optee_os/issues/1754
98*6d57389fSJerome Forissier[#1748]: https://github.com/OP-TEE/optee_os/issues/1748
99*6d57389fSJerome Forissier[#1733]: https://github.com/OP-TEE/optee_os/issues/1733
100*6d57389fSJerome Forissier[#1729]: https://github.com/OP-TEE/optee_os/issues/1729
101*6d57389fSJerome Forissier[#1720]: https://github.com/OP-TEE/optee_os/issues/1720
102*6d57389fSJerome Forissier[#1714]: https://github.com/OP-TEE/optee_os/issues/1714
103*6d57389fSJerome Forissier[#1703]: https://github.com/OP-TEE/optee_os/issues/1703
104*6d57389fSJerome Forissier[#1700]: https://github.com/OP-TEE/optee_os/issues/1700
105*6d57389fSJerome Forissier[#1693]: https://github.com/OP-TEE/optee_os/issues/1693
106*6d57389fSJerome Forissier[#1684]: https://github.com/OP-TEE/optee_os/issues/1684
107*6d57389fSJerome Forissier[#1682]: https://github.com/OP-TEE/optee_os/issues/1682
108*6d57389fSJerome Forissier[#1671]: https://github.com/OP-TEE/optee_os/issues/1671
109*6d57389fSJerome Forissier[#1670]: https://github.com/OP-TEE/optee_os/issues/1670
110*6d57389fSJerome Forissier[#1669]: https://github.com/OP-TEE/optee_os/issues/1669
111*6d57389fSJerome Forissier[#1666]: https://github.com/OP-TEE/optee_os/issues/1666
112*6d57389fSJerome Forissier[#1664]: https://github.com/OP-TEE/optee_os/issues/1664
113*6d57389fSJerome Forissier[#1658]: https://github.com/OP-TEE/optee_os/issues/1658
114*6d57389fSJerome Forissier[#1631]: https://github.com/OP-TEE/optee_os/issues/1631
115*6d57389fSJerome Forissier[OP-TEE-2017-0001]: https://www.op-tee.org/security-advisories/
116*6d57389fSJerome Forissier
1175d8aaa04SJerome Forissier# OP-TEE - version 2.5.0
1185d8aaa04SJerome Forissier
1195d8aaa04SJerome Forissier[Link][github_commits_2_5_0] to a list of all commits between this release and
1205d8aaa04SJerome Forissierthe previous one (2.4.0).
1215d8aaa04SJerome Forissier
1225d8aaa04SJerome Forissier## New features
1235d8aaa04SJerome Forissier
1245d8aaa04SJerome Forissier* New supported platform: i.MX7D ([#1639])
1255d8aaa04SJerome Forissier* Secure storage: anti-rollback protection for REE FS using RPMB FS ([#1630])
1265d8aaa04SJerome Forissier* Assign non-secure DDR configuration from DT if CFG_DT=y ([#1623])
1275d8aaa04SJerome Forissier* Add new image format: split image into three separate binaries suitable for
1285d8aaa04SJerome Forissier  upcoming ARM Trusted Firmware ([#1589]).
1295d8aaa04SJerome Forissier* Make alignment check configurable ([#1586])
1305d8aaa04SJerome Forissier* drivers: add TZC380 driver ([#1578])
1315d8aaa04SJerome Forissier* plat-imx: PSCI CPU off ([#1577])
1325d8aaa04SJerome Forissier* 64-bit paging on QEMU v8 and HiKey ([#1575], [#1592])
1335d8aaa04SJerome Forissier* Benchmark framework ([#1365])
1345d8aaa04SJerome Forissier* Dump call stack of user TAs on abort ([#1552])
1355d8aaa04SJerome Forissier* plat-hikey: enable Secure Data Path ([#1440])
1365d8aaa04SJerome Forissier* Add interface to load and decrypt/authenticate user TAs ([#1513])
1375d8aaa04SJerome Forissier* plat-ti: add secure paging support ([#1493])
1385d8aaa04SJerome Forissier* plat-ti: add OTP hardware key support ([#1492])
1395d8aaa04SJerome Forissier* Support ARM GICv3 ([#1465])
1405d8aaa04SJerome Forissier
1415d8aaa04SJerome Forissier## Removed features
1425d8aaa04SJerome Forissier
1435d8aaa04SJerome Forissier* stm-orly2 is not supported anymore ([#1650])
1445d8aaa04SJerome Forissier* Remove secure storage based on SQL FS (`CFG_SQL_FS=y`) ([#1490])
1455d8aaa04SJerome Forissier* Remove support for mapping user TAs with 1 MiB or 2 MiB granularity
1465d8aaa04SJerome Forissier  (`CFG_SMALL_PAGE_USER_TA=n`) ([#1559]). TAs are always mapped using small
1475d8aaa04SJerome Forissier  pages.
1485d8aaa04SJerome Forissier
1495d8aaa04SJerome Forissier## Bug fixes
1505d8aaa04SJerome Forissier
1515d8aaa04SJerome Forissier* Reduce size of non-pageable code ([#1621])
1525d8aaa04SJerome Forissier* Ignore `TA_FLAG_MULTI_SESSION` and `TA_FLAG_INSTANCE_KEEP_ALIVE` when
1535d8aaa04SJerome Forissier  `TA_FLAG_SINGLE_INSTANCE` is not set ([#1574])
1545d8aaa04SJerome Forissier* libutee: remove buffering for AES GCM (PR#1573) and AES CTR ([#1580])
1555d8aaa04SJerome Forissier* Fix ROUNDUP()/ROUNDDOWN() macros ([#1519])
1565d8aaa04SJerome Forissier* Do not touch other bits in GICD_CTLR ([#1508])
1575d8aaa04SJerome Forissier* Fix build issue with `DEBUG=y` and `CFG_TEE_CORE_LOG_LEVEL=0` ([#1502])
1585d8aaa04SJerome Forissier* crypto: do not restrict hash size when algorithm is ECDSA ([#1497])
1595d8aaa04SJerome Forissier
1605d8aaa04SJerome Forissier## Security fixes or enhancements
1615d8aaa04SJerome Forissier
1625d8aaa04SJerome Forissier- crypto: fix RSA key leakage after fault injection attack
1635d8aaa04SJerome Forissier  ([OP-TEE-2016-0003][OP-TEE-2016-0003])  ([#1610])
1645d8aaa04SJerome Forissier* crypto: fix RSA key leakage after side channel attack
1655d8aaa04SJerome Forissier  ([OP-TEE-2016-0002][OP-TEE-2016-0002]) ([#1610])
1665d8aaa04SJerome Forissier* Make pager aliased pages not always writable ([#1551])
1675d8aaa04SJerome Forissier* Support for no-exec RO and RW data ([#1459], [#1550])
1685d8aaa04SJerome Forissier
1695d8aaa04SJerome Forissier## New issues
1705d8aaa04SJerome Forissier
1715d8aaa04SJerome Forissier* armv7: some platform-specific code (`plat_cpu_reset_early()`) overwrites
1725d8aaa04SJerome ForissierSCTLR bits configured by generic code. This affects alignment checks (`SCTLR.A`)
1735d8aaa04SJerome Forissierand write-implies-no-exec (`SCTLR.WXN`, `SCTLR.UWXN`), which can therefore not
1745d8aaa04SJerome Forissierbe configured via the compile-time `CFG_` variables.
1755d8aaa04SJerome Forissier* armv7: plat-imx: Cortex-A9 cores should enable branch prediction (`SCLTR.Z`)
1765d8aaa04SJerome Forissierfor improved performance.
1775d8aaa04SJerome Forissier* [#1656] qemu_armv8a: init hangs when secure data path and pager are both
1785d8aaa04SJerome Forissier  enabled.
1795d8aaa04SJerome Forissier
1805d8aaa04SJerome Forissier## Tested on
1815d8aaa04SJerome Forissier
1825d8aaa04SJerome ForissierIn the list below, _standard_ means that the `xtest` program passed with
1835d8aaa04SJerome Forissierits default configuration, while _extended_ means it was run successfully
1845d8aaa04SJerome Forissierwith the additional GlobalPlatform™ TEE Initial Configuration Test Suite
1855d8aaa04SJerome Forissierv1.1.0.4.
1865d8aaa04SJerome Forissier
1875d8aaa04SJerome ForissierIf a platform is not listed, it means the release was not tested on this
1885d8aaa04SJerome Forissierplatform.
1895d8aaa04SJerome Forissier
1905d8aaa04SJerome Forissier<!-- ${PLATFORM}-${PLATFORM_FLAVOR}, ordered alphabetically -->
1915d8aaa04SJerome Forissier* d02: extended
1925d8aaa04SJerome Forissier* hikey: extended
1935d8aaa04SJerome Forissier* imx-mx6ulevk: standard
1945d8aaa04SJerome Forissier* imx-mx6ullevk: standard
1955d8aaa04SJerome Forissier* imx-mx7dsabresd: standard
1965d8aaa04SJerome Forissier* ls-ls1021atwr: standard
1975d8aaa04SJerome Forissier* mediatek-mt8173: standard
1985d8aaa04SJerome Forissier* rcar-h3: standard
1995d8aaa04SJerome Forissier* rpi3: standard
2005d8aaa04SJerome Forissier* stm-b2260: extended
2015d8aaa04SJerome Forissier* stm-cannes: extended
2025d8aaa04SJerome Forissier* ti-am43xx: standard
2035d8aaa04SJerome Forissier* ti-am57xx: standard
2045d8aaa04SJerome Forissier* ti-dra7xx: standard
2055d8aaa04SJerome Forissier* vexpress-fvp: standard
2065d8aaa04SJerome Forissier* vexpress-juno: standard
2075d8aaa04SJerome Forissier* vexpress-qemu_armv8a: standard
2085d8aaa04SJerome Forissier* vexpress-qemu_virt: standard
2095d8aaa04SJerome Forissier
2105d8aaa04SJerome Forissier[github_commits_2_5_0]: https://github.com/OP-TEE/optee_os/compare/2.4.0...2.5.0-rc1
2115d8aaa04SJerome Forissier[#1656]: https://github.com/OP-TEE/optee_os/issues/1656
2125d8aaa04SJerome Forissier[#1650]: https://github.com/OP-TEE/optee_os/pull/1650
2135d8aaa04SJerome Forissier[#1639]: https://github.com/OP-TEE/optee_os/pull/1639
2145d8aaa04SJerome Forissier[#1630]: https://github.com/OP-TEE/optee_os/pull/1630
2155d8aaa04SJerome Forissier[#1623]: https://github.com/OP-TEE/optee_os/pull/1623
2165d8aaa04SJerome Forissier[#1621]: https://github.com/OP-TEE/optee_os/pull/1621
2175d8aaa04SJerome Forissier[#1610]: https://github.com/OP-TEE/optee_os/pull/1610
2185d8aaa04SJerome Forissier[#1592]: https://github.com/OP-TEE/optee_os/pull/1592
2195d8aaa04SJerome Forissier[#1589]: https://github.com/OP-TEE/optee_os/pull/1589
2205d8aaa04SJerome Forissier[#1586]: https://github.com/OP-TEE/optee_os/pull/1586
2215d8aaa04SJerome Forissier[#1580]: https://github.com/OP-TEE/optee_os/pull/1580
2225d8aaa04SJerome Forissier[#1578]: https://github.com/OP-TEE/optee_os/pull/1578
2235d8aaa04SJerome Forissier[#1577]: https://github.com/OP-TEE/optee_os/pull/1577
2245d8aaa04SJerome Forissier[#1574]: https://github.com/OP-TEE/optee_os/pull/1574
2255d8aaa04SJerome Forissier[#1559]: https://github.com/OP-TEE/optee_os/pull/1559
2265d8aaa04SJerome Forissier[#1551]: https://github.com/OP-TEE/optee_os/pull/1551
2275d8aaa04SJerome Forissier[#1550]: https://github.com/OP-TEE/optee_os/pull/1550
2285d8aaa04SJerome Forissier[#1519]: https://github.com/OP-TEE/optee_os/pull/1519
2295d8aaa04SJerome Forissier[#1502]: https://github.com/OP-TEE/optee_os/pull/1502
2305d8aaa04SJerome Forissier[#1365]: https://github.com/OP-TEE/optee_os/pull/1365
2315d8aaa04SJerome Forissier[#1552]: https://github.com/OP-TEE/optee_os/pull/1552
2325d8aaa04SJerome Forissier[#1513]: https://github.com/OP-TEE/optee_os/pull/1513
2335d8aaa04SJerome Forissier[#1508]: https://github.com/OP-TEE/optee_os/pull/1508
2345d8aaa04SJerome Forissier[#1493]: https://github.com/OP-TEE/optee_os/pull/1493
2355d8aaa04SJerome Forissier[#1497]: https://github.com/OP-TEE/optee_os/pull/1497
2365d8aaa04SJerome Forissier[#1492]: https://github.com/OP-TEE/optee_os/pull/1492
2375d8aaa04SJerome Forissier[#1490]: https://github.com/OP-TEE/optee_os/pull/1490
2385d8aaa04SJerome Forissier[#1465]: https://github.com/OP-TEE/optee_os/pull/1465
2395d8aaa04SJerome Forissier[#1459]: https://github.com/OP-TEE/optee_os/pull/1459
2405d8aaa04SJerome Forissier[#1440]: https://github.com/OP-TEE/optee_os/pull/1440
2415d8aaa04SJerome Forissier[OP-TEE-2016-0003]: https://www.op-tee.org/security-advisories/
2425d8aaa04SJerome Forissier[OP-TEE-2016-0002]: https://www.op-tee.org/security-advisories/
2435d8aaa04SJerome Forissier
244702609a7SJerome Forissier# OP-TEE - version 2.4.0
245702609a7SJerome Forissier
246702609a7SJerome Forissier[Link][github_commits_2_4_0] to a list of all commits between this release and
247702609a7SJerome Forissierthe previous one (2.3.0).
248702609a7SJerome Forissier
249702609a7SJerome ForissierPlease note: this release is API-compatible with the previous one, but the
250702609a7SJerome ForissierSecure Storage internal format for the REE and SQL FS is not compatible due to
251702609a7SJerome Forissiercommits [a238b74][commit_a238b74] ("core: REE FS: use the new hash tree
252702609a7SJerome Forissierinterface") and [44e900e][commit_44e900e] ("core: SQL FS: use the new hash tree
253702609a7SJerome Forissierinterface").
254702609a7SJerome Forissier
255702609a7SJerome Forissier## New features
256702609a7SJerome Forissier
257702609a7SJerome Forissier* Add porting guidelines
258702609a7SJerome Forissier
259702609a7SJerome Forissier* Add support for Secure Data Path which allows Client and Trusted Applications
260702609a7SJerome Forissier  to share references to secure memory
261702609a7SJerome Forissier
262702609a7SJerome Forissier* New supported platform: Texas Instruments AM57xx (`PLATFORM=ti-am57xx`)
263702609a7SJerome Forissier
264702609a7SJerome Forissier* ARMv7-A: add support for platform services in secure monitor and add these
265702609a7SJerome Forissier  services for the DRA7xx platform
266702609a7SJerome Forissier
267702609a7SJerome Forissier* SPI framework and PL022 driver cleanup and improvements
268702609a7SJerome Forissier
269702609a7SJerome Forissier* Use CNTPCT (when available) to add entropy to the software PRNG
270702609a7SJerome Forissier
271702609a7SJerome Forissier* Add GlobalPlatform Socket API for UDP and TCP (IPv4 and IPv6)
272702609a7SJerome Forissier
273702609a7SJerome Forissier* DRA7: add TRNG driver, enable GICv2 driver
274702609a7SJerome Forissier
275702609a7SJerome Forissier* Support load address larger than 4G
276702609a7SJerome Forissier
277702609a7SJerome Forissier* libutee: preserve error code when calling TEE_Panic() for easier
278702609a7SJerome Forissier  troubleshooting
279702609a7SJerome Forissier
280702609a7SJerome Forissier* Support TA profiling with gprof (-pg compiler switch)
281702609a7SJerome Forissier
282702609a7SJerome Forissier* Optimize the ELF loader for TAs when pager is enabled
283702609a7SJerome Forissier
284702609a7SJerome Forissier* Update documentation
285702609a7SJerome Forissier
286702609a7SJerome Forissier* Add paged secure shared memory that can be transferred between TAs as
287702609a7SJerome Forissier  needed
288702609a7SJerome Forissier
289702609a7SJerome Forissier* Introduce MOBJ abstraction
290702609a7SJerome Forissier
291702609a7SJerome Forissier* i.MX6: add PSCI "on" function
292702609a7SJerome Forissier
293702609a7SJerome Forissier* arm32: introduce PSCI framework
294702609a7SJerome Forissier
295702609a7SJerome Forissier## Bug fixes
296702609a7SJerome Forissier
297702609a7SJerome Forissier* Secure storage: improve integrity checking of the REE and SQL filesystems by
298702609a7SJerome Forissier  adding a hash tree on the internal data structures. Any external modification
299702609a7SJerome Forissier  is detected, except full rollback. Fixes [#1188][issue1188].
300702609a7SJerome Forissier
301702609a7SJerome Forissier* The linux driver will set the 'privileged' flag (TEE_GEN_CAP_PRIVILEGED) on
302702609a7SJerome Forissier  the device intended for use by tee-supplicant. Fixes [#1199][issue1199].
303702609a7SJerome Forissier
304702609a7SJerome Forissier* RPMB: don't try to program the RPMB key by default
305702609a7SJerome Forissier
306702609a7SJerome Forissier* Fix "make clean" error cases
307702609a7SJerome Forissier
308702609a7SJerome Forissier* Fix issue when resetting persistent storage enumerator [#1332][issue1332]
309702609a7SJerome Forissier
310702609a7SJerome Forissier* Fix TA panic when doing AES CTS with specific buffer sizes
311702609a7SJerome Forissier  [#1203][issue1203].
312702609a7SJerome Forissier
313702609a7SJerome Forissier## Known issues
314702609a7SJerome Forissier
315702609a7SJerome Forissier* On RPi3 xtest sometimes stall (rcu_sched self-detected stall on CPU) [#1353][issue1353]
316702609a7SJerome Forissier* For multi-core PSCI support is to be added for ls1021atwr in OP-TEE.
317702609a7SJerome Forissier* USB keyboard cannot be used to stop the u-boot timeout ([build issue131]).
318702609a7SJerome Forissier* Travis service (build.git) seems unstable from time to time.
319702609a7SJerome Forissier
320702609a7SJerome Forissier## Tested on
321702609a7SJerome Forissier
322702609a7SJerome ForissierIn the list below, _standard_ means that the `xtest` program passed with
323702609a7SJerome Forissierits default configuration, while _extended_ means it was run successfully
324702609a7SJerome Forissierwith the additional GlobalPlatform™ TEE Initial Configuration Test Suite
325702609a7SJerome Forissierv1.1.0.4.
326702609a7SJerome Forissier
327702609a7SJerome ForissierIf a platform is not listed, it means the release was not tested on this
328702609a7SJerome Forissierplatform.
329702609a7SJerome Forissier
330702609a7SJerome Forissier<!-- ${PLATFORM}-${PLATFORM_FLAVOR}, ordered alphabetically -->
331702609a7SJerome Forissier* d02: extended
332702609a7SJerome Forissier* hikey: extended
333702609a7SJerome Forissier* imx-mx6ulevk: standard
334702609a7SJerome Forissier* ls-ls1021atwr: standard (single core)
335702609a7SJerome Forissier* mediatek-mt8173: standard
336702609a7SJerome Forissier* rcar-h3: standard
337702609a7SJerome Forissier* rpi3: standard
338702609a7SJerome Forissier* stm-b2260: extended
339702609a7SJerome Forissier* ti-dra7xx: standard
340702609a7SJerome Forissier* vexpress-fvp: standard
341702609a7SJerome Forissier* vexpress-juno: standard
342702609a7SJerome Forissier* vexpress-qemu_armv8a: standard
343702609a7SJerome Forissier* vexpress-qemu_virt: standard
344702609a7SJerome Forissier* zynqmp-zc1751_dc1: standard
345702609a7SJerome Forissier* zynqmp-zc1751_dc2: standard
346702609a7SJerome Forissier* zynqmp-zcu102: standard
347702609a7SJerome Forissier
348702609a7SJerome Forissier[github_commits_2_4_0]: https://github.com/OP-TEE/optee_os/compare/2.3.0...2.4.0
349702609a7SJerome Forissier[issue1332]: https://github.com/OP-TEE/optee_os/issues/1332
350702609a7SJerome Forissier[issue1353]: https://github.com/OP-TEE/optee_os/issues/1353
351702609a7SJerome Forissier[build issue131]: https://github.com/OP-TEE/build/issues/131
352702609a7SJerome Forissier[commit_a238b74]: https://github.com/OP-TEE/optee_os/commit/a238b744b1b3
353702609a7SJerome Forissier[commit_44e900e]: https://github.com/OP-TEE/optee_os/commit/44e900eabfc1
354702609a7SJerome Forissier
35528fcee17SJerome Forissier# OP-TEE - version 2.3.0
35628fcee17SJerome Forissier
35728fcee17SJerome Forissier[Link][github_commits_2_3_0] to a list of all commits between this release and
35828fcee17SJerome Forissierthe previous one (2.2.0).
35928fcee17SJerome Forissier
36028fcee17SJerome ForissierPlease note: this release is API-compatible with the previous one, but the
36128fcee17SJerome ForissierSecure Storage internal format for the REE FS is not compatible due to commit
36228fcee17SJerome Forissier[361fb3e][commit_361fb3e] ("core: REE FS: use a single file per object").
36328fcee17SJerome Forissier
36428fcee17SJerome Forissier[commit_361fb3e]: https://github.com/OP-TEE/optee_os/commit/361fb3e
36528fcee17SJerome Forissier
36628fcee17SJerome Forissier## New features
36728fcee17SJerome Forissier
36828fcee17SJerome Forissier* New supported platform: Xilinx Zynq 7000 ZC702 (`PLATFORM=zynq7k-zc702`)
36928fcee17SJerome Forissier
37028fcee17SJerome Forissier* Add debug assertions to spinlocks and mutexes
37128fcee17SJerome Forissier
37228fcee17SJerome Forissier* Add more CP15 register access macros for Cortex-A9
37328fcee17SJerome Forissier
37428fcee17SJerome Forissier* ARMv7-A: redesign secure monitor to make it easier to register services
37528fcee17SJerome Forissier
37628fcee17SJerome Forissier* ARMv7-A: cleanup boot arguments
37728fcee17SJerome Forissier
37828fcee17SJerome Forissier* libutee: extend `TEE_CheckMemoryAccessRights()` with
37928fcee17SJerome Forissier  `TEE_MEMORY_ACCESS_SECURE` and `TEE_MEMORY_ACCESS_NONSECURE`
38028fcee17SJerome Forissier
38128fcee17SJerome Forissier* plat-hikey: enable SPI by default and add sample test code
38228fcee17SJerome Forissier
38328fcee17SJerome Forissier* Consider `CFLAGS_ta_arm64` and `CFLAGS_ta_arm32` when building TAs
38428fcee17SJerome Forissier
38528fcee17SJerome Forissier* Secure storage refactoring
38628fcee17SJerome Forissier  - Simplify interface with tee-supplicant. Minimize round trips with normal
38728fcee17SJerome Forissier    world, especially by adding a cache for FS RPC payload data.
38828fcee17SJerome Forissier  - REE FS: use a single file per object, remove block cache.
38928fcee17SJerome Forissier
39028fcee17SJerome Forissier* Print call stack in panic()
39128fcee17SJerome Forissier
39228fcee17SJerome Forissier## Bug fixes
39328fcee17SJerome Forissier
39428fcee17SJerome Forissier* Fix UUID encoding when communicating with normal world (use big endian
39528fcee17SJerome Forissier  mode instead of native endianness). Related to this, the string format
39628fcee17SJerome Forissier  for UUIDs has changed in tee-supplicant, so that TA file names now follow
39728fcee17SJerome Forissier  the format defined in RFC4122 (a missing hyphen was added). The old format
39828fcee17SJerome Forissier  is still supported, but deprecated, and will likely be removed with the
39928fcee17SJerome Forissier  next major release.
40028fcee17SJerome Forissier
40128fcee17SJerome Forissier* Drop write permission to non-writable ELF segments after TA loading is
40228fcee17SJerome Forissier  complete.
40328fcee17SJerome Forissier
40428fcee17SJerome Forissier* mm: fix confusing memory mapping debug traces
40528fcee17SJerome Forissier
40628fcee17SJerome Forissier* plat-ti: fix issues with MMU mapping
40728fcee17SJerome Forissier
40828fcee17SJerome Forissier* crypto: fix clearing of big numbers
40928fcee17SJerome Forissier
41028fcee17SJerome Forissier* build: allow spaces and double quotes in CFG_ variables
41128fcee17SJerome Forissier
41228fcee17SJerome Forissier* mm: use paddr_t to support both 32- and 64-bit architectures properly.
41328fcee17SJerome Forissier  Resolves 32-bit truncation error when pool is at top of 32 bit address
41428fcee17SJerome Forissier  space on 64-bit architecture.
41528fcee17SJerome Forissier
41628fcee17SJerome Forissier* plat-stm: support pager. Fix pager on ARMv7-A SMP boards.
41728fcee17SJerome Forissier
41828fcee17SJerome Forissier* Fix debug output of Trusted Applications (remove "ERROR: TEE-CORE:" prefix)
41928fcee17SJerome Forissier
42028fcee17SJerome Forissier* Do not consider TA memref parameters as TA private memory
42128fcee17SJerome Forissier
42228fcee17SJerome Forissier* crypto: fix `cipher_final()` which would not call `cbc_done()` for CBC_MAC
42328fcee17SJerome Forissier  algorithms
42428fcee17SJerome Forissier
42528fcee17SJerome Forissier* fix for 16-way PL310
42628fcee17SJerome Forissier
42728fcee17SJerome Forissier* arm32: fix call stack unwinding (`print_stack()`)
42828fcee17SJerome Forissier
42928fcee17SJerome Forissier* arm32: fix spinlock assembly code
43028fcee17SJerome Forissier
43128fcee17SJerome Forissier* plat-stm, plat-imx: fix SCR initalization
43228fcee17SJerome Forissier
43328fcee17SJerome Forissier* Fix user L1 MMU entries calculation (non-LPAE), allowing TTBCR.N values
43428fcee17SJerome Forissier  other than 7.
43528fcee17SJerome Forissier
43628fcee17SJerome Forissier* mtk-mt8173: fix panic caused by incorrect size of SHMEM
43728fcee17SJerome Forissier
43828fcee17SJerome Forissier* plat-stm: fix RNG driver (non-flat mapping)
43928fcee17SJerome Forissier
44028fcee17SJerome Forissier## Known issues
44128fcee17SJerome Forissier
44228fcee17SJerome Forissier* New issues open on GitHub
44328fcee17SJerome Forissier  * [#1203][issue1203] AES-CTS mode will fail when inlen=0x100, in_incr=0x80
44428fcee17SJerome Forissier  * [#1199][issue1199] Both tee and teepriv reported GlobalPlatform compliant
44528fcee17SJerome Forissier  * [#1188][issue1188] Secure storage (SQL FS and REE FS): blocks not tied to
44628fcee17SJerome Forissier    current meta header
44728fcee17SJerome Forissier  * [#1172][issue1172] paddr_t should be larger than 32 bits when
44828fcee17SJerome Forissier    CFG_WITH_LPAE is enabled
44928fcee17SJerome Forissier
45028fcee17SJerome Forissier## Tested on
45128fcee17SJerome Forissier
45228fcee17SJerome ForissierIn the list below, _standard_ means that the `xtest` program passed with
45328fcee17SJerome Forissierits default configuration, while _extended_ means it was run successfully
45428fcee17SJerome Forissierwith the additional GlobalPlatform™ TEE Initial Configuration Test Suite
45528fcee17SJerome Forissierv1.1.0.4.
45628fcee17SJerome Forissier
45728fcee17SJerome ForissierIf a platform is not listed, it means the release was not tested on this
45828fcee17SJerome Forissierplatform.
45928fcee17SJerome Forissier
46028fcee17SJerome Forissier<!-- ${PLATFORM}-${PLATFORM_FLAVOR}, ordered alphabetically -->
46128fcee17SJerome Forissier* d02: extended
46228fcee17SJerome Forissier* hikey: extended
46328fcee17SJerome Forissier* imx-mx6ulevk: standard
46428fcee17SJerome Forissier* ls-ls1021atwr: standard
46528fcee17SJerome Forissier* mediatek-mt8173: standard
46628fcee17SJerome Forissier* rcar-h3: standard
46728fcee17SJerome Forissier* rpi3: standard
46828fcee17SJerome Forissier* stm-b2260: extended
46928fcee17SJerome Forissier* stm-cannes: extended
47028fcee17SJerome Forissier* ti-dra7xx: standard
47128fcee17SJerome Forissier* vexpress-fvp: standard
47228fcee17SJerome Forissier* vexpress-juno: standard
47328fcee17SJerome Forissier* vexpress-qemu_armv8a: standard
47428fcee17SJerome Forissier* vexpress-qemu_virt: extended
47528fcee17SJerome Forissier* zynqmp-zcu102: standard
47628fcee17SJerome Forissier
47728fcee17SJerome Forissier[github_commits_2_3_0]: https://github.com/OP-TEE/optee_os/compare/2.2.0...2.3.0
47828fcee17SJerome Forissier[issue1172]: https://github.com/OP-TEE/optee_os/issues/1172
47928fcee17SJerome Forissier[issue1188]: https://github.com/OP-TEE/optee_os/issues/1188
48028fcee17SJerome Forissier[issue1199]: https://github.com/OP-TEE/optee_os/issues/1199
48128fcee17SJerome Forissier[issue1203]: https://github.com/OP-TEE/optee_os/issues/1203
48228fcee17SJerome Forissier
483c0c5d399SJerome Forissier# OP-TEE - version 2.2.0
484c0c5d399SJerome Forissier
485c0c5d399SJerome Forissier[Link][github_commits_2_2_0] to a list of all commits between this release and
486c0c5d399SJerome Forissierthe previous one (2.1.0).
487c0c5d399SJerome Forissier
488c0c5d399SJerome ForissierPlease note: this release is API-compatible with the previous one, but the
489c0c5d399SJerome ForissierSecure Storage internal format is not compatible due to commit
490c0c5d399SJerome Forissier[fde4a75][commit_fde4a75] ("storage: encrypt the FEK with a TA-specific key").
491c0c5d399SJerome Forissier
492c0c5d399SJerome Forissier[commit_fde4a75]: https://github.com/OP-TEE/optee_os/commit/fde4a75
493c0c5d399SJerome Forissier
494c0c5d399SJerome Forissier## New features
495c0c5d399SJerome Forissier
496c0c5d399SJerome Forissier* New supported platforms:
497c0c5d399SJerome Forissier	* Freescale i.MX6 Quad SABRE Lite & SD
498c0c5d399SJerome Forissier	* HiSilicon D02
499c0c5d399SJerome Forissier	* Raspberry Pi3
500c0c5d399SJerome Forissier	* Renesas RCAR H3
501c0c5d399SJerome Forissier	* STMicroelectronics b2260 - h410
502c0c5d399SJerome Forissier
503c0c5d399SJerome Forissier* Pager: Support paging of read/write pages by encrypting them with AES-GCM.
504c0c5d399SJerome Forissier  Support paging of user TAs. Add global setting for TZSRAM size
505c0c5d399SJerome Forissier  (CFG_CORE_TZSRAM_EMUL_SIZE), defaults to 300K.
506c0c5d399SJerome Forissier
507c0c5d399SJerome Forissier* Support for more than 8 CPU cores
508c0c5d399SJerome Forissier
509c0c5d399SJerome Forissier* Added SPI framework and PL022 driver
510c0c5d399SJerome Forissier
511c0c5d399SJerome Forissier* GPIO: framework supports multiple instances, PL061 driver now has get/set
512c0c5d399SJerome Forissier  interrupt and mode control functions
513c0c5d399SJerome Forissier
514c0c5d399SJerome Forissier* Secure storage: Encrypt the File Encryption Key with a TA-specific key for
515c0c5d399SJerome Forissier  better TA isolation. Add build-time and run-time support for multiple storage
516c0c5d399SJerome Forissier  backends. Add SQLite backend.
517c0c5d399SJerome Forissier
518c0c5d399SJerome Forissier* Trusted User Interface: some code is introduced to support the implementation
519c0c5d399SJerome Forissier  of TUI. This includes: a generic framebuffer driver, display and serial
520c0c5d399SJerome Forissier  abstractions, and drivers for PL111 (LCD) / PL050 (KMI) / TZC400 and PS2
521c0c5d399SJerome Forissier  mouse.
522c0c5d399SJerome Forissier
523c0c5d399SJerome Forissier* AES acceleration using ARMv8-A Cryptographic Extensions instructions is
524c0c5d399SJerome Forissier  now supported in AArch32 mode
525c0c5d399SJerome Forissier
526c0c5d399SJerome Forissier* Add support for GCC flags: -fsanitize=undefined and -fsanitize=kernel-address
527c0c5d399SJerome Forissier
528c0c5d399SJerome Forissier* Use a global setting for core heap size (CFG_CORE_HEAP_SIZE), 64K by default.
529c0c5d399SJerome Forissier
530c0c5d399SJerome Forissier* Add macros to unwind and print the call stack of TEE core
531c0c5d399SJerome Forissier
532c0c5d399SJerome Forissier* Libtomcrypt: sync with the latest `develop` branch.
533c0c5d399SJerome Forissier
534c0c5d399SJerome Forissier* The Trusted Application SDK (ta_dev_kit.mk) can produce libraries (.a)
535c0c5d399SJerome Forissier
536c0c5d399SJerome Forissier* Rework assertions and TEE core panics and properly honor NDEBUG
537c0c5d399SJerome Forissier
538c0c5d399SJerome Forissier## Bug fixes
539c0c5d399SJerome Forissier
540c0c5d399SJerome Forissier* Fix incorrect algorithm passed to cipher.final()
541c0c5d399SJerome Forissier
542c0c5d399SJerome Forissier* scripts: support Python 2.x and 3.x
543c0c5d399SJerome Forissier
544c0c5d399SJerome Forissier* Secure storage: Add proper locking to support concurrent access. Fix sign
545c0c5d399SJerome Forissier  extension bug with offset parameter of syscall storage_obj_seek which could
546c0c5d399SJerome Forissier  cause errors in Aarch32 mode. Fix reading beyond end of file.
547c0c5d399SJerome Forissier
548c0c5d399SJerome Forissier* Aarch64: mask all maskable exceptions before doing a normal return from call.
549c0c5d399SJerome Forissier
550c0c5d399SJerome Forissier* Device Tree: add no-map property to OP-TEE node in reserved-memory.
551c0c5d399SJerome Forissier
552c0c5d399SJerome Forissier* LibTomcrypt: fix CVE-2016-6129
553c0c5d399SJerome Forissier
554c0c5d399SJerome Forissier## Known issues
555c0c5d399SJerome Forissier
556c0c5d399SJerome Forissier* New issues open on GitHub
557c0c5d399SJerome Forissier  * [#1093][issue1093] rcar-h3: xtest 6010 hangs
558c0c5d399SJerome Forissier  * [#1092][issue1092] rcar-h3: xtest 4010 fails
559c0c5d399SJerome Forissier  * [#1081][issue1081] Bad mapping of TA secure memref parameters
560c0c5d399SJerome Forissier  * [#1071][issue1071] __data_end may not correctly represent text start position when using CFG_WITH_PAGER
561c0c5d399SJerome Forissier  * [#1069][issue1069] armv7/Aarch32: crash in stack unwind (DPRINT_STACK())
562c0c5d399SJerome Forissier
563c0c5d399SJerome Forissier## Tested on
564c0c5d399SJerome Forissier
565c0c5d399SJerome ForissierIn the list below, _standard_ means that the `xtest` program passed with
566c0c5d399SJerome Forissierits default configuration, while _extended_ means it was run successfully
567c0c5d399SJerome Forissierwith the additional GlobalPlatform™ TEE Initial Configuration Test Suite
568c0c5d399SJerome Forissierv1.1.0.4.
569c0c5d399SJerome Forissier
570c0c5d399SJerome ForissierIf a platform is not listed, it means the release was not tested on this
571c0c5d399SJerome Forissierplatform.
572c0c5d399SJerome Forissier
573c0c5d399SJerome Forissier<!-- ${PLATFORM}-${PLATFORM_FLAVOR}, ordered alphabetically -->
574c0c5d399SJerome Forissier* d02: extended
575c0c5d399SJerome Forissier* hikey: extended
576c0c5d399SJerome Forissier* imx-mx6qsabrelite: standard
577c0c5d399SJerome Forissier* imx-mx6qsabresd: standard
578c0c5d399SJerome Forissier* rcar-h3: standard, pass except issues [#1092][issue1092] and [#1093][issue1093]
579c0c5d399SJerome Forissier* rpi3: standard
580c0c5d399SJerome Forissier* stm-b2260: standard
581c0c5d399SJerome Forissier* stm-cannes: standard
582c0c5d399SJerome Forissier* ti-dra7xx: standard
583c0c5d399SJerome Forissier* vexpress-fvp: standard
584c0c5d399SJerome Forissier* vexpress-juno: standard
585c0c5d399SJerome Forissier* vexpress-qemu_armv8a: standard
586c0c5d399SJerome Forissier* vexpress-qemu_virt: extended
587c0c5d399SJerome Forissier* zynqmp-zcu102: standard
588c0c5d399SJerome Forissier
589c0c5d399SJerome Forissier[github_commits_2_2_0]: https://github.com/OP-TEE/optee_os/compare/2.1.0...2.2.0
590c0c5d399SJerome Forissier[issue1081]: https://github.com/OP-TEE/optee_os/issues/1081
591c0c5d399SJerome Forissier[issue1071]: https://github.com/OP-TEE/optee_os/issues/1071
592c0c5d399SJerome Forissier[issue1069]: https://github.com/OP-TEE/optee_os/issues/1069
593c0c5d399SJerome Forissier[issue1092]: https://github.com/OP-TEE/optee_os/issues/1092
594c0c5d399SJerome Forissier[issue1093]: https://github.com/OP-TEE/optee_os/issues/1093
595c0c5d399SJerome Forissier
596ac3cc110SPascal Brand# OP-TEE - version 2.1.0
597a0cd5d60SPascal Brand
598ac3cc110SPascal Brand## New features
599ac3cc110SPascal Brand
600ac3cc110SPascal Brand* New supported platforms:
601ac3cc110SPascal Brand	* Xilinx Zynq UltraScale+ MPSOC
602ac3cc110SPascal Brand	* Spreadtrum SC9860
603ac3cc110SPascal Brand
604ac3cc110SPascal Brand* GCC5 support
605ac3cc110SPascal Brand
606ac3cc110SPascal Brand* Non Linear Mapping support: In OP-TEE kernel mode, the physical to virtual
607ac3cc110SPascal Brand  addresses was linear until this release, meaning the virtual addresses
608ac3cc110SPascal Brand  were equal to the physical addresses. This is no more the case in this
609ac3cc110SPascal Brand  release.
610ac3cc110SPascal Brand
611ac3cc110SPascal Brand* Font rendering routines have been introduced in order to ease an
612ac3cc110SPascal Brand  implementation of Trusted UI.
613ac3cc110SPascal Brand
614ac3cc110SPascal Brand* File Storage: Possibility to use the normal world filesystem and the RPMB
615ac3cc110SPascal Brand  implementations simultaneously.
616ac3cc110SPascal Brand
617ac3cc110SPascal Brand* AOSP: There is a [local manifest][aosp_local_manifest] to build OP-TEE into an AOSP build, running on HiKey.
618ac3cc110SPascal Brand  Please refer to the README in that repo for instructions.
619ac3cc110SPascal Brand
620ac3cc110SPascal Brand* OpenEmbedded: In addition to the makefile-based build described in the optee_os README, there is an
621ac3cc110SPascal Brand  [OpenEmbedded-based build][oe_build] that supports Qemu (32-bit), FVP (64-bit), and HiKey (64-bit).
622ac3cc110SPascal Brand  Please refer to the README in that repo for instructions.
623ac3cc110SPascal Brand
624ac3cc110SPascal Brand* [Link][github_commits_2_1_0] to a list of all commits between this and
625ac3cc110SPascal Brand  previous release.
626ac3cc110SPascal Brand
627ac3cc110SPascal Brand
628ac3cc110SPascal Brand## Tested on
629ac3cc110SPascal BrandDefinitions:
630ac3cc110SPascal Brand
631ac3cc110SPascal Brand| Type | Meaning |
632ac3cc110SPascal Brand| ---- | ------- |
633ac3cc110SPascal Brand| Standard tests | The [optee_test][optee_test] project. |
634ac3cc110SPascal Brand| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.1.0.4. |
635ac3cc110SPascal Brand
636ac3cc110SPascal Brand*	ARM Juno Board (vexpress-juno), standard.
637ac3cc110SPascal Brand*	Foundation Models (vexpress-fvp), standard tests + extended tests,
638ac3cc110SPascal Brand	using FVP ARM V8 Foundation Platformr0p0 (platform build 10.0.37)
639ac3cc110SPascal Brand*	FSL i.MX6 UltraLite EVK (imx), standard.
640ac3cc110SPascal Brand*	FSL ls1021a (ls-ls1021atwr), standard tests.
641ac3cc110SPascal Brand*	HiKey (hikey), standard + extended tests.
642ac3cc110SPascal Brand*	QEMU (vexpress-qemu), standard + extended tests.
643ac3cc110SPascal Brand*	Xilinx Zynq UltraScale+ MPSOC, standard tests
644ac3cc110SPascal Brand
645ac3cc110SPascal BrandNote that the following platform has not been tested:
646ac3cc110SPascal Brand*	MTK8173-EVB (mediatek-mt8173)
647ac3cc110SPascal Brand
648ac3cc110SPascal Brand
649ac3cc110SPascal Brand## Known issues
650ac3cc110SPascal Brand* Issue(s) open on GitHub
651ac3cc110SPascal Brand  * [#868][pr868]: python-wand font generation sometimes times out
652ac3cc110SPascal Brand  * [#863][pr863]: "double free or corruption" error when building optee_os
653ac3cc110SPascal Brand  * [#858][pr858]: UUIDs in binary format have wrong endinanness
654ac3cc110SPascal Brand  * [#857][pr857]: Formatting of UUIDs is incorrect
655ac3cc110SPascal Brand  * [#847][pr847]: optee_os panic(TEE-CORE: Assertion)
656ac3cc110SPascal Brand  * [#838][pr838]: TUI font rendering is _very_ slow
657ac3cc110SPascal Brand  * [#814][pr814]: Persistent objects : save informations after close
658ac3cc110SPascal Brand  * [#665][pr665]: xtest 1013 stalled on HiKey when log levels are 4 and optee_os is on its own UART
659ac3cc110SPascal Brand  * [#506][pr506]: tee-supplicant panic & ta panic
660ac3cc110SPascal Brand
661ac3cc110SPascal Brand[github_commits_2_1_0]: https://github.com/OP-TEE/optee_os/compare/2.0.0...2.1.0
662ac3cc110SPascal Brand[pr868]: https://github.com/OP-TEE/optee_os/issues/868
663ac3cc110SPascal Brand[pr863]: https://github.com/OP-TEE/optee_os/issues/863
664ac3cc110SPascal Brand[pr858]: https://github.com/OP-TEE/optee_os/issues/858
665ac3cc110SPascal Brand[pr857]: https://github.com/OP-TEE/optee_os/issues/857
666ac3cc110SPascal Brand[pr847]: https://github.com/OP-TEE/optee_os/issues/847
667ac3cc110SPascal Brand[pr838]: https://github.com/OP-TEE/optee_os/issues/838
668ac3cc110SPascal Brand[pr814]: https://github.com/OP-TEE/optee_os/issues/814
669ac3cc110SPascal Brand[pr665]: https://github.com/OP-TEE/optee_os/issues/665
670ac3cc110SPascal Brand[aosp_local_manifest]: https://github.com/linaro-swg/optee_android_manifest
671ac3cc110SPascal Brand[oe_build]: https://github.com/linaro-swg/oe-optee
672ac3cc110SPascal Brand
673ac3cc110SPascal Brand# OP-TEE - version 2.0.0
674a0cd5d60SPascal Brand
675a0cd5d60SPascal Brand## New features
676a0cd5d60SPascal Brand
677a0cd5d60SPascal Brand* Generic driver: A new generic TEE driver is in the process of being
678a0cd5d60SPascal Brand  [upstreamed][gendrv_v9].
679a0cd5d60SPascal Brand  In this release, [OP-TEE/optee_linuxdriver][optee_linuxdriver] is no more used.
680a0cd5d60SPascal Brand  Instead, linux v4.5 is being patched using the proposed Generic TEE Driver,
681a0cd5d60SPascal Brand  as it can be found in [https://github.com/linaro-swg/linux/tree/optee][linux_optee]
682a0cd5d60SPascal Brand
683a0cd5d60SPascal Brand* RPMB support: Secure Storage can now use Replay Protected Memory Block (RPMB) partition
684a0cd5d60SPascal Brand  of an eMMC device. Check the [full documentation][rpmb_doc]
685a0cd5d60SPascal Brand
686a0cd5d60SPascal Brand* Hard-float ABI is now available.
687a0cd5d60SPascal Brand
688a0cd5d60SPascal Brand* [Link][github_commits_2_0_0] to a list of all commits between this and
689a0cd5d60SPascal Brand  previous release.
690a0cd5d60SPascal Brand
691a0cd5d60SPascal Brand
692a0cd5d60SPascal Brand## Tested on
693a0cd5d60SPascal BrandDefinitions:
694a0cd5d60SPascal Brand
695a0cd5d60SPascal Brand| Type | Meaning |
696a0cd5d60SPascal Brand| ---- | ------- |
697a0cd5d60SPascal Brand| Standard tests | The [optee_test][optee_test] project. |
698a0cd5d60SPascal Brand| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.1.0.4. |
699a0cd5d60SPascal Brand
700a0cd5d60SPascal Brand*	ARM Juno Board (vexpress-juno), standard.
701a0cd5d60SPascal Brand*	Foundation Models (vexpress-fvp), standard tests + extended tests,
702a0cd5d60SPascal Brand	using FVP ARM V8 Foundation Platformr0p0 (platform build 9.5.40)
703eb00c7b9SPascal Brand*	FSL ls1021a (ls-ls1021atwr), standard.
704a0cd5d60SPascal Brand*	HiKey (hikey), standard.
705a0cd5d60SPascal Brand*	MTK8173-EVB (mediatek-mt8173), standard.
706a0cd5d60SPascal Brand*	QEMU (vexpress-qemu), standard + extended tests.
707a0cd5d60SPascal Brand*	STM Cannes (stm-cannes), standard + extended tests.
708a0cd5d60SPascal Brand
709a0cd5d60SPascal Brand## Known issues
710a0cd5d60SPascal Brand* Issue(s) open on GitHub
711a0cd5d60SPascal Brand  * [#40][prld40] BUG_ON() when re-using RPC buffer to tee-supplicant
712a0cd5d60SPascal Brand  * [#506][pr506]: tee-supplicant panic & ta panic
713a0cd5d60SPascal Brand
714a0cd5d60SPascal Brand[github_commits_2_0_0]: https://github.com/OP-TEE/optee_os/compare/1.1.0...2.0.0
715a0cd5d60SPascal Brand[rpmb_doc]: https://github.com/OP-TEE/optee_os/blob/master/documentation/secure_storage_rpmb.md
716a0cd5d60SPascal Brand[optee_linuxdriver]: https://github.com/OP-TEE/optee_linuxdriver
717a0cd5d60SPascal Brand[gendrv_v9]: https://lkml.org/lkml/2016/4/1/205
718a0cd5d60SPascal Brand[linux_optee]: https://github.com/linaro-swg/linux/tree/optee
719a0cd5d60SPascal Brand
720a0cd5d60SPascal Brand
721c5bbfb4dSPascal Brand# OP-TEE - version 1.1.0
722c5bbfb4dSPascal Brand
723c5bbfb4dSPascal Brand
724c5bbfb4dSPascal Brand## New features
725c5bbfb4dSPascal Brand
726c5bbfb4dSPascal Brand* Softfloat library: floating point support is now available in 32bits TA.
727c5bbfb4dSPascal Brand
728c5bbfb4dSPascal Brand* Support running 64-bits TA: on ARMv8-A platform, TA can be compiled in
729c5bbfb4dSPascal Brand  AArch32 and/or in AArch64 in case the core is compiled in AArch64.
730c5bbfb4dSPascal Brand  An example can be found in HiKey configuration file. Using the following
731c5bbfb4dSPascal Brand  excerpt code, the user TA libraries are compiled in both AArch32 and
732c5bbfb4dSPascal Brand  AArch64, and can be found in `out/arm-plat-hikey/export-ta_arm32` and
733c5bbfb4dSPascal Brand  `out/arm-plat-hikey/export-ta_arm64`
734c5bbfb4dSPascal Brand
735c5bbfb4dSPascal Brand```
736c5bbfb4dSPascal Brand    ta-targets = ta_arm32
737c5bbfb4dSPascal Brand    ta-targets += ta_arm64
738c5bbfb4dSPascal Brand```
739c5bbfb4dSPascal Brand
740c5bbfb4dSPascal Brand* Concurrent TA support: multiple TA can run in parallel on
741c5bbfb4dSPascal Brand  several cores.
742c5bbfb4dSPascal Brand
743c5bbfb4dSPascal Brand* New tests added in xtest test suite: concurrent TA (xtest 1013),
744c5bbfb4dSPascal Brand  floating point tests (xtest 1006 and os_test TA) and corruption
745c5bbfb4dSPascal Brand  file storage (xtest 20000)
746c5bbfb4dSPascal Brand
747c5bbfb4dSPascal Brand* [Link][github_commits_1_1_0] to a list of all commits between this and
748c5bbfb4dSPascal Brand  previous release.
749c5bbfb4dSPascal Brand
750c5bbfb4dSPascal Brand
751c5bbfb4dSPascal Brand## Tested on
752c5bbfb4dSPascal BrandDefinitions:
753c5bbfb4dSPascal Brand
754c5bbfb4dSPascal Brand| Type | Meaning |
755c5bbfb4dSPascal Brand| ---- | ------- |
756c5bbfb4dSPascal Brand| Standard tests | The [optee_test][optee_test] project. |
757c5bbfb4dSPascal Brand| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.1.0.4. |
758c5bbfb4dSPascal Brand| Hello world test | Plain hello world Trusted Application such as [this][hello_world]. |
759c5bbfb4dSPascal Brand
760c5bbfb4dSPascal Brand*	Foundation Models (vexpress-fvp), standard tests + extended tests,
761c5bbfb4dSPascal Brand	using FVP ARM V8 Foundation Platformr0p0 (platform build 9.5.40)
762c5bbfb4dSPascal Brand*	HiKey (hikey), standard + extended tests.
763c5bbfb4dSPascal Brand*	MT8173 (mediatek), standard tests.
764c5bbfb4dSPascal Brand*	QEMU (vexpress-qemu), standard + extended tests.
765c5bbfb4dSPascal Brand*	STM Cannes (stm-cannes), standard + extended tests.
766c5bbfb4dSPascal Brand
767c5bbfb4dSPascal Brand## Known issues
768c5bbfb4dSPascal Brand* Secure Storage is implemented, but note that anti-rollback protection
769c5bbfb4dSPascal Brand  is not implemented yet.
770c5bbfb4dSPascal Brand
771c5bbfb4dSPascal Brand* Issue(s) open on GitHub
772c5bbfb4dSPascal Brand  * [#40][prld40] BUG_ON() when re-using RPC buffer to tee-supplicant
773c5bbfb4dSPascal Brand  * [#296][pr296]: Connecting RPMB to the storage APIs.
774c5bbfb4dSPascal Brand  * [#493][pr493]: setup_juno_optee: unable to find pre-built binaries
775c5bbfb4dSPascal Brand  * [#506][pr506]: tee-supplicant panic & ta panic
776c5bbfb4dSPascal Brand
777c5bbfb4dSPascal Brand[prld40]: https://github.com/OP-TEE/optee_linuxdriver/issues/40
778c5bbfb4dSPascal Brand[pr506]: https://github.com/OP-TEE/optee_os/issues/506
779c5bbfb4dSPascal Brand[github_commits_1_1_0]: https://github.com/OP-TEE/optee_os/compare/1.0.1...1.1.0
780c5bbfb4dSPascal Brand
781c5bbfb4dSPascal Brand
782c5bbfb4dSPascal Brand
7838a7ee79dSPascal Brand# OP-TEE - version 1.0.0
7848a7ee79dSPascal Brand
7858a7ee79dSPascal BrandOP-TEE is now maintained by Linaro. Contributors do not need to
7868a7ee79dSPascal Brandsign a CLA anymore, but must follow the rules of the [DCO][DCO]
7878a7ee79dSPascal Brand(Developer Certificate of Origin) instead.
7888a7ee79dSPascal Brand
7898a7ee79dSPascal Brand
7908a7ee79dSPascal Brand## New features
7918a7ee79dSPascal Brand
7928a7ee79dSPascal Brand* Add hardware support for Texas Instruments DRA7xx, ARMv7 (plat-ti)
7938a7ee79dSPascal Brand
7948a7ee79dSPascal Brand* GlobalPlatform™ TEE Internal Core API Specification v1.1,
7958a7ee79dSPascal Brand  including ECC algorithms.
7968a7ee79dSPascal Brand
7978a7ee79dSPascal Brand* Secure Storage: Files stored by the REE are now encrypted. Operations
7988a7ee79dSPascal Brand  are made atomic in order to prevent inconsistencies in case of errors
7998a7ee79dSPascal Brand  during the storage operations. [Slides][LCStorage] describing the
8008a7ee79dSPascal Brand  Secure Storage have been presented at the Linaro Connect SFO15.
8018a7ee79dSPascal Brand
8028a7ee79dSPascal Brand* Change of format of the Trusted Applications: they follow a
8038a7ee79dSPascal Brand  [signed ELF format][elf]
8048a7ee79dSPascal Brand
8058a7ee79dSPascal Brand* Rework thread [synchronization][synchro] in optee_os.
8068a7ee79dSPascal Brand
8078a7ee79dSPascal Brand* Use of ARMv8 native cryptographic support.
8088a7ee79dSPascal Brand
8098a7ee79dSPascal Brand* [OP-TEE/optee_test][optee_test] test suite is released.
8108a7ee79dSPascal Brand
8118a7ee79dSPascal Brand* Introduce [OP-TEE/manifest][manifest] and [OP-TEE/build][build]
8128a7ee79dSPascal Brand  to setup and build QEMU, FVP, HiKey and Mediatek platforms. Setup scripts
8138a7ee79dSPascal Brand  that used to be in optee_os have been removed, except for Juno board.
8148a7ee79dSPascal Brand
81595422146SPascal Brand* [Link][github_commits_1_0_0] to a list of all commits between this and
81695422146SPascal Brand  previous release.
81795422146SPascal Brand
8188a7ee79dSPascal Brand
8198a7ee79dSPascal Brand## Tested on
8208a7ee79dSPascal BrandDefinitions:
8218a7ee79dSPascal Brand
8228a7ee79dSPascal Brand| Type | Meaning |
8238a7ee79dSPascal Brand| ---- | ------- |
8248a7ee79dSPascal Brand| Standard tests | The [optee_test][optee_test] project. |
8258a7ee79dSPascal Brand| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.1.0.4. |
8268a7ee79dSPascal Brand| Hello world test | Plain hello world Trusted Application such as [this][hello_world]. |
8278a7ee79dSPascal Brand
8288a7ee79dSPascal Brand*	ARM Juno Board (vexpress-juno), standard + extended tests.
8298a7ee79dSPascal Brand*	Foundation Models (vexpress-fvp), standard tests.
8308a7ee79dSPascal Brand*	HiKey (hikey), standard + extended tests.
8318a7ee79dSPascal Brand*	MT8173 (mediatek), standard tests.
8328a7ee79dSPascal Brand*	QEMU (vexpress-qemu), standard + extended tests.
8338a7ee79dSPascal Brand*	STM Cannes (stm-cannes), standard + extended tests.
8348a7ee79dSPascal Brand
83595422146SPascal Brand## Known issues
83695422146SPascal Brand* Secure Storage is implemented, but note that anti-rollback protection
83795422146SPascal Brand  is not implemented yet.
83895422146SPascal Brand
83995422146SPascal Brand* Issue(s) open on GitHub
84095422146SPascal Brand  * [#210][pr210]: libteec.so 32-bit does not communicate well
84195422146SPascal Brand    with 64-bit kernel module
84295422146SPascal Brand  * [#296][pr296]: Connecting RPMB to the storage APIs.
84395422146SPascal Brand  * [#493][pr493]: setup_juno_optee: unable to find pre-built binaries
84495422146SPascal Brand  * [#494][pr494]: HiKey: xtest 7671 fails (1.0.0-rc2)
84595422146SPascal Brand
84695422146SPascal Brand[pr210]: https://github.com/OP-TEE/optee_os/issues/210
84795422146SPascal Brand[pr296]: https://github.com/OP-TEE/optee_os/issues/296
84895422146SPascal Brand[pr493]: https://github.com/OP-TEE/optee_os/issues/493
84995422146SPascal Brand[pr494]: https://github.com/OP-TEE/optee_os/issues/494
85095422146SPascal Brand[github_commits_1_0_0]: https://github.com/OP-TEE/optee_os/compare/0.3.0...1.0.0
8518a7ee79dSPascal Brand[DCO]: https://github.com/OP-TEE/optee_os/blob/master/Notice.md#contributions
8528a7ee79dSPascal Brand[LCStorage]: http://www.slideshare.net/linaroorg/sfo15503-secure-storage-in-optee
8538a7ee79dSPascal Brand[synchro]: https://github.com/OP-TEE/optee_os/blob/master/documentation/optee_design.md#4-thread-handling
8548a7ee79dSPascal Brand[elf]: https://github.com/OP-TEE/optee_os/blob/master/documentation/optee_design.md#format
8558a7ee79dSPascal Brand[optee_test]: https://github.com/OP-TEE/optee_test
8568a7ee79dSPascal Brand[manifest]: https://github.com/OP-TEE/manifest
8578a7ee79dSPascal Brand[build]: https://github.com/OP-TEE/build
8588a7ee79dSPascal Brand
85995422146SPascal Brand
86095422146SPascal Brand
86111d59085SPascal Brand# OP-TEE - version 0.3.0
86211d59085SPascal Brand
86311d59085SPascal Brand## New features
86411d59085SPascal Brand
86511d59085SPascal Brand*   Add hardware support for
86611d59085SPascal Brand	*   Mediatek MT8173 Board, ARMv8-A (plat-mediatek)
86711d59085SPascal Brand	*   Hisilicon HiKey Board, ARMv8-A (plat-hikey)
86811d59085SPascal Brand*   AArch64 build of optee_os is now possible through the configuration `CFG_ARM64_core=y`
86911d59085SPascal Brand*	Secure Storage: Data can be encrypted prior to their storage in the non-secure.
87011d59085SPascal Brand	Build is configured using `CFG_ENC_FS=y`
87111d59085SPascal Brand*	A generic boot scheme can be used. Boot configuration is commonalized. This helps
87211d59085SPascal Brand	new board support. It is applied on plat-hikey, plat-vexpress, plat-mediatek, plat-stm
87311d59085SPascal Brand    and plat-vexpress.
87411d59085SPascal Brand
87511d59085SPascal Brand## Tested on
87611d59085SPascal BrandDefinitions:
87711d59085SPascal Brand
87811d59085SPascal Brand| Type | Meaning |
87911d59085SPascal Brand| ---- | ------- |
88011d59085SPascal Brand| Standard tests | The optee_test project. |
88111d59085SPascal Brand| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.1.0.4. |
88211d59085SPascal Brand| Hello world test | Plain hello world Trusted Application such as [this][hello_world]. |
88311d59085SPascal Brand
88411d59085SPascal Brand*	ARM Juno Board (vexpress-juno), standard tests.
88511d59085SPascal Brand*	Foundation Models (vexpress-fvp), standard tests.
88611d59085SPascal Brand*	HiKey (hikey), standard tests.
88711d59085SPascal Brand*	MT8173 (mediatek), standard tests.
88811d59085SPascal Brand*	QEMU (vexpress-qemu), standard + extended tests.
88911d59085SPascal Brand*	STM Cannes (stm-cannes), standard + extended tests.
89011d59085SPascal Brand
89111d59085SPascal Brand-------------------------------------------
89211d59085SPascal Brand
893f5117af2SPascal Brand# OP-TEE - version 0.2.0
894759cc499SJoakim Bech
895f5117af2SPascal Brand## New features
896f5117af2SPascal Brand
897f5117af2SPascal Brand### Linux Driver Refactoring
898f5117af2SPascal Brand
899f5117af2SPascal BrandLinux Driver has been refactored. It is now split in two parts:
900f5117af2SPascal Brand*	optee.ko, the generic Linux driver. It contains all functionality
901f5117af2SPascal Brand	common to all backends.
902f5117af2SPascal Brand*	optee_armtz.ko, a specific backend dedicated to the TrustZone optee.
903f5117af2SPascal Brand	It depends on optee.ko.
904f5117af2SPascal Brand
905f5117af2SPascal BrandLoading the TrustZone optee linux driver module is now performed using
906f5117af2SPascal Brand
907f5117af2SPascal Brand    modprobe optee_armtz
908f5117af2SPascal Brand
909f5117af2SPascal BrandThanks to the dependency between the generic and the backend modules, optee.ko is then automatically loaded.
910f5117af2SPascal Brand
911f5117af2SPascal Brand### Misc new features
912f5117af2SPascal Brand* support PL310 lock down at TEE boot
913f5117af2SPascal Brand* add 64bits support (division / print)
914f5117af2SPascal Brand
915f5117af2SPascal Brand## Tested on
916f5117af2SPascal BrandDefinitions:
917f5117af2SPascal Brand
918f5117af2SPascal Brand| Type | Meaning |
919f5117af2SPascal Brand| ---- | ------- |
920f5117af2SPascal Brand| Standard tests | The optee_test project. |
921f5117af2SPascal Brand| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.1.0.4. |
922f5117af2SPascal Brand| Hello world test | Plain hello world Trusted Application such as [this][hello_world]. |
923f5117af2SPascal Brand
924f5117af2SPascal Brand*   ARM Juno Board (vexpress-juno), standard tests + extended tests.
925f5117af2SPascal Brand
926f5117af2SPascal Brand*   Foundation Models (vexpress-fvp), standard + extended tests.
927f5117af2SPascal Brand
928f5117af2SPascal Brand*   QEMU (vexpress-qemu), standard + extended tests.
929f5117af2SPascal Brand
930f5117af2SPascal Brand*   STM Cannes (stm-cannes), standard + extended tests.
931f5117af2SPascal Brand
932f5117af2SPascal Brand
93328fcee17SJerome Forissier## Issues resolved since last release
934f5117af2SPascal Brand*	Fix user TA trace issue, in order each TA is able to select its own trace level
935f5117af2SPascal Brand
936f5117af2SPascal Brand
937f5117af2SPascal Brand-------------------------------------------
938f5117af2SPascal Brand# OP-TEE - version 0.1.0
939f5117af2SPascal Brand
940f5117af2SPascal Brand## New features
941759cc499SJoakim BechBelow is a summary of the most important features added, but at the end you will
942759cc499SJoakim Bechfind a link that present you all commits between the current and previous
943759cc499SJoakim Bechrelease tag.
944759cc499SJoakim Bech
945759cc499SJoakim Bech*   GlobalPlatform Client API v1.0 support.
946759cc499SJoakim Bech
947759cc499SJoakim Bech*   GlobalPlatform Internal API v1.0 support.
948759cc499SJoakim Bech
949759cc499SJoakim Bech*   GlobalPlatform Secure Elements v1.0 support.
950759cc499SJoakim Bech
951759cc499SJoakim Bech*   Add hardware support for
952759cc499SJoakim Bech
953759cc499SJoakim Bech    *   Allwinner A80, ARMv7-A.
954759cc499SJoakim Bech
955759cc499SJoakim Bech    *   ARM Juno Board, ARMv8-A.
956759cc499SJoakim Bech
957759cc499SJoakim Bech    *   Foundation Models, ARMv8-A.
958759cc499SJoakim Bech
959759cc499SJoakim Bech    *   Fast Models, ARMv8-A.
960759cc499SJoakim Bech
961759cc499SJoakim Bech    *   QEMU, ARMv7-A.
962759cc499SJoakim Bech
963759cc499SJoakim Bech    *   STM Cannes, ARMv7-A.
964759cc499SJoakim Bech
965759cc499SJoakim Bech    *   STM Orly2, ARMv7-A.
966759cc499SJoakim Bech
967759cc499SJoakim Bech*   Add LibTomCrypt as the default software cryptographic library.
968759cc499SJoakim Bech
969759cc499SJoakim Bech*   Add cryptographic abstraction layer in on secure side to ease the use of
970759cc499SJoakim Bech    other cryptographic software libraries or adding support for hardware
971759cc499SJoakim Bech    acceleration.
972759cc499SJoakim Bech
973759cc499SJoakim Bech*   Extended cryptographic API with support for HKDF, Concat KDF and PBKDF2.
974759cc499SJoakim Bech
975759cc499SJoakim Bech*   SHA-1 and SHA-256 ARMv8-A crypto extension implementation.
976759cc499SJoakim Bech
977759cc499SJoakim Bech*   Enabled paging support in OP-TEE OS.
978759cc499SJoakim Bech
979759cc499SJoakim Bech*   Add support for xtest (both standard and extended) in QEMU and FVP setup
980759cc499SJoakim Bech    scripts.
981759cc499SJoakim Bech
982759cc499SJoakim Bech*   Add documentation for the OS design, cryptographic abstraction layer, secure
983759cc499SJoakim Bech    elements design, the build system, GitHub usage, key derivation extensions,
984759cc499SJoakim Bech    ARM-Trusted Firmware usage within OP-TEE and GlobalPlatform usage within
985759cc499SJoakim Bech    OP-TEE.
986759cc499SJoakim Bech
987759cc499SJoakim Bech*   Integrate support for Travis CI.
988759cc499SJoakim Bech
989759cc499SJoakim Bech*   [Link][github_commits_0_1_0] to a list of all commits between this and
990759cc499SJoakim Bech    previous release.
991759cc499SJoakim Bech
992759cc499SJoakim Bech
993f5117af2SPascal Brand## Tested on
994759cc499SJoakim BechDefinitions:
995759cc499SJoakim Bech
996759cc499SJoakim Bech| Type | Meaning |
997759cc499SJoakim Bech| ---- | ------- |
998759cc499SJoakim Bech| Standard tests | The optee_test project. |
999759cc499SJoakim Bech| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.0.0. |
1000759cc499SJoakim Bech| Hello world test | Plain hello world Trusted Application such as [this][hello_world]. |
1001759cc499SJoakim Bech
1002759cc499SJoakim Bech*   Allwinner A80 (plat-sunxi), hello world test.
1003759cc499SJoakim Bech
1004759cc499SJoakim Bech*   ARM Juno Board (vexpress-juno), standard tests.
1005759cc499SJoakim Bech
1006759cc499SJoakim Bech*   Foundation Models (plat-vexpress-fvp), standard + extended tests
1007759cc499SJoakim Bech
1008759cc499SJoakim Bech*   QEMU (plat-vexpress-qemu), standard + extended tests (and Secure Elements
1009759cc499SJoakim Bech    tested separately).
1010759cc499SJoakim Bech
1011759cc499SJoakim Bech*   STM Cannes (plat-stm-cannes), standard + extended tests.
1012759cc499SJoakim Bech
1013759cc499SJoakim Bech
101428fcee17SJerome Forissier## Issues resolved since last release
1015759cc499SJoakim BechN/A since this is the first release tag on OP-TEE.
1016759cc499SJoakim Bech
1017759cc499SJoakim Bech
1018f5117af2SPascal Brand## Known issues
1019759cc499SJoakim Bech*   Storage is implemented, but not "Secure storage", meaning that a client
1020759cc499SJoakim Bech    needs to do encrypt files on their own before storing the files.
1021759cc499SJoakim Bech
1022759cc499SJoakim Bech*   Issue(s) open on GitHub
1023759cc499SJoakim Bech    *   [#95][pr95]: An error about building the test code of libtomcrypt.
1024759cc499SJoakim Bech
1025759cc499SJoakim Bech    *   [#149][pr149]: when testing optee os with arm trusted firmware (I
1026759cc499SJoakim Bech	utilized optee os tee.bin as bl32 image) on juno platform, I got an
1027759cc499SJoakim Bech        error.
1028759cc499SJoakim Bech
1029759cc499SJoakim Bech    *   [#161][pr161]: tee_svc_cryp.c lacks accessibility checks on
1030759cc499SJoakim Bech        user-supplied TEE_Attributes.
1031759cc499SJoakim Bech
1032759cc499SJoakim Bech[hello_world]: https://github.com/jenswi-linaro/lcu14_optee_hello_world
1033759cc499SJoakim Bech[github_commits_0_1_0]: https://github.com/OP-TEE/optee_os/compare/b01047730e77127c23a36591643eeb8bb0487d68...999e4a6c0f64d3177fd3d0db234107b6fb860884
1034759cc499SJoakim Bech[pr95]: https://github.com/OP-TEE/optee_os/issues/95
1035759cc499SJoakim Bech[pr149]: https://github.com/OP-TEE/optee_os/issues/149
1036759cc499SJoakim Bech[pr161]: https://github.com/OP-TEE/optee_os/issues/161
1037759cc499SJoakim Bech
10387583c59eSCedric Chaumont*   Global Platform Device Internal Core API v1.1
10397583c59eSCedric Chaumont    *   [#230][pr230]: Persistent object corruption support (TEE_ERROR_CORRUPT_OBJECT/_2)
10407583c59eSCedric Chaumont    *   [#230][pr230]: Persistent object access support (TEE_ERROR_STORAGE_NOT_AVAILABLE/_2)
1041