xref: /optee_os/CHANGELOG.md (revision 947ebd697b79a401f28a2371b8058069ca82297c)
1# OP-TEE - version 0.3.0
2
3## New features
4
5*   Add hardware support for
6	*   Mediatek MT8173 Board, ARMv8-A (plat-mediatek)
7	*   Hisilicon HiKey Board, ARMv8-A (plat-hikey)
8*   AArch64 build of optee_os is now possible through the configuration `CFG_ARM64_core=y`
9*	Secure Storage: Data can be encrypted prior to their storage in the non-secure.
10	Build is configured using `CFG_ENC_FS=y`
11*	A generic boot scheme can be used. Boot configuration is commonalized. This helps
12	new board support. It is applied on plat-hikey, plat-vexpress, plat-mediatek, plat-stm
13    and plat-vexpress.
14
15## Tested on
16Definitions:
17
18| Type | Meaning |
19| ---- | ------- |
20| Standard tests | The optee_test project. |
21| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.1.0.4. |
22| Hello world test | Plain hello world Trusted Application such as [this][hello_world]. |
23
24*	ARM Juno Board (vexpress-juno), standard tests.
25*	Foundation Models (vexpress-fvp), standard tests.
26*	HiKey (hikey), standard tests.
27*	MT8173 (mediatek), standard tests.
28*	QEMU (vexpress-qemu), standard + extended tests.
29*	STM Cannes (stm-cannes), standard + extended tests.
30
31-------------------------------------------
32
33# OP-TEE - version 0.2.0
34
35## New features
36
37### Linux Driver Refactoring
38
39Linux Driver has been refactored. It is now split in two parts:
40*	optee.ko, the generic Linux driver. It contains all functionality
41	common to all backends.
42*	optee_armtz.ko, a specific backend dedicated to the TrustZone optee.
43	It depends on optee.ko.
44
45Loading the TrustZone optee linux driver module is now performed using
46
47    modprobe optee_armtz
48
49Thanks to the dependency between the generic and the backend modules, optee.ko is then automatically loaded.
50
51### Misc new features
52* support PL310 lock down at TEE boot
53* add 64bits support (division / print)
54
55## Tested on
56Definitions:
57
58| Type | Meaning |
59| ---- | ------- |
60| Standard tests | The optee_test project. |
61| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.1.0.4. |
62| Hello world test | Plain hello world Trusted Application such as [this][hello_world]. |
63
64*   ARM Juno Board (vexpress-juno), standard tests + extended tests.
65
66*   Foundation Models (vexpress-fvp), standard + extended tests.
67
68*   QEMU (vexpress-qemu), standard + extended tests.
69
70*   STM Cannes (stm-cannes), standard + extended tests.
71
72
73## Issues resolved since last release
74*	Fix user TA trace issue, in order each TA is able to select its own trace level
75
76
77-------------------------------------------
78#OP-TEE - version 0.1.0
79
80## New features
81Below is a summary of the most important features added, but at the end you will
82find a link that present you all commits between the current and previous
83release tag.
84
85*   GlobalPlatform Client API v1.0 support.
86
87*   GlobalPlatform Internal API v1.0 support.
88
89*   GlobalPlatform Secure Elements v1.0 support.
90
91*   Add hardware support for
92
93    *   Allwinner A80, ARMv7-A.
94
95    *   ARM Juno Board, ARMv8-A.
96
97    *   Foundation Models, ARMv8-A.
98
99    *   Fast Models, ARMv8-A.
100
101    *   QEMU, ARMv7-A.
102
103    *   STM Cannes, ARMv7-A.
104
105    *   STM Orly2, ARMv7-A.
106
107*   Add LibTomCrypt as the default software cryptographic library.
108
109*   Add cryptographic abstraction layer in on secure side to ease the use of
110    other cryptographic software libraries or adding support for hardware
111    acceleration.
112
113*   Extended cryptographic API with support for HKDF, Concat KDF and PBKDF2.
114
115*   SHA-1 and SHA-256 ARMv8-A crypto extension implementation.
116
117*   Enabled paging support in OP-TEE OS.
118
119*   Add support for xtest (both standard and extended) in QEMU and FVP setup
120    scripts.
121
122*   Add documentation for the OS design, cryptographic abstraction layer, secure
123    elements design, the build system, GitHub usage, key derivation extensions,
124    ARM-Trusted Firmware usage within OP-TEE and GlobalPlatform usage within
125    OP-TEE.
126
127*   Integrate support for Travis CI.
128
129*   [Link][github_commits_0_1_0] to a list of all commits between this and
130    previous release.
131
132
133## Tested on
134Definitions:
135
136| Type | Meaning |
137| ---- | ------- |
138| Standard tests | The optee_test project. |
139| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.0.0. |
140| Hello world test | Plain hello world Trusted Application such as [this][hello_world]. |
141
142*   Allwinner A80 (plat-sunxi), hello world test.
143
144*   ARM Juno Board (vexpress-juno), standard tests.
145
146*   Foundation Models (plat-vexpress-fvp), standard + extended tests
147
148*   QEMU (plat-vexpress-qemu), standard + extended tests (and Secure Elements
149    tested separately).
150
151*   STM Cannes (plat-stm-cannes), standard + extended tests.
152
153
154## Issues resolved since last release
155N/A since this is the first release tag on OP-TEE.
156
157
158## Known issues
159*   Storage is implemented, but not "Secure storage", meaning that a client
160    needs to do encrypt files on their own before storing the files.
161
162*   Issue(s) open on GitHub
163    *   [#95][pr95]: An error about building the test code of libtomcrypt.
164
165    *   [#149][pr149]: when testing optee os with arm trusted firmware (I
166	utilized optee os tee.bin as bl32 image) on juno platform, I got an
167        error.
168
169    *   [#161][pr161]: tee_svc_cryp.c lacks accessibility checks on
170        user-supplied TEE_Attributes.
171
172[hello_world]: https://github.com/jenswi-linaro/lcu14_optee_hello_world
173[github_commits_0_1_0]: https://github.com/OP-TEE/optee_os/compare/b01047730e77127c23a36591643eeb8bb0487d68...999e4a6c0f64d3177fd3d0db234107b6fb860884
174[pr95]: https://github.com/OP-TEE/optee_os/issues/95
175[pr149]: https://github.com/OP-TEE/optee_os/issues/149
176[pr161]: https://github.com/OP-TEE/optee_os/issues/161
177
178*   Global Platform Device Internal Core API v1.1
179    *   [#230][pr230]: Persistent object corruption support (TEE_ERROR_CORRUPT_OBJECT/_2)
180    *   [#230][pr230]: Persistent object access support (TEE_ERROR_STORAGE_NOT_AVAILABLE/_2)
181