el3_spm_dfd.puml 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. /'
  2. ' Copyright (c) 2022, Arm Limited. All rights reserved.
  3. '
  4. ' SPDX-License-Identifier: BSD-3-Clause
  5. '/
  6. /'
  7. TF-A EL3 SPMC Data Flow Diagram
  8. '/
  9. @startuml
  10. digraph tfa_el3_dfd {
  11. # Allow arrows to end on cluster boundaries
  12. compound=true
  13. concentrate=false
  14. newrank=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="NS Client"]
  20. ddr [label="External memory (DDR)"]
  21. {rank="same" smmu, spmd}
  22. # Trust boundary cluster
  23. subgraph cluster_trusted {
  24. graph [style=dashed color="#f22430"]
  25. concentrate=false
  26. # HW IPs cluster
  27. subgraph cluster_ip {
  28. label ="Hardware IPs";
  29. graph [style=filled color="#000000" fillcolor="#ffd29e"]
  30. rank="same"
  31. gic [label="GIC" width=1.2 height=0.5]
  32. smmu [label="SMMU" width=1.2 height=0.5]
  33. uart [label="UART" width=1.2 height=0.5]
  34. pe [label="PE" width=1.2 height=0.5]
  35. }
  36. # TF-A cluster
  37. subgraph cluster_tfa {
  38. label ="EL3 monitor";
  39. graph [style=filled color="#000000" fillcolor="#faf9cd"]
  40. {rank="same" spmc, bl31}
  41. {rank="same" spmd, lsp}
  42. spmc [label="SPMC" fillcolor="#ddffb3"]
  43. bl31 [label="BL31" fillcolor="#ddffb3"];
  44. spmd [label="SPMD" fillcolor="#ddffb3"]
  45. lsp[label="LSP1" fillcolor="#ddffb3"]
  46. }
  47. bl2 [label="BL2" width=1.2 height=0.5]
  48. }
  49. # Secure Partitions cluster
  50. subgraph cluster_sp {
  51. label ="Secure Partitions";
  52. graph [style=filled color="#000000" fillcolor="#faf9cd"]
  53. sp1 [label="SP1" fillcolor="#ddffb3"]
  54. }
  55. sp1 -> spmc [dir="both" label="DF1"]
  56. lsp -> spmc [dir="both" label="DF4"]
  57. spmc -> spmd [dir="both" label="DF2"]
  58. spmd -> nsec [dir="both" label="DF3"]
  59. spmc -> smmu [lhead=cluster_spmc label="DF5"]
  60. bl2 -> spmc [lhead=cluster_spmc label="DF6"]
  61. bl2 -> sp1 [lhead=cluster_spmc label="DF6"]
  62. sp1 -> ddr [dir="both" label="DF7"]
  63. spmc -> ddr [dir="both" label="DF7"]
  64. }
  65. @enduml