fconf_bl2_populate.puml 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. @startuml
  2. box "BL2 common code"
  3. participant bl2_entrypoint
  4. participant bl2_main
  5. end box
  6. box "platform common code"
  7. participant fconf
  8. participant fconf_tbbr_getter
  9. participant fconf_dyn_cfg_getter
  10. end box
  11. box "arm platform code" #LightBlue
  12. participant arm_bl2_setup
  13. participant arm_io_storage
  14. participant arm_fconf_io
  15. end box
  16. == bl2 setup ==
  17. bl2_entrypoint -> bl2_main : bl2_setup()
  18. bl2_main -> arm_bl2_setup : bl2_early_platform_setup2(\n\t arg0, arg1, arg2, arg3)
  19. note over arm_bl2_setup
  20. arg0 = fw_config
  21. arg1 = mem_layout
  22. end note
  23. arm_bl2_setup -> arm_bl2_setup : arm_bl2_early_platform_setup(\n\t fw_config, mem_layout)
  24. activate arm_bl2_setup
  25. arm_bl2_setup -> fconf: fconf_populate("FW_CONFIG", fw_config)
  26. activate fconf
  27. fconf -> fconf_dyn_cfg_getter: populate_dtb_registry(uintptr_t dtb)
  28. note over fconf_dyn_cfg_getter: read dtb_registry properties from dtb
  29. fconf_dyn_cfg_getter -> arm_bl2_setup
  30. arm_bl2_setup -> fconf: FCONF_GET_PROPERTY(dyn_cfg, dtb, TB_FW_CONFIG_ID)
  31. fconf -> fconf_dyn_cfg_getter: dyn_cfg_dtb_info_getter(TB_FW_CONFIG_ID)
  32. fconf_dyn_cfg_getter -> arm_bl2_setup: tb_fw_config_info
  33. arm_bl2_setup -> fconf: fconf_populate("TB_FW_CONFIG", tb_fw_config)
  34. fconf -> fconf_tbbr_getter: fconf_populate_tbbr_dyn_config(uintptr_t dtb)
  35. note over fconf_tbbr_getter: read tbbr properties from dtb
  36. fconf -> arm_fconf_io: fconf_populate_arm_io_policies(uintptr_t dtb)
  37. note over arm_fconf_io: read arm io propeties from dtb
  38. deactivate fconf
  39. arm_bl2_setup -> arm_io_storage : plat_arm_io_setup()
  40. note over arm_io_storage: use populated properties
  41. deactivate arm_bl2_setup
  42. == bl2 main ==
  43. @enduml