On Thu, May 28, 2020 at 11:08:18AM +0300, Maxim Uvarov wrote:
On Wed, 27 May 2020 at 22:42, Jarkko Sakkinen jarkko.sakkinen@linux.intel.com wrote:
On Mon, 2020-05-25 at 09:50 +0300, Maxim Uvarov wrote:
Jakko, tee-supplicant application provides state machine over callbacks with RPC messages. https://github.com/OP-TEE/optee_client/blob/master/tee-supplicant/src/tee_su... It also allocates shm. Without running tee-supplicant tee_client_open_session() will fail. optee_open_session()->get_msg_arg()->tee_shm_alloc()->... Optee team wanted to remove some dependencies from tee-supplicant with moving code to the kernel. But for now I think that should be out of the scope of current patches due to they fix driver initialization on tee bus without breaking current functionality.
So what is the role in high-level for tee-supplicant? Why does it exist? No time to dive into code unfortunately.
Original implementation for tee-supplicant does several things:
- allocate shm
- load ta from user space (fs file)
- emulate rpmb
- also there are some ftrace and socket functions which I did not use.
As I I understand, current implementation uses tee-supplicant and it's library as API from user land to Trusted OS.
Some docs can be found here: https://optee.readthedocs.io/en/latest/architecture/index.html
These kernel commits do not explain in simple terms enough how all of these entities connect with each other, if you don't have that understanding beforehand.
Yes, that is true. But I think it's something new and good docs will be some time later.
There's already some in Documentation/tee.txt, but it will get outdated if we don't update it when we architectural changes like this. It's a pity we missed updating it with the introduction of the bus. It seems a good time to do it now so it easier to follow what's done.
Cheers, Jens
/Jarkko
Regards, Maxim.