fconf_bl1_load_config.puml 2.67 KB
Newer Older
Louis Mayencourt's avatar
Louis Mayencourt committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
@startuml

box "BL1 common code"
	participant bl1_main
	participant bl_common
end box

box "arm platform code" #LightBlue
	participant fvp_bl1_setup
	participant arm_bl1_setup
	participant arm_io_storage
end box

box "platform common code"
	participant plat_bl1_common
16
	participant fconf_dyn_cfg_getter
Louis Mayencourt's avatar
Louis Mayencourt committed
17
18
19
20
21
22
23
	participant fconf
end box

bl1_main -> fvp_bl1_setup : bl1_platform_setup()
fvp_bl1_setup -> arm_bl1_setup : arm_bl1_platform_setup()
arm_bl1_setup -> arm_io_storage : plat_arm_io_setup()
note over arm_io_storage : register and setup fip
24
25
26
27
28
29
arm_bl1_setup -> fconf : set_fw_config_info(fw_config_base, max_size)
note over fconf
	set fw_config information
	(address, size, image_id)
	in global dtb_infos array.
end note
Louis Mayencourt's avatar
Louis Mayencourt committed
30
activate fconf
31
32
33
34
	arm_bl1_setup -> fconf : fconf_load_config(FW_CONFIG_ID)
	fconf -> fconf : FCONF_GET_PROPERTY(dyn_cfg, dtb, FW_CONFIG_ID)
	fconf -> fconf_dyn_cfg_getter: dyn_cfg_dtb_info_getter(FW_CONFIG_ID)
	fconf_dyn_cfg_getter -> fconf: fw_config_info
35
	fconf -> bl_common : load_auth_image(FW_CONFIG_ID, &image_info)
Louis Mayencourt's avatar
Louis Mayencourt committed
36
37
38
39
40
41
	activate bl_common
	note over bl_common
		load and auth image from fip
		with info from plat_io_policy
	end note
	bl_common -> arm_io_storage
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
	arm_io_storage -> fconf: FCONF_GET_PROPERTY(arm, arm_io_policies, FW_CONFIG_ID)
	note over fconf: use statically defined policies in bl1
	fconf <- bl_common : image_info
	deactivate bl_common
	note over fconf : get fw_config_dtb from image_info
	arm_bl1_setup -> fconf: FCONF_GET_PROPERTY(dyn_cfg, dtb, FW_CONFIG_ID)
	fconf -> fconf_dyn_cfg_getter: dyn_cfg_dtb_info_getter(FW_CONFIG_ID)
	fconf_dyn_cfg_getter -> arm_bl1_setup: fw_config_info
	arm_bl1_setup -> fconf_dyn_cfg_getter: populate_dtb_registry(uintptr_t dtb)
	arm_bl1_setup -> fconf: fconf_load_config(TB_FW_CONFIG_ID)
	fconf -> 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 -> fconf: tb_fw_config_info
	fconf -> bl_common : load_auth_image(TB_FW_CONFIG_ID, &image_info)
	activate bl_common
	note over bl_common
		load and auth image from fip
		with info from plat_io_policy
	end note
	bl_common -> arm_io_storage
	arm_io_storage -> fconf: FCONF_GET_PROPERTY(arm, arm_io_policies, TB_FW_CONFIG_ID)
	note over fconf: use statically defined policies in bl1
Louis Mayencourt's avatar
Louis Mayencourt committed
64
65
66
	fconf <- bl_common : image_info
	deactivate bl_common
	note over fconf : get tb_fw_config_dtb from image_info
67
68
69
70
71
72
	fconf -> arm_bl1_setup
	arm_bl1_setup -> plat_bl1_common : bl1_plat_get_image_desc(BL2_IMAGE_ID)
	arm_bl1_setup <- plat_bl1_common : BL2_IMAGE_DESC
	note over arm_bl1_setup
	set ep_info.args.arg0 of BL2_IMAGE_DESC
	to FW_CONFIG base address
Louis Mayencourt's avatar
Louis Mayencourt committed
73
74
75
76
77
78
	end note
deactivate fconf

== load & auth, prepare and jump to BL2 ==

@enduml