12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- /'
- ' Copyright (c) 2023, Arm Limited. All rights reserved.
- '
- ' SPDX-License-Identifier: BSD-3-Clause
- '/
- /'
- TF-A with Arm CCA Data Flow Diagram
- '/
- @startuml
- digraph tfa_dfd {
- # Arrange nodes from left to right
- rankdir="LR"
- # 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
- realm [label="Realm\nClients"]
- nsec [label="Non-secure\nClients"]
- sec [label="Secure\nClients"]
- dbg [label="Debug & Trace"]
- uart [label="UART"]
- nvm [label="Non-volatile\nMemory"]
- # 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]
- mmu [label="MMU" width=1.2 height=0.5]
- etc [label="..." shape=none style=none height=0.5]
- }
- # TF-A cluster
- subgraph cluster_tfa{
- label ="TF-A";
- graph [style=filled color="#000000" fillcolor="#faf9cd"]
- bl1 [label="Boot ROM\n(BL1)" fillcolor="#ddffb3"];
- bl2 [label="Trusted Boot\nFirmware\n(BL2)" fillcolor="#ddffb3" height=1]
- bl31 [label="TF-A Runtime\n(BL31)" fillcolor="#ddffb3"]
- }
- # HES cluster
- subgraph cluster_hes{
- label ="Arm CCA HES";
- graph [style=filled color="#000000" fillcolor="#ffd29e"]
- hes [label="Hardware\nEnforced Security"]
- }
- }
- # Interactions between nodes
- # -- The following lines are copied from tfa_dfd.puml and must not be
- # changed, at the risk of invalidating DF* references.
- nvm -> bl31 [lhead=cluster_tfa label="DF1"]
- uart -> bl31 [dir="both" lhead=cluster_tfa label="DF2"]
- dbg -> bl2 [dir="both" lhead=cluster_tfa label="DF3"]
- sec -> bl2 [dir="both" lhead=cluster_tfa label="DF4"]
- nsec -> bl1 [dir="both" lhead=cluster_tfa, label="DF5"]
- bl2 -> mmu [dir="both" ltail=cluster_tfa lhead=cluster_ip label="DF6"]
- # -- The following lines are new for Arm CCA DFD.
- bl2 -> hes [dir="both" ltail=cluster_tfa lhead=cluster_hes label="DF7"]
- realm -> bl2 [dir="both" lhead=cluster_tfa label="DF8"]
- }
- @enduml
|