blob: 493f07884c43aa8486f642a1eb0a51ac92f7235c [file] [log] [blame]
Sandrine Bailleux545f4b62023-09-06 16:11:12 +02001/'
2 ' Copyright (c) 2023, Arm Limited. All rights reserved.
3 '
4 ' SPDX-License-Identifier: BSD-3-Clause
5 '/
6
7/'
8TF-A with Arm CCA Data Flow Diagram
9'/
10
11@startuml
12digraph tfa_dfd {
13
14 # Arrange nodes from left to right
15 rankdir="LR"
16
17 # Allow arrows to end on cluster boundaries
18 compound=true
19
20 # Default settings for edges and nodes
21 edge [minlen=2 color="#8c1b07"]
22 node [fillcolor="#ffb866" style=filled shape=box fixedsize=true width=1.6 height=0.7]
23
24 # Nodes outside of the trust boundary
25 realm [label="Realm\nClients"]
26 nsec [label="Non-secure\nClients"]
27 sec [label="Secure\nClients"]
28 dbg [label="Debug & Trace"]
29 uart [label="UART"]
30 nvm [label="Non-volatile\nMemory"]
31
32 # Trust boundary cluster
33 subgraph cluster_trusted{
34 graph [style=dashed color="#f22430"]
35
36 # HW IPs cluster
37 subgraph cluster_ip{
38 label ="Hardware IPs";
39 graph [style=filled color="#000000" fillcolor="#ffd29e"]
40
41 rank="same"
42 gic [label="GIC" width=1.2 height=0.5]
43 mmu [label="MMU" width=1.2 height=0.5]
44 etc [label="..." shape=none style=none height=0.5]
45 }
46
47 # TF-A cluster
48 subgraph cluster_tfa{
49 label ="TF-A";
50 graph [style=filled color="#000000" fillcolor="#faf9cd"]
51
52 bl1 [label="Boot ROM\n(BL1)" fillcolor="#ddffb3"];
53 bl2 [label="Trusted Boot\nFirmware\n(BL2)" fillcolor="#ddffb3" height=1]
54 bl31 [label="TF-A Runtime\n(BL31)" fillcolor="#ddffb3"]
55 }
56
57 # HES cluster
58 subgraph cluster_hes{
59 label ="Arm CCA HES";
60 graph [style=filled color="#000000" fillcolor="#ffd29e"]
61
62 hes [label="Hardware\nEnforced Security"]
63 }
64 }
65
66 # Interactions between nodes
67
68 # -- The following lines are copied from tfa_dfd.puml and must not be
69 # changed, at the risk of invalidating DF* references.
70 nvm -> bl31 [lhead=cluster_tfa label="DF1"]
71 uart -> bl31 [dir="both" lhead=cluster_tfa label="DF2"]
72 dbg -> bl2 [dir="both" lhead=cluster_tfa label="DF3"]
73 sec -> bl2 [dir="both" lhead=cluster_tfa label="DF4"]
74 nsec -> bl1 [dir="both" lhead=cluster_tfa, label="DF5"]
75 bl2 -> mmu [dir="both" ltail=cluster_tfa lhead=cluster_ip label="DF6"]
76
77 # -- The following lines are new for Arm CCA DFD.
78 bl2 -> hes [dir="both" ltail=cluster_tfa lhead=cluster_hes label="DF7"]
79 realm -> bl2 [dir="both" lhead=cluster_tfa label="DF8"]
80}
81
82@enduml