1326150b9SLouis Mayencourt@startuml 2326150b9SLouis Mayencourt 3326150b9SLouis Mayencourtbox "BL2 common code" 4326150b9SLouis Mayencourt participant bl2_entrypoint 5326150b9SLouis Mayencourt participant bl2_main 6326150b9SLouis Mayencourtend box 7326150b9SLouis Mayencourt 8326150b9SLouis Mayencourtbox "platform common code" 9326150b9SLouis Mayencourt participant fconf 10326150b9SLouis Mayencourt participant fconf_tbbr_getter 11*e555787bSManish V Badarkheparticipant fconf_dyn_cfg_getter 12326150b9SLouis Mayencourtend box 13326150b9SLouis Mayencourt 14326150b9SLouis Mayencourtbox "arm platform code" #LightBlue 15326150b9SLouis Mayencourt participant arm_bl2_setup 16326150b9SLouis Mayencourt participant arm_io_storage 17326150b9SLouis Mayencourt participant arm_fconf_io 18326150b9SLouis Mayencourtend box 19326150b9SLouis Mayencourt 20326150b9SLouis Mayencourt== bl2 setup == 21326150b9SLouis Mayencourtbl2_entrypoint -> bl2_main : bl2_setup() 22326150b9SLouis Mayencourtbl2_main -> arm_bl2_setup : bl2_early_platform_setup2(\n\t arg0, arg1, arg2, arg3) 23326150b9SLouis Mayencourtnote over arm_bl2_setup 2475077e26SLouis Mayencourt arg0 = fw_config 25326150b9SLouis Mayencourt arg1 = mem_layout 26326150b9SLouis Mayencourtend note 2775077e26SLouis Mayencourtarm_bl2_setup -> arm_bl2_setup : arm_bl2_early_platform_setup(\n\t fw_config, mem_layout) 28326150b9SLouis Mayencourtactivate arm_bl2_setup 29*e555787bSManish V Badarkhe arm_bl2_setup -> fconf: fconf_populate("FW_CONFIG", fw_config) 30326150b9SLouis Mayencourt activate fconf 31*e555787bSManish V Badarkhe fconf -> fconf_dyn_cfg_getter: populate_dtb_registry(uintptr_t dtb) 32*e555787bSManish V Badarkhe note over fconf_dyn_cfg_getter: read dtb_registry properties from dtb 33*e555787bSManish V Badarkhe fconf_dyn_cfg_getter -> arm_bl2_setup 34*e555787bSManish V Badarkhe arm_bl2_setup -> fconf: FCONF_GET_PROPERTY(dyn_cfg, dtb, TB_FW_CONFIG_ID) 35*e555787bSManish V Badarkhe fconf -> fconf_dyn_cfg_getter: dyn_cfg_dtb_info_getter(TB_FW_CONFIG_ID) 36*e555787bSManish V Badarkhe fconf_dyn_cfg_getter -> arm_bl2_setup: tb_fw_config_info 37*e555787bSManish V Badarkhe arm_bl2_setup -> fconf: fconf_populate("TB_FW_CONFIG", tb_fw_config) 38326150b9SLouis Mayencourt fconf -> fconf_tbbr_getter: fconf_populate_tbbr_dyn_config(uintptr_t dtb) 39*e555787bSManish V Badarkhe note over fconf_tbbr_getter: read tbbr properties from dtb 40326150b9SLouis Mayencourt fconf -> arm_fconf_io: fconf_populate_arm_io_policies(uintptr_t dtb) 41326150b9SLouis Mayencourt note over arm_fconf_io: read arm io propeties from dtb 42326150b9SLouis Mayencourt deactivate fconf 43326150b9SLouis Mayencourt arm_bl2_setup -> arm_io_storage : plat_arm_io_setup() 44326150b9SLouis Mayencourt note over arm_io_storage: use populated properties 45326150b9SLouis Mayencourtdeactivate arm_bl2_setup 46326150b9SLouis Mayencourt 47326150b9SLouis Mayencourt== bl2 main == 48326150b9SLouis Mayencourt 49326150b9SLouis Mayencourt@enduml 50