Zelalem | 05fed52 | 2021-02-24 19:20:09 -0600 | [diff] [blame] | 1 | /' |
| 2 | ' Copyright (c) 2021, Arm Limited. All rights reserved. |
| 3 | ' |
| 4 | ' SPDX-License-Identifier: BSD-3-Clause |
| 5 | '/ |
| 6 | |
| 7 | /' |
| 8 | TF-A Data Flow Diagram |
| 9 | '/ |
| 10 | |
| 11 | @startuml |
| 12 | digraph tfa_dfd { |
| 13 | |
| 14 | # Arrange nodes from left to right |
| 15 | rankdir="LR" |
| 16 | |
| 17 | # Allow arrows to end on cluster boundaries |
| 18 | compound=true |
| 19 | |
| 20 | # Default settings for edges and nodes |
| 21 | edge [minlen=2 color="#8c1b07"] |
| 22 | node [fillcolor="#ffb866" style=filled shape=box fixedsize=true width=1.6 height=0.7] |
| 23 | |
| 24 | # Nodes outside of the trust boundary |
| 25 | nsec [label="Non-secure\nClients"] |
| 26 | sec [label="Secure\nClients"] |
| 27 | dbg [label="Debug & Trace"] |
| 28 | logs [label="Logs\n(UART)"] |
| 29 | nvm [label="Non-volatile\nMemory"] |
| 30 | |
| 31 | # Trust boundary cluster |
| 32 | subgraph cluster_trusted{ |
| 33 | graph [style=dashed color="#f22430"] |
| 34 | |
| 35 | # HW IPs cluster |
| 36 | subgraph cluster_ip{ |
| 37 | label ="Hardware IPs"; |
| 38 | graph [style=filled color="#000000" fillcolor="#ffd29e"] |
| 39 | |
| 40 | rank="same" |
| 41 | gic [label="GIC" width=1.2 height=0.5] |
| 42 | tzc [label="TZ\nController" width=1.2 height=0.5] |
| 43 | etc [label="..." shape=none style=none height=0.5] |
| 44 | } |
| 45 | |
| 46 | # TF-A cluster |
| 47 | subgraph cluster_tfa{ |
| 48 | label ="TF-A"; |
| 49 | graph [style=filled color="#000000" fillcolor="#faf9cd"] |
| 50 | |
| 51 | bl1 [label="Boot ROM\n(BL1)" fillcolor="#ddffb3"]; |
| 52 | bl2 [label="Trusted Boot\nFirmware\n(BL2)" fillcolor="#ddffb3" height=1] |
| 53 | bl31 [label="TF-A Runtime\n(BL31)" fillcolor="#ddffb3"] |
| 54 | } |
| 55 | } |
| 56 | |
| 57 | # Interactions between nodes |
| 58 | nvm -> bl31 [lhead=cluster_tfa label="DF1"] |
| 59 | logs -> bl31 [dir="back" lhead=cluster_tfa label="DF2"] |
| 60 | dbg -> bl2 [dir="both" lhead=cluster_tfa label="DF3"] |
| 61 | sec -> bl2 [dir="both" lhead=cluster_tfa label="DF4"] |
| 62 | nsec -> bl1 [dir="both" lhead=cluster_tfa, label="DF5"] |
| 63 | bl2 -> tzc [dir="both" ltail=cluster_tfa lhead=cluster_ip label="DF6" minlen=1] |
| 64 | } |
| 65 | |
| 66 | @enduml |