blob: e513ed4c3e19c62494ae49df8907e130d5bd5653 [file] [log] [blame]
Louis Mayencourt8ac387c2019-11-08 15:09:15 +00001@startuml
2
3box "BL1 common code"
4 participant bl1_main
5 participant bl_common
6end box
7
8box "arm platform code" #LightBlue
9 participant fvp_bl1_setup
10 participant arm_bl1_setup
11 participant arm_io_storage
12end box
13
14box "platform common code"
15 participant plat_bl1_common
Manish V Badarkhe824cb5c2020-06-21 05:41:11 +010016 participant fconf_dyn_cfg_getter
Louis Mayencourt8ac387c2019-11-08 15:09:15 +000017 participant fconf
18end box
19
20bl1_main -> fvp_bl1_setup : bl1_platform_setup()
21fvp_bl1_setup -> arm_bl1_setup : arm_bl1_platform_setup()
22arm_bl1_setup -> arm_io_storage : plat_arm_io_setup()
23note over arm_io_storage : register and setup fip
Manish V Badarkhe824cb5c2020-06-21 05:41:11 +010024arm_bl1_setup -> fconf : set_fw_config_info(fw_config_base, max_size)
25note over fconf
26 set fw_config information
27 (address, size, image_id)
28 in global dtb_infos array.
29end note
Louis Mayencourt8ac387c2019-11-08 15:09:15 +000030activate fconf
Manish V Badarkhe824cb5c2020-06-21 05:41:11 +010031 arm_bl1_setup -> fconf : fconf_load_config(FW_CONFIG_ID)
32 fconf -> fconf : FCONF_GET_PROPERTY(dyn_cfg, dtb, FW_CONFIG_ID)
33 fconf -> fconf_dyn_cfg_getter: dyn_cfg_dtb_info_getter(FW_CONFIG_ID)
34 fconf_dyn_cfg_getter -> fconf: fw_config_info
Louis Mayencourt13a97a22020-03-27 11:02:05 +000035 fconf -> bl_common : load_auth_image(FW_CONFIG_ID, &image_info)
Louis Mayencourt8ac387c2019-11-08 15:09:15 +000036 activate bl_common
37 note over bl_common
38 load and auth image from fip
39 with info from plat_io_policy
40 end note
41 bl_common -> arm_io_storage
Manish V Badarkhe824cb5c2020-06-21 05:41:11 +010042 arm_io_storage -> fconf: FCONF_GET_PROPERTY(arm, arm_io_policies, FW_CONFIG_ID)
43 note over fconf: use statically defined policies in bl1
44 fconf <- bl_common : image_info
45 deactivate bl_common
46 note over fconf : get fw_config_dtb from image_info
47 arm_bl1_setup -> fconf: FCONF_GET_PROPERTY(dyn_cfg, dtb, FW_CONFIG_ID)
48 fconf -> fconf_dyn_cfg_getter: dyn_cfg_dtb_info_getter(FW_CONFIG_ID)
49 fconf_dyn_cfg_getter -> arm_bl1_setup: fw_config_info
50 arm_bl1_setup -> fconf_dyn_cfg_getter: populate_dtb_registry(uintptr_t dtb)
51 arm_bl1_setup -> fconf: fconf_load_config(TB_FW_CONFIG_ID)
52 fconf -> fconf : FCONF_GET_PROPERTY(dyn_cfg, dtb, TB_FW_CONFIG_ID)
53 fconf -> fconf_dyn_cfg_getter: dyn_cfg_dtb_info_getter(TB_FW_CONFIG_ID)
54 fconf_dyn_cfg_getter -> fconf: tb_fw_config_info
55 fconf -> bl_common : load_auth_image(TB_FW_CONFIG_ID, &image_info)
56 activate bl_common
57 note over bl_common
58 load and auth image from fip
59 with info from plat_io_policy
60 end note
61 bl_common -> arm_io_storage
62 arm_io_storage -> fconf: FCONF_GET_PROPERTY(arm, arm_io_policies, TB_FW_CONFIG_ID)
63 note over fconf: use statically defined policies in bl1
Louis Mayencourt8ac387c2019-11-08 15:09:15 +000064 fconf <- bl_common : image_info
65 deactivate bl_common
66 note over fconf : get tb_fw_config_dtb from image_info
Manish V Badarkhe824cb5c2020-06-21 05:41:11 +010067 fconf -> arm_bl1_setup
68 arm_bl1_setup -> plat_bl1_common : bl1_plat_get_image_desc(BL2_IMAGE_ID)
69 arm_bl1_setup <- plat_bl1_common : BL2_IMAGE_DESC
70 note over arm_bl1_setup
71 set ep_info.args.arg0 of BL2_IMAGE_DESC
72 to FW_CONFIG base address
Louis Mayencourt8ac387c2019-11-08 15:09:15 +000073 end note
Louis Mayencourt8ac387c2019-11-08 15:09:15 +000074deactivate fconf
75
76== load & auth, prepare and jump to BL2 ==
77
78@enduml