1@startuml 2 3box "BL2 common code" 4 participant bl2_entrypoint 5 participant bl2_main 6end box 7 8box "platform common code" 9 participant fconf 10 participant fconf_tbbr_getter 11end box 12 13box "arm platform code" #LightBlue 14 participant arm_bl2_setup 15 participant arm_io_storage 16 participant arm_fconf_io 17end box 18 19== bl2 setup == 20bl2_entrypoint -> bl2_main : bl2_setup() 21bl2_main -> arm_bl2_setup : bl2_early_platform_setup2(\n\t arg0, arg1, arg2, arg3) 22note over arm_bl2_setup 23 arg0 = tb_fw_config 24 arg1 = mem_layout 25end note 26arm_bl2_setup -> arm_bl2_setup : arm_bl2_early_platform_setup(\n\t tb_fw_config, mem_layout) 27activate arm_bl2_setup 28 arm_bl2_setup -> fconf: fconf_polulate(tb_fw_config) 29 activate fconf 30 fconf -> fconf_tbbr_getter: fconf_populate_tbbr_dyn_config(uintptr_t dtb) 31 note over fconf_tbbr_getter: read tbbr propeties from dtb 32 fconf -> arm_fconf_io: fconf_populate_arm_io_policies(uintptr_t dtb) 33 note over arm_fconf_io: read arm io propeties from dtb 34 deactivate fconf 35 arm_bl2_setup -> arm_io_storage : plat_arm_io_setup() 36 note over arm_io_storage: use populated properties 37deactivate arm_bl2_setup 38 39== bl2 main == 40 41@enduml 42