1*af141c61SJens Wiklander# OP-TEE - version 3.9.0 (2020-04-22) 2*af141c61SJens Wiklander 3*af141c61SJens Wiklander- Links to the release pages, commits and pull requests merged into this release for: 4*af141c61SJens Wiklander - OP-TEE/optee_os: [release page][OP_TEE_optee_os_release_3_9_0], [commits][OP_TEE_optee_os_commits_3_9_0] and [pull requests][OP_TEE_optee_os_pr_3_9_0] 5*af141c61SJens Wiklander - OP-TEE/optee_client: [release page][OP_TEE_optee_client_release_3_9_0], [commits][OP_TEE_optee_client_commits_3_9_0] and [pull requests][OP_TEE_optee_client_pr_3_9_0] 6*af141c61SJens Wiklander - OP-TEE/optee_test: [release page][OP_TEE_optee_test_release_3_9_0], [commits][OP_TEE_optee_test_commits_3_9_0] and [pull requests][OP_TEE_optee_test_pr_3_9_0] 7*af141c61SJens Wiklander - OP-TEE/build: [release page][OP_TEE_build_release_3_9_0], [commits][OP_TEE_build_commits_3_9_0] and [pull requests][OP_TEE_build_pr_3_9_0] 8*af141c61SJens Wiklander - linaro-swg/optee_examples: [release page][linaro_swg_optee_examples_release_3_9_0], [commits][linaro_swg_optee_examples_commits_3_9_0] and [pull requests][linaro_swg_optee_examples_pr_3_9_0] 9*af141c61SJens Wiklander 10*af141c61SJens Wiklander 11*af141c61SJens Wiklander[OP_TEE_optee_os_release_3_9_0]: https://github.com/OP-TEE/optee_os/releases/tag/3.9.0 12*af141c61SJens Wiklander[OP_TEE_optee_os_commits_3_9_0]: https://github.com/OP-TEE/optee_os/compare/3.8.0...3.9.0 13*af141c61SJens Wiklander[OP_TEE_optee_os_pr_3_9_0]: https://github.com/OP-TEE/optee_os/pulls?q=is%3Apr+is%3Amerged+base%3Amaster+merged%3A2020-01-24..2020-05-22 14*af141c61SJens Wiklander 15*af141c61SJens Wiklander[OP_TEE_optee_client_release_3_9_0]: https://github.com/OP-TEE/optee_client/releases/tag/3.9.0 16*af141c61SJens Wiklander[OP_TEE_optee_client_commits_3_9_0]: https://github.com/OP-TEE/optee_client/compare/3.8.0...3.9.0 17*af141c61SJens Wiklander[OP_TEE_optee_client_pr_3_9_0]: https://github.com/OP-TEE/optee_client/pulls?q=is%3Apr+is%3Amerged+base%3Amaster+merged%3A2020-01-24..2020-05-22 18*af141c61SJens Wiklander 19*af141c61SJens Wiklander[OP_TEE_optee_test_release_3_9_0]: https://github.com/OP-TEE/optee_test/releases/tag/3.9.0 20*af141c61SJens Wiklander[OP_TEE_optee_test_commits_3_9_0]: https://github.com/OP-TEE/optee_test/compare/3.8.0...3.9.0 21*af141c61SJens Wiklander[OP_TEE_optee_test_pr_3_9_0]: https://github.com/OP-TEE/optee_test/pulls?q=is%3Apr+is%3Amerged+base%3Amaster+merged%3A2020-01-24..2020-05-22 22*af141c61SJens Wiklander 23*af141c61SJens Wiklander[OP_TEE_build_release_3_9_0]: https://github.com/OP-TEE/build/releases/tag/3.9.0 24*af141c61SJens Wiklander[OP_TEE_build_commits_3_9_0]: https://github.com/OP-TEE/build/compare/3.8.0...3.9.0 25*af141c61SJens Wiklander[OP_TEE_build_pr_3_9_0]: https://github.com/OP-TEE/build/pulls?q=is%3Apr+is%3Amerged+base%3Amaster+merged%3A2020-01-24..2020-05-22 26*af141c61SJens Wiklander 27*af141c61SJens Wiklander[linaro_swg_optee_examples_release_3_9_0]: https://github.com/linaro-swg/optee_examples/releases/tag/3.9.0 28*af141c61SJens Wiklander[linaro_swg_optee_examples_commits_3_9_0]: https://github.com/linaro-swg/optee_examples/compare/3.8.0...3.9.0 29*af141c61SJens Wiklander[linaro_swg_optee_examples_pr_3_9_0]: https://github.com/linaro-swg/optee_examples/pulls?q=is%3Apr+is%3Amerged+base%3Amaster+merged%3A2020-01-24..2020-05-22 30*af141c61SJens Wiklander 31023e3365SJerome Forissier# OP-TEE - version 3.8.0 (2020-01-24) 32023e3365SJerome Forissier 33023e3365SJerome Forissier- Links to the release pages, commits and pull requests merged into this release for: 34023e3365SJerome Forissier - OP-TEE/optee_os: [release page][OP_TEE_optee_os_release_3_8_0], [commits][OP_TEE_optee_os_commits_3_8_0] and [pull requests][OP_TEE_optee_os_pr_3_8_0] 35023e3365SJerome Forissier - OP-TEE/optee_client: [release page][OP_TEE_optee_client_release_3_8_0], [commits][OP_TEE_optee_client_commits_3_8_0] and [pull requests][OP_TEE_optee_client_pr_3_8_0] 36023e3365SJerome Forissier - OP-TEE/optee_test: [release page][OP_TEE_optee_test_release_3_8_0], [commits][OP_TEE_optee_test_commits_3_8_0] and [pull requests][OP_TEE_optee_test_pr_3_8_0] 37023e3365SJerome Forissier - OP-TEE/build: [release page][OP_TEE_build_release_3_8_0], [commits][OP_TEE_build_commits_3_8_0] and [pull requests][OP_TEE_build_pr_3_8_0] 38023e3365SJerome Forissier - linaro-swg/optee_examples: [release page][linaro_swg_optee_examples_release_3_8_0], [commits][linaro_swg_optee_examples_commits_3_8_0] and [pull requests][linaro_swg_optee_examples_pr_3_8_0] 39023e3365SJerome Forissier 40023e3365SJerome Forissier 41023e3365SJerome Forissier[OP_TEE_optee_os_release_3_8_0]: https://github.com/OP-TEE/optee_os/releases/tag/3.8.0 42023e3365SJerome Forissier[OP_TEE_optee_os_commits_3_8_0]: https://github.com/OP-TEE/optee_os/compare/3.7.0...3.8.0 43023e3365SJerome Forissier[OP_TEE_optee_os_pr_3_8_0]: https://github.com/OP-TEE/optee_os/pulls?q=is%3Apr+is%3Amerged+base%3Amaster+merged%3A2020-01-24..2020-01-24 44023e3365SJerome Forissier 45023e3365SJerome Forissier[OP_TEE_optee_client_release_3_8_0]: https://github.com/OP-TEE/optee_client/releases/tag/3.8.0 46023e3365SJerome Forissier[OP_TEE_optee_client_commits_3_8_0]: https://github.com/OP-TEE/optee_client/compare/3.7.0...3.8.0 47023e3365SJerome Forissier[OP_TEE_optee_client_pr_3_8_0]: https://github.com/OP-TEE/optee_client/pulls?q=is%3Apr+is%3Amerged+base%3Amaster+merged%3A2019-07-05..2020-01-24 48023e3365SJerome Forissier 49023e3365SJerome Forissier[OP_TEE_optee_test_release_3_8_0]: https://github.com/OP-TEE/optee_test/releases/tag/3.8.0 50023e3365SJerome Forissier[OP_TEE_optee_test_commits_3_8_0]: https://github.com/OP-TEE/optee_test/compare/3.7.0...3.8.0 51023e3365SJerome Forissier[OP_TEE_optee_test_pr_3_8_0]: https://github.com/OP-TEE/optee_test/pulls?q=is%3Apr+is%3Amerged+base%3Amaster+merged%3A2019-07-05..2020-01-24 52023e3365SJerome Forissier 53023e3365SJerome Forissier[OP_TEE_build_release_3_8_0]: https://github.com/OP-TEE/build/releases/tag/3.8.0 54023e3365SJerome Forissier[OP_TEE_build_commits_3_8_0]: https://github.com/OP-TEE/build/compare/3.7.0...3.8.0 55023e3365SJerome Forissier[OP_TEE_build_pr_3_8_0]: https://github.com/OP-TEE/build/pulls?q=is%3Apr+is%3Amerged+base%3Amaster+merged%3A2019-07-05..2020-01-24 56023e3365SJerome Forissier 57023e3365SJerome Forissier[linaro_swg_optee_examples_release_3_8_0]: https://github.com/linaro-swg/optee_examples/releases/tag/3.8.0 58023e3365SJerome Forissier[linaro_swg_optee_examples_commits_3_8_0]: https://github.com/linaro-swg/optee_examples/compare/3.7.0...3.8.0 59023e3365SJerome Forissier[linaro_swg_optee_examples_pr_3_8_0]: https://github.com/linaro-swg/optee_examples/pulls?q=is%3Apr+is%3Amerged+base%3Amaster+merged%3A2019-07-05..2020-01-24 60023e3365SJerome Forissier 61a2fa5018SJoakim Bech# OP-TEE - version 3.7.0 (2019-10-18) 62a2fa5018SJoakim Bech 63a2fa5018SJoakim Bech- Links to the release pages, commits and pull requests merged into this release for: 64a2fa5018SJoakim Bech - OP-TEE/optee_os: [release page][OP_TEE_optee_os_release_3_7_0], [commits][OP_TEE_optee_os_commits_3_7_0] and [pull requests][OP_TEE_optee_os_pr_3_7_0] 65a2fa5018SJoakim Bech - OP-TEE/optee_client: [release page][OP_TEE_optee_client_release_3_7_0], [commits][OP_TEE_optee_client_commits_3_7_0] and [pull requests][OP_TEE_optee_client_pr_3_7_0] 66a2fa5018SJoakim Bech - OP-TEE/optee_test: [release page][OP_TEE_optee_test_release_3_7_0], [commits][OP_TEE_optee_test_commits_3_7_0] and [pull requests][OP_TEE_optee_test_pr_3_7_0] 67a2fa5018SJoakim Bech - OP-TEE/build: [release page][OP_TEE_build_release_3_7_0], [commits][OP_TEE_build_commits_3_7_0] and [pull requests][OP_TEE_build_pr_3_7_0] 68a2fa5018SJoakim Bech - linaro-swg/optee_examples: [release page][linaro_swg_optee_examples_release_3_7_0], [commits][linaro_swg_optee_examples_commits_3_7_0] and [pull requests][linaro_swg_optee_examples_pr_3_7_0] 69a2fa5018SJoakim Bech 70a2fa5018SJoakim Bech 71a2fa5018SJoakim Bech[OP_TEE_optee_os_release_3_7_0]: https://github.com/OP-TEE/optee_os/releases/tag/3.7.0 72a2fa5018SJoakim Bech[OP_TEE_optee_os_commits_3_7_0]: https://github.com/OP-TEE/optee_os/compare/3.6.0...3.7.0 73a2fa5018SJoakim Bech[OP_TEE_optee_os_pr_3_7_0]: https://github.com/OP-TEE/optee_os/pulls?q=is%3Apr+is%3Amerged+base%3Amaster+merged%3A2019-07-05..2019-10-18 74a2fa5018SJoakim Bech 75a2fa5018SJoakim Bech[OP_TEE_optee_client_release_3_7_0]: https://github.com/OP-TEE/optee_client/releases/tag/3.7.0 76a2fa5018SJoakim Bech[OP_TEE_optee_client_commits_3_7_0]: https://github.com/OP-TEE/optee_client/compare/3.6.0...3.7.0 77a2fa5018SJoakim Bech[OP_TEE_optee_client_pr_3_7_0]: https://github.com/OP-TEE/optee_client/pulls?q=is%3Apr+is%3Amerged+base%3Amaster+merged%3A2019-07-05..2019-10-18 78a2fa5018SJoakim Bech 79a2fa5018SJoakim Bech[OP_TEE_optee_test_release_3_7_0]: https://github.com/OP-TEE/optee_test/releases/tag/3.7.0 80a2fa5018SJoakim Bech[OP_TEE_optee_test_commits_3_7_0]: https://github.com/OP-TEE/optee_test/compare/3.6.0...3.7.0 81a2fa5018SJoakim Bech[OP_TEE_optee_test_pr_3_7_0]: https://github.com/OP-TEE/optee_test/pulls?q=is%3Apr+is%3Amerged+base%3Amaster+merged%3A2019-07-05..2019-10-18 82a2fa5018SJoakim Bech 83a2fa5018SJoakim Bech[OP_TEE_build_release_3_7_0]: https://github.com/OP-TEE/build/releases/tag/3.7.0 84a2fa5018SJoakim Bech[OP_TEE_build_commits_3_7_0]: https://github.com/OP-TEE/build/compare/3.6.0...3.7.0 85a2fa5018SJoakim Bech[OP_TEE_build_pr_3_7_0]: https://github.com/OP-TEE/build/pulls?q=is%3Apr+is%3Amerged+base%3Amaster+merged%3A2019-07-05..2019-10-18 86a2fa5018SJoakim Bech 87a2fa5018SJoakim Bech[linaro_swg_optee_examples_release_3_7_0]: https://github.com/linaro-swg/optee_examples/releases/tag/3.7.0 88a2fa5018SJoakim Bech[linaro_swg_optee_examples_commits_3_7_0]: https://github.com/linaro-swg/optee_examples/compare/3.6.0...3.7.0 89a2fa5018SJoakim Bech[linaro_swg_optee_examples_pr_3_7_0]: https://github.com/linaro-swg/optee_examples/pulls?q=is%3Apr+is%3Amerged+base%3Amaster+merged%3A2019-07-05..2019-10-18 90a2fa5018SJoakim Bech 91f398d492SJerome Forissier# OP-TEE - version 3.6.0 (2019-07-05) 92f398d492SJerome Forissier 93f398d492SJerome Forissier- Link to the GitHub [release page][github_release_3_6_0]. 94f398d492SJerome Forissier- Links to the [commits][github_commits_3_6_0] and 95f398d492SJerome Forissier[pull requests][github_pr_3_6_0] merged into this release. 96f398d492SJerome Forissier 97f398d492SJerome Forissier[github_release_3_6_0]: https://github.com/OP-TEE/optee_os/releases/tag/3.6.0 98f398d492SJerome Forissier[github_commits_3_6_0]: https://github.com/OP-TEE/optee_os/compare/3.5.0...3.6.0 99f398d492SJerome Forissier[github_pr_3_6_0]: https://github.com/OP-TEE/optee_os/pulls?q=is%3Apr+is%3Amerged+base%3Amaster+merged%3A2019-04-26..2019-07-05 100f398d492SJerome Forissier 1015df2a985SJoakim Bech# OP-TEE - version 3.5.0 (2019-04-26) 1025df2a985SJoakim Bech 1035df2a985SJoakim Bech- Link to the GitHub [release page][github_release_3_5_0]. 1045df2a985SJoakim Bech- Links to the [commits][github_commits_3_5_0] and 1055df2a985SJoakim Bech[pull requests][github_pr_3_5_0] merged into this release. 1065df2a985SJoakim Bech 1075df2a985SJoakim Bech[github_release_3_5_0]: https://github.com/OP-TEE/optee_os/releases/tag/3.5.0 1085df2a985SJoakim Bech[github_commits_3_5_0]: https://github.com/OP-TEE/optee_os/compare/3.4.0...3.5.0 1095df2a985SJoakim Bech[github_pr_3_5_0]: https://github.com/OP-TEE/optee_os/pulls?q=is%3Apr+is%3Amerged+base%3Amaster+merged%3A2019-01-26..2019-04-26 1105df2a985SJoakim Bech 111406c609bSJerome Forissier# OP-TEE - version 3.4.0 (2019-01-25) 112406c609bSJerome Forissier 113406c609bSJerome Forissier- Link to the GitHub [release page][github_release_3_4_0]. 114406c609bSJerome Forissier- Links to the [commits][github_commits_3_4_0] and 115406c609bSJerome Forissier[pull requests][github_pr_3_4_0] merged into this release. 116406c609bSJerome Forissier 117406c609bSJerome Forissier[github_release_3_4_0]: https://github.com/OP-TEE/optee_os/releases/tag/3.4.0 118406c609bSJerome Forissier[github_commits_3_4_0]: https://github.com/OP-TEE/optee_os/compare/3.3.0...3.4.0 119406c609bSJerome Forissier[github_pr_3_4_0]: https://github.com/OP-TEE/optee_os/pulls?q=is%3Apr+is%3Amerged+base%3Amaster+merged%3A2018-10-12..2019-01-25 120406c609bSJerome Forissier 121ee595e95SJerome Forissier# OP-TEE - version 3.3.0 (2018-10-12) 122ee595e95SJerome Forissier 123ee595e95SJerome Forissier- Link to the GitHub [release page][github_release_3_3_0]. 124ee595e95SJerome Forissier- Links to the [commits][github_commits_3_3_0] and 125ee595e95SJerome Forissier[pull requests][github_pr_3_3_0] merged into this release. 126ee595e95SJerome Forissier 127ee595e95SJerome Forissier[github_release_3_3_0]: https://github.com/OP-TEE/optee_os/releases/tag/3.3.0 128ee595e95SJerome Forissier[github_commits_3_3_0]: https://github.com/OP-TEE/optee_os/compare/3.2.0...3.3.0 129ee595e95SJerome Forissier[github_pr_3_3_0]: https://github.com/OP-TEE/optee_os/pulls?q=is%3Apr+is%3Amerged+base%3Amaster+merged%3A2018-07-04..2018-10-12 130ee595e95SJerome Forissier 13153bf1c38SJerome Forissier# OP-TEE - version 3.2.0 (2018-07-04) 13253bf1c38SJerome Forissier 13353bf1c38SJerome Forissier- Link to the GitHub [release page][github_release_3_2_0]. 13453bf1c38SJerome Forissier- Links to the [commits][github_commits_3_2_0] and 13553bf1c38SJerome Forissier[pull requests][github_pr_3_2_0] merged into this release. 13653bf1c38SJerome Forissier 13753bf1c38SJerome Forissier## Known issues 13853bf1c38SJerome Forissier 13953bf1c38SJerome Forissier* HiKey960: assertion in bget create_free_block() \[memalign() self-test\] ([#2414]) 14053bf1c38SJerome Forissier* D02: assertion '!have_spinlock()' ([#2437]) 14153bf1c38SJerome Forissier 14253bf1c38SJerome Forissier[github_commits_3_2_0]: https://github.com/OP-TEE/optee_os/compare/3.1.0...3.2.0 14353bf1c38SJerome Forissier[github_pr_3_2_0]: https://github.com/OP-TEE/optee_os/pulls?q=is%3Apr+is%3Amerged+base%3Amaster+merged%3A2018-04-13..2018-07-04 14453bf1c38SJerome Forissier[github_release_3_2_0]: https://github.com/OP-TEE/optee_os/releases/tag/3.2.0 14553bf1c38SJerome Forissier[#2414]: https://github.com/OP-TEE/optee_os/issues/2414 14653bf1c38SJerome Forissier[#2437]: https://github.com/OP-TEE/optee_os/issues/2437 14753bf1c38SJerome Forissier 1480ab9388cSJens Wiklander# OP-TEE - version 3.1.0 (2018-04-13) 1490ab9388cSJens Wiklander 1500ab9388cSJens Wiklander- Link to the GitHub [release page][github_release_3_1_0]. 1510ab9388cSJens Wiklander- Links to the [commits][github_commits_3_1_0] and 1520ab9388cSJens Wiklander[pull requests][github_pr_3_1_0] merged into this release. 1530ab9388cSJens Wiklander 1540ab9388cSJens Wiklander[github_commits_3_1_0]: https://github.com/OP-TEE/optee_os/compare/3.0.0...3.1.0 1550ab9388cSJens Wiklander[github_pr_3_1_0]: https://github.com/OP-TEE/optee_os/pulls?q=is%3Apr+is%3Amerged+base%3Amaster+merged%3A2018-01-26..2018-04-13 1560ab9388cSJens Wiklander[github_release_3_1_0]: https://github.com/OP-TEE/optee_os/releases/tag/3.1.0 1570ab9388cSJens Wiklander 1580ab9388cSJens Wiklander# OP-TEE - version 3.0.0 (2018-01-26) 15994ee4938SJerome Forissier 16094ee4938SJerome Forissier[Link][github_commits_3_0_0] to a list of all commits between this release and 16194ee4938SJerome Forissierthe previous one (2.6.0). 16294ee4938SJerome Forissier 16394ee4938SJerome ForissierAbout backwards compatibility: Trusted Applications built with OP-TEE 2.5.0 or 16494ee4938SJerome Forissierearlier will not run properly with a *debug* build of this release due 16594ee4938SJerome Forissierto commit [0e1c6e8e][commit_0e1c6e8e] ("Dump call stack on TA panic"). 16694ee4938SJerome ForissierNon-debug builds are not affected. 16794ee4938SJerome Forissier 16894ee4938SJerome Forissier## New features 16994ee4938SJerome Forissier 17094ee4938SJerome Forissier* New supported platforms: Armada 3700 ([#1946]), Poplar ([#1999]), 64-bit 17194ee4938SJerome Forissier support for FSL ls1012ardb ([#1941]), i.MX6SX Sabreauto ([#1974]). 17294ee4938SJerome Forissier* arm32: sm: init CNTVOFF ([#2052]) 17394ee4938SJerome Forissier* Debug/info/error traces: make output more compact ([#2011]) 17494ee4938SJerome Forissier* tzc380: implement new functions ([#1994]) 17594ee4938SJerome Forissier* Secure Data Path: add pseudo-TA to convert VA to PA (#1993]) 17694ee4938SJerome Forissier* Pager: use NEON AES GCM implementation ([#1959]) 17794ee4938SJerome Forissier* Crypto: add optimized AES GCM implementation using NEON ([#1949]) 17894ee4938SJerome Forissier* Add support for using secure storage for TA anti-rollback ([#1928]) 17994ee4938SJerome Forissier* Crypto: replace struct crypto_ops with function interface ([#1923], 18094ee4938SJerome Forissier [#1931]) 18194ee4938SJerome Forissier* aosp_optee.mk: define OPTEE_BIN ([#1922]) 18294ee4938SJerome Forissier* Add build option to allow concurrent execution of single-instance TAs 18394ee4938SJerome Forissier ([#1915]) 18494ee4938SJerome Forissier* Pager: support for address sanitizer ([#1856]) 18594ee4938SJerome Forissier* Pager: make memory between CFG_TEE_RAM_START and TEE load address usable by 18694ee4938SJerome Forissier pager ([#1826]) 18794ee4938SJerome Forissier 18894ee4938SJerome Forissier## Bug fixes 18994ee4938SJerome Forissier 19094ee4938SJerome Forissier* Fix crash in tee_mmu_final() on TA loading error ([#2092]) 19194ee4938SJerome Forissier* LibTomCrypt: fix issue causing invalid output when using AES CTR with 19294ee4938SJerome Forissierhardware acceleration (CFG_CRYPTO_WITH_CE) ([#2086]) 19394ee4938SJerome Forissier* pl310: fix cache sync ([#2035]) 19494ee4938SJerome Forissier* tzc380: do not write reserved bits ([#1994]) 19594ee4938SJerome Forissier* Fix potential double free in ta_open() ([#1970]) 19694ee4938SJerome Forissier* libfdt: fix undefined behaviour in fdt_offset_ptr() ([#1969]) 19794ee4938SJerome Forissier* imx_wdog: fix register access ([#1966]) 19894ee4938SJerome Forissier* Secure storage: fix potential memory leak after early return ([#1961]) 19994ee4938SJerome Forissier* LibTomCrypt: fix double free in dsa_import() ([#1963]) 20094ee4938SJerome Forissier* RPMB: fix TA independance issue in secure storage ([#1921]) 20194ee4938SJerome Forissier* RPMB: return TEE_ERROR_ACCESS_CONFLICT instead of panicking when a TA 20294ee4938SJerome Forissier attempts to create an existing persistent object without the overwrite flag 20394ee4938SJerome Forissier ([#1919]) 20494ee4938SJerome Forissier* PSCI: pass non-secure context to psci_system_suspend() ([#1916]) 20594ee4938SJerome Forissier* Fix "Argument list too long" during "make clean" ([#1897]) 20694ee4938SJerome Forissier 20794ee4938SJerome Forissier## Security fixes 20894ee4938SJerome Forissier 20994ee4938SJerome Forissier* Mitigations and hardening against the Spectre and Meltdown vulnerabilities 21094ee4938SJerome Forissier (CVE-2017-5753, CVE-2017-5715, CVE-2017-5754). 21194ee4938SJerome Forissier 21294ee4938SJerome Forissier## Known issues 21394ee4938SJerome Forissier 21494ee4938SJerome Forissier* Secure storage (REE FS): storage size not updated after 21594ee4938SJerome ForissierTEE_TruncateObjectData() ([#2094]) 21694ee4938SJerome Forissier* Possible deadlock with CFG_WITH_PAGER=y when loading a TA and not enough 21794ee4938SJerome Forissierpage tables are available in pgt_cache ([#2080]) 21894ee4938SJerome Forissier 21994ee4938SJerome Forissier## Tested on 22094ee4938SJerome Forissier 22194ee4938SJerome ForissierThe release was tested successfully on the platforms listed below. 22294ee4938SJerome Forissier 22394ee4938SJerome Forissier<!-- ${PLATFORM}-${PLATFORM_FLAVOR}, ordered alphabetically --> 22494ee4938SJerome Forissier* d02 22594ee4938SJerome Forissier* hikey 22694ee4938SJerome Forissier* hikey-hikey960 22794ee4938SJerome Forissier* imx-mx6ulevk 22894ee4938SJerome Forissier* imx-mx7dsabresd 22994ee4938SJerome Forissier* marvell-armada7k8k 23094ee4938SJerome Forissier* marvell-armada3700 23194ee4938SJerome Forissier* mediatek-mt8173 23294ee4938SJerome Forissier* rcar-salvator_m3 23394ee4938SJerome Forissier* rockchip-rk322x 23494ee4938SJerome Forissier* rpi3 23594ee4938SJerome Forissier* sam 23694ee4938SJerome Forissier* ti 23794ee4938SJerome Forissier* vexpress-juno 23894ee4938SJerome Forissier* vexpress-qemu_armv8a 23994ee4938SJerome Forissier* vexpress-qemu_virt 24094ee4938SJerome Forissier 24194ee4938SJerome Forissier[commit_0e1c6e8e]: https://github.com/OP-TEE/optee_os/commit/0e1c6e8e 24294ee4938SJerome Forissier[github_commits_3_0_0]: https://github.com/OP-TEE/optee_os/compare/2.6.0...3.0.0 24394ee4938SJerome Forissier[#2092]: https://github.com/OP-TEE/optee_os/pull/2092 24494ee4938SJerome Forissier[#2086]: https://github.com/OP-TEE/optee_os/pull/2086 24594ee4938SJerome Forissier[#2094]: https://github.com/OP-TEE/optee_os/issues/2094 24694ee4938SJerome Forissier[#2080]: https://github.com/OP-TEE/optee_os/issues/2080 24794ee4938SJerome Forissier[#2052]: https://github.com/OP-TEE/optee_os/pull/2052 24894ee4938SJerome Forissier[#2035]: https://github.com/OP-TEE/optee_os/pull/2035 24994ee4938SJerome Forissier[#2011]: https://github.com/OP-TEE/optee_os/pull/2011 25094ee4938SJerome Forissier[#1999]: https://github.com/OP-TEE/optee_os/pull/1999 25194ee4938SJerome Forissier[#1994]: https://github.com/OP-TEE/optee_os/pull/1994 25294ee4938SJerome Forissier[#1993]: https://github.com/OP-TEE/optee_os/pull/1993 25394ee4938SJerome Forissier[#1974]: https://github.com/OP-TEE/optee_os/pull/1974 25494ee4938SJerome Forissier[#1970]: https://github.com/OP-TEE/optee_os/pull/1970 25594ee4938SJerome Forissier[#1969]: https://github.com/OP-TEE/optee_os/pull/1969 25694ee4938SJerome Forissier[#1966]: https://github.com/OP-TEE/optee_os/pull/1966 25794ee4938SJerome Forissier[#1963]: https://github.com/OP-TEE/optee_os/pull/1963 25894ee4938SJerome Forissier[#1961]: https://github.com/OP-TEE/optee_os/pull/1961 25994ee4938SJerome Forissier[#1959]: https://github.com/OP-TEE/optee_os/pull/1959 26094ee4938SJerome Forissier[#1949]: https://github.com/OP-TEE/optee_os/pull/1949 26194ee4938SJerome Forissier[#1946]: https://github.com/OP-TEE/optee_os/pull/1946 26294ee4938SJerome Forissier[#1941]: https://github.com/OP-TEE/optee_os/pull/1941 26394ee4938SJerome Forissier[#1931]: https://github.com/OP-TEE/optee_os/pull/1931 26494ee4938SJerome Forissier[#1928]: https://github.com/OP-TEE/optee_os/pull/1928 26594ee4938SJerome Forissier[#1923]: https://github.com/OP-TEE/optee_os/pull/1923 26694ee4938SJerome Forissier[#1922]: https://github.com/OP-TEE/optee_os/pull/1922 26794ee4938SJerome Forissier[#1921]: https://github.com/OP-TEE/optee_os/pull/1921 26894ee4938SJerome Forissier[#1919]: https://github.com/OP-TEE/optee_os/pull/1919 26994ee4938SJerome Forissier[#1916]: https://github.com/OP-TEE/optee_os/pull/1916 27094ee4938SJerome Forissier[#1915]: https://github.com/OP-TEE/optee_os/pull/1915 27194ee4938SJerome Forissier[#1897]: https://github.com/OP-TEE/optee_os/pull/1897 27294ee4938SJerome Forissier[#1856]: https://github.com/OP-TEE/optee_os/pull/1856 27394ee4938SJerome Forissier[#1826]: https://github.com/OP-TEE/optee_os/pull/1826 27494ee4938SJerome Forissier 2756d57389fSJerome Forissier# OP-TEE - version 2.6.0 2766d57389fSJerome Forissier 2776d57389fSJerome Forissier[Link][github_commits_2_6_0] to a list of all commits between this release and 2786d57389fSJerome Forissierthe previous one (2.5.0). 2796d57389fSJerome Forissier 2806d57389fSJerome Forissier## New features 2816d57389fSJerome Forissier 2826d57389fSJerome Forissier* New supported platforms: Atmel SAMA5 ([#1714]), HiSilicon HiKey960 ([#1684]), 2836d57389fSJerome Forissier Rockchip RK322X ([#1666]), NXP LS1043A-RDB/LS1046A-RDB ([#1787]), Marvell 2846d57389fSJerome Forissier Armada 70x0/80x0 ([#1807]). 2856d57389fSJerome Forissier* Dynamic shared memory (non-contiguous, non-secure memory can be mapped into 2866d57389fSJerome Forissier Trusted Applications VA space) ([#1631]) 2876d57389fSJerome Forissier* Dump TA call stack on panic ([#1858]) 2886d57389fSJerome Forissier* i.MX: PSCI reset ([#1849]) 2896d57389fSJerome Forissier* plat-ti: AM43xx: suspend/resume support ([#1822]) 2906d57389fSJerome Forissier* QEMU SMP support ([#1820]) 2916d57389fSJerome Forissier* plat-ti: AM43xx: disable TRNG ([#1816]) 2926d57389fSJerome Forissier* plat-ti: enable Secure Data Path by default ([#1815]) 2936d57389fSJerome Forissier* Improve symbolize.py ([#1778], [#1767], [#1766]) 2946d57389fSJerome Forissier* Early TAs (TAs linked in tee.bin) ([#1733]) 2956d57389fSJerome Forissier* Suspend/resume framework for arm32 and imx7d support ([#1729]) 2966d57389fSJerome Forissier* RK322X PSCI version, features and suspend support ([#1720]) 2976d57389fSJerome Forissier* arm32: handle aborts in system mode ([#1703]) 2986d57389fSJerome Forissier* i.MX: add SNVS SRTC support ([#1700]) 2996d57389fSJerome Forissier* GCC7 support ([#1693]) 3006d57389fSJerome Forissier* Improve detection of programming errors in locking code ([#1671], [#1670]) 3016d57389fSJerome Forissier* Support TEE RAM size larger than page directory size ([#1669]) 3026d57389fSJerome Forissier 3036d57389fSJerome Forissier## Removed features 3046d57389fSJerome Forissier 3056d57389fSJerome Forissier* Remove TUI code ([#1842]) 3066d57389fSJerome Forissier 3076d57389fSJerome Forissier## Bug fixes 3086d57389fSJerome Forissier 3096d57389fSJerome Forissier* Add missing synchronization barrier in core_mmu_map_pages() ([#1827]) 3106d57389fSJerome Forissier* Secure storage: REE FS: fix bug in error path ([#1801]) 3116d57389fSJerome Forissier* ASAN bug fixes ([#1799]) 3126d57389fSJerome Forissier* Fix race in core_mmu_user_mapping_is_active() ([#1785]) 3136d57389fSJerome Forissier* libutee: printf() and puts() fixes, add putchar() ([#1759], [#1754]) 3146d57389fSJerome Forissier* arm32: GICv3: fix FIQ masking in IRQ/ABT/SVC/UND handlers ([#1748]) 3156d57389fSJerome Forissier* arm32: preserve r12 in native_intr_handler() ([#1682]) 3166d57389fSJerome Forissier* arm64: fix print_kernel_stack() ([#1664]) 3176d57389fSJerome Forissier* benchmark: fix core data-abort ([#1658]) 3186d57389fSJerome Forissier 3196d57389fSJerome Forissier## Security fixes or enhancements 3206d57389fSJerome Forissier 3216d57389fSJerome Forissier* crypto: fix software PRNG weaknesses 3226d57389fSJerome Forissier ([OP-TEE-2017-0001][OP-TEE-2017-0001]) ([#1843]) 3236d57389fSJerome Forissier 3246d57389fSJerome Forissier## Tested on 3256d57389fSJerome Forissier 32694ee4938SJerome ForissierThe release was tested successfully on the platforms listed below. 3276d57389fSJerome ForissierIf a platform is not listed, it means the release was not tested on this 3286d57389fSJerome Forissierplatform. 3296d57389fSJerome Forissier 3306d57389fSJerome Forissier<!-- ${PLATFORM}-${PLATFORM_FLAVOR}, ordered alphabetically --> 3316d57389fSJerome Forissier* d02 3326d57389fSJerome Forissier* hikey 3336d57389fSJerome Forissier* hikey-hikey960 3346d57389fSJerome Forissier* imx-mx6ulevk 3356d57389fSJerome Forissier* imx-mx7dsabresd 3366d57389fSJerome Forissier* ls-ls1021a??? (single core) 3376d57389fSJerome Forissier* ls-ls1043ardb 3386d57389fSJerome Forissier* ls-ls1046ardb 3396d57389fSJerome Forissier* mediatek-mt8173 3406d57389fSJerome Forissier* rcar 3416d57389fSJerome Forissier* rockchip-rk322x 3426d57389fSJerome Forissier* rpi3 3436d57389fSJerome Forissier* sam 3446d57389fSJerome Forissier* stm-b2260 3456d57389fSJerome Forissier* stm-cannes 3466d57389fSJerome Forissier* ti-??? 3476d57389fSJerome Forissier* vexpress-fvp 3486d57389fSJerome Forissier* vexpress-juno 3496d57389fSJerome Forissier* vexpress-qemu_armv8a 3506d57389fSJerome Forissier* vexpress-qemu_virt 3516d57389fSJerome Forissier 35294ee4938SJerome Forissier[github_commits_2_6_0]: https://github.com/OP-TEE/optee_os/compare/2.5.0...2.6.0 3536d57389fSJerome Forissier[#1858]: https://github.com/OP-TEE/optee_os/issues/1858 3546d57389fSJerome Forissier[#1849]: https://github.com/OP-TEE/optee_os/issues/1849 3556d57389fSJerome Forissier[#1843]: https://github.com/OP-TEE/optee_os/issues/1843 3566d57389fSJerome Forissier[#1842]: https://github.com/OP-TEE/optee_os/issues/1842 3576d57389fSJerome Forissier[#1827]: https://github.com/OP-TEE/optee_os/issues/1827 3586d57389fSJerome Forissier[#1822]: https://github.com/OP-TEE/optee_os/issues/1822 3596d57389fSJerome Forissier[#1820]: https://github.com/OP-TEE/optee_os/issues/1820 3606d57389fSJerome Forissier[#1816]: https://github.com/OP-TEE/optee_os/issues/1816 3616d57389fSJerome Forissier[#1815]: https://github.com/OP-TEE/optee_os/issues/1815 3626d57389fSJerome Forissier[#1807]: https://github.com/OP-TEE/optee_os/issues/1807 3636d57389fSJerome Forissier[#1801]: https://github.com/OP-TEE/optee_os/issues/1801 3646d57389fSJerome Forissier[#1799]: https://github.com/OP-TEE/optee_os/issues/1799 3656d57389fSJerome Forissier[#1787]: https://github.com/OP-TEE/optee_os/issues/1787 3666d57389fSJerome Forissier[#1785]: https://github.com/OP-TEE/optee_os/issues/1785 3676d57389fSJerome Forissier[#1778]: https://github.com/OP-TEE/optee_os/issues/1778 3686d57389fSJerome Forissier[#1767]: https://github.com/OP-TEE/optee_os/issues/1767 3696d57389fSJerome Forissier[#1766]: https://github.com/OP-TEE/optee_os/issues/1766 3706d57389fSJerome Forissier[#1759]: https://github.com/OP-TEE/optee_os/issues/1759 3716d57389fSJerome Forissier[#1754]: https://github.com/OP-TEE/optee_os/issues/1754 3726d57389fSJerome Forissier[#1748]: https://github.com/OP-TEE/optee_os/issues/1748 3736d57389fSJerome Forissier[#1733]: https://github.com/OP-TEE/optee_os/issues/1733 3746d57389fSJerome Forissier[#1729]: https://github.com/OP-TEE/optee_os/issues/1729 3756d57389fSJerome Forissier[#1720]: https://github.com/OP-TEE/optee_os/issues/1720 3766d57389fSJerome Forissier[#1714]: https://github.com/OP-TEE/optee_os/issues/1714 3776d57389fSJerome Forissier[#1703]: https://github.com/OP-TEE/optee_os/issues/1703 3786d57389fSJerome Forissier[#1700]: https://github.com/OP-TEE/optee_os/issues/1700 3796d57389fSJerome Forissier[#1693]: https://github.com/OP-TEE/optee_os/issues/1693 3806d57389fSJerome Forissier[#1684]: https://github.com/OP-TEE/optee_os/issues/1684 3816d57389fSJerome Forissier[#1682]: https://github.com/OP-TEE/optee_os/issues/1682 3826d57389fSJerome Forissier[#1671]: https://github.com/OP-TEE/optee_os/issues/1671 3836d57389fSJerome Forissier[#1670]: https://github.com/OP-TEE/optee_os/issues/1670 3846d57389fSJerome Forissier[#1669]: https://github.com/OP-TEE/optee_os/issues/1669 3856d57389fSJerome Forissier[#1666]: https://github.com/OP-TEE/optee_os/issues/1666 3866d57389fSJerome Forissier[#1664]: https://github.com/OP-TEE/optee_os/issues/1664 3876d57389fSJerome Forissier[#1658]: https://github.com/OP-TEE/optee_os/issues/1658 3886d57389fSJerome Forissier[#1631]: https://github.com/OP-TEE/optee_os/issues/1631 3896d57389fSJerome Forissier[OP-TEE-2017-0001]: https://www.op-tee.org/security-advisories/ 3906d57389fSJerome Forissier 3915d8aaa04SJerome Forissier# OP-TEE - version 2.5.0 3925d8aaa04SJerome Forissier 3935d8aaa04SJerome Forissier[Link][github_commits_2_5_0] to a list of all commits between this release and 3945d8aaa04SJerome Forissierthe previous one (2.4.0). 3955d8aaa04SJerome Forissier 3965d8aaa04SJerome Forissier## New features 3975d8aaa04SJerome Forissier 3985d8aaa04SJerome Forissier* New supported platform: i.MX7D ([#1639]) 3995d8aaa04SJerome Forissier* Secure storage: anti-rollback protection for REE FS using RPMB FS ([#1630]) 4005d8aaa04SJerome Forissier* Assign non-secure DDR configuration from DT if CFG_DT=y ([#1623]) 4015d8aaa04SJerome Forissier* Add new image format: split image into three separate binaries suitable for 4025d8aaa04SJerome Forissier upcoming ARM Trusted Firmware ([#1589]). 4035d8aaa04SJerome Forissier* Make alignment check configurable ([#1586]) 4045d8aaa04SJerome Forissier* drivers: add TZC380 driver ([#1578]) 4055d8aaa04SJerome Forissier* plat-imx: PSCI CPU off ([#1577]) 4065d8aaa04SJerome Forissier* 64-bit paging on QEMU v8 and HiKey ([#1575], [#1592]) 4075d8aaa04SJerome Forissier* Benchmark framework ([#1365]) 4085d8aaa04SJerome Forissier* Dump call stack of user TAs on abort ([#1552]) 4095d8aaa04SJerome Forissier* plat-hikey: enable Secure Data Path ([#1440]) 4105d8aaa04SJerome Forissier* Add interface to load and decrypt/authenticate user TAs ([#1513]) 4115d8aaa04SJerome Forissier* plat-ti: add secure paging support ([#1493]) 4125d8aaa04SJerome Forissier* plat-ti: add OTP hardware key support ([#1492]) 4135d8aaa04SJerome Forissier* Support ARM GICv3 ([#1465]) 4145d8aaa04SJerome Forissier 4155d8aaa04SJerome Forissier## Removed features 4165d8aaa04SJerome Forissier 4175d8aaa04SJerome Forissier* stm-orly2 is not supported anymore ([#1650]) 4185d8aaa04SJerome Forissier* Remove secure storage based on SQL FS (`CFG_SQL_FS=y`) ([#1490]) 4195d8aaa04SJerome Forissier* Remove support for mapping user TAs with 1 MiB or 2 MiB granularity 4205d8aaa04SJerome Forissier (`CFG_SMALL_PAGE_USER_TA=n`) ([#1559]). TAs are always mapped using small 4215d8aaa04SJerome Forissier pages. 4225d8aaa04SJerome Forissier 4235d8aaa04SJerome Forissier## Bug fixes 4245d8aaa04SJerome Forissier 4255d8aaa04SJerome Forissier* Reduce size of non-pageable code ([#1621]) 4265d8aaa04SJerome Forissier* Ignore `TA_FLAG_MULTI_SESSION` and `TA_FLAG_INSTANCE_KEEP_ALIVE` when 4275d8aaa04SJerome Forissier `TA_FLAG_SINGLE_INSTANCE` is not set ([#1574]) 4285d8aaa04SJerome Forissier* libutee: remove buffering for AES GCM (PR#1573) and AES CTR ([#1580]) 4295d8aaa04SJerome Forissier* Fix ROUNDUP()/ROUNDDOWN() macros ([#1519]) 4305d8aaa04SJerome Forissier* Do not touch other bits in GICD_CTLR ([#1508]) 4315d8aaa04SJerome Forissier* Fix build issue with `DEBUG=y` and `CFG_TEE_CORE_LOG_LEVEL=0` ([#1502]) 4325d8aaa04SJerome Forissier* crypto: do not restrict hash size when algorithm is ECDSA ([#1497]) 4335d8aaa04SJerome Forissier 4345d8aaa04SJerome Forissier## Security fixes or enhancements 4355d8aaa04SJerome Forissier 4365d8aaa04SJerome Forissier- crypto: fix RSA key leakage after fault injection attack 4375d8aaa04SJerome Forissier ([OP-TEE-2016-0003][OP-TEE-2016-0003]) ([#1610]) 4385d8aaa04SJerome Forissier* crypto: fix RSA key leakage after side channel attack 4395d8aaa04SJerome Forissier ([OP-TEE-2016-0002][OP-TEE-2016-0002]) ([#1610]) 4405d8aaa04SJerome Forissier* Make pager aliased pages not always writable ([#1551]) 4415d8aaa04SJerome Forissier* Support for no-exec RO and RW data ([#1459], [#1550]) 4425d8aaa04SJerome Forissier 4435d8aaa04SJerome Forissier## New issues 4445d8aaa04SJerome Forissier 4455d8aaa04SJerome Forissier* armv7: some platform-specific code (`plat_cpu_reset_early()`) overwrites 4465d8aaa04SJerome ForissierSCTLR bits configured by generic code. This affects alignment checks (`SCTLR.A`) 4475d8aaa04SJerome Forissierand write-implies-no-exec (`SCTLR.WXN`, `SCTLR.UWXN`), which can therefore not 4485d8aaa04SJerome Forissierbe configured via the compile-time `CFG_` variables. 4495d8aaa04SJerome Forissier* armv7: plat-imx: Cortex-A9 cores should enable branch prediction (`SCLTR.Z`) 4505d8aaa04SJerome Forissierfor improved performance. 4515d8aaa04SJerome Forissier* [#1656] qemu_armv8a: init hangs when secure data path and pager are both 4525d8aaa04SJerome Forissier enabled. 4535d8aaa04SJerome Forissier 4545d8aaa04SJerome Forissier## Tested on 4555d8aaa04SJerome Forissier 4565d8aaa04SJerome ForissierIn the list below, _standard_ means that the `xtest` program passed with 4575d8aaa04SJerome Forissierits default configuration, while _extended_ means it was run successfully 4585d8aaa04SJerome Forissierwith the additional GlobalPlatform™ TEE Initial Configuration Test Suite 4595d8aaa04SJerome Forissierv1.1.0.4. 4605d8aaa04SJerome Forissier 4615d8aaa04SJerome ForissierIf a platform is not listed, it means the release was not tested on this 4625d8aaa04SJerome Forissierplatform. 4635d8aaa04SJerome Forissier 4645d8aaa04SJerome Forissier<!-- ${PLATFORM}-${PLATFORM_FLAVOR}, ordered alphabetically --> 4655d8aaa04SJerome Forissier* d02: extended 4665d8aaa04SJerome Forissier* hikey: extended 4675d8aaa04SJerome Forissier* imx-mx6ulevk: standard 4685d8aaa04SJerome Forissier* imx-mx6ullevk: standard 4695d8aaa04SJerome Forissier* imx-mx7dsabresd: standard 4705d8aaa04SJerome Forissier* ls-ls1021atwr: standard 4715d8aaa04SJerome Forissier* mediatek-mt8173: standard 4725d8aaa04SJerome Forissier* rcar-h3: standard 4735d8aaa04SJerome Forissier* rpi3: standard 4745d8aaa04SJerome Forissier* stm-b2260: extended 4755d8aaa04SJerome Forissier* stm-cannes: extended 4765d8aaa04SJerome Forissier* ti-am43xx: standard 4775d8aaa04SJerome Forissier* ti-am57xx: standard 4785d8aaa04SJerome Forissier* ti-dra7xx: standard 4795d8aaa04SJerome Forissier* vexpress-fvp: standard 4805d8aaa04SJerome Forissier* vexpress-juno: standard 4815d8aaa04SJerome Forissier* vexpress-qemu_armv8a: standard 4825d8aaa04SJerome Forissier* vexpress-qemu_virt: standard 4835d8aaa04SJerome Forissier 4845d8aaa04SJerome Forissier[github_commits_2_5_0]: https://github.com/OP-TEE/optee_os/compare/2.4.0...2.5.0-rc1 4855d8aaa04SJerome Forissier[#1656]: https://github.com/OP-TEE/optee_os/issues/1656 4865d8aaa04SJerome Forissier[#1650]: https://github.com/OP-TEE/optee_os/pull/1650 4875d8aaa04SJerome Forissier[#1639]: https://github.com/OP-TEE/optee_os/pull/1639 4885d8aaa04SJerome Forissier[#1630]: https://github.com/OP-TEE/optee_os/pull/1630 4895d8aaa04SJerome Forissier[#1623]: https://github.com/OP-TEE/optee_os/pull/1623 4905d8aaa04SJerome Forissier[#1621]: https://github.com/OP-TEE/optee_os/pull/1621 4915d8aaa04SJerome Forissier[#1610]: https://github.com/OP-TEE/optee_os/pull/1610 4925d8aaa04SJerome Forissier[#1592]: https://github.com/OP-TEE/optee_os/pull/1592 4935d8aaa04SJerome Forissier[#1589]: https://github.com/OP-TEE/optee_os/pull/1589 4945d8aaa04SJerome Forissier[#1586]: https://github.com/OP-TEE/optee_os/pull/1586 4955d8aaa04SJerome Forissier[#1580]: https://github.com/OP-TEE/optee_os/pull/1580 4965d8aaa04SJerome Forissier[#1578]: https://github.com/OP-TEE/optee_os/pull/1578 4975d8aaa04SJerome Forissier[#1577]: https://github.com/OP-TEE/optee_os/pull/1577 4985d8aaa04SJerome Forissier[#1574]: https://github.com/OP-TEE/optee_os/pull/1574 4995d8aaa04SJerome Forissier[#1559]: https://github.com/OP-TEE/optee_os/pull/1559 5005d8aaa04SJerome Forissier[#1551]: https://github.com/OP-TEE/optee_os/pull/1551 5015d8aaa04SJerome Forissier[#1550]: https://github.com/OP-TEE/optee_os/pull/1550 5025d8aaa04SJerome Forissier[#1519]: https://github.com/OP-TEE/optee_os/pull/1519 5035d8aaa04SJerome Forissier[#1502]: https://github.com/OP-TEE/optee_os/pull/1502 5045d8aaa04SJerome Forissier[#1365]: https://github.com/OP-TEE/optee_os/pull/1365 5055d8aaa04SJerome Forissier[#1552]: https://github.com/OP-TEE/optee_os/pull/1552 5065d8aaa04SJerome Forissier[#1513]: https://github.com/OP-TEE/optee_os/pull/1513 5075d8aaa04SJerome Forissier[#1508]: https://github.com/OP-TEE/optee_os/pull/1508 5085d8aaa04SJerome Forissier[#1493]: https://github.com/OP-TEE/optee_os/pull/1493 5095d8aaa04SJerome Forissier[#1497]: https://github.com/OP-TEE/optee_os/pull/1497 5105d8aaa04SJerome Forissier[#1492]: https://github.com/OP-TEE/optee_os/pull/1492 5115d8aaa04SJerome Forissier[#1490]: https://github.com/OP-TEE/optee_os/pull/1490 5125d8aaa04SJerome Forissier[#1465]: https://github.com/OP-TEE/optee_os/pull/1465 5135d8aaa04SJerome Forissier[#1459]: https://github.com/OP-TEE/optee_os/pull/1459 5145d8aaa04SJerome Forissier[#1440]: https://github.com/OP-TEE/optee_os/pull/1440 5155d8aaa04SJerome Forissier[OP-TEE-2016-0003]: https://www.op-tee.org/security-advisories/ 5165d8aaa04SJerome Forissier[OP-TEE-2016-0002]: https://www.op-tee.org/security-advisories/ 5175d8aaa04SJerome Forissier 518702609a7SJerome Forissier# OP-TEE - version 2.4.0 519702609a7SJerome Forissier 520702609a7SJerome Forissier[Link][github_commits_2_4_0] to a list of all commits between this release and 521702609a7SJerome Forissierthe previous one (2.3.0). 522702609a7SJerome Forissier 523702609a7SJerome ForissierPlease note: this release is API-compatible with the previous one, but the 524702609a7SJerome ForissierSecure Storage internal format for the REE and SQL FS is not compatible due to 525702609a7SJerome Forissiercommits [a238b74][commit_a238b74] ("core: REE FS: use the new hash tree 526702609a7SJerome Forissierinterface") and [44e900e][commit_44e900e] ("core: SQL FS: use the new hash tree 527702609a7SJerome Forissierinterface"). 528702609a7SJerome Forissier 529702609a7SJerome Forissier## New features 530702609a7SJerome Forissier 531702609a7SJerome Forissier* Add porting guidelines 532702609a7SJerome Forissier 533702609a7SJerome Forissier* Add support for Secure Data Path which allows Client and Trusted Applications 534702609a7SJerome Forissier to share references to secure memory 535702609a7SJerome Forissier 536702609a7SJerome Forissier* New supported platform: Texas Instruments AM57xx (`PLATFORM=ti-am57xx`) 537702609a7SJerome Forissier 538702609a7SJerome Forissier* ARMv7-A: add support for platform services in secure monitor and add these 539702609a7SJerome Forissier services for the DRA7xx platform 540702609a7SJerome Forissier 541702609a7SJerome Forissier* SPI framework and PL022 driver cleanup and improvements 542702609a7SJerome Forissier 543702609a7SJerome Forissier* Use CNTPCT (when available) to add entropy to the software PRNG 544702609a7SJerome Forissier 545702609a7SJerome Forissier* Add GlobalPlatform Socket API for UDP and TCP (IPv4 and IPv6) 546702609a7SJerome Forissier 547702609a7SJerome Forissier* DRA7: add TRNG driver, enable GICv2 driver 548702609a7SJerome Forissier 549702609a7SJerome Forissier* Support load address larger than 4G 550702609a7SJerome Forissier 551702609a7SJerome Forissier* libutee: preserve error code when calling TEE_Panic() for easier 552702609a7SJerome Forissier troubleshooting 553702609a7SJerome Forissier 554702609a7SJerome Forissier* Support TA profiling with gprof (-pg compiler switch) 555702609a7SJerome Forissier 556702609a7SJerome Forissier* Optimize the ELF loader for TAs when pager is enabled 557702609a7SJerome Forissier 558702609a7SJerome Forissier* Update documentation 559702609a7SJerome Forissier 560702609a7SJerome Forissier* Add paged secure shared memory that can be transferred between TAs as 561702609a7SJerome Forissier needed 562702609a7SJerome Forissier 563702609a7SJerome Forissier* Introduce MOBJ abstraction 564702609a7SJerome Forissier 565702609a7SJerome Forissier* i.MX6: add PSCI "on" function 566702609a7SJerome Forissier 567702609a7SJerome Forissier* arm32: introduce PSCI framework 568702609a7SJerome Forissier 569702609a7SJerome Forissier## Bug fixes 570702609a7SJerome Forissier 571702609a7SJerome Forissier* Secure storage: improve integrity checking of the REE and SQL filesystems by 572702609a7SJerome Forissier adding a hash tree on the internal data structures. Any external modification 573702609a7SJerome Forissier is detected, except full rollback. Fixes [#1188][issue1188]. 574702609a7SJerome Forissier 575702609a7SJerome Forissier* The linux driver will set the 'privileged' flag (TEE_GEN_CAP_PRIVILEGED) on 576702609a7SJerome Forissier the device intended for use by tee-supplicant. Fixes [#1199][issue1199]. 577702609a7SJerome Forissier 578702609a7SJerome Forissier* RPMB: don't try to program the RPMB key by default 579702609a7SJerome Forissier 580702609a7SJerome Forissier* Fix "make clean" error cases 581702609a7SJerome Forissier 582702609a7SJerome Forissier* Fix issue when resetting persistent storage enumerator [#1332][issue1332] 583702609a7SJerome Forissier 584702609a7SJerome Forissier* Fix TA panic when doing AES CTS with specific buffer sizes 585702609a7SJerome Forissier [#1203][issue1203]. 586702609a7SJerome Forissier 587702609a7SJerome Forissier## Known issues 588702609a7SJerome Forissier 589702609a7SJerome Forissier* On RPi3 xtest sometimes stall (rcu_sched self-detected stall on CPU) [#1353][issue1353] 590702609a7SJerome Forissier* For multi-core PSCI support is to be added for ls1021atwr in OP-TEE. 591702609a7SJerome Forissier* USB keyboard cannot be used to stop the u-boot timeout ([build issue131]). 592702609a7SJerome Forissier* Travis service (build.git) seems unstable from time to time. 593702609a7SJerome Forissier 594702609a7SJerome Forissier## Tested on 595702609a7SJerome Forissier 596702609a7SJerome ForissierIn the list below, _standard_ means that the `xtest` program passed with 597702609a7SJerome Forissierits default configuration, while _extended_ means it was run successfully 598702609a7SJerome Forissierwith the additional GlobalPlatform™ TEE Initial Configuration Test Suite 599702609a7SJerome Forissierv1.1.0.4. 600702609a7SJerome Forissier 601702609a7SJerome ForissierIf a platform is not listed, it means the release was not tested on this 602702609a7SJerome Forissierplatform. 603702609a7SJerome Forissier 604702609a7SJerome Forissier<!-- ${PLATFORM}-${PLATFORM_FLAVOR}, ordered alphabetically --> 605702609a7SJerome Forissier* d02: extended 606702609a7SJerome Forissier* hikey: extended 607702609a7SJerome Forissier* imx-mx6ulevk: standard 608702609a7SJerome Forissier* ls-ls1021atwr: standard (single core) 609702609a7SJerome Forissier* mediatek-mt8173: standard 610702609a7SJerome Forissier* rcar-h3: standard 611702609a7SJerome Forissier* rpi3: standard 612702609a7SJerome Forissier* stm-b2260: extended 613702609a7SJerome Forissier* ti-dra7xx: standard 614702609a7SJerome Forissier* vexpress-fvp: standard 615702609a7SJerome Forissier* vexpress-juno: standard 616702609a7SJerome Forissier* vexpress-qemu_armv8a: standard 617702609a7SJerome Forissier* vexpress-qemu_virt: standard 618702609a7SJerome Forissier* zynqmp-zc1751_dc1: standard 619702609a7SJerome Forissier* zynqmp-zc1751_dc2: standard 620702609a7SJerome Forissier* zynqmp-zcu102: standard 621702609a7SJerome Forissier 622702609a7SJerome Forissier[github_commits_2_4_0]: https://github.com/OP-TEE/optee_os/compare/2.3.0...2.4.0 623702609a7SJerome Forissier[issue1332]: https://github.com/OP-TEE/optee_os/issues/1332 624702609a7SJerome Forissier[issue1353]: https://github.com/OP-TEE/optee_os/issues/1353 625702609a7SJerome Forissier[build issue131]: https://github.com/OP-TEE/build/issues/131 626702609a7SJerome Forissier[commit_a238b74]: https://github.com/OP-TEE/optee_os/commit/a238b744b1b3 627702609a7SJerome Forissier[commit_44e900e]: https://github.com/OP-TEE/optee_os/commit/44e900eabfc1 628702609a7SJerome Forissier 62928fcee17SJerome Forissier# OP-TEE - version 2.3.0 63028fcee17SJerome Forissier 63128fcee17SJerome Forissier[Link][github_commits_2_3_0] to a list of all commits between this release and 63228fcee17SJerome Forissierthe previous one (2.2.0). 63328fcee17SJerome Forissier 63428fcee17SJerome ForissierPlease note: this release is API-compatible with the previous one, but the 63528fcee17SJerome ForissierSecure Storage internal format for the REE FS is not compatible due to commit 63628fcee17SJerome Forissier[361fb3e][commit_361fb3e] ("core: REE FS: use a single file per object"). 63728fcee17SJerome Forissier 63828fcee17SJerome Forissier[commit_361fb3e]: https://github.com/OP-TEE/optee_os/commit/361fb3e 63928fcee17SJerome Forissier 64028fcee17SJerome Forissier## New features 64128fcee17SJerome Forissier 64228fcee17SJerome Forissier* New supported platform: Xilinx Zynq 7000 ZC702 (`PLATFORM=zynq7k-zc702`) 64328fcee17SJerome Forissier 64428fcee17SJerome Forissier* Add debug assertions to spinlocks and mutexes 64528fcee17SJerome Forissier 64628fcee17SJerome Forissier* Add more CP15 register access macros for Cortex-A9 64728fcee17SJerome Forissier 64828fcee17SJerome Forissier* ARMv7-A: redesign secure monitor to make it easier to register services 64928fcee17SJerome Forissier 65028fcee17SJerome Forissier* ARMv7-A: cleanup boot arguments 65128fcee17SJerome Forissier 65228fcee17SJerome Forissier* libutee: extend `TEE_CheckMemoryAccessRights()` with 65328fcee17SJerome Forissier `TEE_MEMORY_ACCESS_SECURE` and `TEE_MEMORY_ACCESS_NONSECURE` 65428fcee17SJerome Forissier 65528fcee17SJerome Forissier* plat-hikey: enable SPI by default and add sample test code 65628fcee17SJerome Forissier 65728fcee17SJerome Forissier* Consider `CFLAGS_ta_arm64` and `CFLAGS_ta_arm32` when building TAs 65828fcee17SJerome Forissier 65928fcee17SJerome Forissier* Secure storage refactoring 66028fcee17SJerome Forissier - Simplify interface with tee-supplicant. Minimize round trips with normal 66128fcee17SJerome Forissier world, especially by adding a cache for FS RPC payload data. 66228fcee17SJerome Forissier - REE FS: use a single file per object, remove block cache. 66328fcee17SJerome Forissier 66428fcee17SJerome Forissier* Print call stack in panic() 66528fcee17SJerome Forissier 66628fcee17SJerome Forissier## Bug fixes 66728fcee17SJerome Forissier 66828fcee17SJerome Forissier* Fix UUID encoding when communicating with normal world (use big endian 66928fcee17SJerome Forissier mode instead of native endianness). Related to this, the string format 67028fcee17SJerome Forissier for UUIDs has changed in tee-supplicant, so that TA file names now follow 67128fcee17SJerome Forissier the format defined in RFC4122 (a missing hyphen was added). The old format 67228fcee17SJerome Forissier is still supported, but deprecated, and will likely be removed with the 67328fcee17SJerome Forissier next major release. 67428fcee17SJerome Forissier 67528fcee17SJerome Forissier* Drop write permission to non-writable ELF segments after TA loading is 67628fcee17SJerome Forissier complete. 67728fcee17SJerome Forissier 67828fcee17SJerome Forissier* mm: fix confusing memory mapping debug traces 67928fcee17SJerome Forissier 68028fcee17SJerome Forissier* plat-ti: fix issues with MMU mapping 68128fcee17SJerome Forissier 68228fcee17SJerome Forissier* crypto: fix clearing of big numbers 68328fcee17SJerome Forissier 68428fcee17SJerome Forissier* build: allow spaces and double quotes in CFG_ variables 68528fcee17SJerome Forissier 68628fcee17SJerome Forissier* mm: use paddr_t to support both 32- and 64-bit architectures properly. 68728fcee17SJerome Forissier Resolves 32-bit truncation error when pool is at top of 32 bit address 68828fcee17SJerome Forissier space on 64-bit architecture. 68928fcee17SJerome Forissier 69028fcee17SJerome Forissier* plat-stm: support pager. Fix pager on ARMv7-A SMP boards. 69128fcee17SJerome Forissier 69228fcee17SJerome Forissier* Fix debug output of Trusted Applications (remove "ERROR: TEE-CORE:" prefix) 69328fcee17SJerome Forissier 69428fcee17SJerome Forissier* Do not consider TA memref parameters as TA private memory 69528fcee17SJerome Forissier 69628fcee17SJerome Forissier* crypto: fix `cipher_final()` which would not call `cbc_done()` for CBC_MAC 69728fcee17SJerome Forissier algorithms 69828fcee17SJerome Forissier 69928fcee17SJerome Forissier* fix for 16-way PL310 70028fcee17SJerome Forissier 70128fcee17SJerome Forissier* arm32: fix call stack unwinding (`print_stack()`) 70228fcee17SJerome Forissier 70328fcee17SJerome Forissier* arm32: fix spinlock assembly code 70428fcee17SJerome Forissier 70528fcee17SJerome Forissier* plat-stm, plat-imx: fix SCR initalization 70628fcee17SJerome Forissier 70728fcee17SJerome Forissier* Fix user L1 MMU entries calculation (non-LPAE), allowing TTBCR.N values 70828fcee17SJerome Forissier other than 7. 70928fcee17SJerome Forissier 71028fcee17SJerome Forissier* mtk-mt8173: fix panic caused by incorrect size of SHMEM 71128fcee17SJerome Forissier 71228fcee17SJerome Forissier* plat-stm: fix RNG driver (non-flat mapping) 71328fcee17SJerome Forissier 71428fcee17SJerome Forissier## Known issues 71528fcee17SJerome Forissier 71628fcee17SJerome Forissier* New issues open on GitHub 71728fcee17SJerome Forissier * [#1203][issue1203] AES-CTS mode will fail when inlen=0x100, in_incr=0x80 71828fcee17SJerome Forissier * [#1199][issue1199] Both tee and teepriv reported GlobalPlatform compliant 71928fcee17SJerome Forissier * [#1188][issue1188] Secure storage (SQL FS and REE FS): blocks not tied to 72028fcee17SJerome Forissier current meta header 72128fcee17SJerome Forissier * [#1172][issue1172] paddr_t should be larger than 32 bits when 72228fcee17SJerome Forissier CFG_WITH_LPAE is enabled 72328fcee17SJerome Forissier 72428fcee17SJerome Forissier## Tested on 72528fcee17SJerome Forissier 72628fcee17SJerome ForissierIn the list below, _standard_ means that the `xtest` program passed with 72728fcee17SJerome Forissierits default configuration, while _extended_ means it was run successfully 72828fcee17SJerome Forissierwith the additional GlobalPlatform™ TEE Initial Configuration Test Suite 72928fcee17SJerome Forissierv1.1.0.4. 73028fcee17SJerome Forissier 73128fcee17SJerome ForissierIf a platform is not listed, it means the release was not tested on this 73228fcee17SJerome Forissierplatform. 73328fcee17SJerome Forissier 73428fcee17SJerome Forissier<!-- ${PLATFORM}-${PLATFORM_FLAVOR}, ordered alphabetically --> 73528fcee17SJerome Forissier* d02: extended 73628fcee17SJerome Forissier* hikey: extended 73728fcee17SJerome Forissier* imx-mx6ulevk: standard 73828fcee17SJerome Forissier* ls-ls1021atwr: standard 73928fcee17SJerome Forissier* mediatek-mt8173: standard 74028fcee17SJerome Forissier* rcar-h3: standard 74128fcee17SJerome Forissier* rpi3: standard 74228fcee17SJerome Forissier* stm-b2260: extended 74328fcee17SJerome Forissier* stm-cannes: extended 74428fcee17SJerome Forissier* ti-dra7xx: standard 74528fcee17SJerome Forissier* vexpress-fvp: standard 74628fcee17SJerome Forissier* vexpress-juno: standard 74728fcee17SJerome Forissier* vexpress-qemu_armv8a: standard 74828fcee17SJerome Forissier* vexpress-qemu_virt: extended 74928fcee17SJerome Forissier* zynqmp-zcu102: standard 75028fcee17SJerome Forissier 75128fcee17SJerome Forissier[github_commits_2_3_0]: https://github.com/OP-TEE/optee_os/compare/2.2.0...2.3.0 75228fcee17SJerome Forissier[issue1172]: https://github.com/OP-TEE/optee_os/issues/1172 75328fcee17SJerome Forissier[issue1188]: https://github.com/OP-TEE/optee_os/issues/1188 75428fcee17SJerome Forissier[issue1199]: https://github.com/OP-TEE/optee_os/issues/1199 75528fcee17SJerome Forissier[issue1203]: https://github.com/OP-TEE/optee_os/issues/1203 75628fcee17SJerome Forissier 757c0c5d399SJerome Forissier# OP-TEE - version 2.2.0 758c0c5d399SJerome Forissier 759c0c5d399SJerome Forissier[Link][github_commits_2_2_0] to a list of all commits between this release and 760c0c5d399SJerome Forissierthe previous one (2.1.0). 761c0c5d399SJerome Forissier 762c0c5d399SJerome ForissierPlease note: this release is API-compatible with the previous one, but the 763c0c5d399SJerome ForissierSecure Storage internal format is not compatible due to commit 764c0c5d399SJerome Forissier[fde4a75][commit_fde4a75] ("storage: encrypt the FEK with a TA-specific key"). 765c0c5d399SJerome Forissier 766c0c5d399SJerome Forissier[commit_fde4a75]: https://github.com/OP-TEE/optee_os/commit/fde4a75 767c0c5d399SJerome Forissier 768c0c5d399SJerome Forissier## New features 769c0c5d399SJerome Forissier 770c0c5d399SJerome Forissier* New supported platforms: 771c0c5d399SJerome Forissier * Freescale i.MX6 Quad SABRE Lite & SD 772c0c5d399SJerome Forissier * HiSilicon D02 773c0c5d399SJerome Forissier * Raspberry Pi3 774c0c5d399SJerome Forissier * Renesas RCAR H3 775c0c5d399SJerome Forissier * STMicroelectronics b2260 - h410 776c0c5d399SJerome Forissier 777c0c5d399SJerome Forissier* Pager: Support paging of read/write pages by encrypting them with AES-GCM. 778c0c5d399SJerome Forissier Support paging of user TAs. Add global setting for TZSRAM size 779c0c5d399SJerome Forissier (CFG_CORE_TZSRAM_EMUL_SIZE), defaults to 300K. 780c0c5d399SJerome Forissier 781c0c5d399SJerome Forissier* Support for more than 8 CPU cores 782c0c5d399SJerome Forissier 783c0c5d399SJerome Forissier* Added SPI framework and PL022 driver 784c0c5d399SJerome Forissier 785c0c5d399SJerome Forissier* GPIO: framework supports multiple instances, PL061 driver now has get/set 786c0c5d399SJerome Forissier interrupt and mode control functions 787c0c5d399SJerome Forissier 788c0c5d399SJerome Forissier* Secure storage: Encrypt the File Encryption Key with a TA-specific key for 789c0c5d399SJerome Forissier better TA isolation. Add build-time and run-time support for multiple storage 790c0c5d399SJerome Forissier backends. Add SQLite backend. 791c0c5d399SJerome Forissier 792c0c5d399SJerome Forissier* Trusted User Interface: some code is introduced to support the implementation 793c0c5d399SJerome Forissier of TUI. This includes: a generic framebuffer driver, display and serial 794c0c5d399SJerome Forissier abstractions, and drivers for PL111 (LCD) / PL050 (KMI) / TZC400 and PS2 795c0c5d399SJerome Forissier mouse. 796c0c5d399SJerome Forissier 797c0c5d399SJerome Forissier* AES acceleration using ARMv8-A Cryptographic Extensions instructions is 798c0c5d399SJerome Forissier now supported in AArch32 mode 799c0c5d399SJerome Forissier 800c0c5d399SJerome Forissier* Add support for GCC flags: -fsanitize=undefined and -fsanitize=kernel-address 801c0c5d399SJerome Forissier 802c0c5d399SJerome Forissier* Use a global setting for core heap size (CFG_CORE_HEAP_SIZE), 64K by default. 803c0c5d399SJerome Forissier 804c0c5d399SJerome Forissier* Add macros to unwind and print the call stack of TEE core 805c0c5d399SJerome Forissier 806c0c5d399SJerome Forissier* Libtomcrypt: sync with the latest `develop` branch. 807c0c5d399SJerome Forissier 808c0c5d399SJerome Forissier* The Trusted Application SDK (ta_dev_kit.mk) can produce libraries (.a) 809c0c5d399SJerome Forissier 810c0c5d399SJerome Forissier* Rework assertions and TEE core panics and properly honor NDEBUG 811c0c5d399SJerome Forissier 812c0c5d399SJerome Forissier## Bug fixes 813c0c5d399SJerome Forissier 814c0c5d399SJerome Forissier* Fix incorrect algorithm passed to cipher.final() 815c0c5d399SJerome Forissier 816c0c5d399SJerome Forissier* scripts: support Python 2.x and 3.x 817c0c5d399SJerome Forissier 818c0c5d399SJerome Forissier* Secure storage: Add proper locking to support concurrent access. Fix sign 819c0c5d399SJerome Forissier extension bug with offset parameter of syscall storage_obj_seek which could 820c0c5d399SJerome Forissier cause errors in Aarch32 mode. Fix reading beyond end of file. 821c0c5d399SJerome Forissier 822c0c5d399SJerome Forissier* Aarch64: mask all maskable exceptions before doing a normal return from call. 823c0c5d399SJerome Forissier 824c0c5d399SJerome Forissier* Device Tree: add no-map property to OP-TEE node in reserved-memory. 825c0c5d399SJerome Forissier 826c0c5d399SJerome Forissier* LibTomcrypt: fix CVE-2016-6129 827c0c5d399SJerome Forissier 828c0c5d399SJerome Forissier## Known issues 829c0c5d399SJerome Forissier 830c0c5d399SJerome Forissier* New issues open on GitHub 831c0c5d399SJerome Forissier * [#1093][issue1093] rcar-h3: xtest 6010 hangs 832c0c5d399SJerome Forissier * [#1092][issue1092] rcar-h3: xtest 4010 fails 833c0c5d399SJerome Forissier * [#1081][issue1081] Bad mapping of TA secure memref parameters 834c0c5d399SJerome Forissier * [#1071][issue1071] __data_end may not correctly represent text start position when using CFG_WITH_PAGER 835c0c5d399SJerome Forissier * [#1069][issue1069] armv7/Aarch32: crash in stack unwind (DPRINT_STACK()) 836c0c5d399SJerome Forissier 837c0c5d399SJerome Forissier## Tested on 838c0c5d399SJerome Forissier 839c0c5d399SJerome ForissierIn the list below, _standard_ means that the `xtest` program passed with 840c0c5d399SJerome Forissierits default configuration, while _extended_ means it was run successfully 841c0c5d399SJerome Forissierwith the additional GlobalPlatform™ TEE Initial Configuration Test Suite 842c0c5d399SJerome Forissierv1.1.0.4. 843c0c5d399SJerome Forissier 844c0c5d399SJerome ForissierIf a platform is not listed, it means the release was not tested on this 845c0c5d399SJerome Forissierplatform. 846c0c5d399SJerome Forissier 847c0c5d399SJerome Forissier<!-- ${PLATFORM}-${PLATFORM_FLAVOR}, ordered alphabetically --> 848c0c5d399SJerome Forissier* d02: extended 849c0c5d399SJerome Forissier* hikey: extended 850c0c5d399SJerome Forissier* imx-mx6qsabrelite: standard 851c0c5d399SJerome Forissier* imx-mx6qsabresd: standard 852c0c5d399SJerome Forissier* rcar-h3: standard, pass except issues [#1092][issue1092] and [#1093][issue1093] 853c0c5d399SJerome Forissier* rpi3: standard 854c0c5d399SJerome Forissier* stm-b2260: standard 855c0c5d399SJerome Forissier* stm-cannes: standard 856c0c5d399SJerome Forissier* ti-dra7xx: standard 857c0c5d399SJerome Forissier* vexpress-fvp: standard 858c0c5d399SJerome Forissier* vexpress-juno: standard 859c0c5d399SJerome Forissier* vexpress-qemu_armv8a: standard 860c0c5d399SJerome Forissier* vexpress-qemu_virt: extended 861c0c5d399SJerome Forissier* zynqmp-zcu102: standard 862c0c5d399SJerome Forissier 863c0c5d399SJerome Forissier[github_commits_2_2_0]: https://github.com/OP-TEE/optee_os/compare/2.1.0...2.2.0 864c0c5d399SJerome Forissier[issue1081]: https://github.com/OP-TEE/optee_os/issues/1081 865c0c5d399SJerome Forissier[issue1071]: https://github.com/OP-TEE/optee_os/issues/1071 866c0c5d399SJerome Forissier[issue1069]: https://github.com/OP-TEE/optee_os/issues/1069 867c0c5d399SJerome Forissier[issue1092]: https://github.com/OP-TEE/optee_os/issues/1092 868c0c5d399SJerome Forissier[issue1093]: https://github.com/OP-TEE/optee_os/issues/1093 869c0c5d399SJerome Forissier 870ac3cc110SPascal Brand# OP-TEE - version 2.1.0 871a0cd5d60SPascal Brand 872ac3cc110SPascal Brand## New features 873ac3cc110SPascal Brand 874ac3cc110SPascal Brand* New supported platforms: 875ac3cc110SPascal Brand * Xilinx Zynq UltraScale+ MPSOC 876ac3cc110SPascal Brand * Spreadtrum SC9860 877ac3cc110SPascal Brand 878ac3cc110SPascal Brand* GCC5 support 879ac3cc110SPascal Brand 880ac3cc110SPascal Brand* Non Linear Mapping support: In OP-TEE kernel mode, the physical to virtual 881ac3cc110SPascal Brand addresses was linear until this release, meaning the virtual addresses 882ac3cc110SPascal Brand were equal to the physical addresses. This is no more the case in this 883ac3cc110SPascal Brand release. 884ac3cc110SPascal Brand 885ac3cc110SPascal Brand* Font rendering routines have been introduced in order to ease an 886ac3cc110SPascal Brand implementation of Trusted UI. 887ac3cc110SPascal Brand 888ac3cc110SPascal Brand* File Storage: Possibility to use the normal world filesystem and the RPMB 889ac3cc110SPascal Brand implementations simultaneously. 890ac3cc110SPascal Brand 891ac3cc110SPascal Brand* AOSP: There is a [local manifest][aosp_local_manifest] to build OP-TEE into an AOSP build, running on HiKey. 892ac3cc110SPascal Brand Please refer to the README in that repo for instructions. 893ac3cc110SPascal Brand 894ac3cc110SPascal Brand* OpenEmbedded: In addition to the makefile-based build described in the optee_os README, there is an 895ac3cc110SPascal Brand [OpenEmbedded-based build][oe_build] that supports Qemu (32-bit), FVP (64-bit), and HiKey (64-bit). 896ac3cc110SPascal Brand Please refer to the README in that repo for instructions. 897ac3cc110SPascal Brand 898ac3cc110SPascal Brand* [Link][github_commits_2_1_0] to a list of all commits between this and 899ac3cc110SPascal Brand previous release. 900ac3cc110SPascal Brand 901ac3cc110SPascal Brand 902ac3cc110SPascal Brand## Tested on 903ac3cc110SPascal BrandDefinitions: 904ac3cc110SPascal Brand 905ac3cc110SPascal Brand| Type | Meaning | 906ac3cc110SPascal Brand| ---- | ------- | 907ac3cc110SPascal Brand| Standard tests | The [optee_test][optee_test] project. | 908ac3cc110SPascal Brand| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.1.0.4. | 909ac3cc110SPascal Brand 910ac3cc110SPascal Brand* ARM Juno Board (vexpress-juno), standard. 911ac3cc110SPascal Brand* Foundation Models (vexpress-fvp), standard tests + extended tests, 912ac3cc110SPascal Brand using FVP ARM V8 Foundation Platformr0p0 (platform build 10.0.37) 913ac3cc110SPascal Brand* FSL i.MX6 UltraLite EVK (imx), standard. 914ac3cc110SPascal Brand* FSL ls1021a (ls-ls1021atwr), standard tests. 915ac3cc110SPascal Brand* HiKey (hikey), standard + extended tests. 916ac3cc110SPascal Brand* QEMU (vexpress-qemu), standard + extended tests. 917ac3cc110SPascal Brand* Xilinx Zynq UltraScale+ MPSOC, standard tests 918ac3cc110SPascal Brand 919ac3cc110SPascal BrandNote that the following platform has not been tested: 920ac3cc110SPascal Brand* MTK8173-EVB (mediatek-mt8173) 921ac3cc110SPascal Brand 922ac3cc110SPascal Brand 923ac3cc110SPascal Brand## Known issues 924ac3cc110SPascal Brand* Issue(s) open on GitHub 925ac3cc110SPascal Brand * [#868][pr868]: python-wand font generation sometimes times out 926ac3cc110SPascal Brand * [#863][pr863]: "double free or corruption" error when building optee_os 927ac3cc110SPascal Brand * [#858][pr858]: UUIDs in binary format have wrong endinanness 928ac3cc110SPascal Brand * [#857][pr857]: Formatting of UUIDs is incorrect 929ac3cc110SPascal Brand * [#847][pr847]: optee_os panic(TEE-CORE: Assertion) 930ac3cc110SPascal Brand * [#838][pr838]: TUI font rendering is _very_ slow 931ac3cc110SPascal Brand * [#814][pr814]: Persistent objects : save informations after close 932ac3cc110SPascal Brand * [#665][pr665]: xtest 1013 stalled on HiKey when log levels are 4 and optee_os is on its own UART 933ac3cc110SPascal Brand * [#506][pr506]: tee-supplicant panic & ta panic 934ac3cc110SPascal Brand 935ac3cc110SPascal Brand[github_commits_2_1_0]: https://github.com/OP-TEE/optee_os/compare/2.0.0...2.1.0 936ac3cc110SPascal Brand[pr868]: https://github.com/OP-TEE/optee_os/issues/868 937ac3cc110SPascal Brand[pr863]: https://github.com/OP-TEE/optee_os/issues/863 938ac3cc110SPascal Brand[pr858]: https://github.com/OP-TEE/optee_os/issues/858 939ac3cc110SPascal Brand[pr857]: https://github.com/OP-TEE/optee_os/issues/857 940ac3cc110SPascal Brand[pr847]: https://github.com/OP-TEE/optee_os/issues/847 941ac3cc110SPascal Brand[pr838]: https://github.com/OP-TEE/optee_os/issues/838 942ac3cc110SPascal Brand[pr814]: https://github.com/OP-TEE/optee_os/issues/814 943ac3cc110SPascal Brand[pr665]: https://github.com/OP-TEE/optee_os/issues/665 944ac3cc110SPascal Brand[aosp_local_manifest]: https://github.com/linaro-swg/optee_android_manifest 945ac3cc110SPascal Brand[oe_build]: https://github.com/linaro-swg/oe-optee 946ac3cc110SPascal Brand 947ac3cc110SPascal Brand# OP-TEE - version 2.0.0 948a0cd5d60SPascal Brand 949a0cd5d60SPascal Brand## New features 950a0cd5d60SPascal Brand 951a0cd5d60SPascal Brand* Generic driver: A new generic TEE driver is in the process of being 952a0cd5d60SPascal Brand [upstreamed][gendrv_v9]. 953a0cd5d60SPascal Brand In this release, [OP-TEE/optee_linuxdriver][optee_linuxdriver] is no more used. 954a0cd5d60SPascal Brand Instead, linux v4.5 is being patched using the proposed Generic TEE Driver, 955a0cd5d60SPascal Brand as it can be found in [https://github.com/linaro-swg/linux/tree/optee][linux_optee] 956a0cd5d60SPascal Brand 957a0cd5d60SPascal Brand* RPMB support: Secure Storage can now use Replay Protected Memory Block (RPMB) partition 958a0cd5d60SPascal Brand of an eMMC device. Check the [full documentation][rpmb_doc] 959a0cd5d60SPascal Brand 960a0cd5d60SPascal Brand* Hard-float ABI is now available. 961a0cd5d60SPascal Brand 962a0cd5d60SPascal Brand* [Link][github_commits_2_0_0] to a list of all commits between this and 963a0cd5d60SPascal Brand previous release. 964a0cd5d60SPascal Brand 965a0cd5d60SPascal Brand 966a0cd5d60SPascal Brand## Tested on 967a0cd5d60SPascal BrandDefinitions: 968a0cd5d60SPascal Brand 969a0cd5d60SPascal Brand| Type | Meaning | 970a0cd5d60SPascal Brand| ---- | ------- | 971a0cd5d60SPascal Brand| Standard tests | The [optee_test][optee_test] project. | 972a0cd5d60SPascal Brand| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.1.0.4. | 973a0cd5d60SPascal Brand 974a0cd5d60SPascal Brand* ARM Juno Board (vexpress-juno), standard. 975a0cd5d60SPascal Brand* Foundation Models (vexpress-fvp), standard tests + extended tests, 976a0cd5d60SPascal Brand using FVP ARM V8 Foundation Platformr0p0 (platform build 9.5.40) 977eb00c7b9SPascal Brand* FSL ls1021a (ls-ls1021atwr), standard. 978a0cd5d60SPascal Brand* HiKey (hikey), standard. 979a0cd5d60SPascal Brand* MTK8173-EVB (mediatek-mt8173), standard. 980a0cd5d60SPascal Brand* QEMU (vexpress-qemu), standard + extended tests. 981a0cd5d60SPascal Brand* STM Cannes (stm-cannes), standard + extended tests. 982a0cd5d60SPascal Brand 983a0cd5d60SPascal Brand## Known issues 984a0cd5d60SPascal Brand* Issue(s) open on GitHub 985a0cd5d60SPascal Brand * [#40][prld40] BUG_ON() when re-using RPC buffer to tee-supplicant 986a0cd5d60SPascal Brand * [#506][pr506]: tee-supplicant panic & ta panic 987a0cd5d60SPascal Brand 988a0cd5d60SPascal Brand[github_commits_2_0_0]: https://github.com/OP-TEE/optee_os/compare/1.1.0...2.0.0 989a0cd5d60SPascal Brand[rpmb_doc]: https://github.com/OP-TEE/optee_os/blob/master/documentation/secure_storage_rpmb.md 990a0cd5d60SPascal Brand[optee_linuxdriver]: https://github.com/OP-TEE/optee_linuxdriver 991a0cd5d60SPascal Brand[gendrv_v9]: https://lkml.org/lkml/2016/4/1/205 992a0cd5d60SPascal Brand[linux_optee]: https://github.com/linaro-swg/linux/tree/optee 993a0cd5d60SPascal Brand 994a0cd5d60SPascal Brand 995c5bbfb4dSPascal Brand# OP-TEE - version 1.1.0 996c5bbfb4dSPascal Brand 997c5bbfb4dSPascal Brand 998c5bbfb4dSPascal Brand## New features 999c5bbfb4dSPascal Brand 1000c5bbfb4dSPascal Brand* Softfloat library: floating point support is now available in 32bits TA. 1001c5bbfb4dSPascal Brand 1002c5bbfb4dSPascal Brand* Support running 64-bits TA: on ARMv8-A platform, TA can be compiled in 1003c5bbfb4dSPascal Brand AArch32 and/or in AArch64 in case the core is compiled in AArch64. 1004c5bbfb4dSPascal Brand An example can be found in HiKey configuration file. Using the following 1005c5bbfb4dSPascal Brand excerpt code, the user TA libraries are compiled in both AArch32 and 1006c5bbfb4dSPascal Brand AArch64, and can be found in `out/arm-plat-hikey/export-ta_arm32` and 1007c5bbfb4dSPascal Brand `out/arm-plat-hikey/export-ta_arm64` 1008c5bbfb4dSPascal Brand 1009c5bbfb4dSPascal Brand``` 1010c5bbfb4dSPascal Brand ta-targets = ta_arm32 1011c5bbfb4dSPascal Brand ta-targets += ta_arm64 1012c5bbfb4dSPascal Brand``` 1013c5bbfb4dSPascal Brand 1014c5bbfb4dSPascal Brand* Concurrent TA support: multiple TA can run in parallel on 1015c5bbfb4dSPascal Brand several cores. 1016c5bbfb4dSPascal Brand 1017c5bbfb4dSPascal Brand* New tests added in xtest test suite: concurrent TA (xtest 1013), 1018c5bbfb4dSPascal Brand floating point tests (xtest 1006 and os_test TA) and corruption 1019c5bbfb4dSPascal Brand file storage (xtest 20000) 1020c5bbfb4dSPascal Brand 1021c5bbfb4dSPascal Brand* [Link][github_commits_1_1_0] to a list of all commits between this and 1022c5bbfb4dSPascal Brand previous release. 1023c5bbfb4dSPascal Brand 1024c5bbfb4dSPascal Brand 1025c5bbfb4dSPascal Brand## Tested on 1026c5bbfb4dSPascal BrandDefinitions: 1027c5bbfb4dSPascal Brand 1028c5bbfb4dSPascal Brand| Type | Meaning | 1029c5bbfb4dSPascal Brand| ---- | ------- | 1030c5bbfb4dSPascal Brand| Standard tests | The [optee_test][optee_test] project. | 1031c5bbfb4dSPascal Brand| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.1.0.4. | 1032c5bbfb4dSPascal Brand| Hello world test | Plain hello world Trusted Application such as [this][hello_world]. | 1033c5bbfb4dSPascal Brand 1034c5bbfb4dSPascal Brand* Foundation Models (vexpress-fvp), standard tests + extended tests, 1035c5bbfb4dSPascal Brand using FVP ARM V8 Foundation Platformr0p0 (platform build 9.5.40) 1036c5bbfb4dSPascal Brand* HiKey (hikey), standard + extended tests. 1037c5bbfb4dSPascal Brand* MT8173 (mediatek), standard tests. 1038c5bbfb4dSPascal Brand* QEMU (vexpress-qemu), standard + extended tests. 1039c5bbfb4dSPascal Brand* STM Cannes (stm-cannes), standard + extended tests. 1040c5bbfb4dSPascal Brand 1041c5bbfb4dSPascal Brand## Known issues 1042c5bbfb4dSPascal Brand* Secure Storage is implemented, but note that anti-rollback protection 1043c5bbfb4dSPascal Brand is not implemented yet. 1044c5bbfb4dSPascal Brand 1045c5bbfb4dSPascal Brand* Issue(s) open on GitHub 1046c5bbfb4dSPascal Brand * [#40][prld40] BUG_ON() when re-using RPC buffer to tee-supplicant 1047c5bbfb4dSPascal Brand * [#296][pr296]: Connecting RPMB to the storage APIs. 1048c5bbfb4dSPascal Brand * [#493][pr493]: setup_juno_optee: unable to find pre-built binaries 1049c5bbfb4dSPascal Brand * [#506][pr506]: tee-supplicant panic & ta panic 1050c5bbfb4dSPascal Brand 1051c5bbfb4dSPascal Brand[prld40]: https://github.com/OP-TEE/optee_linuxdriver/issues/40 1052c5bbfb4dSPascal Brand[pr506]: https://github.com/OP-TEE/optee_os/issues/506 1053c5bbfb4dSPascal Brand[github_commits_1_1_0]: https://github.com/OP-TEE/optee_os/compare/1.0.1...1.1.0 1054c5bbfb4dSPascal Brand 1055c5bbfb4dSPascal Brand 1056c5bbfb4dSPascal Brand 10578a7ee79dSPascal Brand# OP-TEE - version 1.0.0 10588a7ee79dSPascal Brand 10598a7ee79dSPascal BrandOP-TEE is now maintained by Linaro. Contributors do not need to 10608a7ee79dSPascal Brandsign a CLA anymore, but must follow the rules of the [DCO][DCO] 10618a7ee79dSPascal Brand(Developer Certificate of Origin) instead. 10628a7ee79dSPascal Brand 10638a7ee79dSPascal Brand 10648a7ee79dSPascal Brand## New features 10658a7ee79dSPascal Brand 10668a7ee79dSPascal Brand* Add hardware support for Texas Instruments DRA7xx, ARMv7 (plat-ti) 10678a7ee79dSPascal Brand 10688a7ee79dSPascal Brand* GlobalPlatform™ TEE Internal Core API Specification v1.1, 10698a7ee79dSPascal Brand including ECC algorithms. 10708a7ee79dSPascal Brand 10718a7ee79dSPascal Brand* Secure Storage: Files stored by the REE are now encrypted. Operations 10728a7ee79dSPascal Brand are made atomic in order to prevent inconsistencies in case of errors 10738a7ee79dSPascal Brand during the storage operations. [Slides][LCStorage] describing the 10748a7ee79dSPascal Brand Secure Storage have been presented at the Linaro Connect SFO15. 10758a7ee79dSPascal Brand 10768a7ee79dSPascal Brand* Change of format of the Trusted Applications: they follow a 10778a7ee79dSPascal Brand [signed ELF format][elf] 10788a7ee79dSPascal Brand 10798a7ee79dSPascal Brand* Rework thread [synchronization][synchro] in optee_os. 10808a7ee79dSPascal Brand 10818a7ee79dSPascal Brand* Use of ARMv8 native cryptographic support. 10828a7ee79dSPascal Brand 10838a7ee79dSPascal Brand* [OP-TEE/optee_test][optee_test] test suite is released. 10848a7ee79dSPascal Brand 10858a7ee79dSPascal Brand* Introduce [OP-TEE/manifest][manifest] and [OP-TEE/build][build] 10868a7ee79dSPascal Brand to setup and build QEMU, FVP, HiKey and Mediatek platforms. Setup scripts 10878a7ee79dSPascal Brand that used to be in optee_os have been removed, except for Juno board. 10888a7ee79dSPascal Brand 108995422146SPascal Brand* [Link][github_commits_1_0_0] to a list of all commits between this and 109095422146SPascal Brand previous release. 109195422146SPascal Brand 10928a7ee79dSPascal Brand 10938a7ee79dSPascal Brand## Tested on 10948a7ee79dSPascal BrandDefinitions: 10958a7ee79dSPascal Brand 10968a7ee79dSPascal Brand| Type | Meaning | 10978a7ee79dSPascal Brand| ---- | ------- | 10988a7ee79dSPascal Brand| Standard tests | The [optee_test][optee_test] project. | 10998a7ee79dSPascal Brand| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.1.0.4. | 11008a7ee79dSPascal Brand| Hello world test | Plain hello world Trusted Application such as [this][hello_world]. | 11018a7ee79dSPascal Brand 11028a7ee79dSPascal Brand* ARM Juno Board (vexpress-juno), standard + extended tests. 11038a7ee79dSPascal Brand* Foundation Models (vexpress-fvp), standard tests. 11048a7ee79dSPascal Brand* HiKey (hikey), standard + extended tests. 11058a7ee79dSPascal Brand* MT8173 (mediatek), standard tests. 11068a7ee79dSPascal Brand* QEMU (vexpress-qemu), standard + extended tests. 11078a7ee79dSPascal Brand* STM Cannes (stm-cannes), standard + extended tests. 11088a7ee79dSPascal Brand 110995422146SPascal Brand## Known issues 111095422146SPascal Brand* Secure Storage is implemented, but note that anti-rollback protection 111195422146SPascal Brand is not implemented yet. 111295422146SPascal Brand 111395422146SPascal Brand* Issue(s) open on GitHub 111495422146SPascal Brand * [#210][pr210]: libteec.so 32-bit does not communicate well 111595422146SPascal Brand with 64-bit kernel module 111695422146SPascal Brand * [#296][pr296]: Connecting RPMB to the storage APIs. 111795422146SPascal Brand * [#493][pr493]: setup_juno_optee: unable to find pre-built binaries 111895422146SPascal Brand * [#494][pr494]: HiKey: xtest 7671 fails (1.0.0-rc2) 111995422146SPascal Brand 112095422146SPascal Brand[pr210]: https://github.com/OP-TEE/optee_os/issues/210 112195422146SPascal Brand[pr296]: https://github.com/OP-TEE/optee_os/issues/296 112295422146SPascal Brand[pr493]: https://github.com/OP-TEE/optee_os/issues/493 112395422146SPascal Brand[pr494]: https://github.com/OP-TEE/optee_os/issues/494 112495422146SPascal Brand[github_commits_1_0_0]: https://github.com/OP-TEE/optee_os/compare/0.3.0...1.0.0 11258a7ee79dSPascal Brand[DCO]: https://github.com/OP-TEE/optee_os/blob/master/Notice.md#contributions 11268a7ee79dSPascal Brand[LCStorage]: http://www.slideshare.net/linaroorg/sfo15503-secure-storage-in-optee 11278a7ee79dSPascal Brand[synchro]: https://github.com/OP-TEE/optee_os/blob/master/documentation/optee_design.md#4-thread-handling 11288a7ee79dSPascal Brand[elf]: https://github.com/OP-TEE/optee_os/blob/master/documentation/optee_design.md#format 11298a7ee79dSPascal Brand[optee_test]: https://github.com/OP-TEE/optee_test 11308a7ee79dSPascal Brand[manifest]: https://github.com/OP-TEE/manifest 11318a7ee79dSPascal Brand[build]: https://github.com/OP-TEE/build 11328a7ee79dSPascal Brand 113395422146SPascal Brand 113495422146SPascal Brand 113511d59085SPascal Brand# OP-TEE - version 0.3.0 113611d59085SPascal Brand 113711d59085SPascal Brand## New features 113811d59085SPascal Brand 113911d59085SPascal Brand* Add hardware support for 114011d59085SPascal Brand * Mediatek MT8173 Board, ARMv8-A (plat-mediatek) 114111d59085SPascal Brand * Hisilicon HiKey Board, ARMv8-A (plat-hikey) 114211d59085SPascal Brand* AArch64 build of optee_os is now possible through the configuration `CFG_ARM64_core=y` 114311d59085SPascal Brand* Secure Storage: Data can be encrypted prior to their storage in the non-secure. 114411d59085SPascal Brand Build is configured using `CFG_ENC_FS=y` 114511d59085SPascal Brand* A generic boot scheme can be used. Boot configuration is commonalized. This helps 114611d59085SPascal Brand new board support. It is applied on plat-hikey, plat-vexpress, plat-mediatek, plat-stm 114711d59085SPascal Brand and plat-vexpress. 114811d59085SPascal Brand 114911d59085SPascal Brand## Tested on 115011d59085SPascal BrandDefinitions: 115111d59085SPascal Brand 115211d59085SPascal Brand| Type | Meaning | 115311d59085SPascal Brand| ---- | ------- | 115411d59085SPascal Brand| Standard tests | The optee_test project. | 115511d59085SPascal Brand| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.1.0.4. | 115611d59085SPascal Brand| Hello world test | Plain hello world Trusted Application such as [this][hello_world]. | 115711d59085SPascal Brand 115811d59085SPascal Brand* ARM Juno Board (vexpress-juno), standard tests. 115911d59085SPascal Brand* Foundation Models (vexpress-fvp), standard tests. 116011d59085SPascal Brand* HiKey (hikey), standard tests. 116111d59085SPascal Brand* MT8173 (mediatek), standard tests. 116211d59085SPascal Brand* QEMU (vexpress-qemu), standard + extended tests. 116311d59085SPascal Brand* STM Cannes (stm-cannes), standard + extended tests. 116411d59085SPascal Brand 116511d59085SPascal Brand------------------------------------------- 116611d59085SPascal Brand 1167f5117af2SPascal Brand# OP-TEE - version 0.2.0 1168759cc499SJoakim Bech 1169f5117af2SPascal Brand## New features 1170f5117af2SPascal Brand 1171f5117af2SPascal Brand### Linux Driver Refactoring 1172f5117af2SPascal Brand 1173f5117af2SPascal BrandLinux Driver has been refactored. It is now split in two parts: 1174f5117af2SPascal Brand* optee.ko, the generic Linux driver. It contains all functionality 1175f5117af2SPascal Brand common to all backends. 1176f5117af2SPascal Brand* optee_armtz.ko, a specific backend dedicated to the TrustZone optee. 1177f5117af2SPascal Brand It depends on optee.ko. 1178f5117af2SPascal Brand 1179f5117af2SPascal BrandLoading the TrustZone optee linux driver module is now performed using 1180f5117af2SPascal Brand 1181f5117af2SPascal Brand modprobe optee_armtz 1182f5117af2SPascal Brand 1183f5117af2SPascal BrandThanks to the dependency between the generic and the backend modules, optee.ko is then automatically loaded. 1184f5117af2SPascal Brand 1185f5117af2SPascal Brand### Misc new features 1186f5117af2SPascal Brand* support PL310 lock down at TEE boot 1187f5117af2SPascal Brand* add 64bits support (division / print) 1188f5117af2SPascal Brand 1189f5117af2SPascal Brand## Tested on 1190f5117af2SPascal BrandDefinitions: 1191f5117af2SPascal Brand 1192f5117af2SPascal Brand| Type | Meaning | 1193f5117af2SPascal Brand| ---- | ------- | 1194f5117af2SPascal Brand| Standard tests | The optee_test project. | 1195f5117af2SPascal Brand| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.1.0.4. | 1196f5117af2SPascal Brand| Hello world test | Plain hello world Trusted Application such as [this][hello_world]. | 1197f5117af2SPascal Brand 1198f5117af2SPascal Brand* ARM Juno Board (vexpress-juno), standard tests + extended tests. 1199f5117af2SPascal Brand 1200f5117af2SPascal Brand* Foundation Models (vexpress-fvp), standard + extended tests. 1201f5117af2SPascal Brand 1202f5117af2SPascal Brand* QEMU (vexpress-qemu), standard + extended tests. 1203f5117af2SPascal Brand 1204f5117af2SPascal Brand* STM Cannes (stm-cannes), standard + extended tests. 1205f5117af2SPascal Brand 1206f5117af2SPascal Brand 120728fcee17SJerome Forissier## Issues resolved since last release 1208f5117af2SPascal Brand* Fix user TA trace issue, in order each TA is able to select its own trace level 1209f5117af2SPascal Brand 1210f5117af2SPascal Brand 1211f5117af2SPascal Brand------------------------------------------- 1212f5117af2SPascal Brand# OP-TEE - version 0.1.0 1213f5117af2SPascal Brand 1214f5117af2SPascal Brand## New features 1215759cc499SJoakim BechBelow is a summary of the most important features added, but at the end you will 1216759cc499SJoakim Bechfind a link that present you all commits between the current and previous 1217759cc499SJoakim Bechrelease tag. 1218759cc499SJoakim Bech 1219759cc499SJoakim Bech* GlobalPlatform Client API v1.0 support. 1220759cc499SJoakim Bech 1221759cc499SJoakim Bech* GlobalPlatform Internal API v1.0 support. 1222759cc499SJoakim Bech 1223759cc499SJoakim Bech* GlobalPlatform Secure Elements v1.0 support. 1224759cc499SJoakim Bech 1225759cc499SJoakim Bech* Add hardware support for 1226759cc499SJoakim Bech 1227759cc499SJoakim Bech * Allwinner A80, ARMv7-A. 1228759cc499SJoakim Bech 1229759cc499SJoakim Bech * ARM Juno Board, ARMv8-A. 1230759cc499SJoakim Bech 1231759cc499SJoakim Bech * Foundation Models, ARMv8-A. 1232759cc499SJoakim Bech 1233759cc499SJoakim Bech * Fast Models, ARMv8-A. 1234759cc499SJoakim Bech 1235759cc499SJoakim Bech * QEMU, ARMv7-A. 1236759cc499SJoakim Bech 1237759cc499SJoakim Bech * STM Cannes, ARMv7-A. 1238759cc499SJoakim Bech 1239759cc499SJoakim Bech * STM Orly2, ARMv7-A. 1240759cc499SJoakim Bech 1241759cc499SJoakim Bech* Add LibTomCrypt as the default software cryptographic library. 1242759cc499SJoakim Bech 1243759cc499SJoakim Bech* Add cryptographic abstraction layer in on secure side to ease the use of 1244759cc499SJoakim Bech other cryptographic software libraries or adding support for hardware 1245759cc499SJoakim Bech acceleration. 1246759cc499SJoakim Bech 1247759cc499SJoakim Bech* Extended cryptographic API with support for HKDF, Concat KDF and PBKDF2. 1248759cc499SJoakim Bech 1249759cc499SJoakim Bech* SHA-1 and SHA-256 ARMv8-A crypto extension implementation. 1250759cc499SJoakim Bech 1251759cc499SJoakim Bech* Enabled paging support in OP-TEE OS. 1252759cc499SJoakim Bech 1253759cc499SJoakim Bech* Add support for xtest (both standard and extended) in QEMU and FVP setup 1254759cc499SJoakim Bech scripts. 1255759cc499SJoakim Bech 1256759cc499SJoakim Bech* Add documentation for the OS design, cryptographic abstraction layer, secure 1257759cc499SJoakim Bech elements design, the build system, GitHub usage, key derivation extensions, 1258759cc499SJoakim Bech ARM-Trusted Firmware usage within OP-TEE and GlobalPlatform usage within 1259759cc499SJoakim Bech OP-TEE. 1260759cc499SJoakim Bech 1261759cc499SJoakim Bech* Integrate support for Travis CI. 1262759cc499SJoakim Bech 1263759cc499SJoakim Bech* [Link][github_commits_0_1_0] to a list of all commits between this and 1264759cc499SJoakim Bech previous release. 1265759cc499SJoakim Bech 1266759cc499SJoakim Bech 1267f5117af2SPascal Brand## Tested on 1268759cc499SJoakim BechDefinitions: 1269759cc499SJoakim Bech 1270759cc499SJoakim Bech| Type | Meaning | 1271759cc499SJoakim Bech| ---- | ------- | 1272759cc499SJoakim Bech| Standard tests | The optee_test project. | 1273759cc499SJoakim Bech| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.0.0. | 1274759cc499SJoakim Bech| Hello world test | Plain hello world Trusted Application such as [this][hello_world]. | 1275759cc499SJoakim Bech 1276759cc499SJoakim Bech* Allwinner A80 (plat-sunxi), hello world test. 1277759cc499SJoakim Bech 1278759cc499SJoakim Bech* ARM Juno Board (vexpress-juno), standard tests. 1279759cc499SJoakim Bech 1280759cc499SJoakim Bech* Foundation Models (plat-vexpress-fvp), standard + extended tests 1281759cc499SJoakim Bech 1282759cc499SJoakim Bech* QEMU (plat-vexpress-qemu), standard + extended tests (and Secure Elements 1283759cc499SJoakim Bech tested separately). 1284759cc499SJoakim Bech 1285759cc499SJoakim Bech* STM Cannes (plat-stm-cannes), standard + extended tests. 1286759cc499SJoakim Bech 1287759cc499SJoakim Bech 128828fcee17SJerome Forissier## Issues resolved since last release 1289759cc499SJoakim BechN/A since this is the first release tag on OP-TEE. 1290759cc499SJoakim Bech 1291759cc499SJoakim Bech 1292f5117af2SPascal Brand## Known issues 1293759cc499SJoakim Bech* Storage is implemented, but not "Secure storage", meaning that a client 1294759cc499SJoakim Bech needs to do encrypt files on their own before storing the files. 1295759cc499SJoakim Bech 1296759cc499SJoakim Bech* Issue(s) open on GitHub 1297759cc499SJoakim Bech * [#95][pr95]: An error about building the test code of libtomcrypt. 1298759cc499SJoakim Bech 1299759cc499SJoakim Bech * [#149][pr149]: when testing optee os with arm trusted firmware (I 1300759cc499SJoakim Bech utilized optee os tee.bin as bl32 image) on juno platform, I got an 1301759cc499SJoakim Bech error. 1302759cc499SJoakim Bech 1303759cc499SJoakim Bech * [#161][pr161]: tee_svc_cryp.c lacks accessibility checks on 1304759cc499SJoakim Bech user-supplied TEE_Attributes. 1305759cc499SJoakim Bech 1306759cc499SJoakim Bech[hello_world]: https://github.com/jenswi-linaro/lcu14_optee_hello_world 1307759cc499SJoakim Bech[github_commits_0_1_0]: https://github.com/OP-TEE/optee_os/compare/b01047730e77127c23a36591643eeb8bb0487d68...999e4a6c0f64d3177fd3d0db234107b6fb860884 1308759cc499SJoakim Bech[pr95]: https://github.com/OP-TEE/optee_os/issues/95 1309759cc499SJoakim Bech[pr149]: https://github.com/OP-TEE/optee_os/issues/149 1310759cc499SJoakim Bech[pr161]: https://github.com/OP-TEE/optee_os/issues/161 1311759cc499SJoakim Bech 13127583c59eSCedric Chaumont* Global Platform Device Internal Core API v1.1 13137583c59eSCedric Chaumont * [#230][pr230]: Persistent object corruption support (TEE_ERROR_CORRUPT_OBJECT/_2) 13147583c59eSCedric Chaumont * [#230][pr230]: Persistent object access support (TEE_ERROR_STORAGE_NOT_AVAILABLE/_2) 1315