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