fconf_bl1_load_config.puml 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. @startuml
  2. box "BL1 common code"
  3. participant bl1_main
  4. participant bl_common
  5. end box
  6. box "arm platform code" #LightBlue
  7. participant fvp_bl1_setup
  8. participant arm_bl1_setup
  9. participant arm_io_storage
  10. end box
  11. box "platform common code"
  12. participant plat_bl1_common
  13. participant fconf_dyn_cfg_getter
  14. participant fconf
  15. end box
  16. bl1_main -> fvp_bl1_setup : bl1_platform_setup()
  17. fvp_bl1_setup -> arm_bl1_setup : arm_bl1_platform_setup()
  18. arm_bl1_setup -> arm_io_storage : plat_arm_io_setup()
  19. note over arm_io_storage : register and setup fip
  20. arm_bl1_setup -> fconf : set_config_info(fw_config_base, max_size, FW_CONFIG_ID)
  21. note over fconf
  22. set fw_config information
  23. (address, size, image_id)
  24. in global dtb_infos array.
  25. end note
  26. activate fconf
  27. arm_bl1_setup -> fconf : fconf_load_config(FW_CONFIG_ID)
  28. fconf -> fconf : FCONF_GET_PROPERTY(dyn_cfg, dtb, FW_CONFIG_ID)
  29. fconf -> fconf_dyn_cfg_getter: dyn_cfg_dtb_info_getter(FW_CONFIG_ID)
  30. fconf_dyn_cfg_getter -> fconf: fw_config_info
  31. fconf -> bl_common : load_auth_image(FW_CONFIG_ID, &image_info)
  32. activate bl_common
  33. note over bl_common
  34. load and auth image from fip
  35. with info from plat_io_policy
  36. end note
  37. bl_common -> arm_io_storage
  38. arm_io_storage -> fconf: FCONF_GET_PROPERTY(arm, arm_io_policies, FW_CONFIG_ID)
  39. note over fconf: use statically defined policies in bl1
  40. fconf <- bl_common : image_info
  41. deactivate bl_common
  42. note over fconf : get fw_config_dtb from image_info
  43. arm_bl1_setup -> fconf: FCONF_GET_PROPERTY(dyn_cfg, dtb, FW_CONFIG_ID)
  44. fconf -> fconf_dyn_cfg_getter: dyn_cfg_dtb_info_getter(FW_CONFIG_ID)
  45. fconf_dyn_cfg_getter -> arm_bl1_setup: fw_config_info
  46. arm_bl1_setup -> fconf_dyn_cfg_getter: populate_dtb_registry(uintptr_t dtb)
  47. arm_bl1_setup -> fconf: fconf_load_config(TB_FW_CONFIG_ID)
  48. fconf -> fconf : FCONF_GET_PROPERTY(dyn_cfg, dtb, TB_FW_CONFIG_ID)
  49. fconf -> fconf_dyn_cfg_getter: dyn_cfg_dtb_info_getter(TB_FW_CONFIG_ID)
  50. fconf_dyn_cfg_getter -> fconf: tb_fw_config_info
  51. fconf -> bl_common : load_auth_image(TB_FW_CONFIG_ID, &image_info)
  52. activate bl_common
  53. note over bl_common
  54. load and auth image from fip
  55. with info from plat_io_policy
  56. end note
  57. bl_common -> arm_io_storage
  58. arm_io_storage -> fconf: FCONF_GET_PROPERTY(arm, arm_io_policies, TB_FW_CONFIG_ID)
  59. note over fconf: use statically defined policies in bl1
  60. fconf <- bl_common : image_info
  61. deactivate bl_common
  62. note over fconf : get tb_fw_config_dtb from image_info
  63. fconf -> arm_bl1_setup
  64. arm_bl1_setup -> plat_bl1_common : bl1_plat_get_image_desc(BL2_IMAGE_ID)
  65. arm_bl1_setup <- plat_bl1_common : BL2_IMAGE_DESC
  66. note over arm_bl1_setup
  67. set ep_info.args.arg0 of BL2_IMAGE_DESC
  68. to FW_CONFIG base address
  69. end note
  70. deactivate fconf
  71. == load & auth, prepare and jump to BL2 ==
  72. @enduml