blob: c536ee09008b1e643c940d12b2187b9a3d8dcf2e [file] [log] [blame]
Louis Mayencourt8ac387c2019-11-08 15:09:15 +00001@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
Manish V Badarkhe824cb5c2020-06-21 05:41:11 +010011participant fconf_dyn_cfg_getter
Louis Mayencourt8ac387c2019-11-08 15:09:15 +000012end box
13
14box "arm platform code" #LightBlue
15 participant arm_bl2_setup
16 participant arm_io_storage
17 participant arm_fconf_io
18end box
19
20== bl2 setup ==
21bl2_entrypoint -> bl2_main : bl2_setup()
22bl2_main -> arm_bl2_setup : bl2_early_platform_setup2(\n\t arg0, arg1, arg2, arg3)
23note over arm_bl2_setup
Louis Mayencourt13a97a22020-03-27 11:02:05 +000024 arg0 = fw_config
Louis Mayencourt8ac387c2019-11-08 15:09:15 +000025 arg1 = mem_layout
26end note
Louis Mayencourt13a97a22020-03-27 11:02:05 +000027arm_bl2_setup -> arm_bl2_setup : arm_bl2_early_platform_setup(\n\t fw_config, mem_layout)
Louis Mayencourt8ac387c2019-11-08 15:09:15 +000028activate arm_bl2_setup
Manish V Badarkhe824cb5c2020-06-21 05:41:11 +010029 arm_bl2_setup -> fconf: fconf_populate("FW_CONFIG", fw_config)
Louis Mayencourt8ac387c2019-11-08 15:09:15 +000030 activate fconf
Manish V Badarkhe824cb5c2020-06-21 05:41:11 +010031 fconf -> fconf_dyn_cfg_getter: populate_dtb_registry(uintptr_t dtb)
32 note over fconf_dyn_cfg_getter: read dtb_registry properties from dtb
33 fconf_dyn_cfg_getter -> arm_bl2_setup
34 arm_bl2_setup -> fconf: FCONF_GET_PROPERTY(dyn_cfg, dtb, TB_FW_CONFIG_ID)
35 fconf -> fconf_dyn_cfg_getter: dyn_cfg_dtb_info_getter(TB_FW_CONFIG_ID)
36 fconf_dyn_cfg_getter -> arm_bl2_setup: tb_fw_config_info
37 arm_bl2_setup -> fconf: fconf_populate("TB_FW_CONFIG", tb_fw_config)
Louis Mayencourt8ac387c2019-11-08 15:09:15 +000038 fconf -> fconf_tbbr_getter: fconf_populate_tbbr_dyn_config(uintptr_t dtb)
Manish V Badarkhe824cb5c2020-06-21 05:41:11 +010039 note over fconf_tbbr_getter: read tbbr properties from dtb
Louis Mayencourt8ac387c2019-11-08 15:09:15 +000040 fconf -> arm_fconf_io: fconf_populate_arm_io_policies(uintptr_t dtb)
41 note over arm_fconf_io: read arm io propeties from dtb
42 deactivate fconf
43 arm_bl2_setup -> arm_io_storage : plat_arm_io_setup()
44 note over arm_io_storage: use populated properties
45deactivate arm_bl2_setup
46
47== bl2 main ==
48
49@enduml