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