1@startuml
2
3participant bl_common
4participant arm_io_storage
5participant io_storage
6
7== Platform Setup ==
8
9bl1_main -> xxx_bl1_setup : bl1_platform_setup()
10xxx_bl1_setup -> arm_io_storage : plat_arm_io_setup()
11
12arm_io_storage -> arm_io_storage : arm_io_setup()
13ref over arm_io_storage, io_storage : io device registration
14
15== Get Image ==
16bl1_main -> xxx_bl1_setup : bl1_plat_get_next_image_id()
17bl1_main <-- xxx_bl1_setup : BL2_IMAGE_ID
18
19bl1_main -> bl1_main : bl1_load_bl2()
20activate bl1_main
21bl1_main -> plat_bl1_common : bl1_plat_get_image_desc(BL2_IMAGE_ID)
22bl1_main <-- plat_bl1_common : BL2_IMAGE_DESC
23
24bl1_main -> plat_bl1_common : bl1_plat_handle_pre_image_load(BL2_IMAGE_ID)
25
26bl1_main -> bl_common : load_auth_image(BL2_IMAGE_ID, image_info)
27activate bl_common
28bl_common -> bl_common : load_auth_image_internal(BL2_IMAGE_ID, image_info, is_parent_image)
29activate bl_common
30bl_common -> bl_common : load_image(BL2_IMAGE_ID, image_info)
31activate bl_common
32bl_common -> arm_io_storage : plat_get_image_source(BL2_IMAGE_ID, &dev_handle, &image_spec)
33ref over arm_io_storage, io_storage : init and check device (BL2_IMAGE_ID)
34bl_common <-- arm_io_storage : dev_handle
35
36bl_common -> io_storage : io_open(dev_handle, image_spec, &image_handle)
37ref over io_storage : io_open() on fip device
38bl_common <-- io_storage : image_handle
39bl_common -> io_storage : io_size(image_handle, &image_size)
40ref over io_storage : io_size() on fip device
41bl_common -> io_storage : io_read(image_handle, image_base, image_size, &bytes_read)
42ref over io_storage : io_read() on fip device
43bl_common -> io_storage : io_close(image_handle)
44ref over io_storage : io_close() on fip device
45bl_common -> io_storage : io_dev_close(dev_handle)
46ref over io_storage : io_dev_close() on fip device
47
48deactivate bl_common
49deactivate bl_common
50deactivate bl_common
51
52== Prepare Next Image ==
53bl1_main -> plat_bl1_common : bl1_plat_handle_post_image_load(BL2_IMAGE_ID)
54
55deactivate bl1_main
56
57== Jump to next Image ==
58
59@enduml
60