Jens Wiklander | 6054d68 | 2019-11-19 11:31:14 +0100 | [diff] [blame] | 1 | # Generate with: |
| 2 | # mscgen -T png -o images/trusted_applications/load_ree_ta.png \ |
| 3 | # images/trusted_applications/load_ree_ta.msc |
| 4 | |
| 5 | msc { |
| 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 | } |