tfa_rse_dfd.puml 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. /'
  2. ' Copyright (c) 2021-2022, Arm Limited. All rights reserved.
  3. '
  4. ' SPDX-License-Identifier: BSD-3-Clause
  5. '/
  6. /'
  7. TF-A Data Flow Diagram including RSE
  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. # RSE cluster
  45. subgraph cluster_rse{
  46. label ="RSE";
  47. graph [style=filled color="#000000" fillcolor="#faf9cd"]
  48. rse [label="Runtime Security\n\ Subsystem\n\ (RSE)" fillcolor="#ddffb3"]
  49. }
  50. }
  51. # Interactions between nodes
  52. nvm -> bl31 [lhead=cluster_tfa label="DF1"]
  53. uart -> bl31 [dir="both" lhead=cluster_tfa label="DF2"]
  54. dbg -> bl2 [dir="both" lhead=cluster_tfa label="DF3"]
  55. sec -> bl2 [dir="both" lhead=cluster_tfa label="DF4"]
  56. nsec -> bl1 [dir="both" lhead=cluster_tfa, label="DF5"]
  57. bl2 -> tzc [dir="both" ltail=cluster_tfa lhead=cluster_ip label="DF6" minlen=1]
  58. bl31 -> rse [dir="both" ltail=cluster_tfa lhead=cluster_rse label="DF7" minlen=1]
  59. }
  60. @enduml