xref: /arm-trusted-firmware/docs/resources/diagrams/plantuml/fconf_bl2_populate.puml (revision 91f16700b400a8c0651d24a598fc48ee2997a0d7)
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