blob: b7289a2462fd48aef8309f8f177edfc9958991be [file] [log] [blame]
Louis Mayencourtb5469002019-07-15 13:56:03 +01001@startuml
2
Sandrine Bailleux03b274c2019-10-28 14:02:51 +01003participant arm_io_storage
4participant io_storage
Louis Mayencourtb5469002019-07-15 13:56:03 +01005
6 -> arm_io_storage : plat_get_image_source(image_id, &dev_handle, &image_spec)
7
8group init and check device (image_id)
9
10alt image_id = BL2_IMAGE_ID
11note over arm_io_storage
12 get BL2_IMAGE_ID policy:
13 - fip_dev_handle
14 - open_fip()
15end note
16opt policy->check()
17 arm_io_storage -> arm_io_storage : open_fip(spec)
18 activate arm_io_storage
19 arm_io_storage -> io_storage : io_dev_init(fip_dev_handle, FIP_IMAGE_ID)
20 ref over io_storage : dev_init() on fip device
21
22 arm_io_storage -> io_storage : io_open(fip_dev_handle, spec, &local_image_handle)
23 ref over io_storage : io_open() on fip device
24
25 arm_io_storage -> io_storage : io_close(local_image_handle)
26 ref over io_storage : io_close() on fip device
27
28 hnote over arm_io_storage
29 fip_dev_handle ready
30 end note
31end opt
32deactivate arm_io_storage
33
34else image_id = FIP_IMAGE_ID
35activate arm_io_storage
36note over arm_io_storage
37 get FIP_IMAGE_ID policy:
38 - memmap_dev_handle
39 - open_memmap()
40end note
41opt policy->check()
42 arm_io_storage -> arm_io_storage : open_memmap(spec)
43 activate arm_io_storage
44 arm_io_storage -> io_storage : io_dev_init(memmap_dev_handle, NULL)
45 ref over io_storage : dev_init() on memmap device
46
47 arm_io_storage -> io_storage : io_open(memmap_dev_handle, spec, &local_image_handle)
48 ref over io_storage : io_open() on memmap device
49
50 arm_io_storage -> io_storage : io_close(local_image_handle)
51 ref over io_storage : io_close() on memmap device
52
53 hnote over arm_io_storage
54 memmap_dev_handle ready
55 end note
56 deactivate arm_io_storage
57end opt
58deactivate arm_io_storage
59end alt
60
61end group
62@enduml