Shruti Gupta | 795af71 | 2022-09-27 14:21:13 +0100 | [diff] [blame^] | 1 | /' |
| 2 | ' Copyright (c) 2022, Arm Limited. All rights reserved. |
| 3 | ' |
| 4 | ' SPDX-License-Identifier: BSD-3-Clause |
| 5 | '/ |
| 6 | |
| 7 | /' |
| 8 | TF-A EL3 SPMC Data Flow Diagram |
| 9 | '/ |
| 10 | |
| 11 | @startuml |
| 12 | digraph tfa_el3_dfd { |
| 13 | |
| 14 | # Allow arrows to end on cluster boundaries |
| 15 | compound=true |
| 16 | concentrate=false |
| 17 | newrank=true |
| 18 | |
| 19 | # Default settings for edges and nodes |
| 20 | edge [minlen=2 color="#8c1b07"] |
| 21 | node [fillcolor="#ffb866" style=filled shape=box fixedsize=true width=1.6 height=0.7] |
| 22 | |
| 23 | # Nodes outside of the trust boundary |
| 24 | nsec [label="NS Client"] |
| 25 | ddr [label="External memory (DDR)"] |
| 26 | |
| 27 | {rank="same" smmu, spmd} |
| 28 | # Trust boundary cluster |
| 29 | subgraph cluster_trusted { |
| 30 | graph [style=dashed color="#f22430"] |
| 31 | concentrate=false |
| 32 | |
| 33 | # HW IPs cluster |
| 34 | subgraph cluster_ip { |
| 35 | label ="Hardware IPs"; |
| 36 | graph [style=filled color="#000000" fillcolor="#ffd29e"] |
| 37 | |
| 38 | rank="same" |
| 39 | gic [label="GIC" width=1.2 height=0.5] |
| 40 | smmu [label="SMMU" width=1.2 height=0.5] |
| 41 | uart [label="UART" width=1.2 height=0.5] |
| 42 | pe [label="PE" width=1.2 height=0.5] |
| 43 | } |
| 44 | |
| 45 | # TF-A cluster |
| 46 | subgraph cluster_tfa { |
| 47 | label ="EL3 monitor"; |
| 48 | graph [style=filled color="#000000" fillcolor="#faf9cd"] |
| 49 | {rank="same" spmc, bl31} |
| 50 | {rank="same" spmd, lsp} |
| 51 | spmc [label="SPMC" fillcolor="#ddffb3"] |
| 52 | bl31 [label="BL31" fillcolor="#ddffb3"]; |
| 53 | spmd [label="SPMD" fillcolor="#ddffb3"] |
| 54 | lsp[label="LSP1" fillcolor="#ddffb3"] |
| 55 | } |
| 56 | bl2 [label="BL2" width=1.2 height=0.5] |
| 57 | } |
| 58 | |
| 59 | # Secure Partitions cluster |
| 60 | subgraph cluster_sp { |
| 61 | label ="Secure Partitions"; |
| 62 | graph [style=filled color="#000000" fillcolor="#faf9cd"] |
| 63 | |
| 64 | sp1 [label="SP1" fillcolor="#ddffb3"] |
| 65 | } |
| 66 | |
| 67 | sp1 -> spmc [dir="both" label="DF1"] |
| 68 | lsp -> spmc [dir="both" label="DF4"] |
| 69 | spmc -> spmd [dir="both" label="DF2"] |
| 70 | spmd -> nsec [dir="both" label="DF3"] |
| 71 | spmc -> smmu [lhead=cluster_spmc label="DF5"] |
| 72 | bl2 -> spmc [lhead=cluster_spmc label="DF6"] |
| 73 | bl2 -> sp1 [lhead=cluster_spmc label="DF6"] |
| 74 | sp1 -> ddr [dir="both" label="DF7"] |
| 75 | spmc -> ddr [dir="both" label="DF7"] |
| 76 | } |
| 77 | |
| 78 | @enduml |