xref: /optee_os/CHANGELOG.md (revision 9542214673e9d48f34c0ae21951143005fca08b7)
18a7ee79dSPascal Brand# OP-TEE - version 1.0.0
28a7ee79dSPascal Brand
38a7ee79dSPascal BrandOP-TEE is now maintained by Linaro. Contributors do not need to
48a7ee79dSPascal Brandsign a CLA anymore, but must follow the rules of the [DCO][DCO]
58a7ee79dSPascal Brand(Developer Certificate of Origin) instead.
68a7ee79dSPascal Brand
78a7ee79dSPascal Brand
88a7ee79dSPascal Brand## New features
98a7ee79dSPascal Brand
108a7ee79dSPascal Brand* Add hardware support for Texas Instruments DRA7xx, ARMv7 (plat-ti)
118a7ee79dSPascal Brand
128a7ee79dSPascal Brand* GlobalPlatform™ TEE Internal Core API Specification v1.1,
138a7ee79dSPascal Brand  including ECC algorithms.
148a7ee79dSPascal Brand
158a7ee79dSPascal Brand* Secure Storage: Files stored by the REE are now encrypted. Operations
168a7ee79dSPascal Brand  are made atomic in order to prevent inconsistencies in case of errors
178a7ee79dSPascal Brand  during the storage operations. [Slides][LCStorage] describing the
188a7ee79dSPascal Brand  Secure Storage have been presented at the Linaro Connect SFO15.
198a7ee79dSPascal Brand
208a7ee79dSPascal Brand* Change of format of the Trusted Applications: they follow a
218a7ee79dSPascal Brand  [signed ELF format][elf]
228a7ee79dSPascal Brand
238a7ee79dSPascal Brand* Rework thread [synchronization][synchro] in optee_os.
248a7ee79dSPascal Brand
258a7ee79dSPascal Brand* Use of ARMv8 native cryptographic support.
268a7ee79dSPascal Brand
278a7ee79dSPascal Brand* [OP-TEE/optee_test][optee_test] test suite is released.
288a7ee79dSPascal Brand
298a7ee79dSPascal Brand* Introduce [OP-TEE/manifest][manifest] and [OP-TEE/build][build]
308a7ee79dSPascal Brand  to setup and build QEMU, FVP, HiKey and Mediatek platforms. Setup scripts
318a7ee79dSPascal Brand  that used to be in optee_os have been removed, except for Juno board.
328a7ee79dSPascal Brand
33*95422146SPascal Brand* [Link][github_commits_1_0_0] to a list of all commits between this and
34*95422146SPascal Brand  previous release.
35*95422146SPascal Brand
368a7ee79dSPascal Brand
378a7ee79dSPascal Brand## Tested on
388a7ee79dSPascal BrandDefinitions:
398a7ee79dSPascal Brand
408a7ee79dSPascal Brand| Type | Meaning |
418a7ee79dSPascal Brand| ---- | ------- |
428a7ee79dSPascal Brand| Standard tests | The [optee_test][optee_test] project. |
438a7ee79dSPascal Brand| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.1.0.4. |
448a7ee79dSPascal Brand| Hello world test | Plain hello world Trusted Application such as [this][hello_world]. |
458a7ee79dSPascal Brand
468a7ee79dSPascal Brand*	ARM Juno Board (vexpress-juno), standard + extended tests.
478a7ee79dSPascal Brand*	Foundation Models (vexpress-fvp), standard tests.
488a7ee79dSPascal Brand*	HiKey (hikey), standard + extended tests.
498a7ee79dSPascal Brand*	MT8173 (mediatek), standard tests.
508a7ee79dSPascal Brand*	QEMU (vexpress-qemu), standard + extended tests.
518a7ee79dSPascal Brand*	STM Cannes (stm-cannes), standard + extended tests.
528a7ee79dSPascal Brand
53*95422146SPascal Brand## Known issues
54*95422146SPascal Brand* Secure Storage is implemented, but note that anti-rollback protection
55*95422146SPascal Brand  is not implemented yet.
56*95422146SPascal Brand
57*95422146SPascal Brand* Issue(s) open on GitHub
58*95422146SPascal Brand  * [#210][pr210]: libteec.so 32-bit does not communicate well
59*95422146SPascal Brand    with 64-bit kernel module
60*95422146SPascal Brand  * [#296][pr296]: Connecting RPMB to the storage APIs.
61*95422146SPascal Brand  * [#493][pr493]: setup_juno_optee: unable to find pre-built binaries
62*95422146SPascal Brand  * [#494][pr494]: HiKey: xtest 7671 fails (1.0.0-rc2)
63*95422146SPascal Brand
64*95422146SPascal Brand[pr210]: https://github.com/OP-TEE/optee_os/issues/210
65*95422146SPascal Brand[pr296]: https://github.com/OP-TEE/optee_os/issues/296
66*95422146SPascal Brand[pr493]: https://github.com/OP-TEE/optee_os/issues/493
67*95422146SPascal Brand[pr494]: https://github.com/OP-TEE/optee_os/issues/494
68*95422146SPascal Brand[github_commits_1_0_0]: https://github.com/OP-TEE/optee_os/compare/0.3.0...1.0.0
698a7ee79dSPascal Brand[DCO]: https://github.com/OP-TEE/optee_os/blob/master/Notice.md#contributions
708a7ee79dSPascal Brand[LCStorage]: http://www.slideshare.net/linaroorg/sfo15503-secure-storage-in-optee
718a7ee79dSPascal Brand[synchro]: https://github.com/OP-TEE/optee_os/blob/master/documentation/optee_design.md#4-thread-handling
728a7ee79dSPascal Brand[elf]: https://github.com/OP-TEE/optee_os/blob/master/documentation/optee_design.md#format
738a7ee79dSPascal Brand[optee_test]: https://github.com/OP-TEE/optee_test
748a7ee79dSPascal Brand[manifest]: https://github.com/OP-TEE/manifest
758a7ee79dSPascal Brand[build]: https://github.com/OP-TEE/build
768a7ee79dSPascal Brand
77*95422146SPascal Brand
78*95422146SPascal Brand
7911d59085SPascal Brand# OP-TEE - version 0.3.0
8011d59085SPascal Brand
8111d59085SPascal Brand## New features
8211d59085SPascal Brand
8311d59085SPascal Brand*   Add hardware support for
8411d59085SPascal Brand	*   Mediatek MT8173 Board, ARMv8-A (plat-mediatek)
8511d59085SPascal Brand	*   Hisilicon HiKey Board, ARMv8-A (plat-hikey)
8611d59085SPascal Brand*   AArch64 build of optee_os is now possible through the configuration `CFG_ARM64_core=y`
8711d59085SPascal Brand*	Secure Storage: Data can be encrypted prior to their storage in the non-secure.
8811d59085SPascal Brand	Build is configured using `CFG_ENC_FS=y`
8911d59085SPascal Brand*	A generic boot scheme can be used. Boot configuration is commonalized. This helps
9011d59085SPascal Brand	new board support. It is applied on plat-hikey, plat-vexpress, plat-mediatek, plat-stm
9111d59085SPascal Brand    and plat-vexpress.
9211d59085SPascal Brand
9311d59085SPascal Brand## Tested on
9411d59085SPascal BrandDefinitions:
9511d59085SPascal Brand
9611d59085SPascal Brand| Type | Meaning |
9711d59085SPascal Brand| ---- | ------- |
9811d59085SPascal Brand| Standard tests | The optee_test project. |
9911d59085SPascal Brand| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.1.0.4. |
10011d59085SPascal Brand| Hello world test | Plain hello world Trusted Application such as [this][hello_world]. |
10111d59085SPascal Brand
10211d59085SPascal Brand*	ARM Juno Board (vexpress-juno), standard tests.
10311d59085SPascal Brand*	Foundation Models (vexpress-fvp), standard tests.
10411d59085SPascal Brand*	HiKey (hikey), standard tests.
10511d59085SPascal Brand*	MT8173 (mediatek), standard tests.
10611d59085SPascal Brand*	QEMU (vexpress-qemu), standard + extended tests.
10711d59085SPascal Brand*	STM Cannes (stm-cannes), standard + extended tests.
10811d59085SPascal Brand
10911d59085SPascal Brand-------------------------------------------
11011d59085SPascal Brand
111f5117af2SPascal Brand# OP-TEE - version 0.2.0
112759cc499SJoakim Bech
113f5117af2SPascal Brand## New features
114f5117af2SPascal Brand
115f5117af2SPascal Brand### Linux Driver Refactoring
116f5117af2SPascal Brand
117f5117af2SPascal BrandLinux Driver has been refactored. It is now split in two parts:
118f5117af2SPascal Brand*	optee.ko, the generic Linux driver. It contains all functionality
119f5117af2SPascal Brand	common to all backends.
120f5117af2SPascal Brand*	optee_armtz.ko, a specific backend dedicated to the TrustZone optee.
121f5117af2SPascal Brand	It depends on optee.ko.
122f5117af2SPascal Brand
123f5117af2SPascal BrandLoading the TrustZone optee linux driver module is now performed using
124f5117af2SPascal Brand
125f5117af2SPascal Brand    modprobe optee_armtz
126f5117af2SPascal Brand
127f5117af2SPascal BrandThanks to the dependency between the generic and the backend modules, optee.ko is then automatically loaded.
128f5117af2SPascal Brand
129f5117af2SPascal Brand### Misc new features
130f5117af2SPascal Brand* support PL310 lock down at TEE boot
131f5117af2SPascal Brand* add 64bits support (division / print)
132f5117af2SPascal Brand
133f5117af2SPascal Brand## Tested on
134f5117af2SPascal BrandDefinitions:
135f5117af2SPascal Brand
136f5117af2SPascal Brand| Type | Meaning |
137f5117af2SPascal Brand| ---- | ------- |
138f5117af2SPascal Brand| Standard tests | The optee_test project. |
139f5117af2SPascal Brand| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.1.0.4. |
140f5117af2SPascal Brand| Hello world test | Plain hello world Trusted Application such as [this][hello_world]. |
141f5117af2SPascal Brand
142f5117af2SPascal Brand*   ARM Juno Board (vexpress-juno), standard tests + extended tests.
143f5117af2SPascal Brand
144f5117af2SPascal Brand*   Foundation Models (vexpress-fvp), standard + extended tests.
145f5117af2SPascal Brand
146f5117af2SPascal Brand*   QEMU (vexpress-qemu), standard + extended tests.
147f5117af2SPascal Brand
148f5117af2SPascal Brand*   STM Cannes (stm-cannes), standard + extended tests.
149f5117af2SPascal Brand
150f5117af2SPascal Brand
151f5117af2SPascal Brand## Issues resolved since last release
152f5117af2SPascal Brand*	Fix user TA trace issue, in order each TA is able to select its own trace level
153f5117af2SPascal Brand
154f5117af2SPascal Brand
155f5117af2SPascal Brand-------------------------------------------
156f5117af2SPascal Brand#OP-TEE - version 0.1.0
157f5117af2SPascal Brand
158f5117af2SPascal Brand## New features
159759cc499SJoakim BechBelow is a summary of the most important features added, but at the end you will
160759cc499SJoakim Bechfind a link that present you all commits between the current and previous
161759cc499SJoakim Bechrelease tag.
162759cc499SJoakim Bech
163759cc499SJoakim Bech*   GlobalPlatform Client API v1.0 support.
164759cc499SJoakim Bech
165759cc499SJoakim Bech*   GlobalPlatform Internal API v1.0 support.
166759cc499SJoakim Bech
167759cc499SJoakim Bech*   GlobalPlatform Secure Elements v1.0 support.
168759cc499SJoakim Bech
169759cc499SJoakim Bech*   Add hardware support for
170759cc499SJoakim Bech
171759cc499SJoakim Bech    *   Allwinner A80, ARMv7-A.
172759cc499SJoakim Bech
173759cc499SJoakim Bech    *   ARM Juno Board, ARMv8-A.
174759cc499SJoakim Bech
175759cc499SJoakim Bech    *   Foundation Models, ARMv8-A.
176759cc499SJoakim Bech
177759cc499SJoakim Bech    *   Fast Models, ARMv8-A.
178759cc499SJoakim Bech
179759cc499SJoakim Bech    *   QEMU, ARMv7-A.
180759cc499SJoakim Bech
181759cc499SJoakim Bech    *   STM Cannes, ARMv7-A.
182759cc499SJoakim Bech
183759cc499SJoakim Bech    *   STM Orly2, ARMv7-A.
184759cc499SJoakim Bech
185759cc499SJoakim Bech*   Add LibTomCrypt as the default software cryptographic library.
186759cc499SJoakim Bech
187759cc499SJoakim Bech*   Add cryptographic abstraction layer in on secure side to ease the use of
188759cc499SJoakim Bech    other cryptographic software libraries or adding support for hardware
189759cc499SJoakim Bech    acceleration.
190759cc499SJoakim Bech
191759cc499SJoakim Bech*   Extended cryptographic API with support for HKDF, Concat KDF and PBKDF2.
192759cc499SJoakim Bech
193759cc499SJoakim Bech*   SHA-1 and SHA-256 ARMv8-A crypto extension implementation.
194759cc499SJoakim Bech
195759cc499SJoakim Bech*   Enabled paging support in OP-TEE OS.
196759cc499SJoakim Bech
197759cc499SJoakim Bech*   Add support for xtest (both standard and extended) in QEMU and FVP setup
198759cc499SJoakim Bech    scripts.
199759cc499SJoakim Bech
200759cc499SJoakim Bech*   Add documentation for the OS design, cryptographic abstraction layer, secure
201759cc499SJoakim Bech    elements design, the build system, GitHub usage, key derivation extensions,
202759cc499SJoakim Bech    ARM-Trusted Firmware usage within OP-TEE and GlobalPlatform usage within
203759cc499SJoakim Bech    OP-TEE.
204759cc499SJoakim Bech
205759cc499SJoakim Bech*   Integrate support for Travis CI.
206759cc499SJoakim Bech
207759cc499SJoakim Bech*   [Link][github_commits_0_1_0] to a list of all commits between this and
208759cc499SJoakim Bech    previous release.
209759cc499SJoakim Bech
210759cc499SJoakim Bech
211f5117af2SPascal Brand## Tested on
212759cc499SJoakim BechDefinitions:
213759cc499SJoakim Bech
214759cc499SJoakim Bech| Type | Meaning |
215759cc499SJoakim Bech| ---- | ------- |
216759cc499SJoakim Bech| Standard tests | The optee_test project. |
217759cc499SJoakim Bech| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.0.0. |
218759cc499SJoakim Bech| Hello world test | Plain hello world Trusted Application such as [this][hello_world]. |
219759cc499SJoakim Bech
220759cc499SJoakim Bech*   Allwinner A80 (plat-sunxi), hello world test.
221759cc499SJoakim Bech
222759cc499SJoakim Bech*   ARM Juno Board (vexpress-juno), standard tests.
223759cc499SJoakim Bech
224759cc499SJoakim Bech*   Foundation Models (plat-vexpress-fvp), standard + extended tests
225759cc499SJoakim Bech
226759cc499SJoakim Bech*   QEMU (plat-vexpress-qemu), standard + extended tests (and Secure Elements
227759cc499SJoakim Bech    tested separately).
228759cc499SJoakim Bech
229759cc499SJoakim Bech*   STM Cannes (plat-stm-cannes), standard + extended tests.
230759cc499SJoakim Bech
231759cc499SJoakim Bech
232f5117af2SPascal Brand## Issues resolved since last release
233759cc499SJoakim BechN/A since this is the first release tag on OP-TEE.
234759cc499SJoakim Bech
235759cc499SJoakim Bech
236f5117af2SPascal Brand## Known issues
237759cc499SJoakim Bech*   Storage is implemented, but not "Secure storage", meaning that a client
238759cc499SJoakim Bech    needs to do encrypt files on their own before storing the files.
239759cc499SJoakim Bech
240759cc499SJoakim Bech*   Issue(s) open on GitHub
241759cc499SJoakim Bech    *   [#95][pr95]: An error about building the test code of libtomcrypt.
242759cc499SJoakim Bech
243759cc499SJoakim Bech    *   [#149][pr149]: when testing optee os with arm trusted firmware (I
244759cc499SJoakim Bech	utilized optee os tee.bin as bl32 image) on juno platform, I got an
245759cc499SJoakim Bech        error.
246759cc499SJoakim Bech
247759cc499SJoakim Bech    *   [#161][pr161]: tee_svc_cryp.c lacks accessibility checks on
248759cc499SJoakim Bech        user-supplied TEE_Attributes.
249759cc499SJoakim Bech
250759cc499SJoakim Bech[hello_world]: https://github.com/jenswi-linaro/lcu14_optee_hello_world
251759cc499SJoakim Bech[github_commits_0_1_0]: https://github.com/OP-TEE/optee_os/compare/b01047730e77127c23a36591643eeb8bb0487d68...999e4a6c0f64d3177fd3d0db234107b6fb860884
252759cc499SJoakim Bech[pr95]: https://github.com/OP-TEE/optee_os/issues/95
253759cc499SJoakim Bech[pr149]: https://github.com/OP-TEE/optee_os/issues/149
254759cc499SJoakim Bech[pr161]: https://github.com/OP-TEE/optee_os/issues/161
255759cc499SJoakim Bech
2567583c59eSCedric Chaumont*   Global Platform Device Internal Core API v1.1
2577583c59eSCedric Chaumont    *   [#230][pr230]: Persistent object corruption support (TEE_ERROR_CORRUPT_OBJECT/_2)
2587583c59eSCedric Chaumont    *   [#230][pr230]: Persistent object access support (TEE_ERROR_STORAGE_NOT_AVAILABLE/_2)
259