12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- /'
- ' Copyright (c) 2021, Arm Limited. All rights reserved.
- '
- ' SPDX-License-Identifier: BSD-3-Clause
- '/
- /'
- TF-A SPMC Data Flow Diagram
- '/
- @startuml
- digraph tfa_dfd {
- # Allow arrows to end on cluster boundaries
- compound=true
- # Default settings for edges and nodes
- edge [minlen=2 color="#8c1b07"]
- node [fillcolor="#ffb866" style=filled shape=box fixedsize=true width=1.6 height=0.7]
- # Nodes outside of the trust boundary
- nsec [label="NS Client"]
- ddr [label="External memory (DDR)"]
- # Trust boundary cluster
- subgraph cluster_trusted {
- graph [style=dashed color="#f22430"]
- # HW IPs cluster
- subgraph cluster_ip {
- label ="Hardware IPs";
- graph [style=filled color="#000000" fillcolor="#ffd29e"]
- rank="same"
- gic [label="GIC" width=1.2 height=0.5]
- smmu [label="SMMU" width=1.2 height=0.5]
- uart [label="UART" width=1.2 height=0.5]
- pe [label="PE" width=1.2 height=0.5]
- }
- # TF-A cluster
- subgraph cluster_tfa {
- label ="EL3 monitor";
- graph [style=filled color="#000000" fillcolor="#faf9cd"]
- bl31 [label="BL31" fillcolor="#ddffb3"];
- spmd [label="SPMD" fillcolor="#ddffb3" height=1]
- }
- # SPMC cluster
- subgraph cluster_spmc {
- label ="SPMC";
- graph [style=filled color="#000000" fillcolor="#faf9cd"]
- spmc [label="SPMC" fillcolor="#ddffb3" height=1]
- }
- bl2 [label="BL2" width=1.2 height=0.5]
- }
- # Secure Partitions cluster
- subgraph cluster_sp {
- label ="Secure Partitions";
- graph [style=filled color="#000000" fillcolor="#faf9cd"]
- sp1 [label="SP1" fillcolor="#ddffb3" height=1]
- sp2 [label="SP2" fillcolor="#ddffb3" height=1]
- spn [label="SP..." fillcolor="#ddffb3" height=1]
- }
- # Interactions between nodes
- sp1 -> spmc [dir="both" label="DF1"]
- spmc -> spmd [dir="both" label="DF2"]
- spmd -> nsec [dir="both" label="DF3"]
- sp1 -> sp2 [dir="both" label="DF4"]
- spmc -> smmu [lhead=cluster_spmc label="DF5"]
- bl2 -> spmc [lhead=cluster_spmc label="DF6"]
- bl2 -> spn [lhead=cluster_spmc label="DF6"]
- sp1 -> ddr [dir="both" label="DF7"]
- spmc -> ddr [dir="both" label="DF7"]
- }
- @enduml
|