AMD-TEE driver keeps track of shared memory buffers and their
corresponding buffer id's in a global linked list. These buffers are
used to share data between x86 and AMD Secure Processor. This patchset
fixes issues related to maintaining mapped buffers in a shared linked
list.
Rijo Thomas (2):
tee: amdtee: fix memory leak due to reset of global shm list
tee: amdtee: synchronize access to shm list
drivers/tee/amdtee/amdtee_private.h | 8 ++++----
drivers/tee/amdtee/core.c | 26 +++++++++++++++++++-------
2 files changed, 23 insertions(+), 11 deletions(-)
--
2.17.1
Hi All,
Gentle reminder about the Mbed TLS workshop tomorrow (Tuesday, November 3rd) from 2 to 6pm GMT.
See agenda and zoom link here - https://www.trustedfirmware.org/meetings/mbed-tls-workshop/
Thanks,
Shebu
-----Original Appointment-----
From: Trusted Firmware Public Meetings <linaro.org_havjv2figrh5egaiurb229pd8c(a)group.calendar.google.com>
Sent: Friday, October 23, 2020 12:32 AM
To: Trusted Firmware Public Meetings; Shebu Varghese Kuriakose; mbed-tls(a)lists.trustedfirmware.org; Don Harbin; psa-crypto(a)lists.trustedfirmware.org; Dave Rodgman
Subject: Mbed TLS Virtual Workshop
When: Tuesday, November 3, 2020 2:00 PM-6:00 PM (UTC+00:00) Dublin, Edinburgh, Lisbon, London.
Where: Zoom: https://linaro-org.zoom.us/j/95315200315?pwd=ZDJGc1BZMHZLV29DTmpGUllmMjB1UT…
You have been invited to the following event.
Mbed TLS Virtual Workshop
When
Tue Nov 3, 2020 7am – 11am Mountain Standard Time - Phoenix
Where
Zoom: https://linaro-org.zoom.us/j/95315200315?pwd=ZDJGc1BZMHZLV29DTmpGUllmMjB1UT… (map<https://www.google.com/maps/search/Zoom:+https:%2F%2Flinaro-org.zoom.us%2Fj…>)
Calendar
shebu.varghesekuriakose(a)arm.com<mailto:shebu.varghesekuriakose@arm.com>
Who
•
Don Harbin - creator
•
shebu.varghesekuriakose(a)arm.com<mailto:shebu.varghesekuriakose@arm.com>
•
mbed-tls(a)lists.trustedfirmware.org<mailto:mbed-tls@lists.trustedfirmware.org>
•
psa-crypto(a)lists.trustedfirmware.org<mailto:psa-crypto@lists.trustedfirmware.org>
•
dave.rodgman(a)arm.com<mailto:dave.rodgman@arm.com>
more details »<https://www.google.com/calendar/event?action=VIEW&eid=NHVvY2FxY2o4Njk3MWZkd…>
Hi,
Trustedfirmware.org community project would like to invite you to the Mbed TLS Virtual Workshop.
The purpose of the workshop is to bring together the Mbed TLS community including maintainers, contributors and users to discuss
* The future direction of the project and
* Ways to improve community collaboration
Here is the agenda for the workshop.
Topic Time (in GMT)
Welcome 2.00 - 2.10pm
Constant-time code 2.10 – 2.30pm
Processes - how does work get scheduled? 2.30 – 2.50pm
PSA Crypto APIs 2.50 – 3.20pm
PSA Crypto for Silicon Labs Wireless
MCUs - Why, What, Where and When 3.20 – 3.50pm
Break
Roadmap, TLS1.3 Update 4.10 – 4.30pm
Mbed TLS 3.0 Plans, Scope 4.30 – 5.00pm
How do I contribute my first review
and be an effective Mbed TLS reviewer 5.00 – 5.30pm
Regards,
Don Harbin
Trusted Firmware Community Manager
==============Zoom details below:====================
Trusted Firmware is inviting you to a scheduled Zoom meeting.
Topic: Mbed TLS Virtual Workshop
Time: Nov 3, 2020 02:00 PM Greenwich Mean Time
Join Zoom Meeting
https://linaro-org.zoom.us/j/95315200315?pwd=ZDJGc1BZMHZLV29DTmpGUllmMjB1UT…<https://www.google.com/url?q=https%3A%2F%2Flinaro-org.zoom.us%2Fj%2F9531520…>
Meeting ID: 953 1520 0315
Passcode: 143755
One tap mobile
+16699009128,,95315200315# US (San Jose)
+12532158782,,95315200315# US (Tacoma)
Dial by your location
+1 669 900 9128 US (San Jose)
+1 253 215 8782 US (Tacoma)
+1 346 248 7799 US (Houston)
+1 646 558 8656 US (New York)
+1 301 715 8592 US (Germantown)
+1 312 626 6799 US (Chicago)
888 788 0099 US Toll-free
877 853 5247 US Toll-free
Meeting ID: 953 1520 0315
Find your local number: https://linaro-org.zoom.us/u/apL3hgti4<https://www.google.com/url?q=https%3A%2F%2Flinaro-org.zoom.us%2Fu%2FapL3hgt…>
Going (shebu.varghesekuriakose(a)arm.com<mailto:shebu.varghesekuriakose@arm.com>)? Yes<https://www.google.com/calendar/event?action=RESPOND&eid=NHVvY2FxY2o4Njk3MW…> - Maybe<https://www.google.com/calendar/event?action=RESPOND&eid=NHVvY2FxY2o4Njk3MW…> - No<https://www.google.com/calendar/event?action=RESPOND&eid=NHVvY2FxY2o4Njk3MW…> more options »<https://www.google.com/calendar/event?action=VIEW&eid=NHVvY2FxY2o4Njk3MWZkd…>
Invitation from Google Calendar<https://www.google.com/calendar/>
You are receiving this courtesy email at the account shebu.varghesekuriakose(a)arm.com<mailto:shebu.varghesekuriakose@arm.com> because you are an attendee of this event.
To stop receiving future updates for this event, decline this event. Alternatively you can sign up for a Google account at https://www.google.com/calendar/ and control your notification settings for your entire calendar.
Forwarding this invitation could allow any recipient to send a response to the organizer and be added to the guest list, or invite others regardless of their own invitation status, or to modify your RSVP. Learn More<https://support.google.com/calendar/answer/37135#forwarding>.
Hello arm-soc maintainers,
Please pull this small patch which allows to hide uuit_t internals from
the OP-TEE driver.
I know it's a bit late for v5.10, if it's too late please queue it for
v5.11 instead.
Thanks,
Jens
The following changes since commit 9123e3a74ec7b934a4a099e98af6a61c2f80bbf5:
Linux 5.9-rc1 (2020-08-16 13:04:57 -0700)
are available in the Git repository at:
git://git.linaro.org:/people/jens.wiklander/linux-tee.git tags/optee-use-uuid-api-for-v5.10
for you to fetch changes up to 57222a1be27e06ecb81cc2f945e897814d5f461c:
tee: optee: Use UUID API for exporting the UUID (2020-10-13 08:03:18 +0200)
----------------------------------------------------------------
Use UUID API to export the UUID
Uses export_uuid() to export and uuid_t to an u8 array instead of depending
on the internals of uuid_t.
----------------------------------------------------------------
Andy Shevchenko (1):
tee: optee: Use UUID API for exporting the UUID
drivers/tee/optee/device.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Add support for TEE based trusted keys where TEE provides the functionality
to seal and unseal trusted keys using hardware unique key. Also, this is
an alternative in case platform doesn't possess a TPM device.
This patch-set has been tested with OP-TEE based early TA which is already
merged in upstream [1].
[1] https://github.com/OP-TEE/optee_os/commit/f86ab8e7e0de869dfa25ca05a37ee070d…
Changes in v7:
1. Added a trusted.source module parameter in order to enforce user's
choice in case a particular platform posses both TPM and TEE.
2. Refine commit description for patch #1.
Changes in v6:
1. Revert back to dynamic detection of trust source.
2. Drop author mention from trusted_core.c and trusted_tpm1.c files.
3. Rebased to latest tpmdd/master.
Changes in v5:
1. Drop dynamic detection of trust source and use compile time flags
instead.
2. Rename trusted_common.c -> trusted_core.c.
3. Rename callback: cleanup() -> exit().
4. Drop "tk" acronym.
5. Other misc. comments.
6. Added review tags for patch #3 and #4.
Changes in v4:
1. Pushed independent TEE features separately:
- Part of recent TEE PR: https://lkml.org/lkml/2020/5/4/1062
2. Updated trusted-encrypted doc with TEE as a new trust source.
3. Rebased onto latest tpmdd/master.
Changes in v3:
1. Update patch #2 to support registration of multiple kernel pages.
2. Incoporate dependency patch #4 in this patch-set:
https://patchwork.kernel.org/patch/11091435/
Changes in v2:
1. Add reviewed-by tags for patch #1 and #2.
2. Incorporate comments from Jens for patch #3.
3. Switch to use generic trusted keys framework.
Sumit Garg (4):
KEYS: trusted: Add generic trusted keys framework
KEYS: trusted: Introduce TEE based Trusted Keys
doc: trusted-encrypted: updates with TEE as a new trust source
MAINTAINERS: Add entry for TEE based Trusted Keys
Documentation/security/keys/trusted-encrypted.rst | 203 ++++++++++---
MAINTAINERS | 8 +
include/keys/trusted-type.h | 47 +++
include/keys/trusted_tee.h | 55 ++++
include/keys/trusted_tpm.h | 17 +-
security/keys/trusted-keys/Makefile | 2 +
security/keys/trusted-keys/trusted_core.c | 334 +++++++++++++++++++++
security/keys/trusted-keys/trusted_tee.c | 278 ++++++++++++++++++
security/keys/trusted-keys/trusted_tpm1.c | 336 ++++------------------
9 files changed, 953 insertions(+), 327 deletions(-)
create mode 100644 include/keys/trusted_tee.h
create mode 100644 security/keys/trusted-keys/trusted_core.c
create mode 100644 security/keys/trusted-keys/trusted_tee.c
--
2.7.4
Hello arm-soc maintainers,
Please pull this small fix which reenables the kernel login method in the
kernel internal TEE client API. This fixes a problem introduced in v5.8.
Thanks,
Jens
The following changes since commit 9123e3a74ec7b934a4a099e98af6a61c2f80bbf5:
Linux 5.9-rc1 (2020-08-16 13:04:57 -0700)
are available in the Git repository at:
git://git.linaro.org:/people/jens.wiklander/linux-tee.git tags/tee-fix-for-v5.10
for you to fetch changes up to 722939528a37aa0cb22d441e2045c0cf53e78fb0:
tee: client UUID: Skip REE kernel login method as well (2020-10-13 08:42:11 +0200)
----------------------------------------------------------------
Reenable kernel login method for kernel TEE client API
The kernel TEE login method was accidentally disabled previously when
enabling a few other login methods, so fix that here.
----------------------------------------------------------------
Sumit Garg (1):
tee: client UUID: Skip REE kernel login method as well
drivers/tee/tee_core.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
Hi All,
Trustedfirmware.org community project would like to invite you to the Mbed TLS Virtual Workshop on November 3rd (Tuesday) from 2pm to 6pm GMT.
The purpose of the workshop is to bring together the Mbed TLS community including maintainers, contributors and users to discuss
* The future direction of the project and
* Ways to improve community collaboration
The workshop will be hosted in Zoom open to all. The invitation with the zoom link will be send in the Mbed TLS, PSA Crypto* mailing lists in the coming days.
Here are some of the proposed agenda topics. Please reply if there is anything else you would like us or you to present during the workshop that will be interesting to the community
* Constant-time code
* How to be an effective Mbed TLS reviewer
* Processes - how does work get scheduled?
* Roadmap, Mbed TLS3.0
* PSA Crypto APIs
* How Do I contribute my first review.
Thanks,
Shebu
(TrustedFirmware.org Co-Chair,
Mbed TLS Technology Manager)
* https://lists.trustedfirmware.org/mailman/listinfo/mbed-tlshttps://lists.trustedfirmware.org/mailman/listinfo/psa-crypto
[BCC all OP-TEE maintainers]
Hi OP-TEE maintainers & contributors,
OP-TEE 3.11.0 is scheduled to be released on Friday, October 16th. So,
now is a good time to start testing the master branch on the various
platforms and report/fix any bugs.
The GitHub pull request for collecting Tested-by tags or any other
comment is https://github.com/OP-TEE/optee_os/pull/4101.
As usual, I will create a release candidate tag one week before the
release date for final testing.
Thanks!
Regards,
--
Jerome
Hi Joakim,
On Tue, Sep 29, 2020 at 12:00 PM Joakim Bech via OP-TEE <
op-tee(a)lists.trustedfirmware.org> wrote:
> Hi Jorge,
>
> On Tue, 29 Sep 2020 at 11:49, Jorge Ramirez <jorge(a)foundries.io> wrote:
>
> > Hi Joakim
> >
> > Shall we discuss how we want to extend the criptodriver API were
> different
> > algorithms can be taken from different ciphers?
> > And maybe also how to communicate other than using the github frontend? I
> > think this is useful in the case of relatively complex PR.
> >
> Sounds good to me, I'm adding that to the agenda. This concludes that there
> _will_ be a LOC meeting tomorrow Wednesday 30th Sept @ 16.00 (UTC+2).
>
> Again, connection details etc can be found in the meeting notes document:
> http://bit.ly/loc-notes
Apologies for not joining, I had a calendar issue (my fault!).
Since the date for the next release is confirmed and coming soon, I will
create the release PR and send the notification email shortly.
Thanks,
--
Jerome
Hi Joakim
Shall we discuss how we want to extend the criptodriver API were different
algorithms can be taken from different ciphers?
And maybe also how to communicate other than using the github frontend? I
think this is useful in the case of relatively complex PR.
thanks
Jorge
On Mon, Sep 28, 2020 at 1:08 PM Joakim Bech via OP-TEE <
op-tee(a)lists.trustedfirmware.org> wrote:
> Hi,
>
> Just a reminder, I have seen no suggestions for topics and if I hear
> nothing until noon tomorrow 29/9 (UTC), then I'll cancel the September
> meeting.
>
> Regards,
> Joakim
>
>
> On Thu, 17 Sep 2020 at 11:19, Joakim Bech <joakim.bech(a)linaro.org> wrote:
>
> > Hi,
> >
> > LOC monthly meeting is planned to take place Sept 30 @ 16.00 (UTC+2).
> > Connection details can be found in the meeting notes document (link
> below).
> >
> > This email is a request to gather topics to discuss. If there are no
> > suggestions, then there will be no meeting (announced in this email
> thread,
> > if that's the case). To suggest a topic, either reply to this email
> thread
> > or add your topic directly into the meeting notes (or do both).
> >
> > Meeting details:
> > ---------------
> > Date/time: Wednesday Sept 30th(a)16.00 (UTC+2)
> > https://everytimezone.com/s/92bd296e
> > Invitation/connection details: In the meeting notes
> > Meeting notes: http://bit.ly/loc-notes
> > Project page: https://www.linaro.org/projects/#LOC
> >
> > Regards,
> > Joakim on behalf of the Linaro OP-TEE team
> >
>
Hi,
LOC monthly meeting is planned to take place Sept 30 @ 16.00 (UTC+2).
Connection details can be found in the meeting notes document (link below).
This email is a request to gather topics to discuss. If there are no
suggestions, then there will be no meeting (announced in this email thread,
if that's the case). To suggest a topic, either reply to this email thread
or add your topic directly into the meeting notes (or do both).
Meeting details:
---------------
Date/time: Wednesday Sept 30th(a)16.00 (UTC+2)
https://everytimezone.com/s/92bd296e
Invitation/connection details: In the meeting notes
Meeting notes: http://bit.ly/loc-notes
Project page: https://www.linaro.org/projects/#LOC
Regards,
Joakim on behalf of the Linaro OP-TEE team
sizeof() when applied to a pointer typed expression should gives the
size of the pointed data, even if the data is a pointer.
Signed-off-by: Liu Shixin <liushixin2(a)huawei.com>
---
drivers/tee/optee/shm_pool.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/tee/optee/shm_pool.c b/drivers/tee/optee/shm_pool.c
index d767eebf30bd..9fdc667b5df0 100644
--- a/drivers/tee/optee/shm_pool.c
+++ b/drivers/tee/optee/shm_pool.c
@@ -31,7 +31,7 @@ static int pool_op_alloc(struct tee_shm_pool_mgr *poolm,
unsigned int nr_pages = 1 << order, i;
struct page **pages;
- pages = kcalloc(nr_pages, sizeof(pages), GFP_KERNEL);
+ pages = kcalloc(nr_pages, sizeof(*pages), GFP_KERNEL);
if (!pages)
return -ENOMEM;
--
2.25.1
Hi Nikita,
On Wed, Sep 23, 2020 at 11:24:23AM +0000, Nikita Snetkov via OP-TEE wrote:
> Hello!
>
> Currently, I became interested in TEE research and development. After small
> investigation, I found out your product: OP-TEE. After reading about it,
> there is a thing that still bothers me: is it possible to create an
> application which uses OP-TEE and distribute in via Google Play?
>
For OP-TEE you typically create a pair of binaries, one binary running
on non-secure side (plain Linux environment) and one binary (Trusted
Application) running on the secure side.
Google Play hosts applications running in non-secure world, so I'd
believe that distributing the non-secure side of your feature using
Google Play is something you can do. But for the secure side, it's not
that easy, since it's usually the OEM that decide what to install and is
allowed to run on the secure side on their devices.
> --
> Yours faithfully,
> Nikita Snetkov
--
Regards,
Joakim
Hello!
Currently, I became interested in TEE research and development. After
small investigation, I found out your product: OP-TEE. After reading
about it, there is a thing that still bothers me: is it possible to
create an application which uses OP-TEE and distribute in via Google
Play?
--
Yours faithfully,
Nikita Snetkov
Hello arm-soc maintainers,
Please pull this small cleanup in tee driver registration. There are no
changes in behaviour, just a reduction in number of lines due to
improved usage of the device driver framework.
Thanks,
Jens
The following changes since commit 9123e3a74ec7b934a4a099e98af6a61c2f80bbf5:
Linux 5.9-rc1 (2020-08-16 13:04:57 -0700)
are available in the Git repository at:
git://git.linaro.org:/people/jens.wiklander/linux-tee.git tags/tee-dev-cleanup-for-v5.10
for you to fetch changes up to 8c05f50fe8452f9d3220efad77bef42c7b498193:
tee: avoid explicit sysfs_create/delete_group by initialising dev->groups (2020-09-18 10:44:45 +0200)
----------------------------------------------------------------
Simplify tee_device_register() and friends
Uses cdev_device_add() instead of the cdev_add() device_add()
combination.
Initializes dev->groups instead of direct calls to sysfs_create_group()
and friends.
----------------------------------------------------------------
Sudeep Holla (2):
tee: replace cdev_add + device_add with cdev_device_add
tee: avoid explicit sysfs_create/delete_group by initialising dev->groups
drivers/tee/tee_core.c | 40 +++++++---------------------------------
1 file changed, 7 insertions(+), 33 deletions(-)
Add support for TEE based trusted keys where TEE provides the functionality
to seal and unseal trusted keys using hardware unique key. Also, this is
an alternative in case platform doesn't possess a TPM device.
This patch-set has been tested with OP-TEE based early TA which is already
merged in upstream [1].
[1] https://github.com/OP-TEE/optee_os/commit/f86ab8e7e0de869dfa25ca05a37ee070d…
Changes in v6:
1. Revert back to dynamic detection of trust source.
2. Drop author mention from trusted_core.c and trusted_tpm1.c files.
3. Rebased to latest tpmdd/master.
Changes in v5:
1. Drop dynamic detection of trust source and use compile time flags
instead.
2. Rename trusted_common.c -> trusted_core.c.
3. Rename callback: cleanup() -> exit().
4. Drop "tk" acronym.
5. Other misc. comments.
6. Added review tags for patch #3 and #4.
Changes in v4:
1. Pushed independent TEE features separately:
- Part of recent TEE PR: https://lkml.org/lkml/2020/5/4/1062
2. Updated trusted-encrypted doc with TEE as a new trust source.
3. Rebased onto latest tpmdd/master.
Changes in v3:
1. Update patch #2 to support registration of multiple kernel pages.
2. Incoporate dependency patch #4 in this patch-set:
https://patchwork.kernel.org/patch/11091435/
Changes in v2:
1. Add reviewed-by tags for patch #1 and #2.
2. Incorporate comments from Jens for patch #3.
3. Switch to use generic trusted keys framework.
Sumit Garg (4):
KEYS: trusted: Add generic trusted keys framework
KEYS: trusted: Introduce TEE based Trusted Keys
doc: trusted-encrypted: updates with TEE as a new trust source
MAINTAINERS: Add entry for TEE based Trusted Keys
Documentation/security/keys/trusted-encrypted.rst | 203 ++++++++++---
MAINTAINERS | 8 +
include/keys/trusted-type.h | 42 +++
include/keys/trusted_tee.h | 55 ++++
include/keys/trusted_tpm.h | 17 +-
security/keys/trusted-keys/Makefile | 2 +
security/keys/trusted-keys/trusted_core.c | 325 +++++++++++++++++++++
security/keys/trusted-keys/trusted_tee.c | 278 ++++++++++++++++++
security/keys/trusted-keys/trusted_tpm1.c | 336 ++++------------------
9 files changed, 939 insertions(+), 327 deletions(-)
create mode 100644 include/keys/trusted_tee.h
create mode 100644 security/keys/trusted-keys/trusted_core.c
create mode 100644 security/keys/trusted-keys/trusted_tee.c
--
2.7.4
> When shm->num_pages <= 0, we should avoid calling
> release_registered_pages() in error handling path.
* Would an imperative wording become helpful for the change description?
* I suggest to add the tag “Fixes” to the commit message.
Regards,
Markus
Hi Peng,
> On 3 Sep 2020, at 10:34, Jens Wiklander via OP-TEE <op-tee(a)lists.trustedfirmware.org> wrote:
>
> Hi Peng,
>
> On Fri, Aug 28, 2020 at 9:10 AM Peng Fan via OP-TEE
> <op-tee(a)lists.trustedfirmware.org> wrote:
>>
>> I was not able to join the meeting. Just wonder for S-EL2, is there any platform supporting it? How to test?
Just to be sure, you mean support for running OP-TEE under a Hypervisor/SPM in S-EL2?
Cheers,
Achin
>
> This is tested and developed using FVP as far as I know.
>
> Cheers,
> Jens
>
>>
>> Thanks,
>> Peng.
>>
>> From: Joakim Bech [mailto:joakim.bech@linaro.org]
>> Sent: 2020年8月27日 16:21
>> To: op-tee(a)lists.trustedfirmware.org
>> Subject: Re: Linaro OP-TEE Contributions meeting Aug 2020
>>
>> Hi,
>>
>> Just a friendly reminder, that we have the first public "Linaro OP-TEE Contributions" meeting taking place later today.
>> 2020-08-27(a)16.00<mailto:2020-08-27@16.00> UTC+2, 1h duration (for other timezones, use this URL https://everytimezone.com/s/12a83ab5<https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Feverytime…>). Connection details and etc can be found in the email below.
>>
>> This time I've also included more people on BCC who might not have subscribed to the <op-tee(a)lists.trustedfirmware.org<mailto:op-tee@lists.trustedfirmware.org>> list.
>>
>> Regards,
>> Joakim
>>
>> On Wed, 19 Aug 2020 at 15:52, Joakim Bech via OP-TEE <op-tee(a)lists.trustedfirmware.org<mailto:op-tee@lists.trustedfirmware.org>> wrote:
>> Hi,
>>
>> As part of opening up Linaro projects to the general public we plan to have
>> an open monthly meeting where we discuss Linaro's activities around OP-TEE.
>> The way that we've planned to do this is that we send out an email to this
>> email list (https://lists.trustedfirmware.org/mailman/listinfo/op-tee<https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.tru…>) to
>> gather topics to discuss. If there are no topics, then there is no meeting.
>> Anyone can suggest a topic by replying to this email thread.
>>
>> As a first topic for this first meeting, we want to talk a bit about:
>> - Linaro and the relation to TrustedFirmware.org when it comes to OP-TEE.
>> - Where to find information.
>> - What is on the agenda for the next development cycle.
>>
>> Calendar invitation? I could just send one out here and now, but due to
>> Zoom bombing and that it'd be a logistic exercise inviting people, I've
>> decided to try another approach and that is to provide the connection
>> details in the meeting notes and leave it up to the attendees to add it to
>> their own calendars. To try to limit confusion I've explicitly added the
>> timezone and a link to everytimezone.com<https://eur01.safelinks.protection.outlook.com/?url=http%3A%2F%2Feverytimez…> so it should be easy to get the
>> information in your own timezone. If this approach doesn't turn out to be
>> good, then we will try something different in the future (I understand that
>> canceling or shifting day/time will become a problem).
>>
>> Meeting details:
>> ---------------
>> Date/time: Thursday Aug 27th(a)16.00<mailto:27th@16.00> (UTC+2)
>> https://everytimezone.com/s/12a83ab5<https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Feverytime…>
>> Invitation/connection details: In the meeting notes
>> Meeting notes:
>> https://docs.google.com/document/d/15XsqgGktCrRRWiqyaz-erp_cZykwGjkBkhMD2Xt…<https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdocs.goog…>
>>
>> Regards,
>> Joakim on behalf of the Linaro OP-TEE team
>> --
>> OP-TEE mailing list
>> OP-TEE(a)lists.trustedfirmware.org<mailto:OP-TEE@lists.trustedfirmware.org>
>> https://lists.trustedfirmware.org/mailman/listinfo/op-tee<https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.tru…>
Hi Peng,
On Fri, Aug 28, 2020 at 9:10 AM Peng Fan via OP-TEE
<op-tee(a)lists.trustedfirmware.org> wrote:
>
> I was not able to join the meeting. Just wonder for S-EL2, is there any platform supporting it? How to test?
This is tested and developed using FVP as far as I know.
Cheers,
Jens
>
> Thanks,
> Peng.
>
> From: Joakim Bech [mailto:joakim.bech@linaro.org]
> Sent: 2020年8月27日 16:21
> To: op-tee(a)lists.trustedfirmware.org
> Subject: Re: Linaro OP-TEE Contributions meeting Aug 2020
>
> Hi,
>
> Just a friendly reminder, that we have the first public "Linaro OP-TEE Contributions" meeting taking place later today.
> 2020-08-27(a)16.00<mailto:2020-08-27@16.00> UTC+2, 1h duration (for other timezones, use this URL https://everytimezone.com/s/12a83ab5<https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Feverytime…>). Connection details and etc can be found in the email below.
>
> This time I've also included more people on BCC who might not have subscribed to the <op-tee(a)lists.trustedfirmware.org<mailto:op-tee@lists.trustedfirmware.org>> list.
>
> Regards,
> Joakim
>
> On Wed, 19 Aug 2020 at 15:52, Joakim Bech via OP-TEE <op-tee(a)lists.trustedfirmware.org<mailto:op-tee@lists.trustedfirmware.org>> wrote:
> Hi,
>
> As part of opening up Linaro projects to the general public we plan to have
> an open monthly meeting where we discuss Linaro's activities around OP-TEE.
> The way that we've planned to do this is that we send out an email to this
> email list (https://lists.trustedfirmware.org/mailman/listinfo/op-tee<https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.tru…>) to
> gather topics to discuss. If there are no topics, then there is no meeting.
> Anyone can suggest a topic by replying to this email thread.
>
> As a first topic for this first meeting, we want to talk a bit about:
> - Linaro and the relation to TrustedFirmware.org when it comes to OP-TEE.
> - Where to find information.
> - What is on the agenda for the next development cycle.
>
> Calendar invitation? I could just send one out here and now, but due to
> Zoom bombing and that it'd be a logistic exercise inviting people, I've
> decided to try another approach and that is to provide the connection
> details in the meeting notes and leave it up to the attendees to add it to
> their own calendars. To try to limit confusion I've explicitly added the
> timezone and a link to everytimezone.com<https://eur01.safelinks.protection.outlook.com/?url=http%3A%2F%2Feverytimez…> so it should be easy to get the
> information in your own timezone. If this approach doesn't turn out to be
> good, then we will try something different in the future (I understand that
> canceling or shifting day/time will become a problem).
>
> Meeting details:
> ---------------
> Date/time: Thursday Aug 27th(a)16.00<mailto:27th@16.00> (UTC+2)
> https://everytimezone.com/s/12a83ab5<https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Feverytime…>
> Invitation/connection details: In the meeting notes
> Meeting notes:
> https://docs.google.com/document/d/15XsqgGktCrRRWiqyaz-erp_cZykwGjkBkhMD2Xt…<https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdocs.goog…>
>
> Regards,
> Joakim on behalf of the Linaro OP-TEE team
> --
> OP-TEE mailing list
> OP-TEE(a)lists.trustedfirmware.org<mailto:OP-TEE@lists.trustedfirmware.org>
> https://lists.trustedfirmware.org/mailman/listinfo/op-tee<https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.tru…>
Hello arm-soc maintainers,
Please pull this small patch fixing a build issue in the previous OP-TEE
I2C patch. The test IS_REACHABLE(CONFIG_I2C) is used instead of
IS_ENABLED(CONFIG_I2C) to see if the I2C functions are available from
the OP-TEE driver.
If you rather have the patches squashed feel free to do so.
Thanks,
Jens
The following changes since commit c05210ab975771e161427eb47696b869d820bdaf:
drivers: optee: allow op-tee to access devices on the i2c bus (2020-08-21 11:41:45 +0200)
are available in the Git repository at:
git://git.linaro.org:/people/jens.wiklander/linux-tee.git tags/optee-i2c-fix-for-v5.10
for you to fetch changes up to 539f8fc253ece5501fdea1a6aa227d0618374111:
drivers: optee: fix i2c build issue (2020-09-01 12:03:16 +0200)
----------------------------------------------------------------
Make sure I2C functions used in OP-TEE are reachable with IS_REACHABLE()
----------------------------------------------------------------
Jorge Ramirez-Ortiz (1):
drivers: optee: fix i2c build issue
drivers/tee/optee/rpc.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Hi,
Just a friendly reminder, that we have the first public "Linaro OP-TEE
Contributions" meeting taking place later today.
2020-08-27(a)16.00 UTC+2, 1h duration (for other timezones, use this URL
https://everytimezone.com/s/12a83ab5). Connection details and etc can be
found in the email below.
This time I've also included more people on BCC who might not have
subscribed to the <op-tee(a)lists.trustedfirmware.org> list.
Regards,
Joakim
On Wed, 19 Aug 2020 at 15:52, Joakim Bech via OP-TEE <
op-tee(a)lists.trustedfirmware.org> wrote:
> Hi,
>
> As part of opening up Linaro projects to the general public we plan to have
> an open monthly meeting where we discuss Linaro's activities around OP-TEE.
> The way that we've planned to do this is that we send out an email to this
> email list (https://lists.trustedfirmware.org/mailman/listinfo/op-tee) to
> gather topics to discuss. If there are no topics, then there is no meeting.
> Anyone can suggest a topic by replying to this email thread.
>
> As a first topic for this first meeting, we want to talk a bit about:
> - Linaro and the relation to TrustedFirmware.org when it comes to OP-TEE.
> - Where to find information.
> - What is on the agenda for the next development cycle.
>
> Calendar invitation? I could just send one out here and now, but due to
> Zoom bombing and that it'd be a logistic exercise inviting people, I've
> decided to try another approach and that is to provide the connection
> details in the meeting notes and leave it up to the attendees to add it to
> their own calendars. To try to limit confusion I've explicitly added the
> timezone and a link to everytimezone.com so it should be easy to get the
> information in your own timezone. If this approach doesn't turn out to be
> good, then we will try something different in the future (I understand that
> canceling or shifting day/time will become a problem).
>
> Meeting details:
> ---------------
> Date/time: Thursday Aug 27th(a)16.00 (UTC+2)
> https://everytimezone.com/s/12a83ab5
> Invitation/connection details: In the meeting notes
> Meeting notes:
>
> https://docs.google.com/document/d/15XsqgGktCrRRWiqyaz-erp_cZykwGjkBkhMD2Xt…
>
> Regards,
> Joakim on behalf of the Linaro OP-TEE team
> --
> OP-TEE mailing list
> OP-TEE(a)lists.trustedfirmware.org
> https://lists.trustedfirmware.org/mailman/listinfo/op-tee
>
Hello arm-soc maintainers,
Please pull this small patch converting the tee subsystem to use
pin_user_pages() instead of get_user_pages().
Thanks,
Jens
The following changes since commit 9123e3a74ec7b934a4a099e98af6a61c2f80bbf5:
Linux 5.9-rc1 (2020-08-16 13:04:57 -0700)
are available in the Git repository at:
git://git.linaro.org/people/jens.wiklander/linux-tee.git tags/tee-pin-user-pages-for-5.10
for you to fetch changes up to 4300cd6374a5192a2c8122a4a48ed647bdcb0214:
tee: convert get_user_pages() --> pin_user_pages() (2020-08-25 11:01:06 +0200)
----------------------------------------------------------------
Converts tee subsystem to use pin_user_pages() instead of get_user_pages()
----------------------------------------------------------------
John Hubbard (1):
tee: convert get_user_pages() --> pin_user_pages()
drivers/tee/tee_shm.c | 32 +++++++++++++++++++-------------
1 file changed, 19 insertions(+), 13 deletions(-)
Hello arm-soc maintainers,
Please pull this patch enabling a TEE client to indicate a NULL pointer
instead of a valid buffer when invoking a Trusted Application.
Thanks,
Jens
The following changes since commit 9123e3a74ec7b934a4a099e98af6a61c2f80bbf5:
Linux 5.9-rc1 (2020-08-16 13:04:57 -0700)
are available in the Git repository at:
git://git.linaro.org/people/jens.wiklander/linux-tee.git tags/tee-memref-null-for-v5.10
for you to fetch changes up to ba171d3f0850003216fd1a85190d17b1feddb961:
driver: tee: Handle NULL pointer indication from client (2020-08-21 08:55:13 +0200)
----------------------------------------------------------------
Handle NULL pointer indication from tee client
Adds support to indicate NULL pointers instead of a valid buffer when
querying the needed size of a buffer.
----------------------------------------------------------------
Cedric Neveux (1):
driver: tee: Handle NULL pointer indication from client
drivers/tee/optee/core.c | 7 +++++++
drivers/tee/optee/optee_smc.h | 3 +++
drivers/tee/tee_core.c | 49 +++++++++++++++++++++++++++----------------
include/linux/tee_drv.h | 3 +++
include/uapi/linux/tee.h | 13 ++++++++++++
5 files changed, 57 insertions(+), 18 deletions(-)
From: Cedric Neveux <cedric.neveux(a)nxp.com>
TEE Client introduce a new capability "TEE_GEN_CAP_MEMREF_NULL"
to handle the support of the shared memory buffer with a NULL pointer.
This capability depends on TEE Capabilities and driver support.
Driver and TEE exchange capabilities at driver initialization.
Signed-off-by: Michael Whitfield <michael.whitfield(a)nxp.com>
Signed-off-by: Cedric Neveux <cedric.neveux(a)nxp.com>
Reviewed-by: Joakim Bech <joakim.bech(a)linaro.org>
Tested-by: Joakim Bech <joakim.bech(a)linaro.org> (QEMU)
Signed-off-by: Jens Wiklander <jens.wiklander(a)linaro.org>
---
drivers/tee/optee/core.c | 7 +++++
drivers/tee/optee/optee_smc.h | 3 +++
drivers/tee/tee_core.c | 49 ++++++++++++++++++++++-------------
include/linux/tee_drv.h | 3 +++
include/uapi/linux/tee.h | 13 ++++++++++
5 files changed, 57 insertions(+), 18 deletions(-)
diff --git a/drivers/tee/optee/core.c b/drivers/tee/optee/core.c
index 99698b8a3a74..8ef66e75b65e 100644
--- a/drivers/tee/optee/core.c
+++ b/drivers/tee/optee/core.c
@@ -215,6 +215,8 @@ static void optee_get_version(struct tee_device *teedev,
if (optee->sec_caps & OPTEE_SMC_SEC_CAP_DYNAMIC_SHM)
v.gen_caps |= TEE_GEN_CAP_REG_MEM;
+ if (optee->sec_caps & OPTEE_SMC_SEC_CAP_MEMREF_NULL)
+ v.gen_caps |= TEE_GEN_CAP_MEMREF_NULL;
*vers = v;
}
@@ -246,6 +248,11 @@ static int optee_open(struct tee_context *ctx)
mutex_init(&ctxdata->mutex);
INIT_LIST_HEAD(&ctxdata->sess_list);
+ if (optee->sec_caps & OPTEE_SMC_SEC_CAP_MEMREF_NULL)
+ ctx->cap_memref_null = true;
+ else
+ ctx->cap_memref_null = false;
+
ctx->data = ctxdata;
return 0;
}
diff --git a/drivers/tee/optee/optee_smc.h b/drivers/tee/optee/optee_smc.h
index c72122d9c997..777ad54d4c2c 100644
--- a/drivers/tee/optee/optee_smc.h
+++ b/drivers/tee/optee/optee_smc.h
@@ -215,6 +215,9 @@ struct optee_smc_get_shm_config_result {
*/
#define OPTEE_SMC_SEC_CAP_DYNAMIC_SHM BIT(2)
+/* Secure world supports Shared Memory with a NULL buffer reference */
+#define OPTEE_SMC_SEC_CAP_MEMREF_NULL BIT(4)
+
#define OPTEE_SMC_FUNCID_EXCHANGE_CAPABILITIES 9
#define OPTEE_SMC_EXCHANGE_CAPABILITIES \
OPTEE_SMC_FAST_CALL_VAL(OPTEE_SMC_FUNCID_EXCHANGE_CAPABILITIES)
diff --git a/drivers/tee/tee_core.c b/drivers/tee/tee_core.c
index 64637e09a095..ce0f0309b6ac 100644
--- a/drivers/tee/tee_core.c
+++ b/drivers/tee/tee_core.c
@@ -383,25 +383,38 @@ static int params_from_user(struct tee_context *ctx, struct tee_param *params,
case TEE_IOCTL_PARAM_ATTR_TYPE_MEMREF_OUTPUT:
case TEE_IOCTL_PARAM_ATTR_TYPE_MEMREF_INOUT:
/*
- * If we fail to get a pointer to a shared memory
- * object (and increase the ref count) from an
- * identifier we return an error. All pointers that
- * has been added in params have an increased ref
- * count. It's the callers responibility to do
- * tee_shm_put() on all resolved pointers.
+ * If a NULL pointer is passed to a TA in the TEE,
+ * the ip.c IOCTL parameters is set to TEE_MEMREF_NULL
+ * indicating a NULL memory reference.
*/
- shm = tee_shm_get_from_id(ctx, ip.c);
- if (IS_ERR(shm))
- return PTR_ERR(shm);
-
- /*
- * Ensure offset + size does not overflow offset
- * and does not overflow the size of the referred
- * shared memory object.
- */
- if ((ip.a + ip.b) < ip.a ||
- (ip.a + ip.b) > shm->size) {
- tee_shm_put(shm);
+ if (ip.c != TEE_MEMREF_NULL) {
+ /*
+ * If we fail to get a pointer to a shared
+ * memory object (and increase the ref count)
+ * from an identifier we return an error. All
+ * pointers that has been added in params have
+ * an increased ref count. It's the callers
+ * responibility to do tee_shm_put() on all
+ * resolved pointers.
+ */
+ shm = tee_shm_get_from_id(ctx, ip.c);
+ if (IS_ERR(shm))
+ return PTR_ERR(shm);
+
+ /*
+ * Ensure offset + size does not overflow
+ * offset and does not overflow the size of
+ * the referred shared memory object.
+ */
+ if ((ip.a + ip.b) < ip.a ||
+ (ip.a + ip.b) > shm->size) {
+ tee_shm_put(shm);
+ return -EINVAL;
+ }
+ } else if (ctx->cap_memref_null) {
+ /* Pass NULL pointer to OP-TEE */
+ shm = NULL;
+ } else {
return -EINVAL;
}
diff --git a/include/linux/tee_drv.h b/include/linux/tee_drv.h
index d074302989dd..cdd049a724b1 100644
--- a/include/linux/tee_drv.h
+++ b/include/linux/tee_drv.h
@@ -47,6 +47,8 @@ struct tee_shm_pool;
* and just return with an error code. It is needed for requests
* that arises from TEE based kernel drivers that should be
* non-blocking in nature.
+ * @cap_memref_null: flag indicating if the TEE Client support shared
+ * memory buffer with a NULL pointer.
*/
struct tee_context {
struct tee_device *teedev;
@@ -54,6 +56,7 @@ struct tee_context {
struct kref refcount;
bool releasing;
bool supp_nowait;
+ bool cap_memref_null;
};
struct tee_param_memref {
diff --git a/include/uapi/linux/tee.h b/include/uapi/linux/tee.h
index b619f37ee03e..d67cadf221fc 100644
--- a/include/uapi/linux/tee.h
+++ b/include/uapi/linux/tee.h
@@ -51,6 +51,9 @@
#define TEE_GEN_CAP_GP (1 << 0)/* GlobalPlatform compliant TEE */
#define TEE_GEN_CAP_PRIVILEGED (1 << 1)/* Privileged device (for supplicant) */
#define TEE_GEN_CAP_REG_MEM (1 << 2)/* Supports registering shared memory */
+#define TEE_GEN_CAP_MEMREF_NULL (1 << 3)/* NULL MemRef support */
+
+#define TEE_MEMREF_NULL (__u64)(-1) /* NULL MemRef Buffer */
/*
* TEE Implementation ID
@@ -200,6 +203,16 @@ struct tee_ioctl_buf_data {
* a part of a shared memory by specifying an offset (@a) and size (@b) of
* the object. To supply the entire shared memory object set the offset
* (@a) to 0 and size (@b) to the previously returned size of the object.
+ *
+ * A client may need to present a NULL pointer in the argument
+ * passed to a trusted application in the TEE.
+ * This is also a requirement in GlobalPlatform Client API v1.0c
+ * (section 3.2.5 memory references), which can be found at
+ * http://www.globalplatform.org/specificationsdevice.asp
+ *
+ * If a NULL pointer is passed to a TA in the TEE, the (@c)
+ * IOCTL parameters value must be set to TEE_MEMREF_NULL indicating a NULL
+ * memory reference.
*/
struct tee_ioctl_param {
__u64 attr;
--
2.25.1
Hello arm-soc maintainers,
Please pull this patch enabling i2c access from secure world via a
trampoline in the OP-TEE driver.
Thanks,
Jens
The following changes since commit 9123e3a74ec7b934a4a099e98af6a61c2f80bbf5:
Linux 5.9-rc1 (2020-08-16 13:04:57 -0700)
are available in the Git repository at:
git://git.linaro.org/people/jens.wiklander/linux-tee.git tags/optee-i2c-for-v5.10
for you to fetch changes up to c05210ab975771e161427eb47696b869d820bdaf:
drivers: optee: allow op-tee to access devices on the i2c bus (2020-08-21 11:41:45 +0200)
----------------------------------------------------------------
Enable i2c device access from OP-TEE RPC
Extends the OP-TEE RPC protocol to enable I2C device access. This allows
a driver in secure world to access devices on a normal world I2C bus.
----------------------------------------------------------------
Jorge Ramirez-Ortiz (1):
drivers: optee: allow op-tee to access devices on the i2c bus
drivers/tee/optee/optee_msg.h | 21 +++++++++
drivers/tee/optee/optee_private.h | 1 +
drivers/tee/optee/rpc.c | 95 +++++++++++++++++++++++++++++++++++++++
3 files changed, 117 insertions(+)
Hi,
As part of opening up Linaro projects to the general public we plan to have
an open monthly meeting where we discuss Linaro's activities around OP-TEE.
The way that we've planned to do this is that we send out an email to this
email list (https://lists.trustedfirmware.org/mailman/listinfo/op-tee) to
gather topics to discuss. If there are no topics, then there is no meeting.
Anyone can suggest a topic by replying to this email thread.
As a first topic for this first meeting, we want to talk a bit about:
- Linaro and the relation to TrustedFirmware.org when it comes to OP-TEE.
- Where to find information.
- What is on the agenda for the next development cycle.
Calendar invitation? I could just send one out here and now, but due to
Zoom bombing and that it'd be a logistic exercise inviting people, I've
decided to try another approach and that is to provide the connection
details in the meeting notes and leave it up to the attendees to add it to
their own calendars. To try to limit confusion I've explicitly added the
timezone and a link to everytimezone.com so it should be easy to get the
information in your own timezone. If this approach doesn't turn out to be
good, then we will try something different in the future (I understand that
canceling or shifting day/time will become a problem).
Meeting details:
---------------
Date/time: Thursday Aug 27th(a)16.00 (UTC+2)
https://everytimezone.com/s/12a83ab5
Invitation/connection details: In the meeting notes
Meeting notes:
https://docs.google.com/document/d/15XsqgGktCrRRWiqyaz-erp_cZykwGjkBkhMD2Xt…
Regards,
Joakim on behalf of the Linaro OP-TEE team
[BCC all OP-TEE maintainers]
Hi OP-TEE maintainers & contributors,
It is time again to prepare for a new OP-TEE release (3.10.0). Target is
Friday, August 21st which leaves us 3 weeks to finalize the release.
Please start testing your favorite platform(s) and report any issue in
this pull request [1]. I will create a release candidate tag one week
before the release date, at which point we will do some more testing and
I will collect Tested-by tags in the same pull request.
[1] https://github.com/OP-TEE/optee_os/pull/4008
Thanks!
Regards,
--
Jerome
The current code waits for data to be available before attempting a
second read. However the second read would not be executed as the
while loop will exit.
This fix does not wait if all data has been read (skips the call to
msleep(0)) and reads a second time if partial data was retrieved on
the first read.
Worth noticing that since msleep(0) schedules a one jiffy timeout is
better to skip such a call.
Signed-off-by: Jorge Ramirez-Ortiz <jorge(a)foundries.io>
Reviewed-by: Sumit Garg <sumit.garg(a)linaro.org>
---
drivers/char/hw_random/optee-rng.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/char/hw_random/optee-rng.c b/drivers/char/hw_random/optee-rng.c
index 5bc4700c4dae..a99d82949981 100644
--- a/drivers/char/hw_random/optee-rng.c
+++ b/drivers/char/hw_random/optee-rng.c
@@ -122,14 +122,14 @@ static int optee_rng_read(struct hwrng *rng, void *buf, size_t max, bool wait)
if (max > MAX_ENTROPY_REQ_SZ)
max = MAX_ENTROPY_REQ_SZ;
- while (read == 0) {
+ while (read < max) {
rng_size = get_optee_rng_data(pvt_data, data, (max - read));
data += rng_size;
read += rng_size;
if (wait && pvt_data->data_rate) {
- if (timeout-- == 0)
+ if ((timeout-- == 0) || (read == max))
return read;
msleep((1000 * (max - read)) / pvt_data->data_rate);
} else {
--
2.17.1
Data rates of MAX_UINT32 will schedule an unnecessary one jiffy
timeout on the call to msleep. Avoid this scenario by using 0 as the
unlimited data rate.
Signed-off-by: Jorge Ramirez-Ortiz <jorge(a)foundries.io>
---
drivers/char/hw_random/optee-rng.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/char/hw_random/optee-rng.c b/drivers/char/hw_random/optee-rng.c
index 49b2e02537dd..5bc4700c4dae 100644
--- a/drivers/char/hw_random/optee-rng.c
+++ b/drivers/char/hw_random/optee-rng.c
@@ -128,7 +128,7 @@ static int optee_rng_read(struct hwrng *rng, void *buf, size_t max, bool wait)
data += rng_size;
read += rng_size;
- if (wait) {
+ if (wait && pvt_data->data_rate) {
if (timeout-- == 0)
return read;
msleep((1000 * (max - read)) / pvt_data->data_rate);
--
2.17.1
Hi,
In parallel with - and based on - the work by Jens to enable PSA FF-A as a transport for the SMC ABI (recently merged to the upstream as PR #3908) there's an effort to provide a fully-functional SPMC component in OP-TEE to manage S-EL0 Secure Partitions, with the goal of providing a similar set of PSA Root of Trust services over OP-TEE as presently supported for M-profile processors, while also providing a standard execution framework and ABI for potential integration of 3rd party partitions, such as StMM.
Please note that this work is currently at the prototyping stage and is managed as a fork on trustedfirmware.org, but is planned to be merged with the official OP-TEE stream as it matures.
There's an initial set of patches on review to provide
* A library for S-EL0 SPs to access FF-A ABI at the SVC call interface:
https://review.trustedfirmware.org/c/OP-TEE/optee_os/+/4751
* A change to introduce an SP build system to OP-TEE:
https://review.trustedfirmware.org/c/OP-TEE/optee_os/+/4752
* OP-TEE kernel changes to support initialization and context management of SPs and the forwarding of FF-A messages to their designated endpoints:
https://review.trustedfirmware.org/c/OP-TEE/optee_os/+/4987
All related open reviews at the moment can be found here:
https://review.trustedfirmware.org/q/project:OP-TEE%252Foptee_os+status:open
For the S-EL1 SPMC configuration functionality and requirements see the PSA FF-A specification (https://developer.arm.com/documentation/den0077/latest)
Work is in progress to showcase the capabilities of the framework using a subset of PSA Crypto API and also to propose a standardized protocol layer for partitions, but as mentioned work is still at the early stages so expect gradual increments in functionality and flexibility.
Any questions and feedback are very welcome
Cheers,
Miklos
IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.
Hi Jerome,
On Fri, Jul 24, 2020 at 02:57:34PM +0000, Jérôme Forissier via OP-TEE wrote:
> Hi,
>
> Anyone know if the planned dates of OP-TEE releases are publicly available
> somewhere?
>
Still a bit legacy regarding that, i.e., still tracked in the Linaro
Jira instance. Even though the "Linaro OP-TEE Contributions" is publicly
available, the release schedule seems to be locked down.
> Readthedocs [1] documents that we do quarterly releases, but it would help
> to have a more precise indication, at least for the next (upcoming) release.
>
Agree, I can replicate what we have in the Jira instance and put that on
the release page you're referring to.
> Can we count on 3.10.0 being made available by the end of August?
>
Yes, so it's about time to initiate the release work for that tag. As
maintainers, let's sync up on that separately.
Here are the dates for future releases.
Version Start date Release date
OP-TEE 3.10.0 23/May/20 21/Aug/20
OP-TEE 3.11.0 22/Aug/20 16/Oct/20
OP-TEE 3.12.0 17/Oct/20 15/Jan/21
OP-TEE 3.13.0 16/Jan/21 16/Apr/21
> [1] https://optee.readthedocs.io/en/latest/general/releases.html
>
> Thanks,
> --
> Jerome
> --
> OP-TEE mailing list
> OP-TEE(a)lists.trustedfirmware.org
> https://lists.trustedfirmware.org/mailman/listinfo/op-tee
--
Regards,
Joakim
Hi,
Anyone know if the planned dates of OP-TEE releases are publicly available
somewhere?
Readthedocs [1] documents that we do quarterly releases, but it would help
to have a more precise indication, at least for the next (upcoming) release.
Can we count on 3.10.0 being made available by the end of August?
[1] https://optee.readthedocs.io/en/latest/general/releases.html
Thanks,
--
Jerome
On Sat, 18 Jul 2020 13:50:58 -0300
"Daniel W. S. Almeida" <dwlsalmeida(a)gmail.com> wrote:
> TEE bus infrastructure registers following APIs:
> -- match(): iterates over the client driver UUID table to find a corresponding
> - match for device UUID. If a match is found, then this particular device is
> - probed via corresponding probe API registered by the client driver. This
> - process happens whenever a device or a client driver is registered with TEE
> - bus.
> -- uevent(): notifies user-space (udev) whenever a new device is registered on
> - TEE bus for auto-loading of modularized client drivers.
> +
> +match():
> + iterates over the client driver UUID table to find a corresponding
> + match for device UUID. If a match is found, then this particular device is
> + probed via corresponding probe API registered by the client driver. This
> + process happens whenever a device or a client driver is registered with TEE
> + bus.
> +
> +uevent():
> + notifies user-space (udev) whenever a new device is registered on
> + TEE bus for auto-loading of modularized client drivers.
Just FWIW, this could have been fixed by adding a blank line between the
two bulleted entries. This fix is fine too, though, applied, thanks.
jon
Data rates of MAX_UINT32 will schedule an unnecessary one jiffy
timeout on the call to msleep. Avoid this scenario by using 0 as the
unlimited data rate.
Signed-off-by: Jorge Ramirez-Ortiz <jorge(a)foundries.io>
---
drivers/char/hw_random/optee-rng.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/char/hw_random/optee-rng.c b/drivers/char/hw_random/optee-rng.c
index 49b2e02537dd..5bc4700c4dae 100644
--- a/drivers/char/hw_random/optee-rng.c
+++ b/drivers/char/hw_random/optee-rng.c
@@ -128,7 +128,7 @@ static int optee_rng_read(struct hwrng *rng, void *buf, size_t max, bool wait)
data += rng_size;
read += rng_size;
- if (wait) {
+ if (wait && pvt_data->data_rate) {
if (timeout-- == 0)
return read;
msleep((1000 * (max - read)) / pvt_data->data_rate);
--
2.17.1
Hello arm-soc maintainers,
Please pull these patches enabling multi-stage OP-TEE bus enumeration
and also adds a TPM driver for a OP-TEE based fTPM Trusted Application.
The TPM driver depends on and takes advantage of the multi-stage OP-TEE bus
enumeration by indicating that it should be probed after tee-supplicant has
been started.
Jarkko, one of the TPM maintainers, has been involved in reviewing these
patches and agrees that I can include the TPM patch in the pull request.
Thanks,
Jens
The following changes since commit 3d77e6a8804abcc0504c904bd6e5cdf3a5cf8162:
Linux 5.7 (2020-05-31 16:49:15 -0700)
are available in the Git repository at:
git://git.linaro.org/people/jens.wiklander/linux-tee.git tags/optee-bus-for-v5.9
for you to fetch changes up to 9f1944c23c8cb1c033b73de80cf6c612a2a80a2b:
tpm_ftpm_tee: register driver on TEE bus (2020-07-10 09:41:58 +0200)
----------------------------------------------------------------
Enable multi-stage OP-TEE bus enumeration
Probes drivers on the OP-TEE bus in two steps. First for drivers which
do not depend on tee-supplicant. After tee-supplicant has been started
probe the devices which do depend on tee-supplicant.
Also introduces driver which uses an OP-TEE based fTPM Trusted
Application depends on tee-supplicant NV RAM implementation based on
RPMB secure storage.
----------------------------------------------------------------
Maxim Uvarov (3):
optee: use uuid for sysfs driver entry
optee: enable support for multi-stage bus enumeration
tpm_ftpm_tee: register driver on TEE bus
Documentation/ABI/testing/sysfs-bus-optee-devices | 8 +++
MAINTAINERS | 1 +
drivers/char/tpm/tpm_ftpm_tee.c | 70 +++++++++++++++++++----
drivers/tee/optee/core.c | 27 ++++++++-
drivers/tee/optee/device.c | 38 ++++++------
drivers/tee/optee/optee_private.h | 10 +++-
6 files changed, 119 insertions(+), 35 deletions(-)
create mode 100644 Documentation/ABI/testing/sysfs-bus-optee-devices
Hi Saad,
On Thu, Jun 18, 2020 at 9:43 AM Muhammad Saad via OP-TEE
<op-tee(a)lists.trustedfirmware.org> wrote:
>
> Hello All,
>
> First, I hope you are safe and doing fine in the unfortunate COVID-19 situation. I am a Ph.D. student at the University of Central Florida. Currently, I am working on a TEE-based prototype application for a proof-of-concept. Since I am totally new in this domain, so it is taking some effort. I have a few questions and I hope you guys can help me in that.
>
> At present, I am able to set up OP-TEE on Qemu and run the examples on the normal world and the secure world. Additionally, I tweaked a few parameters (ie., the integer value in the main.c) for the CA and the addition and subtraction sequence in the TA. Upon building it again (cd/build/make all run), it seems to work. However, if I need to pass a normal string to the TA and the TA computes Sha256 of the string and returns the value, what steps do I need to take? In other words, how can I pass a tuple from the TA to the CA and obtain the Hash of the tuple. Additionally, if I am able to do that by tailoring the HelloWorld examples, how can I develop new CA and TA with unique UUID and perform the same procedure. Finally, instead of doing the entire (cd/build/make all run), is there a method by which I can simply build the application and alone and run it on Qemu?
You can find an example of doing some hashing at
https://github.com/OP-TEE/optee_test/blob/391168ec03980e1cc8fb6d3e3c4b42481…
You'll need to look around a little to get the whole picture, but it
shouldn't be too hard.
If you only change a TA or some client application it's enough to rebuild with:
make buildroot
and then run it with:
make run-only
A new UUID can be obtained with the Linux command uuidgen.
Cheers,
Jens
>
> I understand that these must be trivial questions, however, I will deeply appreciate if you can help me in figuring them out.
>
>
> Best,
>
> Saad
> --
> OP-TEE mailing list
> OP-TEE(a)lists.trustedfirmware.org
> https://lists.trustedfirmware.org/mailman/listinfo/op-tee
There are two patches that previously was mailed separatedly. Both
patches fix issues found during testing the OP-TEE 3.9 release.
Julien and Stefano suggested to include this patches in Xen 4.14
release, because optee support still in the preview state and those
patches provide no new functionality, bugfixes only.
Volodymyr Babchuk (2):
optee: immediately free buffers that are released by OP-TEE
optee: allow plain TMEM buffers with NULL address
xen/arch/arm/tee/optee.c | 59 +++++++++++++++++++++++++++++++++++-----
1 file changed, 52 insertions(+), 7 deletions(-)
--
2.26.2
Hi all
The new TrustedFirmware.org security incident process is now live. This process is described here:
https://developer.trustedfirmware.org/w/collaboration/security_center/repor…
Initially the process will be used for the following projects: TF-A, TF-M, OP-TEE and Mbed TLS. The security documentation for each project will be updated soon to reflect this change.
If you are part of an organization that believes it should receive security vulnerability information before it is made public then please ask your relevant colleagues to register as Trusted Stakeholders as described here:
https://developer.trustedfirmware.org/w/collaboration/security_center/trust…
Note we prefer individuals in each organization to coordinate their registration requests with each other and to provide us with an email alias managed by your organization instead of us managing a long list of individual addresses.
Best regards
Dan.
(on behalf of the TrustedFirmware.org security team)