tfa_dfd.puml 1.9 KB

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