summaryrefslogtreecommitdiffstats
path: root/docs/resources/diagrams/plantuml/fconf_bl2_populate.puml
blob: c536ee09008b1e643c940d12b2187b9a3d8dcf2e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
@startuml

box "BL2 common code"
	participant bl2_entrypoint
	participant bl2_main
end box

box "platform common code"
	participant fconf
	participant fconf_tbbr_getter
participant fconf_dyn_cfg_getter
end box

box "arm platform code" #LightBlue
	participant arm_bl2_setup
	participant arm_io_storage
	participant arm_fconf_io
end box

== bl2 setup ==
bl2_entrypoint -> bl2_main : bl2_setup()
bl2_main -> arm_bl2_setup : bl2_early_platform_setup2(\n\t arg0, arg1, arg2, arg3)
note over arm_bl2_setup
	arg0 = fw_config
	arg1 = mem_layout
end note
arm_bl2_setup -> arm_bl2_setup : arm_bl2_early_platform_setup(\n\t fw_config, mem_layout)
activate arm_bl2_setup
	arm_bl2_setup -> fconf: fconf_populate("FW_CONFIG", fw_config)
	activate fconf
		fconf -> fconf_dyn_cfg_getter: populate_dtb_registry(uintptr_t dtb)
		note over fconf_dyn_cfg_getter: read dtb_registry properties from dtb
		fconf_dyn_cfg_getter -> arm_bl2_setup
		arm_bl2_setup -> fconf: FCONF_GET_PROPERTY(dyn_cfg, dtb, TB_FW_CONFIG_ID)
		fconf -> fconf_dyn_cfg_getter: dyn_cfg_dtb_info_getter(TB_FW_CONFIG_ID)
		fconf_dyn_cfg_getter -> arm_bl2_setup: tb_fw_config_info
		arm_bl2_setup -> fconf: fconf_populate("TB_FW_CONFIG", tb_fw_config)
		fconf -> fconf_tbbr_getter: fconf_populate_tbbr_dyn_config(uintptr_t dtb)
		note over fconf_tbbr_getter: read tbbr properties from dtb
		fconf -> arm_fconf_io: fconf_populate_arm_io_policies(uintptr_t dtb)
		note over arm_fconf_io: read arm io propeties from dtb
	deactivate fconf
	arm_bl2_setup -> arm_io_storage : plat_arm_io_setup()
	note over arm_io_storage: use populated properties
deactivate arm_bl2_setup

== bl2 main ==

@enduml