xref: /optee_os/CHANGELOG.md (revision 8a7ee79d77ed3df82bbbc659499a80474c40b072)
1*8a7ee79dSPascal Brand# OP-TEE - version 1.0.0
2*8a7ee79dSPascal Brand
3*8a7ee79dSPascal BrandOP-TEE is now maintained by Linaro. Contributors do not need to
4*8a7ee79dSPascal Brandsign a CLA anymore, but must follow the rules of the [DCO][DCO]
5*8a7ee79dSPascal Brand(Developer Certificate of Origin) instead.
6*8a7ee79dSPascal Brand
7*8a7ee79dSPascal Brand
8*8a7ee79dSPascal Brand## New features
9*8a7ee79dSPascal Brand
10*8a7ee79dSPascal Brand* Add hardware support for Texas Instruments DRA7xx, ARMv7 (plat-ti)
11*8a7ee79dSPascal Brand
12*8a7ee79dSPascal Brand* GlobalPlatform™ TEE Internal Core API Specification v1.1,
13*8a7ee79dSPascal Brand  including ECC algorithms.
14*8a7ee79dSPascal Brand
15*8a7ee79dSPascal Brand* Secure Storage: Files stored by the REE are now encrypted. Operations
16*8a7ee79dSPascal Brand  are made atomic in order to prevent inconsistencies in case of errors
17*8a7ee79dSPascal Brand  during the storage operations. [Slides][LCStorage] describing the
18*8a7ee79dSPascal Brand  Secure Storage have been presented at the Linaro Connect SFO15.
19*8a7ee79dSPascal Brand
20*8a7ee79dSPascal Brand* Change of format of the Trusted Applications: they follow a
21*8a7ee79dSPascal Brand  [signed ELF format][elf]
22*8a7ee79dSPascal Brand
23*8a7ee79dSPascal Brand* Rework thread [synchronization][synchro] in optee_os.
24*8a7ee79dSPascal Brand
25*8a7ee79dSPascal Brand* Use of ARMv8 native cryptographic support.
26*8a7ee79dSPascal Brand
27*8a7ee79dSPascal Brand* [OP-TEE/optee_test][optee_test] test suite is released.
28*8a7ee79dSPascal Brand
29*8a7ee79dSPascal Brand* Introduce [OP-TEE/manifest][manifest] and [OP-TEE/build][build]
30*8a7ee79dSPascal Brand  to setup and build QEMU, FVP, HiKey and Mediatek platforms. Setup scripts
31*8a7ee79dSPascal Brand  that used to be in optee_os have been removed, except for Juno board.
32*8a7ee79dSPascal Brand
33*8a7ee79dSPascal Brand
34*8a7ee79dSPascal Brand## Tested on
35*8a7ee79dSPascal BrandDefinitions:
36*8a7ee79dSPascal Brand
37*8a7ee79dSPascal Brand| Type | Meaning |
38*8a7ee79dSPascal Brand| ---- | ------- |
39*8a7ee79dSPascal Brand| Standard tests | The [optee_test][optee_test] project. |
40*8a7ee79dSPascal Brand| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.1.0.4. |
41*8a7ee79dSPascal Brand| Hello world test | Plain hello world Trusted Application such as [this][hello_world]. |
42*8a7ee79dSPascal Brand
43*8a7ee79dSPascal Brand*	ARM Juno Board (vexpress-juno), standard + extended tests.
44*8a7ee79dSPascal Brand*	Foundation Models (vexpress-fvp), standard tests.
45*8a7ee79dSPascal Brand*	HiKey (hikey), standard + extended tests.
46*8a7ee79dSPascal Brand*	MT8173 (mediatek), standard tests.
47*8a7ee79dSPascal Brand*	QEMU (vexpress-qemu), standard + extended tests.
48*8a7ee79dSPascal Brand*	STM Cannes (stm-cannes), standard + extended tests.
49*8a7ee79dSPascal Brand
50*8a7ee79dSPascal Brand[DCO]: https://github.com/OP-TEE/optee_os/blob/master/Notice.md#contributions
51*8a7ee79dSPascal Brand[LCStorage]: http://www.slideshare.net/linaroorg/sfo15503-secure-storage-in-optee
52*8a7ee79dSPascal Brand[synchro]: https://github.com/OP-TEE/optee_os/blob/master/documentation/optee_design.md#4-thread-handling
53*8a7ee79dSPascal Brand[elf]: https://github.com/OP-TEE/optee_os/blob/master/documentation/optee_design.md#format
54*8a7ee79dSPascal Brand[optee_test]: https://github.com/OP-TEE/optee_test
55*8a7ee79dSPascal Brand[manifest]: https://github.com/OP-TEE/manifest
56*8a7ee79dSPascal Brand[build]: https://github.com/OP-TEE/build
57*8a7ee79dSPascal Brand
5811d59085SPascal Brand# OP-TEE - version 0.3.0
5911d59085SPascal Brand
6011d59085SPascal Brand## New features
6111d59085SPascal Brand
6211d59085SPascal Brand*   Add hardware support for
6311d59085SPascal Brand	*   Mediatek MT8173 Board, ARMv8-A (plat-mediatek)
6411d59085SPascal Brand	*   Hisilicon HiKey Board, ARMv8-A (plat-hikey)
6511d59085SPascal Brand*   AArch64 build of optee_os is now possible through the configuration `CFG_ARM64_core=y`
6611d59085SPascal Brand*	Secure Storage: Data can be encrypted prior to their storage in the non-secure.
6711d59085SPascal Brand	Build is configured using `CFG_ENC_FS=y`
6811d59085SPascal Brand*	A generic boot scheme can be used. Boot configuration is commonalized. This helps
6911d59085SPascal Brand	new board support. It is applied on plat-hikey, plat-vexpress, plat-mediatek, plat-stm
7011d59085SPascal Brand    and plat-vexpress.
7111d59085SPascal Brand
7211d59085SPascal Brand## Tested on
7311d59085SPascal BrandDefinitions:
7411d59085SPascal Brand
7511d59085SPascal Brand| Type | Meaning |
7611d59085SPascal Brand| ---- | ------- |
7711d59085SPascal Brand| Standard tests | The optee_test project. |
7811d59085SPascal Brand| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.1.0.4. |
7911d59085SPascal Brand| Hello world test | Plain hello world Trusted Application such as [this][hello_world]. |
8011d59085SPascal Brand
8111d59085SPascal Brand*	ARM Juno Board (vexpress-juno), standard tests.
8211d59085SPascal Brand*	Foundation Models (vexpress-fvp), standard tests.
8311d59085SPascal Brand*	HiKey (hikey), standard tests.
8411d59085SPascal Brand*	MT8173 (mediatek), standard tests.
8511d59085SPascal Brand*	QEMU (vexpress-qemu), standard + extended tests.
8611d59085SPascal Brand*	STM Cannes (stm-cannes), standard + extended tests.
8711d59085SPascal Brand
8811d59085SPascal Brand-------------------------------------------
8911d59085SPascal Brand
90f5117af2SPascal Brand# OP-TEE - version 0.2.0
91759cc499SJoakim Bech
92f5117af2SPascal Brand## New features
93f5117af2SPascal Brand
94f5117af2SPascal Brand### Linux Driver Refactoring
95f5117af2SPascal Brand
96f5117af2SPascal BrandLinux Driver has been refactored. It is now split in two parts:
97f5117af2SPascal Brand*	optee.ko, the generic Linux driver. It contains all functionality
98f5117af2SPascal Brand	common to all backends.
99f5117af2SPascal Brand*	optee_armtz.ko, a specific backend dedicated to the TrustZone optee.
100f5117af2SPascal Brand	It depends on optee.ko.
101f5117af2SPascal Brand
102f5117af2SPascal BrandLoading the TrustZone optee linux driver module is now performed using
103f5117af2SPascal Brand
104f5117af2SPascal Brand    modprobe optee_armtz
105f5117af2SPascal Brand
106f5117af2SPascal BrandThanks to the dependency between the generic and the backend modules, optee.ko is then automatically loaded.
107f5117af2SPascal Brand
108f5117af2SPascal Brand### Misc new features
109f5117af2SPascal Brand* support PL310 lock down at TEE boot
110f5117af2SPascal Brand* add 64bits support (division / print)
111f5117af2SPascal Brand
112f5117af2SPascal Brand## Tested on
113f5117af2SPascal BrandDefinitions:
114f5117af2SPascal Brand
115f5117af2SPascal Brand| Type | Meaning |
116f5117af2SPascal Brand| ---- | ------- |
117f5117af2SPascal Brand| Standard tests | The optee_test project. |
118f5117af2SPascal Brand| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.1.0.4. |
119f5117af2SPascal Brand| Hello world test | Plain hello world Trusted Application such as [this][hello_world]. |
120f5117af2SPascal Brand
121f5117af2SPascal Brand*   ARM Juno Board (vexpress-juno), standard tests + extended tests.
122f5117af2SPascal Brand
123f5117af2SPascal Brand*   Foundation Models (vexpress-fvp), standard + extended tests.
124f5117af2SPascal Brand
125f5117af2SPascal Brand*   QEMU (vexpress-qemu), standard + extended tests.
126f5117af2SPascal Brand
127f5117af2SPascal Brand*   STM Cannes (stm-cannes), standard + extended tests.
128f5117af2SPascal Brand
129f5117af2SPascal Brand
130f5117af2SPascal Brand## Issues resolved since last release
131f5117af2SPascal Brand*	Fix user TA trace issue, in order each TA is able to select its own trace level
132f5117af2SPascal Brand
133f5117af2SPascal Brand
134f5117af2SPascal Brand-------------------------------------------
135f5117af2SPascal Brand#OP-TEE - version 0.1.0
136f5117af2SPascal Brand
137f5117af2SPascal Brand## New features
138759cc499SJoakim BechBelow is a summary of the most important features added, but at the end you will
139759cc499SJoakim Bechfind a link that present you all commits between the current and previous
140759cc499SJoakim Bechrelease tag.
141759cc499SJoakim Bech
142759cc499SJoakim Bech*   GlobalPlatform Client API v1.0 support.
143759cc499SJoakim Bech
144759cc499SJoakim Bech*   GlobalPlatform Internal API v1.0 support.
145759cc499SJoakim Bech
146759cc499SJoakim Bech*   GlobalPlatform Secure Elements v1.0 support.
147759cc499SJoakim Bech
148759cc499SJoakim Bech*   Add hardware support for
149759cc499SJoakim Bech
150759cc499SJoakim Bech    *   Allwinner A80, ARMv7-A.
151759cc499SJoakim Bech
152759cc499SJoakim Bech    *   ARM Juno Board, ARMv8-A.
153759cc499SJoakim Bech
154759cc499SJoakim Bech    *   Foundation Models, ARMv8-A.
155759cc499SJoakim Bech
156759cc499SJoakim Bech    *   Fast Models, ARMv8-A.
157759cc499SJoakim Bech
158759cc499SJoakim Bech    *   QEMU, ARMv7-A.
159759cc499SJoakim Bech
160759cc499SJoakim Bech    *   STM Cannes, ARMv7-A.
161759cc499SJoakim Bech
162759cc499SJoakim Bech    *   STM Orly2, ARMv7-A.
163759cc499SJoakim Bech
164759cc499SJoakim Bech*   Add LibTomCrypt as the default software cryptographic library.
165759cc499SJoakim Bech
166759cc499SJoakim Bech*   Add cryptographic abstraction layer in on secure side to ease the use of
167759cc499SJoakim Bech    other cryptographic software libraries or adding support for hardware
168759cc499SJoakim Bech    acceleration.
169759cc499SJoakim Bech
170759cc499SJoakim Bech*   Extended cryptographic API with support for HKDF, Concat KDF and PBKDF2.
171759cc499SJoakim Bech
172759cc499SJoakim Bech*   SHA-1 and SHA-256 ARMv8-A crypto extension implementation.
173759cc499SJoakim Bech
174759cc499SJoakim Bech*   Enabled paging support in OP-TEE OS.
175759cc499SJoakim Bech
176759cc499SJoakim Bech*   Add support for xtest (both standard and extended) in QEMU and FVP setup
177759cc499SJoakim Bech    scripts.
178759cc499SJoakim Bech
179759cc499SJoakim Bech*   Add documentation for the OS design, cryptographic abstraction layer, secure
180759cc499SJoakim Bech    elements design, the build system, GitHub usage, key derivation extensions,
181759cc499SJoakim Bech    ARM-Trusted Firmware usage within OP-TEE and GlobalPlatform usage within
182759cc499SJoakim Bech    OP-TEE.
183759cc499SJoakim Bech
184759cc499SJoakim Bech*   Integrate support for Travis CI.
185759cc499SJoakim Bech
186759cc499SJoakim Bech*   [Link][github_commits_0_1_0] to a list of all commits between this and
187759cc499SJoakim Bech    previous release.
188759cc499SJoakim Bech
189759cc499SJoakim Bech
190f5117af2SPascal Brand## Tested on
191759cc499SJoakim BechDefinitions:
192759cc499SJoakim Bech
193759cc499SJoakim Bech| Type | Meaning |
194759cc499SJoakim Bech| ---- | ------- |
195759cc499SJoakim Bech| Standard tests | The optee_test project. |
196759cc499SJoakim Bech| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.0.0. |
197759cc499SJoakim Bech| Hello world test | Plain hello world Trusted Application such as [this][hello_world]. |
198759cc499SJoakim Bech
199759cc499SJoakim Bech*   Allwinner A80 (plat-sunxi), hello world test.
200759cc499SJoakim Bech
201759cc499SJoakim Bech*   ARM Juno Board (vexpress-juno), standard tests.
202759cc499SJoakim Bech
203759cc499SJoakim Bech*   Foundation Models (plat-vexpress-fvp), standard + extended tests
204759cc499SJoakim Bech
205759cc499SJoakim Bech*   QEMU (plat-vexpress-qemu), standard + extended tests (and Secure Elements
206759cc499SJoakim Bech    tested separately).
207759cc499SJoakim Bech
208759cc499SJoakim Bech*   STM Cannes (plat-stm-cannes), standard + extended tests.
209759cc499SJoakim Bech
210759cc499SJoakim Bech
211f5117af2SPascal Brand## Issues resolved since last release
212759cc499SJoakim BechN/A since this is the first release tag on OP-TEE.
213759cc499SJoakim Bech
214759cc499SJoakim Bech
215f5117af2SPascal Brand## Known issues
216759cc499SJoakim Bech*   Storage is implemented, but not "Secure storage", meaning that a client
217759cc499SJoakim Bech    needs to do encrypt files on their own before storing the files.
218759cc499SJoakim Bech
219759cc499SJoakim Bech*   Issue(s) open on GitHub
220759cc499SJoakim Bech    *   [#95][pr95]: An error about building the test code of libtomcrypt.
221759cc499SJoakim Bech
222759cc499SJoakim Bech    *   [#149][pr149]: when testing optee os with arm trusted firmware (I
223759cc499SJoakim Bech	utilized optee os tee.bin as bl32 image) on juno platform, I got an
224759cc499SJoakim Bech        error.
225759cc499SJoakim Bech
226759cc499SJoakim Bech    *   [#161][pr161]: tee_svc_cryp.c lacks accessibility checks on
227759cc499SJoakim Bech        user-supplied TEE_Attributes.
228759cc499SJoakim Bech
229759cc499SJoakim Bech[hello_world]: https://github.com/jenswi-linaro/lcu14_optee_hello_world
230759cc499SJoakim Bech[github_commits_0_1_0]: https://github.com/OP-TEE/optee_os/compare/b01047730e77127c23a36591643eeb8bb0487d68...999e4a6c0f64d3177fd3d0db234107b6fb860884
231759cc499SJoakim Bech[pr95]: https://github.com/OP-TEE/optee_os/issues/95
232759cc499SJoakim Bech[pr149]: https://github.com/OP-TEE/optee_os/issues/149
233759cc499SJoakim Bech[pr161]: https://github.com/OP-TEE/optee_os/issues/161
234759cc499SJoakim Bech
2357583c59eSCedric Chaumont*   Global Platform Device Internal Core API v1.1
2367583c59eSCedric Chaumont    *   [#230][pr230]: Persistent object corruption support (TEE_ERROR_CORRUPT_OBJECT/_2)
2377583c59eSCedric Chaumont    *   [#230][pr230]: Persistent object access support (TEE_ERROR_STORAGE_NOT_AVAILABLE/_2)
238