|
|
@ -13,6 +13,7 @@ end box |
|
|
|
|
|
|
|
box "platform common code" |
|
|
|
participant plat_bl1_common |
|
|
|
participant fconf_dyn_cfg_getter |
|
|
|
participant fconf |
|
|
|
end box |
|
|
|
|
|
|
@ -20,12 +21,17 @@ 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 |
|
|
|
arm_bl1_setup -> fconf : fconf_load_config() |
|
|
|
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 |
|
|
|
activate fconf |
|
|
|
note over fconf |
|
|
|
create and populate an |
|
|
|
image_desc_t for FW_CONFIG |
|
|
|
end note |
|
|
|
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 |
|
|
|
fconf -> bl_common : load_auth_image(FW_CONFIG_ID, &image_info) |
|
|
|
activate bl_common |
|
|
|
note over bl_common |
|
|
@ -33,18 +39,38 @@ activate fconf |
|
|
|
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_cfg) |
|
|
|
note over fconf: use staticaly defined policies in bl1 |
|
|
|
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 |
|
|
|
fconf <- bl_common : image_info |
|
|
|
deactivate bl_common |
|
|
|
note over fconf : get tb_fw_config_dtb from image_info |
|
|
|
fconf -> plat_bl1_common : bl1_plat_get_image_desc(BL2_IMAGE_ID) |
|
|
|
fconf <- plat_bl1_common : BL2_IMAGE_DESC |
|
|
|
note over fconf |
|
|
|
set ep_info.args.arg0 of BL2_IMAGE_DESC |
|
|
|
to FW_CONFIG base address |
|
|
|
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 |
|
|
|
end note |
|
|
|
arm_bl1_setup <- fconf |
|
|
|
deactivate fconf |
|
|
|
|
|
|
|
== load & auth, prepare and jump to BL2 == |
|
|
|