xref: /optee_os/CHANGELOG.md (revision 5d8aaa04572e502da656b0ad908125530fa3eec9)
1*5d8aaa04SJerome Forissier# OP-TEE - version 2.5.0
2*5d8aaa04SJerome Forissier
3*5d8aaa04SJerome Forissier[Link][github_commits_2_5_0] to a list of all commits between this release and
4*5d8aaa04SJerome Forissierthe previous one (2.4.0).
5*5d8aaa04SJerome Forissier
6*5d8aaa04SJerome Forissier## New features
7*5d8aaa04SJerome Forissier
8*5d8aaa04SJerome Forissier* New supported platform: i.MX7D ([#1639])
9*5d8aaa04SJerome Forissier* Secure storage: anti-rollback protection for REE FS using RPMB FS ([#1630])
10*5d8aaa04SJerome Forissier* Assign non-secure DDR configuration from DT if CFG_DT=y ([#1623])
11*5d8aaa04SJerome Forissier* Add new image format: split image into three separate binaries suitable for
12*5d8aaa04SJerome Forissier  upcoming ARM Trusted Firmware ([#1589]).
13*5d8aaa04SJerome Forissier* Make alignment check configurable ([#1586])
14*5d8aaa04SJerome Forissier* drivers: add TZC380 driver ([#1578])
15*5d8aaa04SJerome Forissier* plat-imx: PSCI CPU off ([#1577])
16*5d8aaa04SJerome Forissier* 64-bit paging on QEMU v8 and HiKey ([#1575], [#1592])
17*5d8aaa04SJerome Forissier* Benchmark framework ([#1365])
18*5d8aaa04SJerome Forissier* Dump call stack of user TAs on abort ([#1552])
19*5d8aaa04SJerome Forissier* plat-hikey: enable Secure Data Path ([#1440])
20*5d8aaa04SJerome Forissier* Add interface to load and decrypt/authenticate user TAs ([#1513])
21*5d8aaa04SJerome Forissier* plat-ti: add secure paging support ([#1493])
22*5d8aaa04SJerome Forissier* plat-ti: add OTP hardware key support ([#1492])
23*5d8aaa04SJerome Forissier* Support ARM GICv3 ([#1465])
24*5d8aaa04SJerome Forissier
25*5d8aaa04SJerome Forissier## Removed features
26*5d8aaa04SJerome Forissier
27*5d8aaa04SJerome Forissier* stm-orly2 is not supported anymore ([#1650])
28*5d8aaa04SJerome Forissier* Remove secure storage based on SQL FS (`CFG_SQL_FS=y`) ([#1490])
29*5d8aaa04SJerome Forissier* Remove support for mapping user TAs with 1 MiB or 2 MiB granularity
30*5d8aaa04SJerome Forissier  (`CFG_SMALL_PAGE_USER_TA=n`) ([#1559]). TAs are always mapped using small
31*5d8aaa04SJerome Forissier  pages.
32*5d8aaa04SJerome Forissier
33*5d8aaa04SJerome Forissier## Bug fixes
34*5d8aaa04SJerome Forissier
35*5d8aaa04SJerome Forissier* Reduce size of non-pageable code ([#1621])
36*5d8aaa04SJerome Forissier* Ignore `TA_FLAG_MULTI_SESSION` and `TA_FLAG_INSTANCE_KEEP_ALIVE` when
37*5d8aaa04SJerome Forissier  `TA_FLAG_SINGLE_INSTANCE` is not set ([#1574])
38*5d8aaa04SJerome Forissier* libutee: remove buffering for AES GCM (PR#1573) and AES CTR ([#1580])
39*5d8aaa04SJerome Forissier* Fix ROUNDUP()/ROUNDDOWN() macros ([#1519])
40*5d8aaa04SJerome Forissier* Do not touch other bits in GICD_CTLR ([#1508])
41*5d8aaa04SJerome Forissier* Fix build issue with `DEBUG=y` and `CFG_TEE_CORE_LOG_LEVEL=0` ([#1502])
42*5d8aaa04SJerome Forissier* crypto: do not restrict hash size when algorithm is ECDSA ([#1497])
43*5d8aaa04SJerome Forissier
44*5d8aaa04SJerome Forissier## Security fixes or enhancements
45*5d8aaa04SJerome Forissier
46*5d8aaa04SJerome Forissier- crypto: fix RSA key leakage after fault injection attack
47*5d8aaa04SJerome Forissier  ([OP-TEE-2016-0003][OP-TEE-2016-0003])  ([#1610])
48*5d8aaa04SJerome Forissier* crypto: fix RSA key leakage after side channel attack
49*5d8aaa04SJerome Forissier  ([OP-TEE-2016-0002][OP-TEE-2016-0002]) ([#1610])
50*5d8aaa04SJerome Forissier* Make pager aliased pages not always writable ([#1551])
51*5d8aaa04SJerome Forissier* Support for no-exec RO and RW data ([#1459], [#1550])
52*5d8aaa04SJerome Forissier
53*5d8aaa04SJerome Forissier## New issues
54*5d8aaa04SJerome Forissier
55*5d8aaa04SJerome Forissier* armv7: some platform-specific code (`plat_cpu_reset_early()`) overwrites
56*5d8aaa04SJerome ForissierSCTLR bits configured by generic code. This affects alignment checks (`SCTLR.A`)
57*5d8aaa04SJerome Forissierand write-implies-no-exec (`SCTLR.WXN`, `SCTLR.UWXN`), which can therefore not
58*5d8aaa04SJerome Forissierbe configured via the compile-time `CFG_` variables.
59*5d8aaa04SJerome Forissier* armv7: plat-imx: Cortex-A9 cores should enable branch prediction (`SCLTR.Z`)
60*5d8aaa04SJerome Forissierfor improved performance.
61*5d8aaa04SJerome Forissier* [#1656] qemu_armv8a: init hangs when secure data path and pager are both
62*5d8aaa04SJerome Forissier  enabled.
63*5d8aaa04SJerome Forissier
64*5d8aaa04SJerome Forissier## Tested on
65*5d8aaa04SJerome Forissier
66*5d8aaa04SJerome ForissierIn the list below, _standard_ means that the `xtest` program passed with
67*5d8aaa04SJerome Forissierits default configuration, while _extended_ means it was run successfully
68*5d8aaa04SJerome Forissierwith the additional GlobalPlatform™ TEE Initial Configuration Test Suite
69*5d8aaa04SJerome Forissierv1.1.0.4.
70*5d8aaa04SJerome Forissier
71*5d8aaa04SJerome ForissierIf a platform is not listed, it means the release was not tested on this
72*5d8aaa04SJerome Forissierplatform.
73*5d8aaa04SJerome Forissier
74*5d8aaa04SJerome Forissier<!-- ${PLATFORM}-${PLATFORM_FLAVOR}, ordered alphabetically -->
75*5d8aaa04SJerome Forissier* d02: extended
76*5d8aaa04SJerome Forissier* hikey: extended
77*5d8aaa04SJerome Forissier* imx-mx6ulevk: standard
78*5d8aaa04SJerome Forissier* imx-mx6ullevk: standard
79*5d8aaa04SJerome Forissier* imx-mx7dsabresd: standard
80*5d8aaa04SJerome Forissier* ls-ls1021atwr: standard
81*5d8aaa04SJerome Forissier* mediatek-mt8173: standard
82*5d8aaa04SJerome Forissier* rcar-h3: standard
83*5d8aaa04SJerome Forissier* rpi3: standard
84*5d8aaa04SJerome Forissier* stm-b2260: extended
85*5d8aaa04SJerome Forissier* stm-cannes: extended
86*5d8aaa04SJerome Forissier* ti-am43xx: standard
87*5d8aaa04SJerome Forissier* ti-am57xx: standard
88*5d8aaa04SJerome Forissier* ti-dra7xx: standard
89*5d8aaa04SJerome Forissier* vexpress-fvp: standard
90*5d8aaa04SJerome Forissier* vexpress-juno: standard
91*5d8aaa04SJerome Forissier* vexpress-qemu_armv8a: standard
92*5d8aaa04SJerome Forissier* vexpress-qemu_virt: standard
93*5d8aaa04SJerome Forissier
94*5d8aaa04SJerome Forissier[github_commits_2_5_0]: https://github.com/OP-TEE/optee_os/compare/2.4.0...2.5.0-rc1
95*5d8aaa04SJerome Forissier[#1656]: https://github.com/OP-TEE/optee_os/issues/1656
96*5d8aaa04SJerome Forissier[#1650]: https://github.com/OP-TEE/optee_os/pull/1650
97*5d8aaa04SJerome Forissier[#1639]: https://github.com/OP-TEE/optee_os/pull/1639
98*5d8aaa04SJerome Forissier[#1630]: https://github.com/OP-TEE/optee_os/pull/1630
99*5d8aaa04SJerome Forissier[#1623]: https://github.com/OP-TEE/optee_os/pull/1623
100*5d8aaa04SJerome Forissier[#1621]: https://github.com/OP-TEE/optee_os/pull/1621
101*5d8aaa04SJerome Forissier[#1610]: https://github.com/OP-TEE/optee_os/pull/1610
102*5d8aaa04SJerome Forissier[#1592]: https://github.com/OP-TEE/optee_os/pull/1592
103*5d8aaa04SJerome Forissier[#1589]: https://github.com/OP-TEE/optee_os/pull/1589
104*5d8aaa04SJerome Forissier[#1586]: https://github.com/OP-TEE/optee_os/pull/1586
105*5d8aaa04SJerome Forissier[#1580]: https://github.com/OP-TEE/optee_os/pull/1580
106*5d8aaa04SJerome Forissier[#1578]: https://github.com/OP-TEE/optee_os/pull/1578
107*5d8aaa04SJerome Forissier[#1577]: https://github.com/OP-TEE/optee_os/pull/1577
108*5d8aaa04SJerome Forissier[#1574]: https://github.com/OP-TEE/optee_os/pull/1574
109*5d8aaa04SJerome Forissier[#1559]: https://github.com/OP-TEE/optee_os/pull/1559
110*5d8aaa04SJerome Forissier[#1551]: https://github.com/OP-TEE/optee_os/pull/1551
111*5d8aaa04SJerome Forissier[#1550]: https://github.com/OP-TEE/optee_os/pull/1550
112*5d8aaa04SJerome Forissier[#1519]: https://github.com/OP-TEE/optee_os/pull/1519
113*5d8aaa04SJerome Forissier[#1502]: https://github.com/OP-TEE/optee_os/pull/1502
114*5d8aaa04SJerome Forissier[#1365]: https://github.com/OP-TEE/optee_os/pull/1365
115*5d8aaa04SJerome Forissier[#1552]: https://github.com/OP-TEE/optee_os/pull/1552
116*5d8aaa04SJerome Forissier[#1513]: https://github.com/OP-TEE/optee_os/pull/1513
117*5d8aaa04SJerome Forissier[#1508]: https://github.com/OP-TEE/optee_os/pull/1508
118*5d8aaa04SJerome Forissier[#1493]: https://github.com/OP-TEE/optee_os/pull/1493
119*5d8aaa04SJerome Forissier[#1497]: https://github.com/OP-TEE/optee_os/pull/1497
120*5d8aaa04SJerome Forissier[#1492]: https://github.com/OP-TEE/optee_os/pull/1492
121*5d8aaa04SJerome Forissier[#1490]: https://github.com/OP-TEE/optee_os/pull/1490
122*5d8aaa04SJerome Forissier[#1465]: https://github.com/OP-TEE/optee_os/pull/1465
123*5d8aaa04SJerome Forissier[#1459]: https://github.com/OP-TEE/optee_os/pull/1459
124*5d8aaa04SJerome Forissier[#1440]: https://github.com/OP-TEE/optee_os/pull/1440
125*5d8aaa04SJerome Forissier[OP-TEE-2016-0003]: https://www.op-tee.org/security-advisories/
126*5d8aaa04SJerome Forissier[OP-TEE-2016-0002]: https://www.op-tee.org/security-advisories/
127*5d8aaa04SJerome Forissier
128702609a7SJerome Forissier# OP-TEE - version 2.4.0
129702609a7SJerome Forissier
130702609a7SJerome Forissier[Link][github_commits_2_4_0] to a list of all commits between this release and
131702609a7SJerome Forissierthe previous one (2.3.0).
132702609a7SJerome Forissier
133702609a7SJerome ForissierPlease note: this release is API-compatible with the previous one, but the
134702609a7SJerome ForissierSecure Storage internal format for the REE and SQL FS is not compatible due to
135702609a7SJerome Forissiercommits [a238b74][commit_a238b74] ("core: REE FS: use the new hash tree
136702609a7SJerome Forissierinterface") and [44e900e][commit_44e900e] ("core: SQL FS: use the new hash tree
137702609a7SJerome Forissierinterface").
138702609a7SJerome Forissier
139702609a7SJerome Forissier## New features
140702609a7SJerome Forissier
141702609a7SJerome Forissier* Add porting guidelines
142702609a7SJerome Forissier
143702609a7SJerome Forissier* Add support for Secure Data Path which allows Client and Trusted Applications
144702609a7SJerome Forissier  to share references to secure memory
145702609a7SJerome Forissier
146702609a7SJerome Forissier* New supported platform: Texas Instruments AM57xx (`PLATFORM=ti-am57xx`)
147702609a7SJerome Forissier
148702609a7SJerome Forissier* ARMv7-A: add support for platform services in secure monitor and add these
149702609a7SJerome Forissier  services for the DRA7xx platform
150702609a7SJerome Forissier
151702609a7SJerome Forissier* SPI framework and PL022 driver cleanup and improvements
152702609a7SJerome Forissier
153702609a7SJerome Forissier* Use CNTPCT (when available) to add entropy to the software PRNG
154702609a7SJerome Forissier
155702609a7SJerome Forissier* Add GlobalPlatform Socket API for UDP and TCP (IPv4 and IPv6)
156702609a7SJerome Forissier
157702609a7SJerome Forissier* DRA7: add TRNG driver, enable GICv2 driver
158702609a7SJerome Forissier
159702609a7SJerome Forissier* Support load address larger than 4G
160702609a7SJerome Forissier
161702609a7SJerome Forissier* libutee: preserve error code when calling TEE_Panic() for easier
162702609a7SJerome Forissier  troubleshooting
163702609a7SJerome Forissier
164702609a7SJerome Forissier* Support TA profiling with gprof (-pg compiler switch)
165702609a7SJerome Forissier
166702609a7SJerome Forissier* Optimize the ELF loader for TAs when pager is enabled
167702609a7SJerome Forissier
168702609a7SJerome Forissier* Update documentation
169702609a7SJerome Forissier
170702609a7SJerome Forissier* Add paged secure shared memory that can be transferred between TAs as
171702609a7SJerome Forissier  needed
172702609a7SJerome Forissier
173702609a7SJerome Forissier* Introduce MOBJ abstraction
174702609a7SJerome Forissier
175702609a7SJerome Forissier* i.MX6: add PSCI "on" function
176702609a7SJerome Forissier
177702609a7SJerome Forissier* arm32: introduce PSCI framework
178702609a7SJerome Forissier
179702609a7SJerome Forissier## Bug fixes
180702609a7SJerome Forissier
181702609a7SJerome Forissier* Secure storage: improve integrity checking of the REE and SQL filesystems by
182702609a7SJerome Forissier  adding a hash tree on the internal data structures. Any external modification
183702609a7SJerome Forissier  is detected, except full rollback. Fixes [#1188][issue1188].
184702609a7SJerome Forissier
185702609a7SJerome Forissier* The linux driver will set the 'privileged' flag (TEE_GEN_CAP_PRIVILEGED) on
186702609a7SJerome Forissier  the device intended for use by tee-supplicant. Fixes [#1199][issue1199].
187702609a7SJerome Forissier
188702609a7SJerome Forissier* RPMB: don't try to program the RPMB key by default
189702609a7SJerome Forissier
190702609a7SJerome Forissier* Fix "make clean" error cases
191702609a7SJerome Forissier
192702609a7SJerome Forissier* Fix issue when resetting persistent storage enumerator [#1332][issue1332]
193702609a7SJerome Forissier
194702609a7SJerome Forissier* Fix TA panic when doing AES CTS with specific buffer sizes
195702609a7SJerome Forissier  [#1203][issue1203].
196702609a7SJerome Forissier
197702609a7SJerome Forissier## Known issues
198702609a7SJerome Forissier
199702609a7SJerome Forissier* On RPi3 xtest sometimes stall (rcu_sched self-detected stall on CPU) [#1353][issue1353]
200702609a7SJerome Forissier* For multi-core PSCI support is to be added for ls1021atwr in OP-TEE.
201702609a7SJerome Forissier* USB keyboard cannot be used to stop the u-boot timeout ([build issue131]).
202702609a7SJerome Forissier* Travis service (build.git) seems unstable from time to time.
203702609a7SJerome Forissier
204702609a7SJerome Forissier## Tested on
205702609a7SJerome Forissier
206702609a7SJerome ForissierIn the list below, _standard_ means that the `xtest` program passed with
207702609a7SJerome Forissierits default configuration, while _extended_ means it was run successfully
208702609a7SJerome Forissierwith the additional GlobalPlatform™ TEE Initial Configuration Test Suite
209702609a7SJerome Forissierv1.1.0.4.
210702609a7SJerome Forissier
211702609a7SJerome ForissierIf a platform is not listed, it means the release was not tested on this
212702609a7SJerome Forissierplatform.
213702609a7SJerome Forissier
214702609a7SJerome Forissier<!-- ${PLATFORM}-${PLATFORM_FLAVOR}, ordered alphabetically -->
215702609a7SJerome Forissier* d02: extended
216702609a7SJerome Forissier* hikey: extended
217702609a7SJerome Forissier* imx-mx6ulevk: standard
218702609a7SJerome Forissier* ls-ls1021atwr: standard (single core)
219702609a7SJerome Forissier* mediatek-mt8173: standard
220702609a7SJerome Forissier* rcar-h3: standard
221702609a7SJerome Forissier* rpi3: standard
222702609a7SJerome Forissier* stm-b2260: extended
223702609a7SJerome Forissier* ti-dra7xx: standard
224702609a7SJerome Forissier* vexpress-fvp: standard
225702609a7SJerome Forissier* vexpress-juno: standard
226702609a7SJerome Forissier* vexpress-qemu_armv8a: standard
227702609a7SJerome Forissier* vexpress-qemu_virt: standard
228702609a7SJerome Forissier* zynqmp-zc1751_dc1: standard
229702609a7SJerome Forissier* zynqmp-zc1751_dc2: standard
230702609a7SJerome Forissier* zynqmp-zcu102: standard
231702609a7SJerome Forissier
232702609a7SJerome Forissier[github_commits_2_4_0]: https://github.com/OP-TEE/optee_os/compare/2.3.0...2.4.0
233702609a7SJerome Forissier[issue1332]: https://github.com/OP-TEE/optee_os/issues/1332
234702609a7SJerome Forissier[issue1353]: https://github.com/OP-TEE/optee_os/issues/1353
235702609a7SJerome Forissier[build issue131]: https://github.com/OP-TEE/build/issues/131
236702609a7SJerome Forissier[commit_a238b74]: https://github.com/OP-TEE/optee_os/commit/a238b744b1b3
237702609a7SJerome Forissier[commit_44e900e]: https://github.com/OP-TEE/optee_os/commit/44e900eabfc1
238702609a7SJerome Forissier
23928fcee17SJerome Forissier# OP-TEE - version 2.3.0
24028fcee17SJerome Forissier
24128fcee17SJerome Forissier[Link][github_commits_2_3_0] to a list of all commits between this release and
24228fcee17SJerome Forissierthe previous one (2.2.0).
24328fcee17SJerome Forissier
24428fcee17SJerome ForissierPlease note: this release is API-compatible with the previous one, but the
24528fcee17SJerome ForissierSecure Storage internal format for the REE FS is not compatible due to commit
24628fcee17SJerome Forissier[361fb3e][commit_361fb3e] ("core: REE FS: use a single file per object").
24728fcee17SJerome Forissier
24828fcee17SJerome Forissier[commit_361fb3e]: https://github.com/OP-TEE/optee_os/commit/361fb3e
24928fcee17SJerome Forissier
25028fcee17SJerome Forissier## New features
25128fcee17SJerome Forissier
25228fcee17SJerome Forissier* New supported platform: Xilinx Zynq 7000 ZC702 (`PLATFORM=zynq7k-zc702`)
25328fcee17SJerome Forissier
25428fcee17SJerome Forissier* Add debug assertions to spinlocks and mutexes
25528fcee17SJerome Forissier
25628fcee17SJerome Forissier* Add more CP15 register access macros for Cortex-A9
25728fcee17SJerome Forissier
25828fcee17SJerome Forissier* ARMv7-A: redesign secure monitor to make it easier to register services
25928fcee17SJerome Forissier
26028fcee17SJerome Forissier* ARMv7-A: cleanup boot arguments
26128fcee17SJerome Forissier
26228fcee17SJerome Forissier* libutee: extend `TEE_CheckMemoryAccessRights()` with
26328fcee17SJerome Forissier  `TEE_MEMORY_ACCESS_SECURE` and `TEE_MEMORY_ACCESS_NONSECURE`
26428fcee17SJerome Forissier
26528fcee17SJerome Forissier* plat-hikey: enable SPI by default and add sample test code
26628fcee17SJerome Forissier
26728fcee17SJerome Forissier* Consider `CFLAGS_ta_arm64` and `CFLAGS_ta_arm32` when building TAs
26828fcee17SJerome Forissier
26928fcee17SJerome Forissier* Secure storage refactoring
27028fcee17SJerome Forissier  - Simplify interface with tee-supplicant. Minimize round trips with normal
27128fcee17SJerome Forissier    world, especially by adding a cache for FS RPC payload data.
27228fcee17SJerome Forissier  - REE FS: use a single file per object, remove block cache.
27328fcee17SJerome Forissier
27428fcee17SJerome Forissier* Print call stack in panic()
27528fcee17SJerome Forissier
27628fcee17SJerome Forissier## Bug fixes
27728fcee17SJerome Forissier
27828fcee17SJerome Forissier* Fix UUID encoding when communicating with normal world (use big endian
27928fcee17SJerome Forissier  mode instead of native endianness). Related to this, the string format
28028fcee17SJerome Forissier  for UUIDs has changed in tee-supplicant, so that TA file names now follow
28128fcee17SJerome Forissier  the format defined in RFC4122 (a missing hyphen was added). The old format
28228fcee17SJerome Forissier  is still supported, but deprecated, and will likely be removed with the
28328fcee17SJerome Forissier  next major release.
28428fcee17SJerome Forissier
28528fcee17SJerome Forissier* Drop write permission to non-writable ELF segments after TA loading is
28628fcee17SJerome Forissier  complete.
28728fcee17SJerome Forissier
28828fcee17SJerome Forissier* mm: fix confusing memory mapping debug traces
28928fcee17SJerome Forissier
29028fcee17SJerome Forissier* plat-ti: fix issues with MMU mapping
29128fcee17SJerome Forissier
29228fcee17SJerome Forissier* crypto: fix clearing of big numbers
29328fcee17SJerome Forissier
29428fcee17SJerome Forissier* build: allow spaces and double quotes in CFG_ variables
29528fcee17SJerome Forissier
29628fcee17SJerome Forissier* mm: use paddr_t to support both 32- and 64-bit architectures properly.
29728fcee17SJerome Forissier  Resolves 32-bit truncation error when pool is at top of 32 bit address
29828fcee17SJerome Forissier  space on 64-bit architecture.
29928fcee17SJerome Forissier
30028fcee17SJerome Forissier* plat-stm: support pager. Fix pager on ARMv7-A SMP boards.
30128fcee17SJerome Forissier
30228fcee17SJerome Forissier* Fix debug output of Trusted Applications (remove "ERROR: TEE-CORE:" prefix)
30328fcee17SJerome Forissier
30428fcee17SJerome Forissier* Do not consider TA memref parameters as TA private memory
30528fcee17SJerome Forissier
30628fcee17SJerome Forissier* crypto: fix `cipher_final()` which would not call `cbc_done()` for CBC_MAC
30728fcee17SJerome Forissier  algorithms
30828fcee17SJerome Forissier
30928fcee17SJerome Forissier* fix for 16-way PL310
31028fcee17SJerome Forissier
31128fcee17SJerome Forissier* arm32: fix call stack unwinding (`print_stack()`)
31228fcee17SJerome Forissier
31328fcee17SJerome Forissier* arm32: fix spinlock assembly code
31428fcee17SJerome Forissier
31528fcee17SJerome Forissier* plat-stm, plat-imx: fix SCR initalization
31628fcee17SJerome Forissier
31728fcee17SJerome Forissier* Fix user L1 MMU entries calculation (non-LPAE), allowing TTBCR.N values
31828fcee17SJerome Forissier  other than 7.
31928fcee17SJerome Forissier
32028fcee17SJerome Forissier* mtk-mt8173: fix panic caused by incorrect size of SHMEM
32128fcee17SJerome Forissier
32228fcee17SJerome Forissier* plat-stm: fix RNG driver (non-flat mapping)
32328fcee17SJerome Forissier
32428fcee17SJerome Forissier## Known issues
32528fcee17SJerome Forissier
32628fcee17SJerome Forissier* New issues open on GitHub
32728fcee17SJerome Forissier  * [#1203][issue1203] AES-CTS mode will fail when inlen=0x100, in_incr=0x80
32828fcee17SJerome Forissier  * [#1199][issue1199] Both tee and teepriv reported GlobalPlatform compliant
32928fcee17SJerome Forissier  * [#1188][issue1188] Secure storage (SQL FS and REE FS): blocks not tied to
33028fcee17SJerome Forissier    current meta header
33128fcee17SJerome Forissier  * [#1172][issue1172] paddr_t should be larger than 32 bits when
33228fcee17SJerome Forissier    CFG_WITH_LPAE is enabled
33328fcee17SJerome Forissier
33428fcee17SJerome Forissier## Tested on
33528fcee17SJerome Forissier
33628fcee17SJerome ForissierIn the list below, _standard_ means that the `xtest` program passed with
33728fcee17SJerome Forissierits default configuration, while _extended_ means it was run successfully
33828fcee17SJerome Forissierwith the additional GlobalPlatform™ TEE Initial Configuration Test Suite
33928fcee17SJerome Forissierv1.1.0.4.
34028fcee17SJerome Forissier
34128fcee17SJerome ForissierIf a platform is not listed, it means the release was not tested on this
34228fcee17SJerome Forissierplatform.
34328fcee17SJerome Forissier
34428fcee17SJerome Forissier<!-- ${PLATFORM}-${PLATFORM_FLAVOR}, ordered alphabetically -->
34528fcee17SJerome Forissier* d02: extended
34628fcee17SJerome Forissier* hikey: extended
34728fcee17SJerome Forissier* imx-mx6ulevk: standard
34828fcee17SJerome Forissier* ls-ls1021atwr: standard
34928fcee17SJerome Forissier* mediatek-mt8173: standard
35028fcee17SJerome Forissier* rcar-h3: standard
35128fcee17SJerome Forissier* rpi3: standard
35228fcee17SJerome Forissier* stm-b2260: extended
35328fcee17SJerome Forissier* stm-cannes: extended
35428fcee17SJerome Forissier* ti-dra7xx: standard
35528fcee17SJerome Forissier* vexpress-fvp: standard
35628fcee17SJerome Forissier* vexpress-juno: standard
35728fcee17SJerome Forissier* vexpress-qemu_armv8a: standard
35828fcee17SJerome Forissier* vexpress-qemu_virt: extended
35928fcee17SJerome Forissier* zynqmp-zcu102: standard
36028fcee17SJerome Forissier
36128fcee17SJerome Forissier[github_commits_2_3_0]: https://github.com/OP-TEE/optee_os/compare/2.2.0...2.3.0
36228fcee17SJerome Forissier[issue1172]: https://github.com/OP-TEE/optee_os/issues/1172
36328fcee17SJerome Forissier[issue1188]: https://github.com/OP-TEE/optee_os/issues/1188
36428fcee17SJerome Forissier[issue1199]: https://github.com/OP-TEE/optee_os/issues/1199
36528fcee17SJerome Forissier[issue1203]: https://github.com/OP-TEE/optee_os/issues/1203
36628fcee17SJerome Forissier
367c0c5d399SJerome Forissier# OP-TEE - version 2.2.0
368c0c5d399SJerome Forissier
369c0c5d399SJerome Forissier[Link][github_commits_2_2_0] to a list of all commits between this release and
370c0c5d399SJerome Forissierthe previous one (2.1.0).
371c0c5d399SJerome Forissier
372c0c5d399SJerome ForissierPlease note: this release is API-compatible with the previous one, but the
373c0c5d399SJerome ForissierSecure Storage internal format is not compatible due to commit
374c0c5d399SJerome Forissier[fde4a75][commit_fde4a75] ("storage: encrypt the FEK with a TA-specific key").
375c0c5d399SJerome Forissier
376c0c5d399SJerome Forissier[commit_fde4a75]: https://github.com/OP-TEE/optee_os/commit/fde4a75
377c0c5d399SJerome Forissier
378c0c5d399SJerome Forissier## New features
379c0c5d399SJerome Forissier
380c0c5d399SJerome Forissier* New supported platforms:
381c0c5d399SJerome Forissier	* Freescale i.MX6 Quad SABRE Lite & SD
382c0c5d399SJerome Forissier	* HiSilicon D02
383c0c5d399SJerome Forissier	* Raspberry Pi3
384c0c5d399SJerome Forissier	* Renesas RCAR H3
385c0c5d399SJerome Forissier	* STMicroelectronics b2260 - h410
386c0c5d399SJerome Forissier
387c0c5d399SJerome Forissier* Pager: Support paging of read/write pages by encrypting them with AES-GCM.
388c0c5d399SJerome Forissier  Support paging of user TAs. Add global setting for TZSRAM size
389c0c5d399SJerome Forissier  (CFG_CORE_TZSRAM_EMUL_SIZE), defaults to 300K.
390c0c5d399SJerome Forissier
391c0c5d399SJerome Forissier* Support for more than 8 CPU cores
392c0c5d399SJerome Forissier
393c0c5d399SJerome Forissier* Added SPI framework and PL022 driver
394c0c5d399SJerome Forissier
395c0c5d399SJerome Forissier* GPIO: framework supports multiple instances, PL061 driver now has get/set
396c0c5d399SJerome Forissier  interrupt and mode control functions
397c0c5d399SJerome Forissier
398c0c5d399SJerome Forissier* Secure storage: Encrypt the File Encryption Key with a TA-specific key for
399c0c5d399SJerome Forissier  better TA isolation. Add build-time and run-time support for multiple storage
400c0c5d399SJerome Forissier  backends. Add SQLite backend.
401c0c5d399SJerome Forissier
402c0c5d399SJerome Forissier* Trusted User Interface: some code is introduced to support the implementation
403c0c5d399SJerome Forissier  of TUI. This includes: a generic framebuffer driver, display and serial
404c0c5d399SJerome Forissier  abstractions, and drivers for PL111 (LCD) / PL050 (KMI) / TZC400 and PS2
405c0c5d399SJerome Forissier  mouse.
406c0c5d399SJerome Forissier
407c0c5d399SJerome Forissier* AES acceleration using ARMv8-A Cryptographic Extensions instructions is
408c0c5d399SJerome Forissier  now supported in AArch32 mode
409c0c5d399SJerome Forissier
410c0c5d399SJerome Forissier* Add support for GCC flags: -fsanitize=undefined and -fsanitize=kernel-address
411c0c5d399SJerome Forissier
412c0c5d399SJerome Forissier* Use a global setting for core heap size (CFG_CORE_HEAP_SIZE), 64K by default.
413c0c5d399SJerome Forissier
414c0c5d399SJerome Forissier* Add macros to unwind and print the call stack of TEE core
415c0c5d399SJerome Forissier
416c0c5d399SJerome Forissier* Libtomcrypt: sync with the latest `develop` branch.
417c0c5d399SJerome Forissier
418c0c5d399SJerome Forissier* The Trusted Application SDK (ta_dev_kit.mk) can produce libraries (.a)
419c0c5d399SJerome Forissier
420c0c5d399SJerome Forissier* Rework assertions and TEE core panics and properly honor NDEBUG
421c0c5d399SJerome Forissier
422c0c5d399SJerome Forissier## Bug fixes
423c0c5d399SJerome Forissier
424c0c5d399SJerome Forissier* Fix incorrect algorithm passed to cipher.final()
425c0c5d399SJerome Forissier
426c0c5d399SJerome Forissier* scripts: support Python 2.x and 3.x
427c0c5d399SJerome Forissier
428c0c5d399SJerome Forissier* Secure storage: Add proper locking to support concurrent access. Fix sign
429c0c5d399SJerome Forissier  extension bug with offset parameter of syscall storage_obj_seek which could
430c0c5d399SJerome Forissier  cause errors in Aarch32 mode. Fix reading beyond end of file.
431c0c5d399SJerome Forissier
432c0c5d399SJerome Forissier* Aarch64: mask all maskable exceptions before doing a normal return from call.
433c0c5d399SJerome Forissier
434c0c5d399SJerome Forissier* Device Tree: add no-map property to OP-TEE node in reserved-memory.
435c0c5d399SJerome Forissier
436c0c5d399SJerome Forissier* LibTomcrypt: fix CVE-2016-6129
437c0c5d399SJerome Forissier
438c0c5d399SJerome Forissier## Known issues
439c0c5d399SJerome Forissier
440c0c5d399SJerome Forissier* New issues open on GitHub
441c0c5d399SJerome Forissier  * [#1093][issue1093] rcar-h3: xtest 6010 hangs
442c0c5d399SJerome Forissier  * [#1092][issue1092] rcar-h3: xtest 4010 fails
443c0c5d399SJerome Forissier  * [#1081][issue1081] Bad mapping of TA secure memref parameters
444c0c5d399SJerome Forissier  * [#1071][issue1071] __data_end may not correctly represent text start position when using CFG_WITH_PAGER
445c0c5d399SJerome Forissier  * [#1069][issue1069] armv7/Aarch32: crash in stack unwind (DPRINT_STACK())
446c0c5d399SJerome Forissier
447c0c5d399SJerome Forissier## Tested on
448c0c5d399SJerome Forissier
449c0c5d399SJerome ForissierIn the list below, _standard_ means that the `xtest` program passed with
450c0c5d399SJerome Forissierits default configuration, while _extended_ means it was run successfully
451c0c5d399SJerome Forissierwith the additional GlobalPlatform™ TEE Initial Configuration Test Suite
452c0c5d399SJerome Forissierv1.1.0.4.
453c0c5d399SJerome Forissier
454c0c5d399SJerome ForissierIf a platform is not listed, it means the release was not tested on this
455c0c5d399SJerome Forissierplatform.
456c0c5d399SJerome Forissier
457c0c5d399SJerome Forissier<!-- ${PLATFORM}-${PLATFORM_FLAVOR}, ordered alphabetically -->
458c0c5d399SJerome Forissier* d02: extended
459c0c5d399SJerome Forissier* hikey: extended
460c0c5d399SJerome Forissier* imx-mx6qsabrelite: standard
461c0c5d399SJerome Forissier* imx-mx6qsabresd: standard
462c0c5d399SJerome Forissier* rcar-h3: standard, pass except issues [#1092][issue1092] and [#1093][issue1093]
463c0c5d399SJerome Forissier* rpi3: standard
464c0c5d399SJerome Forissier* stm-b2260: standard
465c0c5d399SJerome Forissier* stm-cannes: standard
466c0c5d399SJerome Forissier* ti-dra7xx: standard
467c0c5d399SJerome Forissier* vexpress-fvp: standard
468c0c5d399SJerome Forissier* vexpress-juno: standard
469c0c5d399SJerome Forissier* vexpress-qemu_armv8a: standard
470c0c5d399SJerome Forissier* vexpress-qemu_virt: extended
471c0c5d399SJerome Forissier* zynqmp-zcu102: standard
472c0c5d399SJerome Forissier
473c0c5d399SJerome Forissier[github_commits_2_2_0]: https://github.com/OP-TEE/optee_os/compare/2.1.0...2.2.0
474c0c5d399SJerome Forissier[issue1081]: https://github.com/OP-TEE/optee_os/issues/1081
475c0c5d399SJerome Forissier[issue1071]: https://github.com/OP-TEE/optee_os/issues/1071
476c0c5d399SJerome Forissier[issue1069]: https://github.com/OP-TEE/optee_os/issues/1069
477c0c5d399SJerome Forissier[issue1092]: https://github.com/OP-TEE/optee_os/issues/1092
478c0c5d399SJerome Forissier[issue1093]: https://github.com/OP-TEE/optee_os/issues/1093
479c0c5d399SJerome Forissier
480ac3cc110SPascal Brand# OP-TEE - version 2.1.0
481a0cd5d60SPascal Brand
482ac3cc110SPascal Brand## New features
483ac3cc110SPascal Brand
484ac3cc110SPascal Brand* New supported platforms:
485ac3cc110SPascal Brand	* Xilinx Zynq UltraScale+ MPSOC
486ac3cc110SPascal Brand	* Spreadtrum SC9860
487ac3cc110SPascal Brand
488ac3cc110SPascal Brand* GCC5 support
489ac3cc110SPascal Brand
490ac3cc110SPascal Brand* Non Linear Mapping support: In OP-TEE kernel mode, the physical to virtual
491ac3cc110SPascal Brand  addresses was linear until this release, meaning the virtual addresses
492ac3cc110SPascal Brand  were equal to the physical addresses. This is no more the case in this
493ac3cc110SPascal Brand  release.
494ac3cc110SPascal Brand
495ac3cc110SPascal Brand* Font rendering routines have been introduced in order to ease an
496ac3cc110SPascal Brand  implementation of Trusted UI.
497ac3cc110SPascal Brand
498ac3cc110SPascal Brand* File Storage: Possibility to use the normal world filesystem and the RPMB
499ac3cc110SPascal Brand  implementations simultaneously.
500ac3cc110SPascal Brand
501ac3cc110SPascal Brand* AOSP: There is a [local manifest][aosp_local_manifest] to build OP-TEE into an AOSP build, running on HiKey.
502ac3cc110SPascal Brand  Please refer to the README in that repo for instructions.
503ac3cc110SPascal Brand
504ac3cc110SPascal Brand* OpenEmbedded: In addition to the makefile-based build described in the optee_os README, there is an
505ac3cc110SPascal Brand  [OpenEmbedded-based build][oe_build] that supports Qemu (32-bit), FVP (64-bit), and HiKey (64-bit).
506ac3cc110SPascal Brand  Please refer to the README in that repo for instructions.
507ac3cc110SPascal Brand
508ac3cc110SPascal Brand* [Link][github_commits_2_1_0] to a list of all commits between this and
509ac3cc110SPascal Brand  previous release.
510ac3cc110SPascal Brand
511ac3cc110SPascal Brand
512ac3cc110SPascal Brand## Tested on
513ac3cc110SPascal BrandDefinitions:
514ac3cc110SPascal Brand
515ac3cc110SPascal Brand| Type | Meaning |
516ac3cc110SPascal Brand| ---- | ------- |
517ac3cc110SPascal Brand| Standard tests | The [optee_test][optee_test] project. |
518ac3cc110SPascal Brand| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.1.0.4. |
519ac3cc110SPascal Brand
520ac3cc110SPascal Brand*	ARM Juno Board (vexpress-juno), standard.
521ac3cc110SPascal Brand*	Foundation Models (vexpress-fvp), standard tests + extended tests,
522ac3cc110SPascal Brand	using FVP ARM V8 Foundation Platformr0p0 (platform build 10.0.37)
523ac3cc110SPascal Brand*	FSL i.MX6 UltraLite EVK (imx), standard.
524ac3cc110SPascal Brand*	FSL ls1021a (ls-ls1021atwr), standard tests.
525ac3cc110SPascal Brand*	HiKey (hikey), standard + extended tests.
526ac3cc110SPascal Brand*	QEMU (vexpress-qemu), standard + extended tests.
527ac3cc110SPascal Brand*	Xilinx Zynq UltraScale+ MPSOC, standard tests
528ac3cc110SPascal Brand
529ac3cc110SPascal BrandNote that the following platform has not been tested:
530ac3cc110SPascal Brand*	MTK8173-EVB (mediatek-mt8173)
531ac3cc110SPascal Brand
532ac3cc110SPascal Brand
533ac3cc110SPascal Brand## Known issues
534ac3cc110SPascal Brand* Issue(s) open on GitHub
535ac3cc110SPascal Brand  * [#868][pr868]: python-wand font generation sometimes times out
536ac3cc110SPascal Brand  * [#863][pr863]: "double free or corruption" error when building optee_os
537ac3cc110SPascal Brand  * [#858][pr858]: UUIDs in binary format have wrong endinanness
538ac3cc110SPascal Brand  * [#857][pr857]: Formatting of UUIDs is incorrect
539ac3cc110SPascal Brand  * [#847][pr847]: optee_os panic(TEE-CORE: Assertion)
540ac3cc110SPascal Brand  * [#838][pr838]: TUI font rendering is _very_ slow
541ac3cc110SPascal Brand  * [#814][pr814]: Persistent objects : save informations after close
542ac3cc110SPascal Brand  * [#665][pr665]: xtest 1013 stalled on HiKey when log levels are 4 and optee_os is on its own UART
543ac3cc110SPascal Brand  * [#506][pr506]: tee-supplicant panic & ta panic
544ac3cc110SPascal Brand
545ac3cc110SPascal Brand[github_commits_2_1_0]: https://github.com/OP-TEE/optee_os/compare/2.0.0...2.1.0
546ac3cc110SPascal Brand[pr868]: https://github.com/OP-TEE/optee_os/issues/868
547ac3cc110SPascal Brand[pr863]: https://github.com/OP-TEE/optee_os/issues/863
548ac3cc110SPascal Brand[pr858]: https://github.com/OP-TEE/optee_os/issues/858
549ac3cc110SPascal Brand[pr857]: https://github.com/OP-TEE/optee_os/issues/857
550ac3cc110SPascal Brand[pr847]: https://github.com/OP-TEE/optee_os/issues/847
551ac3cc110SPascal Brand[pr838]: https://github.com/OP-TEE/optee_os/issues/838
552ac3cc110SPascal Brand[pr814]: https://github.com/OP-TEE/optee_os/issues/814
553ac3cc110SPascal Brand[pr665]: https://github.com/OP-TEE/optee_os/issues/665
554ac3cc110SPascal Brand[aosp_local_manifest]: https://github.com/linaro-swg/optee_android_manifest
555ac3cc110SPascal Brand[oe_build]: https://github.com/linaro-swg/oe-optee
556ac3cc110SPascal Brand
557ac3cc110SPascal Brand# OP-TEE - version 2.0.0
558a0cd5d60SPascal Brand
559a0cd5d60SPascal Brand## New features
560a0cd5d60SPascal Brand
561a0cd5d60SPascal Brand* Generic driver: A new generic TEE driver is in the process of being
562a0cd5d60SPascal Brand  [upstreamed][gendrv_v9].
563a0cd5d60SPascal Brand  In this release, [OP-TEE/optee_linuxdriver][optee_linuxdriver] is no more used.
564a0cd5d60SPascal Brand  Instead, linux v4.5 is being patched using the proposed Generic TEE Driver,
565a0cd5d60SPascal Brand  as it can be found in [https://github.com/linaro-swg/linux/tree/optee][linux_optee]
566a0cd5d60SPascal Brand
567a0cd5d60SPascal Brand* RPMB support: Secure Storage can now use Replay Protected Memory Block (RPMB) partition
568a0cd5d60SPascal Brand  of an eMMC device. Check the [full documentation][rpmb_doc]
569a0cd5d60SPascal Brand
570a0cd5d60SPascal Brand* Hard-float ABI is now available.
571a0cd5d60SPascal Brand
572a0cd5d60SPascal Brand* [Link][github_commits_2_0_0] to a list of all commits between this and
573a0cd5d60SPascal Brand  previous release.
574a0cd5d60SPascal Brand
575a0cd5d60SPascal Brand
576a0cd5d60SPascal Brand## Tested on
577a0cd5d60SPascal BrandDefinitions:
578a0cd5d60SPascal Brand
579a0cd5d60SPascal Brand| Type | Meaning |
580a0cd5d60SPascal Brand| ---- | ------- |
581a0cd5d60SPascal Brand| Standard tests | The [optee_test][optee_test] project. |
582a0cd5d60SPascal Brand| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.1.0.4. |
583a0cd5d60SPascal Brand
584a0cd5d60SPascal Brand*	ARM Juno Board (vexpress-juno), standard.
585a0cd5d60SPascal Brand*	Foundation Models (vexpress-fvp), standard tests + extended tests,
586a0cd5d60SPascal Brand	using FVP ARM V8 Foundation Platformr0p0 (platform build 9.5.40)
587eb00c7b9SPascal Brand*	FSL ls1021a (ls-ls1021atwr), standard.
588a0cd5d60SPascal Brand*	HiKey (hikey), standard.
589a0cd5d60SPascal Brand*	MTK8173-EVB (mediatek-mt8173), standard.
590a0cd5d60SPascal Brand*	QEMU (vexpress-qemu), standard + extended tests.
591a0cd5d60SPascal Brand*	STM Cannes (stm-cannes), standard + extended tests.
592a0cd5d60SPascal Brand
593a0cd5d60SPascal Brand## Known issues
594a0cd5d60SPascal Brand* Issue(s) open on GitHub
595a0cd5d60SPascal Brand  * [#40][prld40] BUG_ON() when re-using RPC buffer to tee-supplicant
596a0cd5d60SPascal Brand  * [#506][pr506]: tee-supplicant panic & ta panic
597a0cd5d60SPascal Brand
598a0cd5d60SPascal Brand[github_commits_2_0_0]: https://github.com/OP-TEE/optee_os/compare/1.1.0...2.0.0
599a0cd5d60SPascal Brand[rpmb_doc]: https://github.com/OP-TEE/optee_os/blob/master/documentation/secure_storage_rpmb.md
600a0cd5d60SPascal Brand[optee_linuxdriver]: https://github.com/OP-TEE/optee_linuxdriver
601a0cd5d60SPascal Brand[gendrv_v9]: https://lkml.org/lkml/2016/4/1/205
602a0cd5d60SPascal Brand[linux_optee]: https://github.com/linaro-swg/linux/tree/optee
603a0cd5d60SPascal Brand
604a0cd5d60SPascal Brand
605c5bbfb4dSPascal Brand# OP-TEE - version 1.1.0
606c5bbfb4dSPascal Brand
607c5bbfb4dSPascal Brand
608c5bbfb4dSPascal Brand## New features
609c5bbfb4dSPascal Brand
610c5bbfb4dSPascal Brand* Softfloat library: floating point support is now available in 32bits TA.
611c5bbfb4dSPascal Brand
612c5bbfb4dSPascal Brand* Support running 64-bits TA: on ARMv8-A platform, TA can be compiled in
613c5bbfb4dSPascal Brand  AArch32 and/or in AArch64 in case the core is compiled in AArch64.
614c5bbfb4dSPascal Brand  An example can be found in HiKey configuration file. Using the following
615c5bbfb4dSPascal Brand  excerpt code, the user TA libraries are compiled in both AArch32 and
616c5bbfb4dSPascal Brand  AArch64, and can be found in `out/arm-plat-hikey/export-ta_arm32` and
617c5bbfb4dSPascal Brand  `out/arm-plat-hikey/export-ta_arm64`
618c5bbfb4dSPascal Brand
619c5bbfb4dSPascal Brand```
620c5bbfb4dSPascal Brand    ta-targets = ta_arm32
621c5bbfb4dSPascal Brand    ta-targets += ta_arm64
622c5bbfb4dSPascal Brand```
623c5bbfb4dSPascal Brand
624c5bbfb4dSPascal Brand* Concurrent TA support: multiple TA can run in parallel on
625c5bbfb4dSPascal Brand  several cores.
626c5bbfb4dSPascal Brand
627c5bbfb4dSPascal Brand* New tests added in xtest test suite: concurrent TA (xtest 1013),
628c5bbfb4dSPascal Brand  floating point tests (xtest 1006 and os_test TA) and corruption
629c5bbfb4dSPascal Brand  file storage (xtest 20000)
630c5bbfb4dSPascal Brand
631c5bbfb4dSPascal Brand* [Link][github_commits_1_1_0] to a list of all commits between this and
632c5bbfb4dSPascal Brand  previous release.
633c5bbfb4dSPascal Brand
634c5bbfb4dSPascal Brand
635c5bbfb4dSPascal Brand## Tested on
636c5bbfb4dSPascal BrandDefinitions:
637c5bbfb4dSPascal Brand
638c5bbfb4dSPascal Brand| Type | Meaning |
639c5bbfb4dSPascal Brand| ---- | ------- |
640c5bbfb4dSPascal Brand| Standard tests | The [optee_test][optee_test] project. |
641c5bbfb4dSPascal Brand| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.1.0.4. |
642c5bbfb4dSPascal Brand| Hello world test | Plain hello world Trusted Application such as [this][hello_world]. |
643c5bbfb4dSPascal Brand
644c5bbfb4dSPascal Brand*	Foundation Models (vexpress-fvp), standard tests + extended tests,
645c5bbfb4dSPascal Brand	using FVP ARM V8 Foundation Platformr0p0 (platform build 9.5.40)
646c5bbfb4dSPascal Brand*	HiKey (hikey), standard + extended tests.
647c5bbfb4dSPascal Brand*	MT8173 (mediatek), standard tests.
648c5bbfb4dSPascal Brand*	QEMU (vexpress-qemu), standard + extended tests.
649c5bbfb4dSPascal Brand*	STM Cannes (stm-cannes), standard + extended tests.
650c5bbfb4dSPascal Brand
651c5bbfb4dSPascal Brand## Known issues
652c5bbfb4dSPascal Brand* Secure Storage is implemented, but note that anti-rollback protection
653c5bbfb4dSPascal Brand  is not implemented yet.
654c5bbfb4dSPascal Brand
655c5bbfb4dSPascal Brand* Issue(s) open on GitHub
656c5bbfb4dSPascal Brand  * [#40][prld40] BUG_ON() when re-using RPC buffer to tee-supplicant
657c5bbfb4dSPascal Brand  * [#296][pr296]: Connecting RPMB to the storage APIs.
658c5bbfb4dSPascal Brand  * [#493][pr493]: setup_juno_optee: unable to find pre-built binaries
659c5bbfb4dSPascal Brand  * [#506][pr506]: tee-supplicant panic & ta panic
660c5bbfb4dSPascal Brand
661c5bbfb4dSPascal Brand[prld40]: https://github.com/OP-TEE/optee_linuxdriver/issues/40
662c5bbfb4dSPascal Brand[pr506]: https://github.com/OP-TEE/optee_os/issues/506
663c5bbfb4dSPascal Brand[github_commits_1_1_0]: https://github.com/OP-TEE/optee_os/compare/1.0.1...1.1.0
664c5bbfb4dSPascal Brand
665c5bbfb4dSPascal Brand
666c5bbfb4dSPascal Brand
6678a7ee79dSPascal Brand# OP-TEE - version 1.0.0
6688a7ee79dSPascal Brand
6698a7ee79dSPascal BrandOP-TEE is now maintained by Linaro. Contributors do not need to
6708a7ee79dSPascal Brandsign a CLA anymore, but must follow the rules of the [DCO][DCO]
6718a7ee79dSPascal Brand(Developer Certificate of Origin) instead.
6728a7ee79dSPascal Brand
6738a7ee79dSPascal Brand
6748a7ee79dSPascal Brand## New features
6758a7ee79dSPascal Brand
6768a7ee79dSPascal Brand* Add hardware support for Texas Instruments DRA7xx, ARMv7 (plat-ti)
6778a7ee79dSPascal Brand
6788a7ee79dSPascal Brand* GlobalPlatform™ TEE Internal Core API Specification v1.1,
6798a7ee79dSPascal Brand  including ECC algorithms.
6808a7ee79dSPascal Brand
6818a7ee79dSPascal Brand* Secure Storage: Files stored by the REE are now encrypted. Operations
6828a7ee79dSPascal Brand  are made atomic in order to prevent inconsistencies in case of errors
6838a7ee79dSPascal Brand  during the storage operations. [Slides][LCStorage] describing the
6848a7ee79dSPascal Brand  Secure Storage have been presented at the Linaro Connect SFO15.
6858a7ee79dSPascal Brand
6868a7ee79dSPascal Brand* Change of format of the Trusted Applications: they follow a
6878a7ee79dSPascal Brand  [signed ELF format][elf]
6888a7ee79dSPascal Brand
6898a7ee79dSPascal Brand* Rework thread [synchronization][synchro] in optee_os.
6908a7ee79dSPascal Brand
6918a7ee79dSPascal Brand* Use of ARMv8 native cryptographic support.
6928a7ee79dSPascal Brand
6938a7ee79dSPascal Brand* [OP-TEE/optee_test][optee_test] test suite is released.
6948a7ee79dSPascal Brand
6958a7ee79dSPascal Brand* Introduce [OP-TEE/manifest][manifest] and [OP-TEE/build][build]
6968a7ee79dSPascal Brand  to setup and build QEMU, FVP, HiKey and Mediatek platforms. Setup scripts
6978a7ee79dSPascal Brand  that used to be in optee_os have been removed, except for Juno board.
6988a7ee79dSPascal Brand
69995422146SPascal Brand* [Link][github_commits_1_0_0] to a list of all commits between this and
70095422146SPascal Brand  previous release.
70195422146SPascal Brand
7028a7ee79dSPascal Brand
7038a7ee79dSPascal Brand## Tested on
7048a7ee79dSPascal BrandDefinitions:
7058a7ee79dSPascal Brand
7068a7ee79dSPascal Brand| Type | Meaning |
7078a7ee79dSPascal Brand| ---- | ------- |
7088a7ee79dSPascal Brand| Standard tests | The [optee_test][optee_test] project. |
7098a7ee79dSPascal Brand| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.1.0.4. |
7108a7ee79dSPascal Brand| Hello world test | Plain hello world Trusted Application such as [this][hello_world]. |
7118a7ee79dSPascal Brand
7128a7ee79dSPascal Brand*	ARM Juno Board (vexpress-juno), standard + extended tests.
7138a7ee79dSPascal Brand*	Foundation Models (vexpress-fvp), standard tests.
7148a7ee79dSPascal Brand*	HiKey (hikey), standard + extended tests.
7158a7ee79dSPascal Brand*	MT8173 (mediatek), standard tests.
7168a7ee79dSPascal Brand*	QEMU (vexpress-qemu), standard + extended tests.
7178a7ee79dSPascal Brand*	STM Cannes (stm-cannes), standard + extended tests.
7188a7ee79dSPascal Brand
71995422146SPascal Brand## Known issues
72095422146SPascal Brand* Secure Storage is implemented, but note that anti-rollback protection
72195422146SPascal Brand  is not implemented yet.
72295422146SPascal Brand
72395422146SPascal Brand* Issue(s) open on GitHub
72495422146SPascal Brand  * [#210][pr210]: libteec.so 32-bit does not communicate well
72595422146SPascal Brand    with 64-bit kernel module
72695422146SPascal Brand  * [#296][pr296]: Connecting RPMB to the storage APIs.
72795422146SPascal Brand  * [#493][pr493]: setup_juno_optee: unable to find pre-built binaries
72895422146SPascal Brand  * [#494][pr494]: HiKey: xtest 7671 fails (1.0.0-rc2)
72995422146SPascal Brand
73095422146SPascal Brand[pr210]: https://github.com/OP-TEE/optee_os/issues/210
73195422146SPascal Brand[pr296]: https://github.com/OP-TEE/optee_os/issues/296
73295422146SPascal Brand[pr493]: https://github.com/OP-TEE/optee_os/issues/493
73395422146SPascal Brand[pr494]: https://github.com/OP-TEE/optee_os/issues/494
73495422146SPascal Brand[github_commits_1_0_0]: https://github.com/OP-TEE/optee_os/compare/0.3.0...1.0.0
7358a7ee79dSPascal Brand[DCO]: https://github.com/OP-TEE/optee_os/blob/master/Notice.md#contributions
7368a7ee79dSPascal Brand[LCStorage]: http://www.slideshare.net/linaroorg/sfo15503-secure-storage-in-optee
7378a7ee79dSPascal Brand[synchro]: https://github.com/OP-TEE/optee_os/blob/master/documentation/optee_design.md#4-thread-handling
7388a7ee79dSPascal Brand[elf]: https://github.com/OP-TEE/optee_os/blob/master/documentation/optee_design.md#format
7398a7ee79dSPascal Brand[optee_test]: https://github.com/OP-TEE/optee_test
7408a7ee79dSPascal Brand[manifest]: https://github.com/OP-TEE/manifest
7418a7ee79dSPascal Brand[build]: https://github.com/OP-TEE/build
7428a7ee79dSPascal Brand
74395422146SPascal Brand
74495422146SPascal Brand
74511d59085SPascal Brand# OP-TEE - version 0.3.0
74611d59085SPascal Brand
74711d59085SPascal Brand## New features
74811d59085SPascal Brand
74911d59085SPascal Brand*   Add hardware support for
75011d59085SPascal Brand	*   Mediatek MT8173 Board, ARMv8-A (plat-mediatek)
75111d59085SPascal Brand	*   Hisilicon HiKey Board, ARMv8-A (plat-hikey)
75211d59085SPascal Brand*   AArch64 build of optee_os is now possible through the configuration `CFG_ARM64_core=y`
75311d59085SPascal Brand*	Secure Storage: Data can be encrypted prior to their storage in the non-secure.
75411d59085SPascal Brand	Build is configured using `CFG_ENC_FS=y`
75511d59085SPascal Brand*	A generic boot scheme can be used. Boot configuration is commonalized. This helps
75611d59085SPascal Brand	new board support. It is applied on plat-hikey, plat-vexpress, plat-mediatek, plat-stm
75711d59085SPascal Brand    and plat-vexpress.
75811d59085SPascal Brand
75911d59085SPascal Brand## Tested on
76011d59085SPascal BrandDefinitions:
76111d59085SPascal Brand
76211d59085SPascal Brand| Type | Meaning |
76311d59085SPascal Brand| ---- | ------- |
76411d59085SPascal Brand| Standard tests | The optee_test project. |
76511d59085SPascal Brand| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.1.0.4. |
76611d59085SPascal Brand| Hello world test | Plain hello world Trusted Application such as [this][hello_world]. |
76711d59085SPascal Brand
76811d59085SPascal Brand*	ARM Juno Board (vexpress-juno), standard tests.
76911d59085SPascal Brand*	Foundation Models (vexpress-fvp), standard tests.
77011d59085SPascal Brand*	HiKey (hikey), standard tests.
77111d59085SPascal Brand*	MT8173 (mediatek), standard tests.
77211d59085SPascal Brand*	QEMU (vexpress-qemu), standard + extended tests.
77311d59085SPascal Brand*	STM Cannes (stm-cannes), standard + extended tests.
77411d59085SPascal Brand
77511d59085SPascal Brand-------------------------------------------
77611d59085SPascal Brand
777f5117af2SPascal Brand# OP-TEE - version 0.2.0
778759cc499SJoakim Bech
779f5117af2SPascal Brand## New features
780f5117af2SPascal Brand
781f5117af2SPascal Brand### Linux Driver Refactoring
782f5117af2SPascal Brand
783f5117af2SPascal BrandLinux Driver has been refactored. It is now split in two parts:
784f5117af2SPascal Brand*	optee.ko, the generic Linux driver. It contains all functionality
785f5117af2SPascal Brand	common to all backends.
786f5117af2SPascal Brand*	optee_armtz.ko, a specific backend dedicated to the TrustZone optee.
787f5117af2SPascal Brand	It depends on optee.ko.
788f5117af2SPascal Brand
789f5117af2SPascal BrandLoading the TrustZone optee linux driver module is now performed using
790f5117af2SPascal Brand
791f5117af2SPascal Brand    modprobe optee_armtz
792f5117af2SPascal Brand
793f5117af2SPascal BrandThanks to the dependency between the generic and the backend modules, optee.ko is then automatically loaded.
794f5117af2SPascal Brand
795f5117af2SPascal Brand### Misc new features
796f5117af2SPascal Brand* support PL310 lock down at TEE boot
797f5117af2SPascal Brand* add 64bits support (division / print)
798f5117af2SPascal Brand
799f5117af2SPascal Brand## Tested on
800f5117af2SPascal BrandDefinitions:
801f5117af2SPascal Brand
802f5117af2SPascal Brand| Type | Meaning |
803f5117af2SPascal Brand| ---- | ------- |
804f5117af2SPascal Brand| Standard tests | The optee_test project. |
805f5117af2SPascal Brand| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.1.0.4. |
806f5117af2SPascal Brand| Hello world test | Plain hello world Trusted Application such as [this][hello_world]. |
807f5117af2SPascal Brand
808f5117af2SPascal Brand*   ARM Juno Board (vexpress-juno), standard tests + extended tests.
809f5117af2SPascal Brand
810f5117af2SPascal Brand*   Foundation Models (vexpress-fvp), standard + extended tests.
811f5117af2SPascal Brand
812f5117af2SPascal Brand*   QEMU (vexpress-qemu), standard + extended tests.
813f5117af2SPascal Brand
814f5117af2SPascal Brand*   STM Cannes (stm-cannes), standard + extended tests.
815f5117af2SPascal Brand
816f5117af2SPascal Brand
81728fcee17SJerome Forissier## Issues resolved since last release
818f5117af2SPascal Brand*	Fix user TA trace issue, in order each TA is able to select its own trace level
819f5117af2SPascal Brand
820f5117af2SPascal Brand
821f5117af2SPascal Brand-------------------------------------------
822f5117af2SPascal Brand#OP-TEE - version 0.1.0
823f5117af2SPascal Brand
824f5117af2SPascal Brand## New features
825759cc499SJoakim BechBelow is a summary of the most important features added, but at the end you will
826759cc499SJoakim Bechfind a link that present you all commits between the current and previous
827759cc499SJoakim Bechrelease tag.
828759cc499SJoakim Bech
829759cc499SJoakim Bech*   GlobalPlatform Client API v1.0 support.
830759cc499SJoakim Bech
831759cc499SJoakim Bech*   GlobalPlatform Internal API v1.0 support.
832759cc499SJoakim Bech
833759cc499SJoakim Bech*   GlobalPlatform Secure Elements v1.0 support.
834759cc499SJoakim Bech
835759cc499SJoakim Bech*   Add hardware support for
836759cc499SJoakim Bech
837759cc499SJoakim Bech    *   Allwinner A80, ARMv7-A.
838759cc499SJoakim Bech
839759cc499SJoakim Bech    *   ARM Juno Board, ARMv8-A.
840759cc499SJoakim Bech
841759cc499SJoakim Bech    *   Foundation Models, ARMv8-A.
842759cc499SJoakim Bech
843759cc499SJoakim Bech    *   Fast Models, ARMv8-A.
844759cc499SJoakim Bech
845759cc499SJoakim Bech    *   QEMU, ARMv7-A.
846759cc499SJoakim Bech
847759cc499SJoakim Bech    *   STM Cannes, ARMv7-A.
848759cc499SJoakim Bech
849759cc499SJoakim Bech    *   STM Orly2, ARMv7-A.
850759cc499SJoakim Bech
851759cc499SJoakim Bech*   Add LibTomCrypt as the default software cryptographic library.
852759cc499SJoakim Bech
853759cc499SJoakim Bech*   Add cryptographic abstraction layer in on secure side to ease the use of
854759cc499SJoakim Bech    other cryptographic software libraries or adding support for hardware
855759cc499SJoakim Bech    acceleration.
856759cc499SJoakim Bech
857759cc499SJoakim Bech*   Extended cryptographic API with support for HKDF, Concat KDF and PBKDF2.
858759cc499SJoakim Bech
859759cc499SJoakim Bech*   SHA-1 and SHA-256 ARMv8-A crypto extension implementation.
860759cc499SJoakim Bech
861759cc499SJoakim Bech*   Enabled paging support in OP-TEE OS.
862759cc499SJoakim Bech
863759cc499SJoakim Bech*   Add support for xtest (both standard and extended) in QEMU and FVP setup
864759cc499SJoakim Bech    scripts.
865759cc499SJoakim Bech
866759cc499SJoakim Bech*   Add documentation for the OS design, cryptographic abstraction layer, secure
867759cc499SJoakim Bech    elements design, the build system, GitHub usage, key derivation extensions,
868759cc499SJoakim Bech    ARM-Trusted Firmware usage within OP-TEE and GlobalPlatform usage within
869759cc499SJoakim Bech    OP-TEE.
870759cc499SJoakim Bech
871759cc499SJoakim Bech*   Integrate support for Travis CI.
872759cc499SJoakim Bech
873759cc499SJoakim Bech*   [Link][github_commits_0_1_0] to a list of all commits between this and
874759cc499SJoakim Bech    previous release.
875759cc499SJoakim Bech
876759cc499SJoakim Bech
877f5117af2SPascal Brand## Tested on
878759cc499SJoakim BechDefinitions:
879759cc499SJoakim Bech
880759cc499SJoakim Bech| Type | Meaning |
881759cc499SJoakim Bech| ---- | ------- |
882759cc499SJoakim Bech| Standard tests | The optee_test project. |
883759cc499SJoakim Bech| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.0.0. |
884759cc499SJoakim Bech| Hello world test | Plain hello world Trusted Application such as [this][hello_world]. |
885759cc499SJoakim Bech
886759cc499SJoakim Bech*   Allwinner A80 (plat-sunxi), hello world test.
887759cc499SJoakim Bech
888759cc499SJoakim Bech*   ARM Juno Board (vexpress-juno), standard tests.
889759cc499SJoakim Bech
890759cc499SJoakim Bech*   Foundation Models (plat-vexpress-fvp), standard + extended tests
891759cc499SJoakim Bech
892759cc499SJoakim Bech*   QEMU (plat-vexpress-qemu), standard + extended tests (and Secure Elements
893759cc499SJoakim Bech    tested separately).
894759cc499SJoakim Bech
895759cc499SJoakim Bech*   STM Cannes (plat-stm-cannes), standard + extended tests.
896759cc499SJoakim Bech
897759cc499SJoakim Bech
89828fcee17SJerome Forissier## Issues resolved since last release
899759cc499SJoakim BechN/A since this is the first release tag on OP-TEE.
900759cc499SJoakim Bech
901759cc499SJoakim Bech
902f5117af2SPascal Brand## Known issues
903759cc499SJoakim Bech*   Storage is implemented, but not "Secure storage", meaning that a client
904759cc499SJoakim Bech    needs to do encrypt files on their own before storing the files.
905759cc499SJoakim Bech
906759cc499SJoakim Bech*   Issue(s) open on GitHub
907759cc499SJoakim Bech    *   [#95][pr95]: An error about building the test code of libtomcrypt.
908759cc499SJoakim Bech
909759cc499SJoakim Bech    *   [#149][pr149]: when testing optee os with arm trusted firmware (I
910759cc499SJoakim Bech	utilized optee os tee.bin as bl32 image) on juno platform, I got an
911759cc499SJoakim Bech        error.
912759cc499SJoakim Bech
913759cc499SJoakim Bech    *   [#161][pr161]: tee_svc_cryp.c lacks accessibility checks on
914759cc499SJoakim Bech        user-supplied TEE_Attributes.
915759cc499SJoakim Bech
916759cc499SJoakim Bech[hello_world]: https://github.com/jenswi-linaro/lcu14_optee_hello_world
917759cc499SJoakim Bech[github_commits_0_1_0]: https://github.com/OP-TEE/optee_os/compare/b01047730e77127c23a36591643eeb8bb0487d68...999e4a6c0f64d3177fd3d0db234107b6fb860884
918759cc499SJoakim Bech[pr95]: https://github.com/OP-TEE/optee_os/issues/95
919759cc499SJoakim Bech[pr149]: https://github.com/OP-TEE/optee_os/issues/149
920759cc499SJoakim Bech[pr161]: https://github.com/OP-TEE/optee_os/issues/161
921759cc499SJoakim Bech
9227583c59eSCedric Chaumont*   Global Platform Device Internal Core API v1.1
9237583c59eSCedric Chaumont    *   [#230][pr230]: Persistent object corruption support (TEE_ERROR_CORRUPT_OBJECT/_2)
9247583c59eSCedric Chaumont    *   [#230][pr230]: Persistent object access support (TEE_ERROR_STORAGE_NOT_AVAILABLE/_2)
925