xref: /rk3399_ARM-atf/docs/resources/diagrams/plantuml/io_dev_registration.puml (revision dbeace10275f999af0defb4f5980292bcd9dd0ab)
1*dbeace10SLouis Mayencourt@startuml
2*dbeace10SLouis Mayencourt
3*dbeace10SLouis Mayencourtparticipant arm_io_storage order 1
4*dbeace10SLouis Mayencourtparticipant io_storage order 2
5*dbeace10SLouis Mayencourtparticipant io_fip order 3
6*dbeace10SLouis Mayencourtparticipant io_memmap order 4
7*dbeace10SLouis Mayencourt
8*dbeace10SLouis Mayencourt -> arm_io_storage : arm_io_setup()
9*dbeace10SLouis Mayencourt
10*dbeace10SLouis Mayencourtgroup io dev registration
11*dbeace10SLouis Mayencourt
12*dbeace10SLouis Mayencourtarm_io_storage -> io_fip : register_io_dev_fip(&fip_dev_con)
13*dbeace10SLouis Mayencourtio_fip -> io_storage : io_register_device(&dev_info_pool[])
14*dbeace10SLouis Mayencourtnote over io_storage
15*dbeace10SLouis Mayencourt	devices[dev_count] = (fip_)dev_info_pool
16*dbeace10SLouis Mayencourt	dev_count++
17*dbeace10SLouis Mayencourtend note
18*dbeace10SLouis Mayencourt
19*dbeace10SLouis Mayencourtarm_io_storage -> io_memmap : register_io_dev_memmap(&memmap_dev_con)
20*dbeace10SLouis Mayencourtio_memmap -> io_storage : io_register_device(&memmap_dev_info)
21*dbeace10SLouis Mayencourtnote over io_storage
22*dbeace10SLouis Mayencourt	devices[dev_count] = memmap_dev_info
23*dbeace10SLouis Mayencourt	dev_count++
24*dbeace10SLouis Mayencourtend note
25*dbeace10SLouis Mayencourt
26*dbeace10SLouis Mayencourtarm_io_storage -> io_storage : io_dev_open(fip_dev_con, NULL, fip_dev_handle)
27*dbeace10SLouis Mayencourt io_storage -> io_storage : dev_open(dev_con, dev_spec, handle)
28*dbeace10SLouis Mayencourtactivate io_storage
29*dbeace10SLouis Mayencourtopt dev_open() on fip device
30*dbeace10SLouis Mayencourt	io_storage -> io_fip : fip_dev_open(dev_spec, dev_info)
31*dbeace10SLouis Mayencourt	note over io_fip
32*dbeace10SLouis Mayencourt		dev_info = one of the
33*dbeace10SLouis Mayencourt		"fip_dev_info" from
34*dbeace10SLouis Mayencourt		dev_info_pool[]
35*dbeace10SLouis Mayencourt	end note
36*dbeace10SLouis Mayencourtend opt
37*dbeace10SLouis Mayencourtdeactivate io_storage
38*dbeace10SLouis Mayencourt
39*dbeace10SLouis Mayencourt
40*dbeace10SLouis Mayencourtarm_io_storage -> io_storage : io_dev_open(memmap_dev_con, NULL, memmap_dev_handle)
41*dbeace10SLouis Mayencourtio_storage -> io_storage : dev_open(dev_con, dev_spec, handle)
42*dbeace10SLouis Mayencourtactivate io_storage
43*dbeace10SLouis Mayencourtopt dev_open() on memmap device
44*dbeace10SLouis Mayencourt	io_storage -> io_memmap : memmap_dev_open(dev_spec, dev_info)
45*dbeace10SLouis Mayencourt	note over io_memmap
46*dbeace10SLouis Mayencourt		dev_info = memmap_dev_info
47*dbeace10SLouis Mayencourt	end note
48*dbeace10SLouis Mayencourtend opt
49*dbeace10SLouis Mayencourtdeactivate io_storage
50*dbeace10SLouis Mayencourt
51*dbeace10SLouis Mayencourtend group
52*dbeace10SLouis Mayencourt@enduml
53