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