mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-19 02:54:24 +00:00

Signed-off-by: Olivier Deprez <olivier.deprez@arm.com> Change-Id: Ib5f443a6997239d6ba4655d7df6c3fc61d45f991
82 lines
2.3 KiB
Text
82 lines
2.3 KiB
Text
/'
|
|
' 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
|