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