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