xref: /rk3399_ARM-atf/docs/resources/diagrams/plantuml/tfa_dfd.puml (revision dcbf3a1173f827f303bf19daefbef7e4c3c40a1d)
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