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