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