1# OP-TEE - version 3.11.0 (2020-10-16) 2 3- Links to the release pages, commits and pull requests merged into this release for: 4 - OP-TEE/optee_os: [release page][OP_TEE_optee_os_release_3_11_0], [commits][OP_TEE_optee_os_commits_3_11_0] and [pull requests][OP_TEE_optee_os_pr_3_11_0] 5 - OP-TEE/optee_client: [release page][OP_TEE_optee_client_release_3_11_0], [commits][OP_TEE_optee_client_commits_3_11_0] and [pull requests][OP_TEE_optee_client_pr_3_11_0] 6 - OP-TEE/optee_test: [release page][OP_TEE_optee_test_release_3_11_0], [commits][OP_TEE_optee_test_commits_3_11_0] and [pull requests][OP_TEE_optee_test_pr_3_11_0] 7 - OP-TEE/build: [release page][OP_TEE_build_release_3_11_0], [commits][OP_TEE_build_commits_3_11_0] and [pull requests][OP_TEE_build_pr_3_11_0] 8 - linaro-swg/optee_examples: [release page][linaro_swg_optee_examples_release_3_11_0], [commits][linaro_swg_optee_examples_commits_3_11_0] and [pull requests][linaro_swg_optee_examples_pr_3_11_0] 9 10 11[OP_TEE_optee_os_release_3_11_0]: https://github.com/OP-TEE/optee_os/releases/tag/3.11.0 12[OP_TEE_optee_os_commits_3_11_0]: https://github.com/OP-TEE/optee_os/compare/3.10.0...3.11.0 13[OP_TEE_optee_os_pr_3_11_0]: https://github.com/OP-TEE/optee_os/pulls?q=is%3Apr+is%3Amerged+base%3Amaster+merged%3A2020-08-21..2020-10-16 14 15[OP_TEE_optee_client_release_3_11_0]: https://github.com/OP-TEE/optee_client/releases/tag/3.11.0 16[OP_TEE_optee_client_commits_3_11_0]: https://github.com/OP-TEE/optee_client/compare/3.10.0...3.11.0 17[OP_TEE_optee_client_pr_3_11_0]: https://github.com/OP-TEE/optee_client/pulls?q=is%3Apr+is%3Amerged+base%3Amaster+merged%3A2020-08-21..2020-10-16 18 19[OP_TEE_optee_test_release_3_11_0]: https://github.com/OP-TEE/optee_test/releases/tag/3.11.0 20[OP_TEE_optee_test_commits_3_11_0]: https://github.com/OP-TEE/optee_test/compare/3.10.0...3.11.0 21[OP_TEE_optee_test_pr_3_11_0]: https://github.com/OP-TEE/optee_test/pulls?q=is%3Apr+is%3Amerged+base%3Amaster+merged%3A2020-08-21..2020-10-16 22 23[OP_TEE_build_release_3_11_0]: https://github.com/OP-TEE/build/releases/tag/3.11.0 24[OP_TEE_build_commits_3_11_0]: https://github.com/OP-TEE/build/compare/3.10.0...3.11.0 25[OP_TEE_build_pr_3_11_0]: https://github.com/OP-TEE/build/pulls?q=is%3Apr+is%3Amerged+base%3Amaster+merged%3A2020-08-21..2020-10-16 26 27[linaro_swg_optee_examples_release_3_11_0]: https://github.com/linaro-swg/optee_examples/releases/tag/3.11.0 28[linaro_swg_optee_examples_commits_3_11_0]: https://github.com/linaro-swg/optee_examples/compare/3.10.0...3.11.0 29[linaro_swg_optee_examples_pr_3_11_0]: https://github.com/linaro-swg/optee_examples/pulls?q=is%3Apr+is%3Amerged+base%3Amaster+merged%3A2020-08-21..2020-10-16 30 31# OP-TEE - version 3.10.0 (2020-08-21) 32 33- Links to the release pages, commits and pull requests merged into this release for: 34 - OP-TEE/optee_os: [release page][OP_TEE_optee_os_release_3_10_0], [commits][OP_TEE_optee_os_commits_3_10_0] and [pull requests][OP_TEE_optee_os_pr_3_10_0] 35 - OP-TEE/optee_client: [release page][OP_TEE_optee_client_release_3_10_0], [commits][OP_TEE_optee_client_commits_3_10_0] and [pull requests][OP_TEE_optee_client_pr_3_10_0] 36 - OP-TEE/optee_test: [release page][OP_TEE_optee_test_release_3_10_0], [commits][OP_TEE_optee_test_commits_3_10_0] and [pull requests][OP_TEE_optee_test_pr_3_10_0] 37 - OP-TEE/build: [release page][OP_TEE_build_release_3_10_0], [commits][OP_TEE_build_commits_3_10_0] and [pull requests][OP_TEE_build_pr_3_10_0] 38 - linaro-swg/optee_examples: [release page][linaro_swg_optee_examples_release_3_10_0], [commits][linaro_swg_optee_examples_commits_3_10_0] and [pull requests][linaro_swg_optee_examples_pr_3_10_0] 39 40 41[OP_TEE_optee_os_release_3_10_0]: https://github.com/OP-TEE/optee_os/releases/tag/3.10.0 42[OP_TEE_optee_os_commits_3_10_0]: https://github.com/OP-TEE/optee_os/compare/3.9.0...3.10.0 43[OP_TEE_optee_os_pr_3_10_0]: https://github.com/OP-TEE/optee_os/pulls?q=is%3Apr+is%3Amerged+base%3Amaster+merged%3A2020-04-22..2020-08-21 44 45[OP_TEE_optee_client_release_3_10_0]: https://github.com/OP-TEE/optee_client/releases/tag/3.10.0 46[OP_TEE_optee_client_commits_3_10_0]: https://github.com/OP-TEE/optee_client/compare/3.9.0...3.10.0 47[OP_TEE_optee_client_pr_3_10_0]: https://github.com/OP-TEE/optee_client/pulls?q=is%3Apr+is%3Amerged+base%3Amaster+merged%3A2020-04-22..2020-08-21 48 49[OP_TEE_optee_test_release_3_10_0]: https://github.com/OP-TEE/optee_test/releases/tag/3.10.0 50[OP_TEE_optee_test_commits_3_10_0]: https://github.com/OP-TEE/optee_test/compare/3.9.0...3.10.0 51[OP_TEE_optee_test_pr_3_10_0]: https://github.com/OP-TEE/optee_test/pulls?q=is%3Apr+is%3Amerged+base%3Amaster+merged%3A2020-04-22..2020-08-21 52 53[OP_TEE_build_release_3_10_0]: https://github.com/OP-TEE/build/releases/tag/3.10.0 54[OP_TEE_build_commits_3_10_0]: https://github.com/OP-TEE/build/compare/3.9.0...3.10.0 55[OP_TEE_build_pr_3_10_0]: https://github.com/OP-TEE/build/pulls?q=is%3Apr+is%3Amerged+base%3Amaster+merged%3A2020-04-22..2020-08-21 56 57[linaro_swg_optee_examples_release_3_10_0]: https://github.com/linaro-swg/optee_examples/releases/tag/3.10.0 58[linaro_swg_optee_examples_commits_3_10_0]: https://github.com/linaro-swg/optee_examples/compare/3.9.0...3.10.0 59[linaro_swg_optee_examples_pr_3_10_0]: https://github.com/linaro-swg/optee_examples/pulls?q=is%3Apr+is%3Amerged+base%3Amaster+merged%3A2020-04-22..2020-08-21 60 61# OP-TEE - version 3.9.0 (2020-04-22) 62 63- Links to the release pages, commits and pull requests merged into this release for: 64 - 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] 65 - 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] 66 - 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] 67 - 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] 68 - 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] 69 70 71[OP_TEE_optee_os_release_3_9_0]: https://github.com/OP-TEE/optee_os/releases/tag/3.9.0 72[OP_TEE_optee_os_commits_3_9_0]: https://github.com/OP-TEE/optee_os/compare/3.8.0...3.9.0 73[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 74 75[OP_TEE_optee_client_release_3_9_0]: https://github.com/OP-TEE/optee_client/releases/tag/3.9.0 76[OP_TEE_optee_client_commits_3_9_0]: https://github.com/OP-TEE/optee_client/compare/3.8.0...3.9.0 77[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 78 79[OP_TEE_optee_test_release_3_9_0]: https://github.com/OP-TEE/optee_test/releases/tag/3.9.0 80[OP_TEE_optee_test_commits_3_9_0]: https://github.com/OP-TEE/optee_test/compare/3.8.0...3.9.0 81[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 82 83[OP_TEE_build_release_3_9_0]: https://github.com/OP-TEE/build/releases/tag/3.9.0 84[OP_TEE_build_commits_3_9_0]: https://github.com/OP-TEE/build/compare/3.8.0...3.9.0 85[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 86 87[linaro_swg_optee_examples_release_3_9_0]: https://github.com/linaro-swg/optee_examples/releases/tag/3.9.0 88[linaro_swg_optee_examples_commits_3_9_0]: https://github.com/linaro-swg/optee_examples/compare/3.8.0...3.9.0 89[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 90 91# OP-TEE - version 3.8.0 (2020-01-24) 92 93- Links to the release pages, commits and pull requests merged into this release for: 94 - 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] 95 - 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] 96 - 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] 97 - 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] 98 - 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] 99 100 101[OP_TEE_optee_os_release_3_8_0]: https://github.com/OP-TEE/optee_os/releases/tag/3.8.0 102[OP_TEE_optee_os_commits_3_8_0]: https://github.com/OP-TEE/optee_os/compare/3.7.0...3.8.0 103[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 104 105[OP_TEE_optee_client_release_3_8_0]: https://github.com/OP-TEE/optee_client/releases/tag/3.8.0 106[OP_TEE_optee_client_commits_3_8_0]: https://github.com/OP-TEE/optee_client/compare/3.7.0...3.8.0 107[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 108 109[OP_TEE_optee_test_release_3_8_0]: https://github.com/OP-TEE/optee_test/releases/tag/3.8.0 110[OP_TEE_optee_test_commits_3_8_0]: https://github.com/OP-TEE/optee_test/compare/3.7.0...3.8.0 111[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 112 113[OP_TEE_build_release_3_8_0]: https://github.com/OP-TEE/build/releases/tag/3.8.0 114[OP_TEE_build_commits_3_8_0]: https://github.com/OP-TEE/build/compare/3.7.0...3.8.0 115[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 116 117[linaro_swg_optee_examples_release_3_8_0]: https://github.com/linaro-swg/optee_examples/releases/tag/3.8.0 118[linaro_swg_optee_examples_commits_3_8_0]: https://github.com/linaro-swg/optee_examples/compare/3.7.0...3.8.0 119[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 120 121# OP-TEE - version 3.7.0 (2019-10-18) 122 123- Links to the release pages, commits and pull requests merged into this release for: 124 - 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] 125 - 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] 126 - 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] 127 - 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] 128 - 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] 129 130 131[OP_TEE_optee_os_release_3_7_0]: https://github.com/OP-TEE/optee_os/releases/tag/3.7.0 132[OP_TEE_optee_os_commits_3_7_0]: https://github.com/OP-TEE/optee_os/compare/3.6.0...3.7.0 133[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 134 135[OP_TEE_optee_client_release_3_7_0]: https://github.com/OP-TEE/optee_client/releases/tag/3.7.0 136[OP_TEE_optee_client_commits_3_7_0]: https://github.com/OP-TEE/optee_client/compare/3.6.0...3.7.0 137[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 138 139[OP_TEE_optee_test_release_3_7_0]: https://github.com/OP-TEE/optee_test/releases/tag/3.7.0 140[OP_TEE_optee_test_commits_3_7_0]: https://github.com/OP-TEE/optee_test/compare/3.6.0...3.7.0 141[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 142 143[OP_TEE_build_release_3_7_0]: https://github.com/OP-TEE/build/releases/tag/3.7.0 144[OP_TEE_build_commits_3_7_0]: https://github.com/OP-TEE/build/compare/3.6.0...3.7.0 145[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 146 147[linaro_swg_optee_examples_release_3_7_0]: https://github.com/linaro-swg/optee_examples/releases/tag/3.7.0 148[linaro_swg_optee_examples_commits_3_7_0]: https://github.com/linaro-swg/optee_examples/compare/3.6.0...3.7.0 149[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 150 151# OP-TEE - version 3.6.0 (2019-07-05) 152 153- Link to the GitHub [release page][github_release_3_6_0]. 154- Links to the [commits][github_commits_3_6_0] and 155[pull requests][github_pr_3_6_0] merged into this release. 156 157[github_release_3_6_0]: https://github.com/OP-TEE/optee_os/releases/tag/3.6.0 158[github_commits_3_6_0]: https://github.com/OP-TEE/optee_os/compare/3.5.0...3.6.0 159[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 160 161# OP-TEE - version 3.5.0 (2019-04-26) 162 163- Link to the GitHub [release page][github_release_3_5_0]. 164- Links to the [commits][github_commits_3_5_0] and 165[pull requests][github_pr_3_5_0] merged into this release. 166 167[github_release_3_5_0]: https://github.com/OP-TEE/optee_os/releases/tag/3.5.0 168[github_commits_3_5_0]: https://github.com/OP-TEE/optee_os/compare/3.4.0...3.5.0 169[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 170 171# OP-TEE - version 3.4.0 (2019-01-25) 172 173- Link to the GitHub [release page][github_release_3_4_0]. 174- Links to the [commits][github_commits_3_4_0] and 175[pull requests][github_pr_3_4_0] merged into this release. 176 177[github_release_3_4_0]: https://github.com/OP-TEE/optee_os/releases/tag/3.4.0 178[github_commits_3_4_0]: https://github.com/OP-TEE/optee_os/compare/3.3.0...3.4.0 179[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 180 181# OP-TEE - version 3.3.0 (2018-10-12) 182 183- Link to the GitHub [release page][github_release_3_3_0]. 184- Links to the [commits][github_commits_3_3_0] and 185[pull requests][github_pr_3_3_0] merged into this release. 186 187[github_release_3_3_0]: https://github.com/OP-TEE/optee_os/releases/tag/3.3.0 188[github_commits_3_3_0]: https://github.com/OP-TEE/optee_os/compare/3.2.0...3.3.0 189[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 190 191# OP-TEE - version 3.2.0 (2018-07-04) 192 193- Link to the GitHub [release page][github_release_3_2_0]. 194- Links to the [commits][github_commits_3_2_0] and 195[pull requests][github_pr_3_2_0] merged into this release. 196 197## Known issues 198 199* HiKey960: assertion in bget create_free_block() \[memalign() self-test\] ([#2414]) 200* D02: assertion '!have_spinlock()' ([#2437]) 201 202[github_commits_3_2_0]: https://github.com/OP-TEE/optee_os/compare/3.1.0...3.2.0 203[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 204[github_release_3_2_0]: https://github.com/OP-TEE/optee_os/releases/tag/3.2.0 205[#2414]: https://github.com/OP-TEE/optee_os/issues/2414 206[#2437]: https://github.com/OP-TEE/optee_os/issues/2437 207 208# OP-TEE - version 3.1.0 (2018-04-13) 209 210- Link to the GitHub [release page][github_release_3_1_0]. 211- Links to the [commits][github_commits_3_1_0] and 212[pull requests][github_pr_3_1_0] merged into this release. 213 214[github_commits_3_1_0]: https://github.com/OP-TEE/optee_os/compare/3.0.0...3.1.0 215[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 216[github_release_3_1_0]: https://github.com/OP-TEE/optee_os/releases/tag/3.1.0 217 218# OP-TEE - version 3.0.0 (2018-01-26) 219 220[Link][github_commits_3_0_0] to a list of all commits between this release and 221the previous one (2.6.0). 222 223About backwards compatibility: Trusted Applications built with OP-TEE 2.5.0 or 224earlier will not run properly with a *debug* build of this release due 225to commit [0e1c6e8e][commit_0e1c6e8e] ("Dump call stack on TA panic"). 226Non-debug builds are not affected. 227 228## New features 229 230* New supported platforms: Armada 3700 ([#1946]), Poplar ([#1999]), 64-bit 231 support for FSL ls1012ardb ([#1941]), i.MX6SX Sabreauto ([#1974]). 232* arm32: sm: init CNTVOFF ([#2052]) 233* Debug/info/error traces: make output more compact ([#2011]) 234* tzc380: implement new functions ([#1994]) 235* Secure Data Path: add pseudo-TA to convert VA to PA (#1993]) 236* Pager: use NEON AES GCM implementation ([#1959]) 237* Crypto: add optimized AES GCM implementation using NEON ([#1949]) 238* Add support for using secure storage for TA anti-rollback ([#1928]) 239* Crypto: replace struct crypto_ops with function interface ([#1923], 240 [#1931]) 241* aosp_optee.mk: define OPTEE_BIN ([#1922]) 242* Add build option to allow concurrent execution of single-instance TAs 243 ([#1915]) 244* Pager: support for address sanitizer ([#1856]) 245* Pager: make memory between CFG_TEE_RAM_START and TEE load address usable by 246 pager ([#1826]) 247 248## Bug fixes 249 250* Fix crash in tee_mmu_final() on TA loading error ([#2092]) 251* LibTomCrypt: fix issue causing invalid output when using AES CTR with 252hardware acceleration (CFG_CRYPTO_WITH_CE) ([#2086]) 253* pl310: fix cache sync ([#2035]) 254* tzc380: do not write reserved bits ([#1994]) 255* Fix potential double free in ta_open() ([#1970]) 256* libfdt: fix undefined behaviour in fdt_offset_ptr() ([#1969]) 257* imx_wdog: fix register access ([#1966]) 258* Secure storage: fix potential memory leak after early return ([#1961]) 259* LibTomCrypt: fix double free in dsa_import() ([#1963]) 260* RPMB: fix TA independance issue in secure storage ([#1921]) 261* RPMB: return TEE_ERROR_ACCESS_CONFLICT instead of panicking when a TA 262 attempts to create an existing persistent object without the overwrite flag 263 ([#1919]) 264* PSCI: pass non-secure context to psci_system_suspend() ([#1916]) 265* Fix "Argument list too long" during "make clean" ([#1897]) 266 267## Security fixes 268 269* Mitigations and hardening against the Spectre and Meltdown vulnerabilities 270 (CVE-2017-5753, CVE-2017-5715, CVE-2017-5754). 271 272## Known issues 273 274* Secure storage (REE FS): storage size not updated after 275TEE_TruncateObjectData() ([#2094]) 276* Possible deadlock with CFG_WITH_PAGER=y when loading a TA and not enough 277page tables are available in pgt_cache ([#2080]) 278 279## Tested on 280 281The release was tested successfully on the platforms listed below. 282 283<!-- ${PLATFORM}-${PLATFORM_FLAVOR}, ordered alphabetically --> 284* d02 285* hikey 286* hikey-hikey960 287* imx-mx6ulevk 288* imx-mx7dsabresd 289* marvell-armada7k8k 290* marvell-armada3700 291* mediatek-mt8173 292* rcar-salvator_m3 293* rockchip-rk322x 294* rpi3 295* sam 296* ti 297* vexpress-juno 298* vexpress-qemu_armv8a 299* vexpress-qemu_virt 300 301[commit_0e1c6e8e]: https://github.com/OP-TEE/optee_os/commit/0e1c6e8e 302[github_commits_3_0_0]: https://github.com/OP-TEE/optee_os/compare/2.6.0...3.0.0 303[#2092]: https://github.com/OP-TEE/optee_os/pull/2092 304[#2086]: https://github.com/OP-TEE/optee_os/pull/2086 305[#2094]: https://github.com/OP-TEE/optee_os/issues/2094 306[#2080]: https://github.com/OP-TEE/optee_os/issues/2080 307[#2052]: https://github.com/OP-TEE/optee_os/pull/2052 308[#2035]: https://github.com/OP-TEE/optee_os/pull/2035 309[#2011]: https://github.com/OP-TEE/optee_os/pull/2011 310[#1999]: https://github.com/OP-TEE/optee_os/pull/1999 311[#1994]: https://github.com/OP-TEE/optee_os/pull/1994 312[#1993]: https://github.com/OP-TEE/optee_os/pull/1993 313[#1974]: https://github.com/OP-TEE/optee_os/pull/1974 314[#1970]: https://github.com/OP-TEE/optee_os/pull/1970 315[#1969]: https://github.com/OP-TEE/optee_os/pull/1969 316[#1966]: https://github.com/OP-TEE/optee_os/pull/1966 317[#1963]: https://github.com/OP-TEE/optee_os/pull/1963 318[#1961]: https://github.com/OP-TEE/optee_os/pull/1961 319[#1959]: https://github.com/OP-TEE/optee_os/pull/1959 320[#1949]: https://github.com/OP-TEE/optee_os/pull/1949 321[#1946]: https://github.com/OP-TEE/optee_os/pull/1946 322[#1941]: https://github.com/OP-TEE/optee_os/pull/1941 323[#1931]: https://github.com/OP-TEE/optee_os/pull/1931 324[#1928]: https://github.com/OP-TEE/optee_os/pull/1928 325[#1923]: https://github.com/OP-TEE/optee_os/pull/1923 326[#1922]: https://github.com/OP-TEE/optee_os/pull/1922 327[#1921]: https://github.com/OP-TEE/optee_os/pull/1921 328[#1919]: https://github.com/OP-TEE/optee_os/pull/1919 329[#1916]: https://github.com/OP-TEE/optee_os/pull/1916 330[#1915]: https://github.com/OP-TEE/optee_os/pull/1915 331[#1897]: https://github.com/OP-TEE/optee_os/pull/1897 332[#1856]: https://github.com/OP-TEE/optee_os/pull/1856 333[#1826]: https://github.com/OP-TEE/optee_os/pull/1826 334 335# OP-TEE - version 2.6.0 336 337[Link][github_commits_2_6_0] to a list of all commits between this release and 338the previous one (2.5.0). 339 340## New features 341 342* New supported platforms: Atmel SAMA5 ([#1714]), HiSilicon HiKey960 ([#1684]), 343 Rockchip RK322X ([#1666]), NXP LS1043A-RDB/LS1046A-RDB ([#1787]), Marvell 344 Armada 70x0/80x0 ([#1807]). 345* Dynamic shared memory (non-contiguous, non-secure memory can be mapped into 346 Trusted Applications VA space) ([#1631]) 347* Dump TA call stack on panic ([#1858]) 348* i.MX: PSCI reset ([#1849]) 349* plat-ti: AM43xx: suspend/resume support ([#1822]) 350* QEMU SMP support ([#1820]) 351* plat-ti: AM43xx: disable TRNG ([#1816]) 352* plat-ti: enable Secure Data Path by default ([#1815]) 353* Improve symbolize.py ([#1778], [#1767], [#1766]) 354* Early TAs (TAs linked in tee.bin) ([#1733]) 355* Suspend/resume framework for arm32 and imx7d support ([#1729]) 356* RK322X PSCI version, features and suspend support ([#1720]) 357* arm32: handle aborts in system mode ([#1703]) 358* i.MX: add SNVS SRTC support ([#1700]) 359* GCC7 support ([#1693]) 360* Improve detection of programming errors in locking code ([#1671], [#1670]) 361* Support TEE RAM size larger than page directory size ([#1669]) 362 363## Removed features 364 365* Remove TUI code ([#1842]) 366 367## Bug fixes 368 369* Add missing synchronization barrier in core_mmu_map_pages() ([#1827]) 370* Secure storage: REE FS: fix bug in error path ([#1801]) 371* ASAN bug fixes ([#1799]) 372* Fix race in core_mmu_user_mapping_is_active() ([#1785]) 373* libutee: printf() and puts() fixes, add putchar() ([#1759], [#1754]) 374* arm32: GICv3: fix FIQ masking in IRQ/ABT/SVC/UND handlers ([#1748]) 375* arm32: preserve r12 in native_intr_handler() ([#1682]) 376* arm64: fix print_kernel_stack() ([#1664]) 377* benchmark: fix core data-abort ([#1658]) 378 379## Security fixes or enhancements 380 381* crypto: fix software PRNG weaknesses 382 ([OP-TEE-2017-0001][OP-TEE-2017-0001]) ([#1843]) 383 384## Tested on 385 386The release was tested successfully on the platforms listed below. 387If a platform is not listed, it means the release was not tested on this 388platform. 389 390<!-- ${PLATFORM}-${PLATFORM_FLAVOR}, ordered alphabetically --> 391* d02 392* hikey 393* hikey-hikey960 394* imx-mx6ulevk 395* imx-mx7dsabresd 396* ls-ls1021a??? (single core) 397* ls-ls1043ardb 398* ls-ls1046ardb 399* mediatek-mt8173 400* rcar 401* rockchip-rk322x 402* rpi3 403* sam 404* stm-b2260 405* stm-cannes 406* ti-??? 407* vexpress-fvp 408* vexpress-juno 409* vexpress-qemu_armv8a 410* vexpress-qemu_virt 411 412[github_commits_2_6_0]: https://github.com/OP-TEE/optee_os/compare/2.5.0...2.6.0 413[#1858]: https://github.com/OP-TEE/optee_os/issues/1858 414[#1849]: https://github.com/OP-TEE/optee_os/issues/1849 415[#1843]: https://github.com/OP-TEE/optee_os/issues/1843 416[#1842]: https://github.com/OP-TEE/optee_os/issues/1842 417[#1827]: https://github.com/OP-TEE/optee_os/issues/1827 418[#1822]: https://github.com/OP-TEE/optee_os/issues/1822 419[#1820]: https://github.com/OP-TEE/optee_os/issues/1820 420[#1816]: https://github.com/OP-TEE/optee_os/issues/1816 421[#1815]: https://github.com/OP-TEE/optee_os/issues/1815 422[#1807]: https://github.com/OP-TEE/optee_os/issues/1807 423[#1801]: https://github.com/OP-TEE/optee_os/issues/1801 424[#1799]: https://github.com/OP-TEE/optee_os/issues/1799 425[#1787]: https://github.com/OP-TEE/optee_os/issues/1787 426[#1785]: https://github.com/OP-TEE/optee_os/issues/1785 427[#1778]: https://github.com/OP-TEE/optee_os/issues/1778 428[#1767]: https://github.com/OP-TEE/optee_os/issues/1767 429[#1766]: https://github.com/OP-TEE/optee_os/issues/1766 430[#1759]: https://github.com/OP-TEE/optee_os/issues/1759 431[#1754]: https://github.com/OP-TEE/optee_os/issues/1754 432[#1748]: https://github.com/OP-TEE/optee_os/issues/1748 433[#1733]: https://github.com/OP-TEE/optee_os/issues/1733 434[#1729]: https://github.com/OP-TEE/optee_os/issues/1729 435[#1720]: https://github.com/OP-TEE/optee_os/issues/1720 436[#1714]: https://github.com/OP-TEE/optee_os/issues/1714 437[#1703]: https://github.com/OP-TEE/optee_os/issues/1703 438[#1700]: https://github.com/OP-TEE/optee_os/issues/1700 439[#1693]: https://github.com/OP-TEE/optee_os/issues/1693 440[#1684]: https://github.com/OP-TEE/optee_os/issues/1684 441[#1682]: https://github.com/OP-TEE/optee_os/issues/1682 442[#1671]: https://github.com/OP-TEE/optee_os/issues/1671 443[#1670]: https://github.com/OP-TEE/optee_os/issues/1670 444[#1669]: https://github.com/OP-TEE/optee_os/issues/1669 445[#1666]: https://github.com/OP-TEE/optee_os/issues/1666 446[#1664]: https://github.com/OP-TEE/optee_os/issues/1664 447[#1658]: https://github.com/OP-TEE/optee_os/issues/1658 448[#1631]: https://github.com/OP-TEE/optee_os/issues/1631 449[OP-TEE-2017-0001]: https://www.op-tee.org/security-advisories/ 450 451# OP-TEE - version 2.5.0 452 453[Link][github_commits_2_5_0] to a list of all commits between this release and 454the previous one (2.4.0). 455 456## New features 457 458* New supported platform: i.MX7D ([#1639]) 459* Secure storage: anti-rollback protection for REE FS using RPMB FS ([#1630]) 460* Assign non-secure DDR configuration from DT if CFG_DT=y ([#1623]) 461* Add new image format: split image into three separate binaries suitable for 462 upcoming ARM Trusted Firmware ([#1589]). 463* Make alignment check configurable ([#1586]) 464* drivers: add TZC380 driver ([#1578]) 465* plat-imx: PSCI CPU off ([#1577]) 466* 64-bit paging on QEMU v8 and HiKey ([#1575], [#1592]) 467* Benchmark framework ([#1365]) 468* Dump call stack of user TAs on abort ([#1552]) 469* plat-hikey: enable Secure Data Path ([#1440]) 470* Add interface to load and decrypt/authenticate user TAs ([#1513]) 471* plat-ti: add secure paging support ([#1493]) 472* plat-ti: add OTP hardware key support ([#1492]) 473* Support ARM GICv3 ([#1465]) 474 475## Removed features 476 477* stm-orly2 is not supported anymore ([#1650]) 478* Remove secure storage based on SQL FS (`CFG_SQL_FS=y`) ([#1490]) 479* Remove support for mapping user TAs with 1 MiB or 2 MiB granularity 480 (`CFG_SMALL_PAGE_USER_TA=n`) ([#1559]). TAs are always mapped using small 481 pages. 482 483## Bug fixes 484 485* Reduce size of non-pageable code ([#1621]) 486* Ignore `TA_FLAG_MULTI_SESSION` and `TA_FLAG_INSTANCE_KEEP_ALIVE` when 487 `TA_FLAG_SINGLE_INSTANCE` is not set ([#1574]) 488* libutee: remove buffering for AES GCM (PR#1573) and AES CTR ([#1580]) 489* Fix ROUNDUP()/ROUNDDOWN() macros ([#1519]) 490* Do not touch other bits in GICD_CTLR ([#1508]) 491* Fix build issue with `DEBUG=y` and `CFG_TEE_CORE_LOG_LEVEL=0` ([#1502]) 492* crypto: do not restrict hash size when algorithm is ECDSA ([#1497]) 493 494## Security fixes or enhancements 495 496- crypto: fix RSA key leakage after fault injection attack 497 ([OP-TEE-2016-0003][OP-TEE-2016-0003]) ([#1610]) 498* crypto: fix RSA key leakage after side channel attack 499 ([OP-TEE-2016-0002][OP-TEE-2016-0002]) ([#1610]) 500* Make pager aliased pages not always writable ([#1551]) 501* Support for no-exec RO and RW data ([#1459], [#1550]) 502 503## New issues 504 505* armv7: some platform-specific code (`plat_cpu_reset_early()`) overwrites 506SCTLR bits configured by generic code. This affects alignment checks (`SCTLR.A`) 507and write-implies-no-exec (`SCTLR.WXN`, `SCTLR.UWXN`), which can therefore not 508be configured via the compile-time `CFG_` variables. 509* armv7: plat-imx: Cortex-A9 cores should enable branch prediction (`SCLTR.Z`) 510for improved performance. 511* [#1656] qemu_armv8a: init hangs when secure data path and pager are both 512 enabled. 513 514## Tested on 515 516In the list below, _standard_ means that the `xtest` program passed with 517its default configuration, while _extended_ means it was run successfully 518with the additional GlobalPlatform™ TEE Initial Configuration Test Suite 519v1.1.0.4. 520 521If a platform is not listed, it means the release was not tested on this 522platform. 523 524<!-- ${PLATFORM}-${PLATFORM_FLAVOR}, ordered alphabetically --> 525* d02: extended 526* hikey: extended 527* imx-mx6ulevk: standard 528* imx-mx6ullevk: standard 529* imx-mx7dsabresd: standard 530* ls-ls1021atwr: standard 531* mediatek-mt8173: standard 532* rcar-h3: standard 533* rpi3: standard 534* stm-b2260: extended 535* stm-cannes: extended 536* ti-am43xx: standard 537* ti-am57xx: standard 538* ti-dra7xx: standard 539* vexpress-fvp: standard 540* vexpress-juno: standard 541* vexpress-qemu_armv8a: standard 542* vexpress-qemu_virt: standard 543 544[github_commits_2_5_0]: https://github.com/OP-TEE/optee_os/compare/2.4.0...2.5.0-rc1 545[#1656]: https://github.com/OP-TEE/optee_os/issues/1656 546[#1650]: https://github.com/OP-TEE/optee_os/pull/1650 547[#1639]: https://github.com/OP-TEE/optee_os/pull/1639 548[#1630]: https://github.com/OP-TEE/optee_os/pull/1630 549[#1623]: https://github.com/OP-TEE/optee_os/pull/1623 550[#1621]: https://github.com/OP-TEE/optee_os/pull/1621 551[#1610]: https://github.com/OP-TEE/optee_os/pull/1610 552[#1592]: https://github.com/OP-TEE/optee_os/pull/1592 553[#1589]: https://github.com/OP-TEE/optee_os/pull/1589 554[#1586]: https://github.com/OP-TEE/optee_os/pull/1586 555[#1580]: https://github.com/OP-TEE/optee_os/pull/1580 556[#1578]: https://github.com/OP-TEE/optee_os/pull/1578 557[#1577]: https://github.com/OP-TEE/optee_os/pull/1577 558[#1574]: https://github.com/OP-TEE/optee_os/pull/1574 559[#1559]: https://github.com/OP-TEE/optee_os/pull/1559 560[#1551]: https://github.com/OP-TEE/optee_os/pull/1551 561[#1550]: https://github.com/OP-TEE/optee_os/pull/1550 562[#1519]: https://github.com/OP-TEE/optee_os/pull/1519 563[#1502]: https://github.com/OP-TEE/optee_os/pull/1502 564[#1365]: https://github.com/OP-TEE/optee_os/pull/1365 565[#1552]: https://github.com/OP-TEE/optee_os/pull/1552 566[#1513]: https://github.com/OP-TEE/optee_os/pull/1513 567[#1508]: https://github.com/OP-TEE/optee_os/pull/1508 568[#1493]: https://github.com/OP-TEE/optee_os/pull/1493 569[#1497]: https://github.com/OP-TEE/optee_os/pull/1497 570[#1492]: https://github.com/OP-TEE/optee_os/pull/1492 571[#1490]: https://github.com/OP-TEE/optee_os/pull/1490 572[#1465]: https://github.com/OP-TEE/optee_os/pull/1465 573[#1459]: https://github.com/OP-TEE/optee_os/pull/1459 574[#1440]: https://github.com/OP-TEE/optee_os/pull/1440 575[OP-TEE-2016-0003]: https://www.op-tee.org/security-advisories/ 576[OP-TEE-2016-0002]: https://www.op-tee.org/security-advisories/ 577 578# OP-TEE - version 2.4.0 579 580[Link][github_commits_2_4_0] to a list of all commits between this release and 581the previous one (2.3.0). 582 583Please note: this release is API-compatible with the previous one, but the 584Secure Storage internal format for the REE and SQL FS is not compatible due to 585commits [a238b74][commit_a238b74] ("core: REE FS: use the new hash tree 586interface") and [44e900e][commit_44e900e] ("core: SQL FS: use the new hash tree 587interface"). 588 589## New features 590 591* Add porting guidelines 592 593* Add support for Secure Data Path which allows Client and Trusted Applications 594 to share references to secure memory 595 596* New supported platform: Texas Instruments AM57xx (`PLATFORM=ti-am57xx`) 597 598* ARMv7-A: add support for platform services in secure monitor and add these 599 services for the DRA7xx platform 600 601* SPI framework and PL022 driver cleanup and improvements 602 603* Use CNTPCT (when available) to add entropy to the software PRNG 604 605* Add GlobalPlatform Socket API for UDP and TCP (IPv4 and IPv6) 606 607* DRA7: add TRNG driver, enable GICv2 driver 608 609* Support load address larger than 4G 610 611* libutee: preserve error code when calling TEE_Panic() for easier 612 troubleshooting 613 614* Support TA profiling with gprof (-pg compiler switch) 615 616* Optimize the ELF loader for TAs when pager is enabled 617 618* Update documentation 619 620* Add paged secure shared memory that can be transferred between TAs as 621 needed 622 623* Introduce MOBJ abstraction 624 625* i.MX6: add PSCI "on" function 626 627* arm32: introduce PSCI framework 628 629## Bug fixes 630 631* Secure storage: improve integrity checking of the REE and SQL filesystems by 632 adding a hash tree on the internal data structures. Any external modification 633 is detected, except full rollback. Fixes [#1188][issue1188]. 634 635* The linux driver will set the 'privileged' flag (TEE_GEN_CAP_PRIVILEGED) on 636 the device intended for use by tee-supplicant. Fixes [#1199][issue1199]. 637 638* RPMB: don't try to program the RPMB key by default 639 640* Fix "make clean" error cases 641 642* Fix issue when resetting persistent storage enumerator [#1332][issue1332] 643 644* Fix TA panic when doing AES CTS with specific buffer sizes 645 [#1203][issue1203]. 646 647## Known issues 648 649* On RPi3 xtest sometimes stall (rcu_sched self-detected stall on CPU) [#1353][issue1353] 650* For multi-core PSCI support is to be added for ls1021atwr in OP-TEE. 651* USB keyboard cannot be used to stop the u-boot timeout ([build issue131]). 652* Travis service (build.git) seems unstable from time to time. 653 654## Tested on 655 656In the list below, _standard_ means that the `xtest` program passed with 657its default configuration, while _extended_ means it was run successfully 658with the additional GlobalPlatform™ TEE Initial Configuration Test Suite 659v1.1.0.4. 660 661If a platform is not listed, it means the release was not tested on this 662platform. 663 664<!-- ${PLATFORM}-${PLATFORM_FLAVOR}, ordered alphabetically --> 665* d02: extended 666* hikey: extended 667* imx-mx6ulevk: standard 668* ls-ls1021atwr: standard (single core) 669* mediatek-mt8173: standard 670* rcar-h3: standard 671* rpi3: standard 672* stm-b2260: extended 673* ti-dra7xx: standard 674* vexpress-fvp: standard 675* vexpress-juno: standard 676* vexpress-qemu_armv8a: standard 677* vexpress-qemu_virt: standard 678* zynqmp-zc1751_dc1: standard 679* zynqmp-zc1751_dc2: standard 680* zynqmp-zcu102: standard 681 682[github_commits_2_4_0]: https://github.com/OP-TEE/optee_os/compare/2.3.0...2.4.0 683[issue1332]: https://github.com/OP-TEE/optee_os/issues/1332 684[issue1353]: https://github.com/OP-TEE/optee_os/issues/1353 685[build issue131]: https://github.com/OP-TEE/build/issues/131 686[commit_a238b74]: https://github.com/OP-TEE/optee_os/commit/a238b744b1b3 687[commit_44e900e]: https://github.com/OP-TEE/optee_os/commit/44e900eabfc1 688 689# OP-TEE - version 2.3.0 690 691[Link][github_commits_2_3_0] to a list of all commits between this release and 692the previous one (2.2.0). 693 694Please note: this release is API-compatible with the previous one, but the 695Secure Storage internal format for the REE FS is not compatible due to commit 696[361fb3e][commit_361fb3e] ("core: REE FS: use a single file per object"). 697 698[commit_361fb3e]: https://github.com/OP-TEE/optee_os/commit/361fb3e 699 700## New features 701 702* New supported platform: Xilinx Zynq 7000 ZC702 (`PLATFORM=zynq7k-zc702`) 703 704* Add debug assertions to spinlocks and mutexes 705 706* Add more CP15 register access macros for Cortex-A9 707 708* ARMv7-A: redesign secure monitor to make it easier to register services 709 710* ARMv7-A: cleanup boot arguments 711 712* libutee: extend `TEE_CheckMemoryAccessRights()` with 713 `TEE_MEMORY_ACCESS_SECURE` and `TEE_MEMORY_ACCESS_NONSECURE` 714 715* plat-hikey: enable SPI by default and add sample test code 716 717* Consider `CFLAGS_ta_arm64` and `CFLAGS_ta_arm32` when building TAs 718 719* Secure storage refactoring 720 - Simplify interface with tee-supplicant. Minimize round trips with normal 721 world, especially by adding a cache for FS RPC payload data. 722 - REE FS: use a single file per object, remove block cache. 723 724* Print call stack in panic() 725 726## Bug fixes 727 728* Fix UUID encoding when communicating with normal world (use big endian 729 mode instead of native endianness). Related to this, the string format 730 for UUIDs has changed in tee-supplicant, so that TA file names now follow 731 the format defined in RFC4122 (a missing hyphen was added). The old format 732 is still supported, but deprecated, and will likely be removed with the 733 next major release. 734 735* Drop write permission to non-writable ELF segments after TA loading is 736 complete. 737 738* mm: fix confusing memory mapping debug traces 739 740* plat-ti: fix issues with MMU mapping 741 742* crypto: fix clearing of big numbers 743 744* build: allow spaces and double quotes in CFG_ variables 745 746* mm: use paddr_t to support both 32- and 64-bit architectures properly. 747 Resolves 32-bit truncation error when pool is at top of 32 bit address 748 space on 64-bit architecture. 749 750* plat-stm: support pager. Fix pager on ARMv7-A SMP boards. 751 752* Fix debug output of Trusted Applications (remove "ERROR: TEE-CORE:" prefix) 753 754* Do not consider TA memref parameters as TA private memory 755 756* crypto: fix `cipher_final()` which would not call `cbc_done()` for CBC_MAC 757 algorithms 758 759* fix for 16-way PL310 760 761* arm32: fix call stack unwinding (`print_stack()`) 762 763* arm32: fix spinlock assembly code 764 765* plat-stm, plat-imx: fix SCR initalization 766 767* Fix user L1 MMU entries calculation (non-LPAE), allowing TTBCR.N values 768 other than 7. 769 770* mtk-mt8173: fix panic caused by incorrect size of SHMEM 771 772* plat-stm: fix RNG driver (non-flat mapping) 773 774## Known issues 775 776* New issues open on GitHub 777 * [#1203][issue1203] AES-CTS mode will fail when inlen=0x100, in_incr=0x80 778 * [#1199][issue1199] Both tee and teepriv reported GlobalPlatform compliant 779 * [#1188][issue1188] Secure storage (SQL FS and REE FS): blocks not tied to 780 current meta header 781 * [#1172][issue1172] paddr_t should be larger than 32 bits when 782 CFG_WITH_LPAE is enabled 783 784## Tested on 785 786In the list below, _standard_ means that the `xtest` program passed with 787its default configuration, while _extended_ means it was run successfully 788with the additional GlobalPlatform™ TEE Initial Configuration Test Suite 789v1.1.0.4. 790 791If a platform is not listed, it means the release was not tested on this 792platform. 793 794<!-- ${PLATFORM}-${PLATFORM_FLAVOR}, ordered alphabetically --> 795* d02: extended 796* hikey: extended 797* imx-mx6ulevk: standard 798* ls-ls1021atwr: standard 799* mediatek-mt8173: standard 800* rcar-h3: standard 801* rpi3: standard 802* stm-b2260: extended 803* stm-cannes: extended 804* ti-dra7xx: standard 805* vexpress-fvp: standard 806* vexpress-juno: standard 807* vexpress-qemu_armv8a: standard 808* vexpress-qemu_virt: extended 809* zynqmp-zcu102: standard 810 811[github_commits_2_3_0]: https://github.com/OP-TEE/optee_os/compare/2.2.0...2.3.0 812[issue1172]: https://github.com/OP-TEE/optee_os/issues/1172 813[issue1188]: https://github.com/OP-TEE/optee_os/issues/1188 814[issue1199]: https://github.com/OP-TEE/optee_os/issues/1199 815[issue1203]: https://github.com/OP-TEE/optee_os/issues/1203 816 817# OP-TEE - version 2.2.0 818 819[Link][github_commits_2_2_0] to a list of all commits between this release and 820the previous one (2.1.0). 821 822Please note: this release is API-compatible with the previous one, but the 823Secure Storage internal format is not compatible due to commit 824[fde4a75][commit_fde4a75] ("storage: encrypt the FEK with a TA-specific key"). 825 826[commit_fde4a75]: https://github.com/OP-TEE/optee_os/commit/fde4a75 827 828## New features 829 830* New supported platforms: 831 * Freescale i.MX6 Quad SABRE Lite & SD 832 * HiSilicon D02 833 * Raspberry Pi3 834 * Renesas RCAR H3 835 * STMicroelectronics b2260 - h410 836 837* Pager: Support paging of read/write pages by encrypting them with AES-GCM. 838 Support paging of user TAs. Add global setting for TZSRAM size 839 (CFG_CORE_TZSRAM_EMUL_SIZE), defaults to 300K. 840 841* Support for more than 8 CPU cores 842 843* Added SPI framework and PL022 driver 844 845* GPIO: framework supports multiple instances, PL061 driver now has get/set 846 interrupt and mode control functions 847 848* Secure storage: Encrypt the File Encryption Key with a TA-specific key for 849 better TA isolation. Add build-time and run-time support for multiple storage 850 backends. Add SQLite backend. 851 852* Trusted User Interface: some code is introduced to support the implementation 853 of TUI. This includes: a generic framebuffer driver, display and serial 854 abstractions, and drivers for PL111 (LCD) / PL050 (KMI) / TZC400 and PS2 855 mouse. 856 857* AES acceleration using ARMv8-A Cryptographic Extensions instructions is 858 now supported in AArch32 mode 859 860* Add support for GCC flags: -fsanitize=undefined and -fsanitize=kernel-address 861 862* Use a global setting for core heap size (CFG_CORE_HEAP_SIZE), 64K by default. 863 864* Add macros to unwind and print the call stack of TEE core 865 866* Libtomcrypt: sync with the latest `develop` branch. 867 868* The Trusted Application SDK (ta_dev_kit.mk) can produce libraries (.a) 869 870* Rework assertions and TEE core panics and properly honor NDEBUG 871 872## Bug fixes 873 874* Fix incorrect algorithm passed to cipher.final() 875 876* scripts: support Python 2.x and 3.x 877 878* Secure storage: Add proper locking to support concurrent access. Fix sign 879 extension bug with offset parameter of syscall storage_obj_seek which could 880 cause errors in Aarch32 mode. Fix reading beyond end of file. 881 882* Aarch64: mask all maskable exceptions before doing a normal return from call. 883 884* Device Tree: add no-map property to OP-TEE node in reserved-memory. 885 886* LibTomcrypt: fix CVE-2016-6129 887 888## Known issues 889 890* New issues open on GitHub 891 * [#1093][issue1093] rcar-h3: xtest 6010 hangs 892 * [#1092][issue1092] rcar-h3: xtest 4010 fails 893 * [#1081][issue1081] Bad mapping of TA secure memref parameters 894 * [#1071][issue1071] __data_end may not correctly represent text start position when using CFG_WITH_PAGER 895 * [#1069][issue1069] armv7/Aarch32: crash in stack unwind (DPRINT_STACK()) 896 897## Tested on 898 899In the list below, _standard_ means that the `xtest` program passed with 900its default configuration, while _extended_ means it was run successfully 901with the additional GlobalPlatform™ TEE Initial Configuration Test Suite 902v1.1.0.4. 903 904If a platform is not listed, it means the release was not tested on this 905platform. 906 907<!-- ${PLATFORM}-${PLATFORM_FLAVOR}, ordered alphabetically --> 908* d02: extended 909* hikey: extended 910* imx-mx6qsabrelite: standard 911* imx-mx6qsabresd: standard 912* rcar-h3: standard, pass except issues [#1092][issue1092] and [#1093][issue1093] 913* rpi3: standard 914* stm-b2260: standard 915* stm-cannes: standard 916* ti-dra7xx: standard 917* vexpress-fvp: standard 918* vexpress-juno: standard 919* vexpress-qemu_armv8a: standard 920* vexpress-qemu_virt: extended 921* zynqmp-zcu102: standard 922 923[github_commits_2_2_0]: https://github.com/OP-TEE/optee_os/compare/2.1.0...2.2.0 924[issue1081]: https://github.com/OP-TEE/optee_os/issues/1081 925[issue1071]: https://github.com/OP-TEE/optee_os/issues/1071 926[issue1069]: https://github.com/OP-TEE/optee_os/issues/1069 927[issue1092]: https://github.com/OP-TEE/optee_os/issues/1092 928[issue1093]: https://github.com/OP-TEE/optee_os/issues/1093 929 930# OP-TEE - version 2.1.0 931 932## New features 933 934* New supported platforms: 935 * Xilinx Zynq UltraScale+ MPSOC 936 * Spreadtrum SC9860 937 938* GCC5 support 939 940* Non Linear Mapping support: In OP-TEE kernel mode, the physical to virtual 941 addresses was linear until this release, meaning the virtual addresses 942 were equal to the physical addresses. This is no more the case in this 943 release. 944 945* Font rendering routines have been introduced in order to ease an 946 implementation of Trusted UI. 947 948* File Storage: Possibility to use the normal world filesystem and the RPMB 949 implementations simultaneously. 950 951* AOSP: There is a [local manifest][aosp_local_manifest] to build OP-TEE into an AOSP build, running on HiKey. 952 Please refer to the README in that repo for instructions. 953 954* OpenEmbedded: In addition to the makefile-based build described in the optee_os README, there is an 955 [OpenEmbedded-based build][oe_build] that supports Qemu (32-bit), FVP (64-bit), and HiKey (64-bit). 956 Please refer to the README in that repo for instructions. 957 958* [Link][github_commits_2_1_0] to a list of all commits between this and 959 previous release. 960 961 962## Tested on 963Definitions: 964 965| Type | Meaning | 966| ---- | ------- | 967| Standard tests | The [optee_test][optee_test] project. | 968| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.1.0.4. | 969 970* ARM Juno Board (vexpress-juno), standard. 971* Foundation Models (vexpress-fvp), standard tests + extended tests, 972 using FVP ARM V8 Foundation Platformr0p0 (platform build 10.0.37) 973* FSL i.MX6 UltraLite EVK (imx), standard. 974* FSL ls1021a (ls-ls1021atwr), standard tests. 975* HiKey (hikey), standard + extended tests. 976* QEMU (vexpress-qemu), standard + extended tests. 977* Xilinx Zynq UltraScale+ MPSOC, standard tests 978 979Note that the following platform has not been tested: 980* MTK8173-EVB (mediatek-mt8173) 981 982 983## Known issues 984* Issue(s) open on GitHub 985 * [#868][pr868]: python-wand font generation sometimes times out 986 * [#863][pr863]: "double free or corruption" error when building optee_os 987 * [#858][pr858]: UUIDs in binary format have wrong endinanness 988 * [#857][pr857]: Formatting of UUIDs is incorrect 989 * [#847][pr847]: optee_os panic(TEE-CORE: Assertion) 990 * [#838][pr838]: TUI font rendering is _very_ slow 991 * [#814][pr814]: Persistent objects : save informations after close 992 * [#665][pr665]: xtest 1013 stalled on HiKey when log levels are 4 and optee_os is on its own UART 993 * [#506][pr506]: tee-supplicant panic & ta panic 994 995[github_commits_2_1_0]: https://github.com/OP-TEE/optee_os/compare/2.0.0...2.1.0 996[pr868]: https://github.com/OP-TEE/optee_os/issues/868 997[pr863]: https://github.com/OP-TEE/optee_os/issues/863 998[pr858]: https://github.com/OP-TEE/optee_os/issues/858 999[pr857]: https://github.com/OP-TEE/optee_os/issues/857 1000[pr847]: https://github.com/OP-TEE/optee_os/issues/847 1001[pr838]: https://github.com/OP-TEE/optee_os/issues/838 1002[pr814]: https://github.com/OP-TEE/optee_os/issues/814 1003[pr665]: https://github.com/OP-TEE/optee_os/issues/665 1004[aosp_local_manifest]: https://github.com/linaro-swg/optee_android_manifest 1005[oe_build]: https://github.com/linaro-swg/oe-optee 1006 1007# OP-TEE - version 2.0.0 1008 1009## New features 1010 1011* Generic driver: A new generic TEE driver is in the process of being 1012 [upstreamed][gendrv_v9]. 1013 In this release, [OP-TEE/optee_linuxdriver][optee_linuxdriver] is no more used. 1014 Instead, linux v4.5 is being patched using the proposed Generic TEE Driver, 1015 as it can be found in [https://github.com/linaro-swg/linux/tree/optee][linux_optee] 1016 1017* RPMB support: Secure Storage can now use Replay Protected Memory Block (RPMB) partition 1018 of an eMMC device. Check the [full documentation][rpmb_doc] 1019 1020* Hard-float ABI is now available. 1021 1022* [Link][github_commits_2_0_0] to a list of all commits between this and 1023 previous release. 1024 1025 1026## Tested on 1027Definitions: 1028 1029| Type | Meaning | 1030| ---- | ------- | 1031| Standard tests | The [optee_test][optee_test] project. | 1032| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.1.0.4. | 1033 1034* ARM Juno Board (vexpress-juno), standard. 1035* Foundation Models (vexpress-fvp), standard tests + extended tests, 1036 using FVP ARM V8 Foundation Platformr0p0 (platform build 9.5.40) 1037* FSL ls1021a (ls-ls1021atwr), standard. 1038* HiKey (hikey), standard. 1039* MTK8173-EVB (mediatek-mt8173), standard. 1040* QEMU (vexpress-qemu), standard + extended tests. 1041* STM Cannes (stm-cannes), standard + extended tests. 1042 1043## Known issues 1044* Issue(s) open on GitHub 1045 * [#40][prld40] BUG_ON() when re-using RPC buffer to tee-supplicant 1046 * [#506][pr506]: tee-supplicant panic & ta panic 1047 1048[github_commits_2_0_0]: https://github.com/OP-TEE/optee_os/compare/1.1.0...2.0.0 1049[rpmb_doc]: https://github.com/OP-TEE/optee_os/blob/master/documentation/secure_storage_rpmb.md 1050[optee_linuxdriver]: https://github.com/OP-TEE/optee_linuxdriver 1051[gendrv_v9]: https://lkml.org/lkml/2016/4/1/205 1052[linux_optee]: https://github.com/linaro-swg/linux/tree/optee 1053 1054 1055# OP-TEE - version 1.1.0 1056 1057 1058## New features 1059 1060* Softfloat library: floating point support is now available in 32bits TA. 1061 1062* Support running 64-bits TA: on ARMv8-A platform, TA can be compiled in 1063 AArch32 and/or in AArch64 in case the core is compiled in AArch64. 1064 An example can be found in HiKey configuration file. Using the following 1065 excerpt code, the user TA libraries are compiled in both AArch32 and 1066 AArch64, and can be found in `out/arm-plat-hikey/export-ta_arm32` and 1067 `out/arm-plat-hikey/export-ta_arm64` 1068 1069``` 1070 ta-targets = ta_arm32 1071 ta-targets += ta_arm64 1072``` 1073 1074* Concurrent TA support: multiple TA can run in parallel on 1075 several cores. 1076 1077* New tests added in xtest test suite: concurrent TA (xtest 1013), 1078 floating point tests (xtest 1006 and os_test TA) and corruption 1079 file storage (xtest 20000) 1080 1081* [Link][github_commits_1_1_0] to a list of all commits between this and 1082 previous release. 1083 1084 1085## Tested on 1086Definitions: 1087 1088| Type | Meaning | 1089| ---- | ------- | 1090| Standard tests | The [optee_test][optee_test] project. | 1091| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.1.0.4. | 1092| Hello world test | Plain hello world Trusted Application such as [this][hello_world]. | 1093 1094* Foundation Models (vexpress-fvp), standard tests + extended tests, 1095 using FVP ARM V8 Foundation Platformr0p0 (platform build 9.5.40) 1096* HiKey (hikey), standard + extended tests. 1097* MT8173 (mediatek), standard tests. 1098* QEMU (vexpress-qemu), standard + extended tests. 1099* STM Cannes (stm-cannes), standard + extended tests. 1100 1101## Known issues 1102* Secure Storage is implemented, but note that anti-rollback protection 1103 is not implemented yet. 1104 1105* Issue(s) open on GitHub 1106 * [#40][prld40] BUG_ON() when re-using RPC buffer to tee-supplicant 1107 * [#296][pr296]: Connecting RPMB to the storage APIs. 1108 * [#493][pr493]: setup_juno_optee: unable to find pre-built binaries 1109 * [#506][pr506]: tee-supplicant panic & ta panic 1110 1111[prld40]: https://github.com/OP-TEE/optee_linuxdriver/issues/40 1112[pr506]: https://github.com/OP-TEE/optee_os/issues/506 1113[github_commits_1_1_0]: https://github.com/OP-TEE/optee_os/compare/1.0.1...1.1.0 1114 1115 1116 1117# OP-TEE - version 1.0.0 1118 1119OP-TEE is now maintained by Linaro. Contributors do not need to 1120sign a CLA anymore, but must follow the rules of the [DCO][DCO] 1121(Developer Certificate of Origin) instead. 1122 1123 1124## New features 1125 1126* Add hardware support for Texas Instruments DRA7xx, ARMv7 (plat-ti) 1127 1128* GlobalPlatform™ TEE Internal Core API Specification v1.1, 1129 including ECC algorithms. 1130 1131* Secure Storage: Files stored by the REE are now encrypted. Operations 1132 are made atomic in order to prevent inconsistencies in case of errors 1133 during the storage operations. [Slides][LCStorage] describing the 1134 Secure Storage have been presented at the Linaro Connect SFO15. 1135 1136* Change of format of the Trusted Applications: they follow a 1137 [signed ELF format][elf] 1138 1139* Rework thread [synchronization][synchro] in optee_os. 1140 1141* Use of ARMv8 native cryptographic support. 1142 1143* [OP-TEE/optee_test][optee_test] test suite is released. 1144 1145* Introduce [OP-TEE/manifest][manifest] and [OP-TEE/build][build] 1146 to setup and build QEMU, FVP, HiKey and Mediatek platforms. Setup scripts 1147 that used to be in optee_os have been removed, except for Juno board. 1148 1149* [Link][github_commits_1_0_0] to a list of all commits between this and 1150 previous release. 1151 1152 1153## Tested on 1154Definitions: 1155 1156| Type | Meaning | 1157| ---- | ------- | 1158| Standard tests | The [optee_test][optee_test] project. | 1159| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.1.0.4. | 1160| Hello world test | Plain hello world Trusted Application such as [this][hello_world]. | 1161 1162* ARM Juno Board (vexpress-juno), standard + extended tests. 1163* Foundation Models (vexpress-fvp), standard tests. 1164* HiKey (hikey), standard + extended tests. 1165* MT8173 (mediatek), standard tests. 1166* QEMU (vexpress-qemu), standard + extended tests. 1167* STM Cannes (stm-cannes), standard + extended tests. 1168 1169## Known issues 1170* Secure Storage is implemented, but note that anti-rollback protection 1171 is not implemented yet. 1172 1173* Issue(s) open on GitHub 1174 * [#210][pr210]: libteec.so 32-bit does not communicate well 1175 with 64-bit kernel module 1176 * [#296][pr296]: Connecting RPMB to the storage APIs. 1177 * [#493][pr493]: setup_juno_optee: unable to find pre-built binaries 1178 * [#494][pr494]: HiKey: xtest 7671 fails (1.0.0-rc2) 1179 1180[pr210]: https://github.com/OP-TEE/optee_os/issues/210 1181[pr296]: https://github.com/OP-TEE/optee_os/issues/296 1182[pr493]: https://github.com/OP-TEE/optee_os/issues/493 1183[pr494]: https://github.com/OP-TEE/optee_os/issues/494 1184[github_commits_1_0_0]: https://github.com/OP-TEE/optee_os/compare/0.3.0...1.0.0 1185[DCO]: https://github.com/OP-TEE/optee_os/blob/master/Notice.md#contributions 1186[LCStorage]: http://www.slideshare.net/linaroorg/sfo15503-secure-storage-in-optee 1187[synchro]: https://github.com/OP-TEE/optee_os/blob/master/documentation/optee_design.md#4-thread-handling 1188[elf]: https://github.com/OP-TEE/optee_os/blob/master/documentation/optee_design.md#format 1189[optee_test]: https://github.com/OP-TEE/optee_test 1190[manifest]: https://github.com/OP-TEE/manifest 1191[build]: https://github.com/OP-TEE/build 1192 1193 1194 1195# OP-TEE - version 0.3.0 1196 1197## New features 1198 1199* Add hardware support for 1200 * Mediatek MT8173 Board, ARMv8-A (plat-mediatek) 1201 * Hisilicon HiKey Board, ARMv8-A (plat-hikey) 1202* AArch64 build of optee_os is now possible through the configuration `CFG_ARM64_core=y` 1203* Secure Storage: Data can be encrypted prior to their storage in the non-secure. 1204 Build is configured using `CFG_ENC_FS=y` 1205* A generic boot scheme can be used. Boot configuration is commonalized. This helps 1206 new board support. It is applied on plat-hikey, plat-vexpress, plat-mediatek, plat-stm 1207 and plat-vexpress. 1208 1209## Tested on 1210Definitions: 1211 1212| Type | Meaning | 1213| ---- | ------- | 1214| Standard tests | The optee_test project. | 1215| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.1.0.4. | 1216| Hello world test | Plain hello world Trusted Application such as [this][hello_world]. | 1217 1218* ARM Juno Board (vexpress-juno), standard tests. 1219* Foundation Models (vexpress-fvp), standard tests. 1220* HiKey (hikey), standard tests. 1221* MT8173 (mediatek), standard tests. 1222* QEMU (vexpress-qemu), standard + extended tests. 1223* STM Cannes (stm-cannes), standard + extended tests. 1224 1225------------------------------------------- 1226 1227# OP-TEE - version 0.2.0 1228 1229## New features 1230 1231### Linux Driver Refactoring 1232 1233Linux Driver has been refactored. It is now split in two parts: 1234* optee.ko, the generic Linux driver. It contains all functionality 1235 common to all backends. 1236* optee_armtz.ko, a specific backend dedicated to the TrustZone optee. 1237 It depends on optee.ko. 1238 1239Loading the TrustZone optee linux driver module is now performed using 1240 1241 modprobe optee_armtz 1242 1243Thanks to the dependency between the generic and the backend modules, optee.ko is then automatically loaded. 1244 1245### Misc new features 1246* support PL310 lock down at TEE boot 1247* add 64bits support (division / print) 1248 1249## Tested on 1250Definitions: 1251 1252| Type | Meaning | 1253| ---- | ------- | 1254| Standard tests | The optee_test project. | 1255| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.1.0.4. | 1256| Hello world test | Plain hello world Trusted Application such as [this][hello_world]. | 1257 1258* ARM Juno Board (vexpress-juno), standard tests + extended tests. 1259 1260* Foundation Models (vexpress-fvp), standard + extended tests. 1261 1262* QEMU (vexpress-qemu), standard + extended tests. 1263 1264* STM Cannes (stm-cannes), standard + extended tests. 1265 1266 1267## Issues resolved since last release 1268* Fix user TA trace issue, in order each TA is able to select its own trace level 1269 1270 1271------------------------------------------- 1272# OP-TEE - version 0.1.0 1273 1274## New features 1275Below is a summary of the most important features added, but at the end you will 1276find a link that present you all commits between the current and previous 1277release tag. 1278 1279* GlobalPlatform Client API v1.0 support. 1280 1281* GlobalPlatform Internal API v1.0 support. 1282 1283* GlobalPlatform Secure Elements v1.0 support. 1284 1285* Add hardware support for 1286 1287 * Allwinner A80, ARMv7-A. 1288 1289 * ARM Juno Board, ARMv8-A. 1290 1291 * Foundation Models, ARMv8-A. 1292 1293 * Fast Models, ARMv8-A. 1294 1295 * QEMU, ARMv7-A. 1296 1297 * STM Cannes, ARMv7-A. 1298 1299 * STM Orly2, ARMv7-A. 1300 1301* Add LibTomCrypt as the default software cryptographic library. 1302 1303* Add cryptographic abstraction layer in on secure side to ease the use of 1304 other cryptographic software libraries or adding support for hardware 1305 acceleration. 1306 1307* Extended cryptographic API with support for HKDF, Concat KDF and PBKDF2. 1308 1309* SHA-1 and SHA-256 ARMv8-A crypto extension implementation. 1310 1311* Enabled paging support in OP-TEE OS. 1312 1313* Add support for xtest (both standard and extended) in QEMU and FVP setup 1314 scripts. 1315 1316* Add documentation for the OS design, cryptographic abstraction layer, secure 1317 elements design, the build system, GitHub usage, key derivation extensions, 1318 ARM-Trusted Firmware usage within OP-TEE and GlobalPlatform usage within 1319 OP-TEE. 1320 1321* Integrate support for Travis CI. 1322 1323* [Link][github_commits_0_1_0] to a list of all commits between this and 1324 previous release. 1325 1326 1327## Tested on 1328Definitions: 1329 1330| Type | Meaning | 1331| ---- | ------- | 1332| Standard tests | The optee_test project. | 1333| Extended tests | optee_test with tests from the GlobalPlatform™ TEE Initial Configuration Test Suite v1.0.0. | 1334| Hello world test | Plain hello world Trusted Application such as [this][hello_world]. | 1335 1336* Allwinner A80 (plat-sunxi), hello world test. 1337 1338* ARM Juno Board (vexpress-juno), standard tests. 1339 1340* Foundation Models (plat-vexpress-fvp), standard + extended tests 1341 1342* QEMU (plat-vexpress-qemu), standard + extended tests (and Secure Elements 1343 tested separately). 1344 1345* STM Cannes (plat-stm-cannes), standard + extended tests. 1346 1347 1348## Issues resolved since last release 1349N/A since this is the first release tag on OP-TEE. 1350 1351 1352## Known issues 1353* Storage is implemented, but not "Secure storage", meaning that a client 1354 needs to do encrypt files on their own before storing the files. 1355 1356* Issue(s) open on GitHub 1357 * [#95][pr95]: An error about building the test code of libtomcrypt. 1358 1359 * [#149][pr149]: when testing optee os with arm trusted firmware (I 1360 utilized optee os tee.bin as bl32 image) on juno platform, I got an 1361 error. 1362 1363 * [#161][pr161]: tee_svc_cryp.c lacks accessibility checks on 1364 user-supplied TEE_Attributes. 1365 1366[hello_world]: https://github.com/jenswi-linaro/lcu14_optee_hello_world 1367[github_commits_0_1_0]: https://github.com/OP-TEE/optee_os/compare/b01047730e77127c23a36591643eeb8bb0487d68...999e4a6c0f64d3177fd3d0db234107b6fb860884 1368[pr95]: https://github.com/OP-TEE/optee_os/issues/95 1369[pr149]: https://github.com/OP-TEE/optee_os/issues/149 1370[pr161]: https://github.com/OP-TEE/optee_os/issues/161 1371 1372* Global Platform Device Internal Core API v1.1 1373 * [#230][pr230]: Persistent object corruption support (TEE_ERROR_CORRUPT_OBJECT/_2) 1374 * [#230][pr230]: Persistent object access support (TEE_ERROR_STORAGE_NOT_AVAILABLE/_2) 1375