arm-trusted-firmware/docs/resources/diagrams/plantuml/io_dev_registration.puml

53 lines
1.3 KiB
Plaintext

@startuml
participant arm_io_storage order 1
participant io_storage order 2
participant io_fip order 3
participant io_memmap order 4
-> arm_io_storage : arm_io_setup()
group io dev registration
arm_io_storage -> io_fip : register_io_dev_fip(&fip_dev_con)
io_fip -> io_storage : io_register_device(&dev_info_pool[])
note over io_storage
devices[dev_count] = (fip_)dev_info_pool
dev_count++
end note
arm_io_storage -> io_memmap : register_io_dev_memmap(&memmap_dev_con)
io_memmap -> io_storage : io_register_device(&memmap_dev_info)
note over io_storage
devices[dev_count] = memmap_dev_info
dev_count++
end note
arm_io_storage -> io_storage : io_dev_open(fip_dev_con, NULL, fip_dev_handle)
io_storage -> io_storage : dev_open(dev_con, dev_spec, handle)
activate io_storage
opt dev_open() on fip device
io_storage -> io_fip : fip_dev_open(dev_spec, dev_info)
note over io_fip
dev_info = one of the
"fip_dev_info" from
dev_info_pool[]
end note
end opt
deactivate io_storage
arm_io_storage -> io_storage : io_dev_open(memmap_dev_con, NULL, memmap_dev_handle)
io_storage -> io_storage : dev_open(dev_con, dev_spec, handle)
activate io_storage
opt dev_open() on memmap device
io_storage -> io_memmap : memmap_dev_open(dev_spec, dev_info)
note over io_memmap
dev_info = memmap_dev_info
end note
end opt
deactivate io_storage
end group
@enduml