17006f208SZelalem/' 27006f208SZelalem ' Copyright (c) 2021, Arm Limited. All rights reserved. 37006f208SZelalem ' 47006f208SZelalem ' SPDX-License-Identifier: BSD-3-Clause 57006f208SZelalem '/ 67006f208SZelalem 77006f208SZelalem/' 87006f208SZelalemTF-A Data Flow Diagram 97006f208SZelalem'/ 107006f208SZelalem 117006f208SZelalem@startuml 127006f208SZelalemdigraph tfa_dfd { 137006f208SZelalem 147006f208SZelalem # Arrange nodes from left to right 157006f208SZelalem rankdir="LR" 167006f208SZelalem 177006f208SZelalem # Allow arrows to end on cluster boundaries 187006f208SZelalem compound=true 197006f208SZelalem 207006f208SZelalem # Default settings for edges and nodes 217006f208SZelalem edge [minlen=2 color="#8c1b07"] 227006f208SZelalem node [fillcolor="#ffb866" style=filled shape=box fixedsize=true width=1.6 height=0.7] 237006f208SZelalem 247006f208SZelalem # Nodes outside of the trust boundary 257006f208SZelalem nsec [label="Non-secure\nClients"] 267006f208SZelalem sec [label="Secure\nClients"] 277006f208SZelalem dbg [label="Debug & Trace"] 28*348446adSSandrine Bailleux uart [label="UART"] 297006f208SZelalem nvm [label="Non-volatile\nMemory"] 307006f208SZelalem 317006f208SZelalem # Trust boundary cluster 327006f208SZelalem subgraph cluster_trusted{ 337006f208SZelalem graph [style=dashed color="#f22430"] 347006f208SZelalem 357006f208SZelalem # HW IPs cluster 367006f208SZelalem subgraph cluster_ip{ 377006f208SZelalem label ="Hardware IPs"; 387006f208SZelalem graph [style=filled color="#000000" fillcolor="#ffd29e"] 397006f208SZelalem 407006f208SZelalem rank="same" 417006f208SZelalem gic [label="GIC" width=1.2 height=0.5] 427006f208SZelalem tzc [label="TZ\nController" width=1.2 height=0.5] 437006f208SZelalem etc [label="..." shape=none style=none height=0.5] 447006f208SZelalem } 457006f208SZelalem 467006f208SZelalem # TF-A cluster 477006f208SZelalem subgraph cluster_tfa{ 487006f208SZelalem label ="TF-A"; 497006f208SZelalem graph [style=filled color="#000000" fillcolor="#faf9cd"] 507006f208SZelalem 517006f208SZelalem bl1 [label="Boot ROM\n(BL1)" fillcolor="#ddffb3"]; 527006f208SZelalem bl2 [label="Trusted Boot\nFirmware\n(BL2)" fillcolor="#ddffb3" height=1] 537006f208SZelalem bl31 [label="TF-A Runtime\n(BL31)" fillcolor="#ddffb3"] 547006f208SZelalem } 557006f208SZelalem } 567006f208SZelalem 577006f208SZelalem # Interactions between nodes 587006f208SZelalem nvm -> bl31 [lhead=cluster_tfa label="DF1"] 59*348446adSSandrine Bailleux uart -> bl31 [dir="both" lhead=cluster_tfa label="DF2"] 607006f208SZelalem dbg -> bl2 [dir="both" lhead=cluster_tfa label="DF3"] 617006f208SZelalem sec -> bl2 [dir="both" lhead=cluster_tfa label="DF4"] 627006f208SZelalem nsec -> bl1 [dir="both" lhead=cluster_tfa, label="DF5"] 637006f208SZelalem bl2 -> tzc [dir="both" ltail=cluster_tfa lhead=cluster_ip label="DF6" minlen=1] 647006f208SZelalem} 657006f208SZelalem 667006f208SZelalem@enduml 67