xref: /rk3399_ARM-atf/docs/resources/diagrams/plantuml/tfa_rse_dfd.puml (revision a1901c7d0d05ac02b254bf215fb889b9c0a9bc7d)
1a5a5947aSTamas Ban/'
2a5a5947aSTamas Ban ' Copyright (c) 2021-2022, Arm Limited. All rights reserved.
3a5a5947aSTamas Ban '
4a5a5947aSTamas Ban ' SPDX-License-Identifier: BSD-3-Clause
5a5a5947aSTamas Ban '/
6a5a5947aSTamas Ban
7a5a5947aSTamas Ban/'
8*624c9a0bSTamas BanTF-A Data Flow Diagram including RSE
9a5a5947aSTamas Ban'/
10a5a5947aSTamas Ban
11a5a5947aSTamas Ban@startuml
12a5a5947aSTamas Bandigraph tfa_dfd {
13a5a5947aSTamas Ban
14a5a5947aSTamas Ban    # Arrange nodes from left to right
15a5a5947aSTamas Ban    rankdir="LR"
16a5a5947aSTamas Ban
17a5a5947aSTamas Ban    # Allow arrows to end on cluster boundaries
18a5a5947aSTamas Ban    compound=true
19a5a5947aSTamas Ban
20a5a5947aSTamas Ban    # Default settings for edges and nodes
21a5a5947aSTamas Ban    edge [minlen=2 color="#8c1b07"]
22a5a5947aSTamas Ban    node [fillcolor="#ffb866" style=filled shape=box fixedsize=true width=1.6 height=0.7]
23a5a5947aSTamas Ban
24a5a5947aSTamas Ban    # Nodes outside of the trust boundary
25a5a5947aSTamas Ban    nsec [label="Non-secure\nClients"]
26a5a5947aSTamas Ban    sec [label="Secure\nClients"]
27a5a5947aSTamas Ban    dbg [label="Debug & Trace"]
28a5a5947aSTamas Ban    uart [label="UART"]
29a5a5947aSTamas Ban    nvm [label="Non-volatile\nMemory"]
30a5a5947aSTamas Ban
31a5a5947aSTamas Ban
32a5a5947aSTamas Ban    # Trust boundary cluster
33a5a5947aSTamas Ban    subgraph cluster_trusted{
34a5a5947aSTamas Ban        graph [style=dashed color="#f22430"]
35a5a5947aSTamas Ban
36a5a5947aSTamas Ban        # HW IPs cluster
37a5a5947aSTamas Ban        subgraph cluster_ip{
38a5a5947aSTamas Ban            label ="Hardware IPs";
39a5a5947aSTamas Ban            graph [style=filled color="#000000" fillcolor="#ffd29e"]
40a5a5947aSTamas Ban
41a5a5947aSTamas Ban            rank="same"
42a5a5947aSTamas Ban            gic [label="GIC" width=1.2 height=0.5]
43a5a5947aSTamas Ban            tzc [label="TZ\nController" width=1.2 height=0.5]
44a5a5947aSTamas Ban            etc [label="..." shape=none style=none height=0.5]
45a5a5947aSTamas Ban        }
46a5a5947aSTamas Ban
47a5a5947aSTamas Ban        # TF-A cluster
48a5a5947aSTamas Ban        subgraph cluster_tfa{
49a5a5947aSTamas Ban            label ="TF-A";
50a5a5947aSTamas Ban            graph [style=filled color="#000000" fillcolor="#faf9cd"]
51a5a5947aSTamas Ban
52a5a5947aSTamas Ban            bl1 [label="Boot ROM\n(BL1)" fillcolor="#ddffb3"];
53a5a5947aSTamas Ban            bl2 [label="Trusted Boot\nFirmware\n(BL2)" fillcolor="#ddffb3" height=1]
54a5a5947aSTamas Ban            bl31 [label="TF-A Runtime\n(BL31)" fillcolor="#ddffb3"]
55a5a5947aSTamas Ban        }
56a5a5947aSTamas Ban
57*624c9a0bSTamas Ban        # RSE cluster
58*624c9a0bSTamas Ban        subgraph cluster_rse{
59*624c9a0bSTamas Ban            label ="RSE";
60a5a5947aSTamas Ban            graph [style=filled color="#000000" fillcolor="#faf9cd"]
61a5a5947aSTamas Ban
62*624c9a0bSTamas Ban            rse [label="Runtime Security\n\ Subsystem\n\ (RSE)" fillcolor="#ddffb3"]
63a5a5947aSTamas Ban        }
64a5a5947aSTamas Ban    }
65a5a5947aSTamas Ban
66a5a5947aSTamas Ban    # Interactions between nodes
67a5a5947aSTamas Ban    nvm -> bl31 [lhead=cluster_tfa label="DF1"]
68a5a5947aSTamas Ban    uart -> bl31 [dir="both" lhead=cluster_tfa label="DF2"]
69a5a5947aSTamas Ban    dbg -> bl2 [dir="both" lhead=cluster_tfa label="DF3"]
70a5a5947aSTamas Ban    sec -> bl2 [dir="both" lhead=cluster_tfa label="DF4"]
71a5a5947aSTamas Ban    nsec -> bl1 [dir="both" lhead=cluster_tfa, label="DF5"]
72a5a5947aSTamas Ban    bl2 ->  tzc [dir="both" ltail=cluster_tfa lhead=cluster_ip label="DF6" minlen=1]
73*624c9a0bSTamas Ban    bl31 -> rse [dir="both" ltail=cluster_tfa lhead=cluster_rse label="DF7" minlen=1]
74a5a5947aSTamas Ban
75a5a5947aSTamas Ban}
76a5a5947aSTamas Ban
77a5a5947aSTamas Ban@enduml
78