xref: /optee_os/CHANGELOG.md (revision 702609a7a5ff8c05ab54bc967d762f1acf18fd9d)
1*702609a7SJerome Forissier# OP-TEE - version 2.4.0
2*702609a7SJerome Forissier
3*702609a7SJerome Forissier[Link][github_commits_2_4_0] to a list of all commits between this release and
4*702609a7SJerome Forissierthe previous one (2.3.0).
5*702609a7SJerome Forissier
6*702609a7SJerome ForissierPlease note: this release is API-compatible with the previous one, but the
7*702609a7SJerome ForissierSecure Storage internal format for the REE and SQL FS is not compatible due to
8*702609a7SJerome Forissiercommits [a238b74][commit_a238b74] ("core: REE FS: use the new hash tree
9*702609a7SJerome Forissierinterface") and [44e900e][commit_44e900e] ("core: SQL FS: use the new hash tree
10*702609a7SJerome Forissierinterface").
11*702609a7SJerome Forissier
12*702609a7SJerome Forissier## New features
13*702609a7SJerome Forissier
14*702609a7SJerome Forissier* Add porting guidelines
15*702609a7SJerome Forissier
16*702609a7SJerome Forissier* Add support for Secure Data Path which allows Client and Trusted Applications
17*702609a7SJerome Forissier  to share references to secure memory
18*702609a7SJerome Forissier
19*702609a7SJerome Forissier* New supported platform: Texas Instruments AM57xx (`PLATFORM=ti-am57xx`)
20*702609a7SJerome Forissier
21*702609a7SJerome Forissier* ARMv7-A: add support for platform services in secure monitor and add these
22*702609a7SJerome Forissier  services for the DRA7xx platform
23*702609a7SJerome Forissier
24*702609a7SJerome Forissier* SPI framework and PL022 driver cleanup and improvements
25*702609a7SJerome Forissier
26*702609a7SJerome Forissier* Use CNTPCT (when available) to add entropy to the software PRNG
27*702609a7SJerome Forissier
28*702609a7SJerome Forissier* Add GlobalPlatform Socket API for UDP and TCP (IPv4 and IPv6)
29*702609a7SJerome Forissier
30*702609a7SJerome Forissier* DRA7: add TRNG driver, enable GICv2 driver
31*702609a7SJerome Forissier
32*702609a7SJerome Forissier* Support load address larger than 4G
33*702609a7SJerome Forissier
34*702609a7SJerome Forissier* libutee: preserve error code when calling TEE_Panic() for easier
35*702609a7SJerome Forissier  troubleshooting
36*702609a7SJerome Forissier
37*702609a7SJerome Forissier* Support TA profiling with gprof (-pg compiler switch)
38*702609a7SJerome Forissier
39*702609a7SJerome Forissier* Optimize the ELF loader for TAs when pager is enabled
40*702609a7SJerome Forissier
41*702609a7SJerome Forissier* Update documentation
42*702609a7SJerome Forissier
43*702609a7SJerome Forissier* Add paged secure shared memory that can be transferred between TAs as
44*702609a7SJerome Forissier  needed
45*702609a7SJerome Forissier
46*702609a7SJerome Forissier* Introduce MOBJ abstraction
47*702609a7SJerome Forissier
48*702609a7SJerome Forissier* i.MX6: add PSCI "on" function
49*702609a7SJerome Forissier
50*702609a7SJerome Forissier* arm32: introduce PSCI framework
51*702609a7SJerome Forissier
52*702609a7SJerome Forissier## Bug fixes
53*702609a7SJerome Forissier
54*702609a7SJerome Forissier* Secure storage: improve integrity checking of the REE and SQL filesystems by
55*702609a7SJerome Forissier  adding a hash tree on the internal data structures. Any external modification
56*702609a7SJerome Forissier  is detected, except full rollback. Fixes [#1188][issue1188].
57*702609a7SJerome Forissier
58*702609a7SJerome Forissier* The linux driver will set the 'privileged' flag (TEE_GEN_CAP_PRIVILEGED) on
59*702609a7SJerome Forissier  the device intended for use by tee-supplicant. Fixes [#1199][issue1199].
60*702609a7SJerome Forissier
61*702609a7SJerome Forissier* RPMB: don't try to program the RPMB key by default
62*702609a7SJerome Forissier
63*702609a7SJerome Forissier* Fix "make clean" error cases
64*702609a7SJerome Forissier
65*702609a7SJerome Forissier* Fix issue when resetting persistent storage enumerator [#1332][issue1332]
66*702609a7SJerome Forissier
67*702609a7SJerome Forissier* Fix TA panic when doing AES CTS with specific buffer sizes
68*702609a7SJerome Forissier  [#1203][issue1203].
69*702609a7SJerome Forissier
70*702609a7SJerome Forissier## Known issues
71*702609a7SJerome Forissier
72*702609a7SJerome Forissier* On RPi3 xtest sometimes stall (rcu_sched self-detected stall on CPU) [#1353][issue1353]
73*702609a7SJerome Forissier* For multi-core PSCI support is to be added for ls1021atwr in OP-TEE.
74*702609a7SJerome Forissier* USB keyboard cannot be used to stop the u-boot timeout ([build issue131]).
75*702609a7SJerome Forissier* Travis service (build.git) seems unstable from time to time.
76*702609a7SJerome Forissier
77*702609a7SJerome Forissier## Tested on
78*702609a7SJerome Forissier
79*702609a7SJerome ForissierIn the list below, _standard_ means that the `xtest` program passed with
80*702609a7SJerome Forissierits default configuration, while _extended_ means it was run successfully
81*702609a7SJerome Forissierwith the additional GlobalPlatform™ TEE Initial Configuration Test Suite
82*702609a7SJerome Forissierv1.1.0.4.
83*702609a7SJerome Forissier
84*702609a7SJerome ForissierIf a platform is not listed, it means the release was not tested on this
85*702609a7SJerome Forissierplatform.
86*702609a7SJerome Forissier
87*702609a7SJerome Forissier<!-- ${PLATFORM}-${PLATFORM_FLAVOR}, ordered alphabetically -->
88*702609a7SJerome Forissier* d02: extended
89*702609a7SJerome Forissier* hikey: extended
90*702609a7SJerome Forissier* imx-mx6ulevk: standard
91*702609a7SJerome Forissier* ls-ls1021atwr: standard (single core)
92*702609a7SJerome Forissier* mediatek-mt8173: standard
93*702609a7SJerome Forissier* rcar-h3: standard
94*702609a7SJerome Forissier* rpi3: standard
95*702609a7SJerome Forissier* stm-b2260: extended
96*702609a7SJerome Forissier* ti-dra7xx: standard
97*702609a7SJerome Forissier* vexpress-fvp: standard
98*702609a7SJerome Forissier* vexpress-juno: standard
99*702609a7SJerome Forissier* vexpress-qemu_armv8a: standard
100*702609a7SJerome Forissier* vexpress-qemu_virt: standard
101*702609a7SJerome Forissier* zynqmp-zc1751_dc1: standard
102*702609a7SJerome Forissier* zynqmp-zc1751_dc2: standard
103*702609a7SJerome Forissier* zynqmp-zcu102: standard
104*702609a7SJerome Forissier
105*702609a7SJerome Forissier[github_commits_2_4_0]: https://github.com/OP-TEE/optee_os/compare/2.3.0...2.4.0
106*702609a7SJerome Forissier[issue1332]: https://github.com/OP-TEE/optee_os/issues/1332
107*702609a7SJerome Forissier[issue1353]: https://github.com/OP-TEE/optee_os/issues/1353
108*702609a7SJerome Forissier[build issue131]: https://github.com/OP-TEE/build/issues/131
109*702609a7SJerome Forissier[commit_a238b74]: https://github.com/OP-TEE/optee_os/commit/a238b744b1b3
110*702609a7SJerome Forissier[commit_44e900e]: https://github.com/OP-TEE/optee_os/commit/44e900eabfc1
111*702609a7SJerome Forissier
11228fcee17SJerome Forissier# OP-TEE - version 2.3.0
11328fcee17SJerome Forissier
11428fcee17SJerome Forissier[Link][github_commits_2_3_0] to a list of all commits between this release and
11528fcee17SJerome Forissierthe previous one (2.2.0).
11628fcee17SJerome Forissier
11728fcee17SJerome ForissierPlease note: this release is API-compatible with the previous one, but the
11828fcee17SJerome ForissierSecure Storage internal format for the REE FS is not compatible due to commit
11928fcee17SJerome Forissier[361fb3e][commit_361fb3e] ("core: REE FS: use a single file per object").
12028fcee17SJerome Forissier
12128fcee17SJerome Forissier[commit_361fb3e]: https://github.com/OP-TEE/optee_os/commit/361fb3e
12228fcee17SJerome Forissier
12328fcee17SJerome Forissier## New features
12428fcee17SJerome Forissier
12528fcee17SJerome Forissier* New supported platform: Xilinx Zynq 7000 ZC702 (`PLATFORM=zynq7k-zc702`)
12628fcee17SJerome Forissier
12728fcee17SJerome Forissier* Add debug assertions to spinlocks and mutexes
12828fcee17SJerome Forissier
12928fcee17SJerome Forissier* Add more CP15 register access macros for Cortex-A9
13028fcee17SJerome Forissier
13128fcee17SJerome Forissier* ARMv7-A: redesign secure monitor to make it easier to register services
13228fcee17SJerome Forissier
13328fcee17SJerome Forissier* ARMv7-A: cleanup boot arguments
13428fcee17SJerome Forissier
13528fcee17SJerome Forissier* libutee: extend `TEE_CheckMemoryAccessRights()` with
13628fcee17SJerome Forissier  `TEE_MEMORY_ACCESS_SECURE` and `TEE_MEMORY_ACCESS_NONSECURE`
13728fcee17SJerome Forissier
13828fcee17SJerome Forissier* plat-hikey: enable SPI by default and add sample test code
13928fcee17SJerome Forissier
14028fcee17SJerome Forissier* Consider `CFLAGS_ta_arm64` and `CFLAGS_ta_arm32` when building TAs
14128fcee17SJerome Forissier
14228fcee17SJerome Forissier* Secure storage refactoring
14328fcee17SJerome Forissier  - Simplify interface with tee-supplicant. Minimize round trips with normal
14428fcee17SJerome Forissier    world, especially by adding a cache for FS RPC payload data.
14528fcee17SJerome Forissier  - REE FS: use a single file per object, remove block cache.
14628fcee17SJerome Forissier
14728fcee17SJerome Forissier* Print call stack in panic()
14828fcee17SJerome Forissier
14928fcee17SJerome Forissier## Bug fixes
15028fcee17SJerome Forissier
15128fcee17SJerome Forissier* Fix UUID encoding when communicating with normal world (use big endian
15228fcee17SJerome Forissier  mode instead of native endianness). Related to this, the string format
15328fcee17SJerome Forissier  for UUIDs has changed in tee-supplicant, so that TA file names now follow
15428fcee17SJerome Forissier  the format defined in RFC4122 (a missing hyphen was added). The old format
15528fcee17SJerome Forissier  is still supported, but deprecated, and will likely be removed with the
15628fcee17SJerome Forissier  next major release.
15728fcee17SJerome Forissier
15828fcee17SJerome Forissier* Drop write permission to non-writable ELF segments after TA loading is
15928fcee17SJerome Forissier  complete.
16028fcee17SJerome Forissier
16128fcee17SJerome Forissier* mm: fix confusing memory mapping debug traces
16228fcee17SJerome Forissier
16328fcee17SJerome Forissier* plat-ti: fix issues with MMU mapping
16428fcee17SJerome Forissier
16528fcee17SJerome Forissier* crypto: fix clearing of big numbers
16628fcee17SJerome Forissier
16728fcee17SJerome Forissier* build: allow spaces and double quotes in CFG_ variables
16828fcee17SJerome Forissier
16928fcee17SJerome Forissier* mm: use paddr_t to support both 32- and 64-bit architectures properly.
17028fcee17SJerome Forissier  Resolves 32-bit truncation error when pool is at top of 32 bit address
17128fcee17SJerome Forissier  space on 64-bit architecture.
17228fcee17SJerome Forissier
17328fcee17SJerome Forissier* plat-stm: support pager. Fix pager on ARMv7-A SMP boards.
17428fcee17SJerome Forissier
17528fcee17SJerome Forissier* Fix debug output of Trusted Applications (remove "ERROR: TEE-CORE:" prefix)
17628fcee17SJerome Forissier
17728fcee17SJerome Forissier* Do not consider TA memref parameters as TA private memory
17828fcee17SJerome Forissier
17928fcee17SJerome Forissier* crypto: fix `cipher_final()` which would not call `cbc_done()` for CBC_MAC
18028fcee17SJerome Forissier  algorithms
18128fcee17SJerome Forissier
18228fcee17SJerome Forissier* fix for 16-way PL310
18328fcee17SJerome Forissier
18428fcee17SJerome Forissier* arm32: fix call stack unwinding (`print_stack()`)
18528fcee17SJerome Forissier
18628fcee17SJerome Forissier* arm32: fix spinlock assembly code
18728fcee17SJerome Forissier
18828fcee17SJerome Forissier* plat-stm, plat-imx: fix SCR initalization
18928fcee17SJerome Forissier
19028fcee17SJerome Forissier* Fix user L1 MMU entries calculation (non-LPAE), allowing TTBCR.N values
19128fcee17SJerome Forissier  other than 7.
19228fcee17SJerome Forissier
19328fcee17SJerome Forissier* mtk-mt8173: fix panic caused by incorrect size of SHMEM
19428fcee17SJerome Forissier
19528fcee17SJerome Forissier* plat-stm: fix RNG driver (non-flat mapping)
19628fcee17SJerome Forissier
19728fcee17SJerome Forissier## Known issues
19828fcee17SJerome Forissier
19928fcee17SJerome Forissier* New issues open on GitHub
20028fcee17SJerome Forissier  * [#1203][issue1203] AES-CTS mode will fail when inlen=0x100, in_incr=0x80
20128fcee17SJerome Forissier  * [#1199][issue1199] Both tee and teepriv reported GlobalPlatform compliant
20228fcee17SJerome Forissier  * [#1188][issue1188] Secure storage (SQL FS and REE FS): blocks not tied to
20328fcee17SJerome Forissier    current meta header
20428fcee17SJerome Forissier  * [#1172][issue1172] paddr_t should be larger than 32 bits when
20528fcee17SJerome Forissier    CFG_WITH_LPAE is enabled
20628fcee17SJerome Forissier
20728fcee17SJerome Forissier## Tested on
20828fcee17SJerome Forissier
20928fcee17SJerome ForissierIn the list below, _standard_ means that the `xtest` program passed with
21028fcee17SJerome Forissierits default configuration, while _extended_ means it was run successfully
21128fcee17SJerome Forissierwith the additional GlobalPlatform™ TEE Initial Configuration Test Suite
21228fcee17SJerome Forissierv1.1.0.4.
21328fcee17SJerome Forissier
21428fcee17SJerome ForissierIf a platform is not listed, it means the release was not tested on this
21528fcee17SJerome Forissierplatform.
21628fcee17SJerome Forissier
21728fcee17SJerome Forissier<!-- ${PLATFORM}-${PLATFORM_FLAVOR}, ordered alphabetically -->
21828fcee17SJerome Forissier* d02: extended
21928fcee17SJerome Forissier* hikey: extended
22028fcee17SJerome Forissier* imx-mx6ulevk: standard
22128fcee17SJerome Forissier* ls-ls1021atwr: standard
22228fcee17SJerome Forissier* mediatek-mt8173: standard
22328fcee17SJerome Forissier* rcar-h3: standard
22428fcee17SJerome Forissier* rpi3: standard
22528fcee17SJerome Forissier* stm-b2260: extended
22628fcee17SJerome Forissier* stm-cannes: extended
22728fcee17SJerome Forissier* ti-dra7xx: standard
22828fcee17SJerome Forissier* vexpress-fvp: standard
22928fcee17SJerome Forissier* vexpress-juno: standard
23028fcee17SJerome Forissier* vexpress-qemu_armv8a: standard
23128fcee17SJerome Forissier* vexpress-qemu_virt: extended
23228fcee17SJerome Forissier* zynqmp-zcu102: standard
23328fcee17SJerome Forissier
23428fcee17SJerome Forissier[github_commits_2_3_0]: https://github.com/OP-TEE/optee_os/compare/2.2.0...2.3.0
23528fcee17SJerome Forissier[issue1172]: https://github.com/OP-TEE/optee_os/issues/1172
23628fcee17SJerome Forissier[issue1188]: https://github.com/OP-TEE/optee_os/issues/1188
23728fcee17SJerome Forissier[issue1199]: https://github.com/OP-TEE/optee_os/issues/1199
23828fcee17SJerome Forissier[issue1203]: https://github.com/OP-TEE/optee_os/issues/1203
23928fcee17SJerome Forissier
240c0c5d399SJerome Forissier# OP-TEE - version 2.2.0
241c0c5d399SJerome Forissier
242c0c5d399SJerome Forissier[Link][github_commits_2_2_0] to a list of all commits between this release and
243c0c5d399SJerome Forissierthe previous one (2.1.0).
244c0c5d399SJerome Forissier
245c0c5d399SJerome ForissierPlease note: this release is API-compatible with the previous one, but the
246c0c5d399SJerome ForissierSecure Storage internal format is not compatible due to commit
247c0c5d399SJerome Forissier[fde4a75][commit_fde4a75] ("storage: encrypt the FEK with a TA-specific key").
248c0c5d399SJerome Forissier
249c0c5d399SJerome Forissier[commit_fde4a75]: https://github.com/OP-TEE/optee_os/commit/fde4a75
250c0c5d399SJerome Forissier
251c0c5d399SJerome Forissier## New features
252c0c5d399SJerome Forissier
253c0c5d399SJerome Forissier* New supported platforms:
254c0c5d399SJerome Forissier	* Freescale i.MX6 Quad SABRE Lite & SD
255c0c5d399SJerome Forissier	* HiSilicon D02
256c0c5d399SJerome Forissier	* Raspberry Pi3
257c0c5d399SJerome Forissier	* Renesas RCAR H3
258c0c5d399SJerome Forissier	* STMicroelectronics b2260 - h410
259c0c5d399SJerome Forissier
260c0c5d399SJerome Forissier* Pager: Support paging of read/write pages by encrypting them with AES-GCM.
261c0c5d399SJerome Forissier  Support paging of user TAs. Add global setting for TZSRAM size
262c0c5d399SJerome Forissier  (CFG_CORE_TZSRAM_EMUL_SIZE), defaults to 300K.
263c0c5d399SJerome Forissier
264c0c5d399SJerome Forissier* Support for more than 8 CPU cores
265c0c5d399SJerome Forissier
266c0c5d399SJerome Forissier* Added SPI framework and PL022 driver
267c0c5d399SJerome Forissier
268c0c5d399SJerome Forissier* GPIO: framework supports multiple instances, PL061 driver now has get/set
269c0c5d399SJerome Forissier  interrupt and mode control functions
270c0c5d399SJerome Forissier
271c0c5d399SJerome Forissier* Secure storage: Encrypt the File Encryption Key with a TA-specific key for
272c0c5d399SJerome Forissier  better TA isolation. Add build-time and run-time support for multiple storage
273c0c5d399SJerome Forissier  backends. Add SQLite backend.
274c0c5d399SJerome Forissier
275c0c5d399SJerome Forissier* Trusted User Interface: some code is introduced to support the implementation
276c0c5d399SJerome Forissier  of TUI. This includes: a generic framebuffer driver, display and serial
277c0c5d399SJerome Forissier  abstractions, and drivers for PL111 (LCD) / PL050 (KMI) / TZC400 and PS2
278c0c5d399SJerome Forissier  mouse.
279c0c5d399SJerome Forissier
280c0c5d399SJerome Forissier* AES acceleration using ARMv8-A Cryptographic Extensions instructions is
281c0c5d399SJerome Forissier  now supported in AArch32 mode
282c0c5d399SJerome Forissier
283c0c5d399SJerome Forissier* Add support for GCC flags: -fsanitize=undefined and -fsanitize=kernel-address
284c0c5d399SJerome Forissier
285c0c5d399SJerome Forissier* Use a global setting for core heap size (CFG_CORE_HEAP_SIZE), 64K by default.
286c0c5d399SJerome Forissier
287c0c5d399SJerome Forissier* Add macros to unwind and print the call stack of TEE core
288c0c5d399SJerome Forissier
289c0c5d399SJerome Forissier* Libtomcrypt: sync with the latest `develop` branch.
290c0c5d399SJerome Forissier
291c0c5d399SJerome Forissier* The Trusted Application SDK (ta_dev_kit.mk) can produce libraries (.a)
292c0c5d399SJerome Forissier
293c0c5d399SJerome Forissier* Rework assertions and TEE core panics and properly honor NDEBUG
294c0c5d399SJerome Forissier
295c0c5d399SJerome Forissier## Bug fixes
296c0c5d399SJerome Forissier
297c0c5d399SJerome Forissier* Fix incorrect algorithm passed to cipher.final()
298c0c5d399SJerome Forissier
299c0c5d399SJerome Forissier* scripts: support Python 2.x and 3.x
300c0c5d399SJerome Forissier
301c0c5d399SJerome Forissier* Secure storage: Add proper locking to support concurrent access. Fix sign
302c0c5d399SJerome Forissier  extension bug with offset parameter of syscall storage_obj_seek which could
303c0c5d399SJerome Forissier  cause errors in Aarch32 mode. Fix reading beyond end of file.
304c0c5d399SJerome Forissier
305c0c5d399SJerome Forissier* Aarch64: mask all maskable exceptions before doing a normal return from call.
306c0c5d399SJerome Forissier
307c0c5d399SJerome Forissier* Device Tree: add no-map property to OP-TEE node in reserved-memory.
308c0c5d399SJerome Forissier
309c0c5d399SJerome Forissier* LibTomcrypt: fix CVE-2016-6129
310c0c5d399SJerome Forissier
311c0c5d399SJerome Forissier## Known issues
312c0c5d399SJerome Forissier
313c0c5d399SJerome Forissier* New issues open on GitHub
314c0c5d399SJerome Forissier  * [#1093][issue1093] rcar-h3: xtest 6010 hangs
315c0c5d399SJerome Forissier  * [#1092][issue1092] rcar-h3: xtest 4010 fails
316c0c5d399SJerome Forissier  * [#1081][issue1081] Bad mapping of TA secure memref parameters
317c0c5d399SJerome Forissier  * [#1071][issue1071] __data_end may not correctly represent text start position when using CFG_WITH_PAGER
318c0c5d399SJerome Forissier  * [#1069][issue1069] armv7/Aarch32: crash in stack unwind (DPRINT_STACK())
319c0c5d399SJerome Forissier
320c0c5d399SJerome Forissier## Tested on
321c0c5d399SJerome Forissier
322c0c5d399SJerome ForissierIn the list below, _standard_ means that the `xtest` program passed with
323c0c5d399SJerome Forissierits default configuration, while _extended_ means it was run successfully
324c0c5d399SJerome Forissierwith the additional GlobalPlatform™ TEE Initial Configuration Test Suite
325c0c5d399SJerome Forissierv1.1.0.4.
326c0c5d399SJerome Forissier
327c0c5d399SJerome ForissierIf a platform is not listed, it means the release was not tested on this
328c0c5d399SJerome Forissierplatform.
329c0c5d399SJerome Forissier
330c0c5d399SJerome Forissier<!-- ${PLATFORM}-${PLATFORM_FLAVOR}, ordered alphabetically -->
331c0c5d399SJerome Forissier* d02: extended
332c0c5d399SJerome Forissier* hikey: extended
333c0c5d399SJerome Forissier* imx-mx6qsabrelite: standard
334c0c5d399SJerome Forissier* imx-mx6qsabresd: standard
335c0c5d399SJerome Forissier* rcar-h3: standard, pass except issues [#1092][issue1092] and [#1093][issue1093]
336c0c5d399SJerome Forissier* rpi3: standard
337c0c5d399SJerome Forissier* stm-b2260: standard
338c0c5d399SJerome Forissier* stm-cannes: standard
339c0c5d399SJerome Forissier* ti-dra7xx: standard
340c0c5d399SJerome Forissier* vexpress-fvp: standard
341c0c5d399SJerome Forissier* vexpress-juno: standard
342c0c5d399SJerome Forissier* vexpress-qemu_armv8a: standard
343c0c5d399SJerome Forissier* vexpress-qemu_virt: extended
344c0c5d399SJerome Forissier* zynqmp-zcu102: standard
345c0c5d399SJerome Forissier
346c0c5d399SJerome Forissier[github_commits_2_2_0]: https://github.com/OP-TEE/optee_os/compare/2.1.0...2.2.0
347c0c5d399SJerome Forissier[issue1081]: https://github.com/OP-TEE/optee_os/issues/1081
348c0c5d399SJerome Forissier[issue1071]: https://github.com/OP-TEE/optee_os/issues/1071
349c0c5d399SJerome Forissier[issue1069]: https://github.com/OP-TEE/optee_os/issues/1069
350c0c5d399SJerome Forissier[issue1092]: https://github.com/OP-TEE/optee_os/issues/1092
351c0c5d399SJerome Forissier[issue1093]: https://github.com/OP-TEE/optee_os/issues/1093
352c0c5d399SJerome Forissier
353ac3cc110SPascal Brand# OP-TEE - version 2.1.0
354a0cd5d60SPascal Brand
355ac3cc110SPascal Brand## New features
356ac3cc110SPascal Brand
357ac3cc110SPascal Brand* New supported platforms:
358ac3cc110SPascal Brand	* Xilinx Zynq UltraScale+ MPSOC
359ac3cc110SPascal Brand	* Spreadtrum SC9860
360ac3cc110SPascal Brand
361ac3cc110SPascal Brand* GCC5 support
362ac3cc110SPascal Brand
363ac3cc110SPascal Brand* Non Linear Mapping support: In OP-TEE kernel mode, the physical to virtual
364ac3cc110SPascal Brand  addresses was linear until this release, meaning the virtual addresses
365ac3cc110SPascal Brand  were equal to the physical addresses. This is no more the case in this
366ac3cc110SPascal Brand  release.
367ac3cc110SPascal Brand
368ac3cc110SPascal Brand* Font rendering routines have been introduced in order to ease an
369ac3cc110SPascal Brand  implementation of Trusted UI.
370ac3cc110SPascal Brand
371ac3cc110SPascal Brand* File Storage: Possibility to use the normal world filesystem and the RPMB
372ac3cc110SPascal Brand  implementations simultaneously.
373ac3cc110SPascal Brand
374ac3cc110SPascal Brand* AOSP: There is a [local manifest][aosp_local_manifest] to build OP-TEE into an AOSP build, running on HiKey.
375ac3cc110SPascal Brand  Please refer to the README in that repo for instructions.
376ac3cc110SPascal Brand
377ac3cc110SPascal Brand* OpenEmbedded: In addition to the makefile-based build described in the optee_os README, there is an
378ac3cc110SPascal Brand  [OpenEmbedded-based build][oe_build] that supports Qemu (32-bit), FVP (64-bit), and HiKey (64-bit).
379ac3cc110SPascal Brand  Please refer to the README in that repo for instructions.
380ac3cc110SPascal Brand
381ac3cc110SPascal Brand* [Link][github_commits_2_1_0] to a list of all commits between this and
382ac3cc110SPascal Brand  previous release.
383ac3cc110SPascal Brand
384ac3cc110SPascal Brand
385ac3cc110SPascal Brand## Tested on
386ac3cc110SPascal BrandDefinitions:
387ac3cc110SPascal Brand
388ac3cc110SPascal Brand| Type | Meaning |
389ac3cc110SPascal Brand| ---- | ------- |
390ac3cc110SPascal Brand| Standard tests | The [optee_test][optee_test] project. |
391ac3cc110SPascal Brand| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.1.0.4. |
392ac3cc110SPascal Brand
393ac3cc110SPascal Brand*	ARM Juno Board (vexpress-juno), standard.
394ac3cc110SPascal Brand*	Foundation Models (vexpress-fvp), standard tests + extended tests,
395ac3cc110SPascal Brand	using FVP ARM V8 Foundation Platformr0p0 (platform build 10.0.37)
396ac3cc110SPascal Brand*	FSL i.MX6 UltraLite EVK (imx), standard.
397ac3cc110SPascal Brand*	FSL ls1021a (ls-ls1021atwr), standard tests.
398ac3cc110SPascal Brand*	HiKey (hikey), standard + extended tests.
399ac3cc110SPascal Brand*	QEMU (vexpress-qemu), standard + extended tests.
400ac3cc110SPascal Brand*	Xilinx Zynq UltraScale+ MPSOC, standard tests
401ac3cc110SPascal Brand
402ac3cc110SPascal BrandNote that the following platform has not been tested:
403ac3cc110SPascal Brand*	MTK8173-EVB (mediatek-mt8173)
404ac3cc110SPascal Brand
405ac3cc110SPascal Brand
406ac3cc110SPascal Brand## Known issues
407ac3cc110SPascal Brand* Issue(s) open on GitHub
408ac3cc110SPascal Brand  * [#868][pr868]: python-wand font generation sometimes times out
409ac3cc110SPascal Brand  * [#863][pr863]: "double free or corruption" error when building optee_os
410ac3cc110SPascal Brand  * [#858][pr858]: UUIDs in binary format have wrong endinanness
411ac3cc110SPascal Brand  * [#857][pr857]: Formatting of UUIDs is incorrect
412ac3cc110SPascal Brand  * [#847][pr847]: optee_os panic(TEE-CORE: Assertion)
413ac3cc110SPascal Brand  * [#838][pr838]: TUI font rendering is _very_ slow
414ac3cc110SPascal Brand  * [#814][pr814]: Persistent objects : save informations after close
415ac3cc110SPascal Brand  * [#665][pr665]: xtest 1013 stalled on HiKey when log levels are 4 and optee_os is on its own UART
416ac3cc110SPascal Brand  * [#506][pr506]: tee-supplicant panic & ta panic
417ac3cc110SPascal Brand
418ac3cc110SPascal Brand[github_commits_2_1_0]: https://github.com/OP-TEE/optee_os/compare/2.0.0...2.1.0
419ac3cc110SPascal Brand[pr868]: https://github.com/OP-TEE/optee_os/issues/868
420ac3cc110SPascal Brand[pr863]: https://github.com/OP-TEE/optee_os/issues/863
421ac3cc110SPascal Brand[pr858]: https://github.com/OP-TEE/optee_os/issues/858
422ac3cc110SPascal Brand[pr857]: https://github.com/OP-TEE/optee_os/issues/857
423ac3cc110SPascal Brand[pr847]: https://github.com/OP-TEE/optee_os/issues/847
424ac3cc110SPascal Brand[pr838]: https://github.com/OP-TEE/optee_os/issues/838
425ac3cc110SPascal Brand[pr814]: https://github.com/OP-TEE/optee_os/issues/814
426ac3cc110SPascal Brand[pr665]: https://github.com/OP-TEE/optee_os/issues/665
427ac3cc110SPascal Brand[aosp_local_manifest]: https://github.com/linaro-swg/optee_android_manifest
428ac3cc110SPascal Brand[oe_build]: https://github.com/linaro-swg/oe-optee
429ac3cc110SPascal Brand
430ac3cc110SPascal Brand# OP-TEE - version 2.0.0
431a0cd5d60SPascal Brand
432a0cd5d60SPascal Brand## New features
433a0cd5d60SPascal Brand
434a0cd5d60SPascal Brand* Generic driver: A new generic TEE driver is in the process of being
435a0cd5d60SPascal Brand  [upstreamed][gendrv_v9].
436a0cd5d60SPascal Brand  In this release, [OP-TEE/optee_linuxdriver][optee_linuxdriver] is no more used.
437a0cd5d60SPascal Brand  Instead, linux v4.5 is being patched using the proposed Generic TEE Driver,
438a0cd5d60SPascal Brand  as it can be found in [https://github.com/linaro-swg/linux/tree/optee][linux_optee]
439a0cd5d60SPascal Brand
440a0cd5d60SPascal Brand* RPMB support: Secure Storage can now use Replay Protected Memory Block (RPMB) partition
441a0cd5d60SPascal Brand  of an eMMC device. Check the [full documentation][rpmb_doc]
442a0cd5d60SPascal Brand
443a0cd5d60SPascal Brand* Hard-float ABI is now available.
444a0cd5d60SPascal Brand
445a0cd5d60SPascal Brand* [Link][github_commits_2_0_0] to a list of all commits between this and
446a0cd5d60SPascal Brand  previous release.
447a0cd5d60SPascal Brand
448a0cd5d60SPascal Brand
449a0cd5d60SPascal Brand## Tested on
450a0cd5d60SPascal BrandDefinitions:
451a0cd5d60SPascal Brand
452a0cd5d60SPascal Brand| Type | Meaning |
453a0cd5d60SPascal Brand| ---- | ------- |
454a0cd5d60SPascal Brand| Standard tests | The [optee_test][optee_test] project. |
455a0cd5d60SPascal Brand| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.1.0.4. |
456a0cd5d60SPascal Brand
457a0cd5d60SPascal Brand*	ARM Juno Board (vexpress-juno), standard.
458a0cd5d60SPascal Brand*	Foundation Models (vexpress-fvp), standard tests + extended tests,
459a0cd5d60SPascal Brand	using FVP ARM V8 Foundation Platformr0p0 (platform build 9.5.40)
460eb00c7b9SPascal Brand*	FSL ls1021a (ls-ls1021atwr), standard.
461a0cd5d60SPascal Brand*	HiKey (hikey), standard.
462a0cd5d60SPascal Brand*	MTK8173-EVB (mediatek-mt8173), standard.
463a0cd5d60SPascal Brand*	QEMU (vexpress-qemu), standard + extended tests.
464a0cd5d60SPascal Brand*	STM Cannes (stm-cannes), standard + extended tests.
465a0cd5d60SPascal Brand
466a0cd5d60SPascal Brand## Known issues
467a0cd5d60SPascal Brand* Issue(s) open on GitHub
468a0cd5d60SPascal Brand  * [#40][prld40] BUG_ON() when re-using RPC buffer to tee-supplicant
469a0cd5d60SPascal Brand  * [#506][pr506]: tee-supplicant panic & ta panic
470a0cd5d60SPascal Brand
471a0cd5d60SPascal Brand[github_commits_2_0_0]: https://github.com/OP-TEE/optee_os/compare/1.1.0...2.0.0
472a0cd5d60SPascal Brand[rpmb_doc]: https://github.com/OP-TEE/optee_os/blob/master/documentation/secure_storage_rpmb.md
473a0cd5d60SPascal Brand[optee_linuxdriver]: https://github.com/OP-TEE/optee_linuxdriver
474a0cd5d60SPascal Brand[gendrv_v9]: https://lkml.org/lkml/2016/4/1/205
475a0cd5d60SPascal Brand[linux_optee]: https://github.com/linaro-swg/linux/tree/optee
476a0cd5d60SPascal Brand
477a0cd5d60SPascal Brand
478c5bbfb4dSPascal Brand# OP-TEE - version 1.1.0
479c5bbfb4dSPascal Brand
480c5bbfb4dSPascal Brand
481c5bbfb4dSPascal Brand## New features
482c5bbfb4dSPascal Brand
483c5bbfb4dSPascal Brand* Softfloat library: floating point support is now available in 32bits TA.
484c5bbfb4dSPascal Brand
485c5bbfb4dSPascal Brand* Support running 64-bits TA: on ARMv8-A platform, TA can be compiled in
486c5bbfb4dSPascal Brand  AArch32 and/or in AArch64 in case the core is compiled in AArch64.
487c5bbfb4dSPascal Brand  An example can be found in HiKey configuration file. Using the following
488c5bbfb4dSPascal Brand  excerpt code, the user TA libraries are compiled in both AArch32 and
489c5bbfb4dSPascal Brand  AArch64, and can be found in `out/arm-plat-hikey/export-ta_arm32` and
490c5bbfb4dSPascal Brand  `out/arm-plat-hikey/export-ta_arm64`
491c5bbfb4dSPascal Brand
492c5bbfb4dSPascal Brand```
493c5bbfb4dSPascal Brand    ta-targets = ta_arm32
494c5bbfb4dSPascal Brand    ta-targets += ta_arm64
495c5bbfb4dSPascal Brand```
496c5bbfb4dSPascal Brand
497c5bbfb4dSPascal Brand* Concurrent TA support: multiple TA can run in parallel on
498c5bbfb4dSPascal Brand  several cores.
499c5bbfb4dSPascal Brand
500c5bbfb4dSPascal Brand* New tests added in xtest test suite: concurrent TA (xtest 1013),
501c5bbfb4dSPascal Brand  floating point tests (xtest 1006 and os_test TA) and corruption
502c5bbfb4dSPascal Brand  file storage (xtest 20000)
503c5bbfb4dSPascal Brand
504c5bbfb4dSPascal Brand* [Link][github_commits_1_1_0] to a list of all commits between this and
505c5bbfb4dSPascal Brand  previous release.
506c5bbfb4dSPascal Brand
507c5bbfb4dSPascal Brand
508c5bbfb4dSPascal Brand## Tested on
509c5bbfb4dSPascal BrandDefinitions:
510c5bbfb4dSPascal Brand
511c5bbfb4dSPascal Brand| Type | Meaning |
512c5bbfb4dSPascal Brand| ---- | ------- |
513c5bbfb4dSPascal Brand| Standard tests | The [optee_test][optee_test] project. |
514c5bbfb4dSPascal Brand| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.1.0.4. |
515c5bbfb4dSPascal Brand| Hello world test | Plain hello world Trusted Application such as [this][hello_world]. |
516c5bbfb4dSPascal Brand
517c5bbfb4dSPascal Brand*	Foundation Models (vexpress-fvp), standard tests + extended tests,
518c5bbfb4dSPascal Brand	using FVP ARM V8 Foundation Platformr0p0 (platform build 9.5.40)
519c5bbfb4dSPascal Brand*	HiKey (hikey), standard + extended tests.
520c5bbfb4dSPascal Brand*	MT8173 (mediatek), standard tests.
521c5bbfb4dSPascal Brand*	QEMU (vexpress-qemu), standard + extended tests.
522c5bbfb4dSPascal Brand*	STM Cannes (stm-cannes), standard + extended tests.
523c5bbfb4dSPascal Brand
524c5bbfb4dSPascal Brand## Known issues
525c5bbfb4dSPascal Brand* Secure Storage is implemented, but note that anti-rollback protection
526c5bbfb4dSPascal Brand  is not implemented yet.
527c5bbfb4dSPascal Brand
528c5bbfb4dSPascal Brand* Issue(s) open on GitHub
529c5bbfb4dSPascal Brand  * [#40][prld40] BUG_ON() when re-using RPC buffer to tee-supplicant
530c5bbfb4dSPascal Brand  * [#296][pr296]: Connecting RPMB to the storage APIs.
531c5bbfb4dSPascal Brand  * [#493][pr493]: setup_juno_optee: unable to find pre-built binaries
532c5bbfb4dSPascal Brand  * [#506][pr506]: tee-supplicant panic & ta panic
533c5bbfb4dSPascal Brand
534c5bbfb4dSPascal Brand[prld40]: https://github.com/OP-TEE/optee_linuxdriver/issues/40
535c5bbfb4dSPascal Brand[pr506]: https://github.com/OP-TEE/optee_os/issues/506
536c5bbfb4dSPascal Brand[github_commits_1_1_0]: https://github.com/OP-TEE/optee_os/compare/1.0.1...1.1.0
537c5bbfb4dSPascal Brand
538c5bbfb4dSPascal Brand
539c5bbfb4dSPascal Brand
5408a7ee79dSPascal Brand# OP-TEE - version 1.0.0
5418a7ee79dSPascal Brand
5428a7ee79dSPascal BrandOP-TEE is now maintained by Linaro. Contributors do not need to
5438a7ee79dSPascal Brandsign a CLA anymore, but must follow the rules of the [DCO][DCO]
5448a7ee79dSPascal Brand(Developer Certificate of Origin) instead.
5458a7ee79dSPascal Brand
5468a7ee79dSPascal Brand
5478a7ee79dSPascal Brand## New features
5488a7ee79dSPascal Brand
5498a7ee79dSPascal Brand* Add hardware support for Texas Instruments DRA7xx, ARMv7 (plat-ti)
5508a7ee79dSPascal Brand
5518a7ee79dSPascal Brand* GlobalPlatform™ TEE Internal Core API Specification v1.1,
5528a7ee79dSPascal Brand  including ECC algorithms.
5538a7ee79dSPascal Brand
5548a7ee79dSPascal Brand* Secure Storage: Files stored by the REE are now encrypted. Operations
5558a7ee79dSPascal Brand  are made atomic in order to prevent inconsistencies in case of errors
5568a7ee79dSPascal Brand  during the storage operations. [Slides][LCStorage] describing the
5578a7ee79dSPascal Brand  Secure Storage have been presented at the Linaro Connect SFO15.
5588a7ee79dSPascal Brand
5598a7ee79dSPascal Brand* Change of format of the Trusted Applications: they follow a
5608a7ee79dSPascal Brand  [signed ELF format][elf]
5618a7ee79dSPascal Brand
5628a7ee79dSPascal Brand* Rework thread [synchronization][synchro] in optee_os.
5638a7ee79dSPascal Brand
5648a7ee79dSPascal Brand* Use of ARMv8 native cryptographic support.
5658a7ee79dSPascal Brand
5668a7ee79dSPascal Brand* [OP-TEE/optee_test][optee_test] test suite is released.
5678a7ee79dSPascal Brand
5688a7ee79dSPascal Brand* Introduce [OP-TEE/manifest][manifest] and [OP-TEE/build][build]
5698a7ee79dSPascal Brand  to setup and build QEMU, FVP, HiKey and Mediatek platforms. Setup scripts
5708a7ee79dSPascal Brand  that used to be in optee_os have been removed, except for Juno board.
5718a7ee79dSPascal Brand
57295422146SPascal Brand* [Link][github_commits_1_0_0] to a list of all commits between this and
57395422146SPascal Brand  previous release.
57495422146SPascal Brand
5758a7ee79dSPascal Brand
5768a7ee79dSPascal Brand## Tested on
5778a7ee79dSPascal BrandDefinitions:
5788a7ee79dSPascal Brand
5798a7ee79dSPascal Brand| Type | Meaning |
5808a7ee79dSPascal Brand| ---- | ------- |
5818a7ee79dSPascal Brand| Standard tests | The [optee_test][optee_test] project. |
5828a7ee79dSPascal Brand| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.1.0.4. |
5838a7ee79dSPascal Brand| Hello world test | Plain hello world Trusted Application such as [this][hello_world]. |
5848a7ee79dSPascal Brand
5858a7ee79dSPascal Brand*	ARM Juno Board (vexpress-juno), standard + extended tests.
5868a7ee79dSPascal Brand*	Foundation Models (vexpress-fvp), standard tests.
5878a7ee79dSPascal Brand*	HiKey (hikey), standard + extended tests.
5888a7ee79dSPascal Brand*	MT8173 (mediatek), standard tests.
5898a7ee79dSPascal Brand*	QEMU (vexpress-qemu), standard + extended tests.
5908a7ee79dSPascal Brand*	STM Cannes (stm-cannes), standard + extended tests.
5918a7ee79dSPascal Brand
59295422146SPascal Brand## Known issues
59395422146SPascal Brand* Secure Storage is implemented, but note that anti-rollback protection
59495422146SPascal Brand  is not implemented yet.
59595422146SPascal Brand
59695422146SPascal Brand* Issue(s) open on GitHub
59795422146SPascal Brand  * [#210][pr210]: libteec.so 32-bit does not communicate well
59895422146SPascal Brand    with 64-bit kernel module
59995422146SPascal Brand  * [#296][pr296]: Connecting RPMB to the storage APIs.
60095422146SPascal Brand  * [#493][pr493]: setup_juno_optee: unable to find pre-built binaries
60195422146SPascal Brand  * [#494][pr494]: HiKey: xtest 7671 fails (1.0.0-rc2)
60295422146SPascal Brand
60395422146SPascal Brand[pr210]: https://github.com/OP-TEE/optee_os/issues/210
60495422146SPascal Brand[pr296]: https://github.com/OP-TEE/optee_os/issues/296
60595422146SPascal Brand[pr493]: https://github.com/OP-TEE/optee_os/issues/493
60695422146SPascal Brand[pr494]: https://github.com/OP-TEE/optee_os/issues/494
60795422146SPascal Brand[github_commits_1_0_0]: https://github.com/OP-TEE/optee_os/compare/0.3.0...1.0.0
6088a7ee79dSPascal Brand[DCO]: https://github.com/OP-TEE/optee_os/blob/master/Notice.md#contributions
6098a7ee79dSPascal Brand[LCStorage]: http://www.slideshare.net/linaroorg/sfo15503-secure-storage-in-optee
6108a7ee79dSPascal Brand[synchro]: https://github.com/OP-TEE/optee_os/blob/master/documentation/optee_design.md#4-thread-handling
6118a7ee79dSPascal Brand[elf]: https://github.com/OP-TEE/optee_os/blob/master/documentation/optee_design.md#format
6128a7ee79dSPascal Brand[optee_test]: https://github.com/OP-TEE/optee_test
6138a7ee79dSPascal Brand[manifest]: https://github.com/OP-TEE/manifest
6148a7ee79dSPascal Brand[build]: https://github.com/OP-TEE/build
6158a7ee79dSPascal Brand
61695422146SPascal Brand
61795422146SPascal Brand
61811d59085SPascal Brand# OP-TEE - version 0.3.0
61911d59085SPascal Brand
62011d59085SPascal Brand## New features
62111d59085SPascal Brand
62211d59085SPascal Brand*   Add hardware support for
62311d59085SPascal Brand	*   Mediatek MT8173 Board, ARMv8-A (plat-mediatek)
62411d59085SPascal Brand	*   Hisilicon HiKey Board, ARMv8-A (plat-hikey)
62511d59085SPascal Brand*   AArch64 build of optee_os is now possible through the configuration `CFG_ARM64_core=y`
62611d59085SPascal Brand*	Secure Storage: Data can be encrypted prior to their storage in the non-secure.
62711d59085SPascal Brand	Build is configured using `CFG_ENC_FS=y`
62811d59085SPascal Brand*	A generic boot scheme can be used. Boot configuration is commonalized. This helps
62911d59085SPascal Brand	new board support. It is applied on plat-hikey, plat-vexpress, plat-mediatek, plat-stm
63011d59085SPascal Brand    and plat-vexpress.
63111d59085SPascal Brand
63211d59085SPascal Brand## Tested on
63311d59085SPascal BrandDefinitions:
63411d59085SPascal Brand
63511d59085SPascal Brand| Type | Meaning |
63611d59085SPascal Brand| ---- | ------- |
63711d59085SPascal Brand| Standard tests | The optee_test project. |
63811d59085SPascal Brand| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.1.0.4. |
63911d59085SPascal Brand| Hello world test | Plain hello world Trusted Application such as [this][hello_world]. |
64011d59085SPascal Brand
64111d59085SPascal Brand*	ARM Juno Board (vexpress-juno), standard tests.
64211d59085SPascal Brand*	Foundation Models (vexpress-fvp), standard tests.
64311d59085SPascal Brand*	HiKey (hikey), standard tests.
64411d59085SPascal Brand*	MT8173 (mediatek), standard tests.
64511d59085SPascal Brand*	QEMU (vexpress-qemu), standard + extended tests.
64611d59085SPascal Brand*	STM Cannes (stm-cannes), standard + extended tests.
64711d59085SPascal Brand
64811d59085SPascal Brand-------------------------------------------
64911d59085SPascal Brand
650f5117af2SPascal Brand# OP-TEE - version 0.2.0
651759cc499SJoakim Bech
652f5117af2SPascal Brand## New features
653f5117af2SPascal Brand
654f5117af2SPascal Brand### Linux Driver Refactoring
655f5117af2SPascal Brand
656f5117af2SPascal BrandLinux Driver has been refactored. It is now split in two parts:
657f5117af2SPascal Brand*	optee.ko, the generic Linux driver. It contains all functionality
658f5117af2SPascal Brand	common to all backends.
659f5117af2SPascal Brand*	optee_armtz.ko, a specific backend dedicated to the TrustZone optee.
660f5117af2SPascal Brand	It depends on optee.ko.
661f5117af2SPascal Brand
662f5117af2SPascal BrandLoading the TrustZone optee linux driver module is now performed using
663f5117af2SPascal Brand
664f5117af2SPascal Brand    modprobe optee_armtz
665f5117af2SPascal Brand
666f5117af2SPascal BrandThanks to the dependency between the generic and the backend modules, optee.ko is then automatically loaded.
667f5117af2SPascal Brand
668f5117af2SPascal Brand### Misc new features
669f5117af2SPascal Brand* support PL310 lock down at TEE boot
670f5117af2SPascal Brand* add 64bits support (division / print)
671f5117af2SPascal Brand
672f5117af2SPascal Brand## Tested on
673f5117af2SPascal BrandDefinitions:
674f5117af2SPascal Brand
675f5117af2SPascal Brand| Type | Meaning |
676f5117af2SPascal Brand| ---- | ------- |
677f5117af2SPascal Brand| Standard tests | The optee_test project. |
678f5117af2SPascal Brand| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.1.0.4. |
679f5117af2SPascal Brand| Hello world test | Plain hello world Trusted Application such as [this][hello_world]. |
680f5117af2SPascal Brand
681f5117af2SPascal Brand*   ARM Juno Board (vexpress-juno), standard tests + extended tests.
682f5117af2SPascal Brand
683f5117af2SPascal Brand*   Foundation Models (vexpress-fvp), standard + extended tests.
684f5117af2SPascal Brand
685f5117af2SPascal Brand*   QEMU (vexpress-qemu), standard + extended tests.
686f5117af2SPascal Brand
687f5117af2SPascal Brand*   STM Cannes (stm-cannes), standard + extended tests.
688f5117af2SPascal Brand
689f5117af2SPascal Brand
69028fcee17SJerome Forissier## Issues resolved since last release
691f5117af2SPascal Brand*	Fix user TA trace issue, in order each TA is able to select its own trace level
692f5117af2SPascal Brand
693f5117af2SPascal Brand
694f5117af2SPascal Brand-------------------------------------------
695f5117af2SPascal Brand#OP-TEE - version 0.1.0
696f5117af2SPascal Brand
697f5117af2SPascal Brand## New features
698759cc499SJoakim BechBelow is a summary of the most important features added, but at the end you will
699759cc499SJoakim Bechfind a link that present you all commits between the current and previous
700759cc499SJoakim Bechrelease tag.
701759cc499SJoakim Bech
702759cc499SJoakim Bech*   GlobalPlatform Client API v1.0 support.
703759cc499SJoakim Bech
704759cc499SJoakim Bech*   GlobalPlatform Internal API v1.0 support.
705759cc499SJoakim Bech
706759cc499SJoakim Bech*   GlobalPlatform Secure Elements v1.0 support.
707759cc499SJoakim Bech
708759cc499SJoakim Bech*   Add hardware support for
709759cc499SJoakim Bech
710759cc499SJoakim Bech    *   Allwinner A80, ARMv7-A.
711759cc499SJoakim Bech
712759cc499SJoakim Bech    *   ARM Juno Board, ARMv8-A.
713759cc499SJoakim Bech
714759cc499SJoakim Bech    *   Foundation Models, ARMv8-A.
715759cc499SJoakim Bech
716759cc499SJoakim Bech    *   Fast Models, ARMv8-A.
717759cc499SJoakim Bech
718759cc499SJoakim Bech    *   QEMU, ARMv7-A.
719759cc499SJoakim Bech
720759cc499SJoakim Bech    *   STM Cannes, ARMv7-A.
721759cc499SJoakim Bech
722759cc499SJoakim Bech    *   STM Orly2, ARMv7-A.
723759cc499SJoakim Bech
724759cc499SJoakim Bech*   Add LibTomCrypt as the default software cryptographic library.
725759cc499SJoakim Bech
726759cc499SJoakim Bech*   Add cryptographic abstraction layer in on secure side to ease the use of
727759cc499SJoakim Bech    other cryptographic software libraries or adding support for hardware
728759cc499SJoakim Bech    acceleration.
729759cc499SJoakim Bech
730759cc499SJoakim Bech*   Extended cryptographic API with support for HKDF, Concat KDF and PBKDF2.
731759cc499SJoakim Bech
732759cc499SJoakim Bech*   SHA-1 and SHA-256 ARMv8-A crypto extension implementation.
733759cc499SJoakim Bech
734759cc499SJoakim Bech*   Enabled paging support in OP-TEE OS.
735759cc499SJoakim Bech
736759cc499SJoakim Bech*   Add support for xtest (both standard and extended) in QEMU and FVP setup
737759cc499SJoakim Bech    scripts.
738759cc499SJoakim Bech
739759cc499SJoakim Bech*   Add documentation for the OS design, cryptographic abstraction layer, secure
740759cc499SJoakim Bech    elements design, the build system, GitHub usage, key derivation extensions,
741759cc499SJoakim Bech    ARM-Trusted Firmware usage within OP-TEE and GlobalPlatform usage within
742759cc499SJoakim Bech    OP-TEE.
743759cc499SJoakim Bech
744759cc499SJoakim Bech*   Integrate support for Travis CI.
745759cc499SJoakim Bech
746759cc499SJoakim Bech*   [Link][github_commits_0_1_0] to a list of all commits between this and
747759cc499SJoakim Bech    previous release.
748759cc499SJoakim Bech
749759cc499SJoakim Bech
750f5117af2SPascal Brand## Tested on
751759cc499SJoakim BechDefinitions:
752759cc499SJoakim Bech
753759cc499SJoakim Bech| Type | Meaning |
754759cc499SJoakim Bech| ---- | ------- |
755759cc499SJoakim Bech| Standard tests | The optee_test project. |
756759cc499SJoakim Bech| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.0.0. |
757759cc499SJoakim Bech| Hello world test | Plain hello world Trusted Application such as [this][hello_world]. |
758759cc499SJoakim Bech
759759cc499SJoakim Bech*   Allwinner A80 (plat-sunxi), hello world test.
760759cc499SJoakim Bech
761759cc499SJoakim Bech*   ARM Juno Board (vexpress-juno), standard tests.
762759cc499SJoakim Bech
763759cc499SJoakim Bech*   Foundation Models (plat-vexpress-fvp), standard + extended tests
764759cc499SJoakim Bech
765759cc499SJoakim Bech*   QEMU (plat-vexpress-qemu), standard + extended tests (and Secure Elements
766759cc499SJoakim Bech    tested separately).
767759cc499SJoakim Bech
768759cc499SJoakim Bech*   STM Cannes (plat-stm-cannes), standard + extended tests.
769759cc499SJoakim Bech
770759cc499SJoakim Bech
77128fcee17SJerome Forissier## Issues resolved since last release
772759cc499SJoakim BechN/A since this is the first release tag on OP-TEE.
773759cc499SJoakim Bech
774759cc499SJoakim Bech
775f5117af2SPascal Brand## Known issues
776759cc499SJoakim Bech*   Storage is implemented, but not "Secure storage", meaning that a client
777759cc499SJoakim Bech    needs to do encrypt files on their own before storing the files.
778759cc499SJoakim Bech
779759cc499SJoakim Bech*   Issue(s) open on GitHub
780759cc499SJoakim Bech    *   [#95][pr95]: An error about building the test code of libtomcrypt.
781759cc499SJoakim Bech
782759cc499SJoakim Bech    *   [#149][pr149]: when testing optee os with arm trusted firmware (I
783759cc499SJoakim Bech	utilized optee os tee.bin as bl32 image) on juno platform, I got an
784759cc499SJoakim Bech        error.
785759cc499SJoakim Bech
786759cc499SJoakim Bech    *   [#161][pr161]: tee_svc_cryp.c lacks accessibility checks on
787759cc499SJoakim Bech        user-supplied TEE_Attributes.
788759cc499SJoakim Bech
789759cc499SJoakim Bech[hello_world]: https://github.com/jenswi-linaro/lcu14_optee_hello_world
790759cc499SJoakim Bech[github_commits_0_1_0]: https://github.com/OP-TEE/optee_os/compare/b01047730e77127c23a36591643eeb8bb0487d68...999e4a6c0f64d3177fd3d0db234107b6fb860884
791759cc499SJoakim Bech[pr95]: https://github.com/OP-TEE/optee_os/issues/95
792759cc499SJoakim Bech[pr149]: https://github.com/OP-TEE/optee_os/issues/149
793759cc499SJoakim Bech[pr161]: https://github.com/OP-TEE/optee_os/issues/161
794759cc499SJoakim Bech
7957583c59eSCedric Chaumont*   Global Platform Device Internal Core API v1.1
7967583c59eSCedric Chaumont    *   [#230][pr230]: Persistent object corruption support (TEE_ERROR_CORRUPT_OBJECT/_2)
7977583c59eSCedric Chaumont    *   [#230][pr230]: Persistent object access support (TEE_ERROR_STORAGE_NOT_AVAILABLE/_2)
798