blob: e613eefd072a8fa0616cb42d7cb770170d7ff979 [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
16 participant fconf
17end box
18
19bl1_main -> fvp_bl1_setup : bl1_platform_setup()
20fvp_bl1_setup -> arm_bl1_setup : arm_bl1_platform_setup()
21arm_bl1_setup -> arm_io_storage : plat_arm_io_setup()
22note over arm_io_storage : register and setup fip
23arm_bl1_setup -> fconf : fconf_load_config()
24activate fconf
25 note over fconf
26 create and populate an
Louis Mayencourt13a97a22020-03-27 11:02:05 +000027 image_desc_t for FW_CONFIG
Louis Mayencourt8ac387c2019-11-08 15:09:15 +000028 end note
Louis Mayencourt13a97a22020-03-27 11:02:05 +000029 fconf -> bl_common : load_auth_image(FW_CONFIG_ID, &image_info)
Louis Mayencourt8ac387c2019-11-08 15:09:15 +000030 activate bl_common
31 note over bl_common
32 load and auth image from fip
33 with info from plat_io_policy
34 end note
35 bl_common -> arm_io_storage
36 arm_io_storage -> fconf: FCONF_GET_PROPERTY(arm, arm_io_policies, tb_fw_cfg)
37 note over fconf: use staticaly defined policies in bl1
38 fconf <- bl_common : image_info
39 deactivate bl_common
40 note over fconf : get tb_fw_config_dtb from image_info
41 fconf -> plat_bl1_common : bl1_plat_get_image_desc(BL2_IMAGE_ID)
42 fconf <- plat_bl1_common : BL2_IMAGE_DESC
43 note over fconf
44 set ep_info.args.arg0 of BL2_IMAGE_DESC
Louis Mayencourt13a97a22020-03-27 11:02:05 +000045 to FW_CONFIG base address
Louis Mayencourt8ac387c2019-11-08 15:09:15 +000046 end note
47arm_bl1_setup <- fconf
48deactivate fconf
49
50== load & auth, prepare and jump to BL2 ==
51
52@enduml