diff options
author | Kristofer Jonsson <kristofer.jonsson@arm.com> | 2021-06-02 17:15:57 +0200 |
---|---|---|
committer | Kristofer Jonsson <kristofer.jonsson@arm.com> | 2021-06-10 11:35:45 +0200 |
commit | 0c79f896caf1a0ac16dd92810c4b15bfff00bdb3 (patch) | |
tree | d831c0a297894065865ecd680a4ccaeb67859d39 /docs/driver_library_sequence.puml | |
parent | 2c01713dbeba8446b135ef19fc443b6abe098210 (diff) | |
download | ethos-u-linux-driver-stack-0c79f896caf1a0ac16dd92810c4b15bfff00bdb3.tar.gz |
Adding documentation
Adding documentation, component- and sequence diagrams how the driver
library and kernel driver work.
Change-Id: I4e71b5e1f5d926386efe8f103a0f4fbc8636a494
Diffstat (limited to 'docs/driver_library_sequence.puml')
-rw-r--r-- | docs/driver_library_sequence.puml | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/docs/driver_library_sequence.puml b/docs/driver_library_sequence.puml new file mode 100644 index 0000000..adac2f9 --- /dev/null +++ b/docs/driver_library_sequence.puml @@ -0,0 +1,79 @@ +@startuml + +skinparam backgroundColor #FEFEFE + +box "Application" #0091BD +participant "main()" as main +end box + +box "Driver library" #00C1DE +participant "Device" as ddev +participant "Buffer" as dbuf +participant "Network" as dnet +participant "Inference" as dinf +end box + +box "Kernel driver" #7D868C +participant "Device" as kdev +participant "Buffer" as kbuf +participant "Network" as knet +participant "Inference" as kinf +end box + +note over ddev + Create device +end note +activate main +main -> ddev++: Device() + ddev -> kdev++: open(<device node>) + return file descriptor +return + +note over dnet + Allocate and fill network buffer +end note + +main -> dbuf++: Buffer(device) + dbuf -> kbuf++: ioctl(BUFFER_CREATE) + return file descriptor +return + +note over dnet + Create network, parse network model +end note + +main -> dnet++: Network(device, buffer) + dnet -> knet++: ioctl(NETWORK_CREATE) + return file descriptor + + dnet -> dnet: Parse network model +return + +loop Allocate and fill IFM buffers + main -> dbuf++: Buffer(device) + dbuf -> kbuf++: ioctl(BUFFER_CREATE) + return file descriptor + return +end loop + +loop Allocate OFM buffers + main -> dbuf++: Buffer(device) + dbuf -> kbuf++: ioctl(BUFFER_CREATE) + return file descriptor + return +end loop + +note over dinf + Create and run inference +end note +main -> dinf++: Inference(network, ifm, ofm) + dinf -> kinf++: ioctl(INFERENCE_CREATE) + return file descriptor +return + +main -> dinf++: wait(file descriptor) + dinf -> kinf++: poll(file descriptor) + return +return + +@enduml |