123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- @startuml
- box "BL1 common code"
- participant bl1_main
- participant bl_common
- end box
- box "arm platform code" #LightBlue
- participant fvp_bl1_setup
- participant arm_bl1_setup
- participant arm_io_storage
- end box
- box "platform common code"
- participant plat_bl1_common
- participant fconf_dyn_cfg_getter
- participant fconf
- end box
- bl1_main -> fvp_bl1_setup : bl1_platform_setup()
- fvp_bl1_setup -> arm_bl1_setup : arm_bl1_platform_setup()
- arm_bl1_setup -> arm_io_storage : plat_arm_io_setup()
- note over arm_io_storage : register and setup fip
- arm_bl1_setup -> fconf : set_config_info(fw_config_base, max_size, FW_CONFIG_ID)
- note over fconf
- set fw_config information
- (address, size, image_id)
- in global dtb_infos array.
- end note
- activate fconf
- arm_bl1_setup -> fconf : fconf_load_config(FW_CONFIG_ID)
- fconf -> fconf : FCONF_GET_PROPERTY(dyn_cfg, dtb, FW_CONFIG_ID)
- fconf -> fconf_dyn_cfg_getter: dyn_cfg_dtb_info_getter(FW_CONFIG_ID)
- fconf_dyn_cfg_getter -> fconf: fw_config_info
- fconf -> bl_common : load_auth_image(FW_CONFIG_ID, &image_info)
- activate bl_common
- note over bl_common
- load and auth image from fip
- with info from plat_io_policy
- end note
- bl_common -> arm_io_storage
- arm_io_storage -> fconf: FCONF_GET_PROPERTY(arm, arm_io_policies, FW_CONFIG_ID)
- note over fconf: use statically defined policies in bl1
- fconf <- bl_common : image_info
- deactivate bl_common
- note over fconf : get fw_config_dtb from image_info
- arm_bl1_setup -> fconf: FCONF_GET_PROPERTY(dyn_cfg, dtb, FW_CONFIG_ID)
- fconf -> fconf_dyn_cfg_getter: dyn_cfg_dtb_info_getter(FW_CONFIG_ID)
- fconf_dyn_cfg_getter -> arm_bl1_setup: fw_config_info
- arm_bl1_setup -> fconf_dyn_cfg_getter: populate_dtb_registry(uintptr_t dtb)
- arm_bl1_setup -> fconf: fconf_load_config(TB_FW_CONFIG_ID)
- fconf -> fconf : FCONF_GET_PROPERTY(dyn_cfg, dtb, TB_FW_CONFIG_ID)
- fconf -> fconf_dyn_cfg_getter: dyn_cfg_dtb_info_getter(TB_FW_CONFIG_ID)
- fconf_dyn_cfg_getter -> fconf: tb_fw_config_info
- fconf -> bl_common : load_auth_image(TB_FW_CONFIG_ID, &image_info)
- activate bl_common
- note over bl_common
- load and auth image from fip
- with info from plat_io_policy
- end note
- bl_common -> arm_io_storage
- arm_io_storage -> fconf: FCONF_GET_PROPERTY(arm, arm_io_policies, TB_FW_CONFIG_ID)
- note over fconf: use statically defined policies in bl1
- fconf <- bl_common : image_info
- deactivate bl_common
- note over fconf : get tb_fw_config_dtb from image_info
- fconf -> arm_bl1_setup
- arm_bl1_setup -> plat_bl1_common : bl1_plat_get_image_desc(BL2_IMAGE_ID)
- arm_bl1_setup <- plat_bl1_common : BL2_IMAGE_DESC
- note over arm_bl1_setup
- set ep_info.args.arg0 of BL2_IMAGE_DESC
- to FW_CONFIG base address
- end note
- deactivate fconf
- == load & auth, prepare and jump to BL2 ==
- @enduml
|