blob: 7cb00160c2bdc7d8a62a9190e6cb5651c8a66942 [file] [log] [blame]
Jens Wiklander6054d682019-11-19 11:31:14 +01001# Generate with:
2# mscgen -T png -o images/trusted_applications/load_ree_ta.png \
3# images/trusted_applications/load_ree_ta.msc
4
5msc {
6 hscale = "2", wordwraparcs = on;
7
8 a [label="OP-TEE Core"], b [label="Kernel OP-TEE driver"],
9 c [label="tee-supplicant"];
10
11 ||| ;
12 --- [ label = " OP-TEE loading a REE TA using rpc_load() "];
13 ... ;
14 --- [ label = " Query size of TA " ];
15 a=>b [ label = "RPC_CMD_LOAD_TA(TA uuid)" ];
16 b=>c [ label = "RPC_CMD_LOAD_TA(TA uuid)" ];
17 c=>c [ label = "Check size of TA with uuid" ];
18 c>>b [ label = "Return size of TA" ];
19 b>>a [ label = "Return size of TA" ];
20 --- [ label = " Allocate payload buffer " ];
21 a=>b [ label = "RPC_CMD_SHM_ALLOC(SHM_TYPE_APPL, size)" ];
22 b=>c [ label = "RPC_CMD_SHM_ALLOC(SHM_TYPE_APPL, size)" ];
23 c=>c [ label = "malloc(size)" ];
24 c=>b [ label = "ioctl(SHM_REGISTER)" ];
25 b=>b [ label = "allocate shm_ref" ];
26 b=>b [ label = "create shm_ref ID" ];
27 b=>a [ label = "CMD_REGISTER_SHM(shm_ref)" ];
28 a>>b;
29 b>>c [ label = "return shm_ref ID" ];
30 c>>b [ label = "return shm_ref ID" ];
31 b>>a [ label = "return shm_ref" ];
32 --- [ label = " Load TA into payload buffer " ];
33 a=>b [ label = "RPC_CMD_LOAD_TA(TA uuid, shm_ref)" ];
34 b=>c [ label = "RPC_CMD_LOAD_TA(TA uuid, shm_ref ID)" ];
35 c=>c [ label = "Copy TA into payload buffer" ];
36 c>>b;
37 b>>a;
38}