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