1@startuml 2 3box "BL1 common code" 4 participant bl1_main 5 participant bl_common 6end box 7 8box "arm platform code" #LightBlue 9 participant fvp_bl1_setup 10 participant arm_bl1_setup 11 participant arm_io_storage 12end box 13 14box "platform common code" 15 participant plat_bl1_common 16 participant fconf 17end box 18 19bl1_main -> fvp_bl1_setup : bl1_platform_setup() 20fvp_bl1_setup -> arm_bl1_setup : arm_bl1_platform_setup() 21arm_bl1_setup -> arm_io_storage : plat_arm_io_setup() 22note over arm_io_storage : register and setup fip 23arm_bl1_setup -> fconf : fconf_load_config() 24activate fconf 25 note over fconf 26 create and populate an 27 image_desc_t for TB_FW_CONFIG 28 end note 29 fconf -> bl_common : load_auth_image(TB_FW_CONFIG_ID, &image_info) 30 activate bl_common 31 note over bl_common 32 load and auth image from fip 33 with info from plat_io_policy 34 end note 35 bl_common -> arm_io_storage 36 arm_io_storage -> fconf: FCONF_GET_PROPERTY(arm, arm_io_policies, tb_fw_cfg) 37 note over fconf: use staticaly defined policies in bl1 38 fconf <- bl_common : image_info 39 deactivate bl_common 40 note over fconf : get tb_fw_config_dtb from image_info 41 fconf -> plat_bl1_common : bl1_plat_get_image_desc(BL2_IMAGE_ID) 42 fconf <- plat_bl1_common : BL2_IMAGE_DESC 43 note over fconf 44 set ep_info.args.arg0 of BL2_IMAGE_DESC 45 to TB_FW_CONFIG base address 46 end note 47arm_bl1_setup <- fconf 48deactivate fconf 49 50== load & auth, prepare and jump to BL2 == 51 52@enduml 53