aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2023-02-15Add documentation about required Linux kernel version23.02-rc223.02Kristofer Jonsson
Change-Id: Id5349a7668ff7ce4d23730d98aa9bd5032a1ece2
2023-02-14Update documentation about AMP communicationKristofer Jonsson
Change-Id: I3d7926cb16b613f588ef33944546df394193160e
2023-02-08Removing core interface23.02-rc1Kristofer Jonsson
The Ethos-U kernel driver has been converted into a rpmsg driver and the ethosu_core_interface.h has been replaced by ethsou_core_rpmsg.h. Change-Id: If6db8c20cd88e950545eed561ed95c067157d061
2023-02-02Create device for Ethos-U kernel driverKristofer Jonsson
When the Ethos-U kernel driver is probed it creates a /dev/ethosu<nr> device node, which user space use ioctl to communicate with. When the driver is removed the Ethos-U resources must live on until all open file handles have been closed. The rpmsg device can be removed for a number of reasons, for example if the firmware is stopped or the remoteproc driver is removed. To allow the remove to complete without waiting for all file handles to close, a new 'struct device' is created by the kernel driver. This device will be used to memory allocations and will live on until the last file handle has been closed. Change-Id: I790d8219960f25fe64f58c11a865eb65c7b08974
2023-02-02Break circulare dependency on struct ethosu_deviceKristofer Jonsson
The 'struct ethosu_device' has been passed as argument to classes. This creates a circular dependency dependency and it gives all classes full visibility to all resources in the device struct. This patch removes the circular dependency. Using device_lock() and device_unlock() to for synchronization. Change-Id: I8322e6530c72d7bd67f48f411b4f14b612be2706
2023-02-02Converting Ethos-U driver to rpmsgKristofer Jonsson
The Ethos-U kernel driver has been converted from a platform driver with a custom firmware interface into a rpmsg driver. Change-Id: I9ae449f5e79eb02924e6630611d0893e5fec86be
2023-02-02Removing watchdog and resetKristofer Jonsson
Removing watchdog and firmware reset as a preparations for the migrations to rpmsg. Change-Id: Ic1053e3f4301ecadbde8c59dbaed437625a0a5ea
2023-02-02Add rpmsg capabilities to remoteprocKristofer Jonsson
Tie in mbox and reset driver and add support for virtio carveouts. Also move the reserved mem for device mem to the remoteproc node. Change-Id: I7e8878d32ae7c02d5b43198e45652e77f8ff79ca
2023-01-16Updating .gitignoreKristofer Jonsson
Change-Id: If27999db4f18355b571b67e5e5d663a703c3f6a3
2023-01-16Add rpmsg interfaceKristofer Jonsson
Change-Id: Id70e249448cea13cb9273d68c91080342d5c5973
2022-12-19Add custom cross compilation documentationJonny Svärd
Change-Id: I1ab89146bf897c4c35180ab09f08064511f573f8
2022-11-04Update README how to contribute22.11-rc222.11Kristofer Jonsson
Change-Id: I69d0acf67327424809397f5fcf236b99bc980d71
2022-10-25Added Python interface for Arm Ethos-U NPU driver library.22.11-rc1Kshitij Sisodia
Python `ethosu_driver` could be built as part of Arm Ethos-U Linux driver library CMake flow. See driver_library/python/README.md for more details. Change-Id: I177a890add5c13df9a839f4f43621f972afe5ab1 Signed-off-by: Kshitij Sisodia <kshitij.sisodia@arm.com>
2022-10-25Add list of files to be ignored from inclusive language scanningLedion Daja
Change-Id: Ib21a9692e0a8f78cf584ab6ee3fadc0568822e88
2022-09-08Add cancel inference testsDavide Grohmann
These tests are run with a special custom firmware Change-Id: I0dfcae1fbaa1287d4b52fd8f6c802bebb5248d3b
2022-08-29Add linux_driver_stack testsDavide Grohmann
Change-Id: I303f1424eb46576847312672f7ed5ac03c05aee1
2022-08-25Remove sgm775 supportDavide Grohmann
That platform has been replaced by Corstone-1000 Change-Id: I2dd6e190cbbc84c02f101bd6214c802585d8ca25
2022-06-30Improved logging22.08-rc222.08-rc122.08Kristofer Jonsson
Add logging class for driver library. Log severity can be configured using an environment variable. Add information to prints in kernel space. Change-Id: I19a1078869733746726515a6cafb79110314066d
2022-06-30Fix bug in inference releaseKristofer Jonsson
Once the inference file descriptor has been created the inference release must be handled by the file descriptor release callback. Change-Id: Ic514983e85821ea3893e11c5c682610f67d1ae31
2022-06-29Bug fix for queue capacity calculationKristofer Jonsson
Reduce queue capacity by one byte, else it will not be possible to distinguish between an empty and full queue. Change-Id: Ia243a7175833826dc816d536cc79ac5a252f3e3a
2022-06-29Return network info error codeKristofer Jonsson
The error code from the core side was not correctly propagated to user space. Change-Id: I40e502f8dc3a77de064f441beeb62603d013e318
2022-06-29Add missing padding to core interfaceKristofer Jonsson
The padding is important to separate the read- and write indices by at least one cache line, to prevent cache clean and invalidation to corrupt data for the remote CPU. Change-Id: I1d50ac6c63ef4cb3e11b0c293aefaac34ac8eb1f
2022-06-01reset controller driver for corstone1000 ESPer Åstrand
Add reset controller driver for external system. The driver is instantiated for each subsystem reset needed to control. Change-Id: I481e56124de30b807858ca3f5fe8f78fc18502ce
2022-05-24Update uapi definition for capability requestPer Åstrand
ETHOSU_IOCTL_CAPABILITIES_REQ is a read ioctl with a parameter. Change-Id: Ife20d4de86351053600e6c6ba174dc40896f0aef
2022-05-23Use ids for identifying messages sent to EthosU firmwareDavide Grohmann
Avoid to use pointers to kernel memory as identify messages, prior this change, if memory is reused that can lead to unexpected conflicts. Remove ref counting from capabilities and network_info since memory is freed in only one place. Finally, extract the capabilities code in its own files. Change-Id: I9ab7257f3ab85fa3347be65b3739e0daf9b5a441
2022-05-19Add sentinel entry to dt array22.05-rc322.05-rc222.05Per Åstrand
Change-Id: Ic5d98c108593a16034c7dbc18043bbee13c31833
2022-05-18Check size of buffer before allocatingPer Åstrand
Avoid undefined behaviour from calling dma_alloc_coherent with requested size=0 as reported by UBSAN. Change-Id: I1732759464f1d88259edeea099b1729f4ae6b86f
2022-05-18Replace usage of forbidden strncpy with strscpyDavide Grohmann
strscpy copies max destination size -1 chars and ensures NULL termination. It also return an error if the destination buffer is too small. Change-Id: I88e9e5020b2b26ca50c12ae845dad070855a8bde
2022-05-09Reset firmware when inference cancellation fails22.05-rc1Davide Grohmann
If an inference fails to be cancelled and it is still in a pending state, reset the whole firmware. Indeed the assumption is that something is at fault on the firmware side and it is not progressing. Change-Id: I2f568b2167d86cda3cb96a5e83551b018f5fc55d
2022-05-05Add support for inference cancellationDavide Grohmann
Send cancel inference messages to the ethosu subsystem to abort inference execution there. Also mark inference as aborted in the linux driver stack itself, so pending inference messages are not resent when resetting the firmware. Change-Id: I244c2b119fd7995d14e3859815abf2a00c7f0583
2022-05-02Add support for rejected inference responsesDavide Grohmann
Change-Id: I62e13df69c712ed4cf70766429b4cb13fc9c9dcb
2022-04-27Adapt remoteproc module for more kernel versionsPer Åstrand
The .da_to_va has different signatures for different kernel versions. Add kernel version checks to pick the correct one. Change-Id: Ie25c496aa646119526867c91f244f9ad195860cd
2022-04-26CoverageKristofer Jonsson
Add scripts for gathering coverage data on target, and analyzing coverage info on host. Change-Id: I3bb2d0ec3757ce077638a8780779daa84cd48686
2022-04-26Fix: always close fd when destructing buffersDavide Grohmann
Also always rethrow exceptions not swallow them Change-Id: I7a4b1e408858aa0d0128ca7bd6d6a7715662f9fb
2022-04-12Drop tflite and flatbuffer dependenciesDavide Grohmann
There is not real need for the linux_driver_stack to know about tflite and flatbuffers. A better approach is to just pass the buffer to the firmware to be processes, i.e., either parsed or executed. This solves issues when linux_driver_stack and firmware are not in sync with the same library versions. Change-Id: I9b2a12e69f37f61b1ac594433a15883fb1c67b9c
2022-04-04Reset firmwareKristofer Jonsson
Reset the firmware if it becomes unresponsive. Use ping to send keep alive requests. Only monitor ping and inference request messages. The other messages pass no resources to the firmware and can be cancelled without resetting the firmware. Change-Id: Ifbcc370f02d79a64f25598f11376a1dc84a7a066
2022-03-23Kernel watchdog timeoutKristofer Jonsson
Implement kernel watchdog that detects when firmware becomes unresponsive. Change-Id: I5c5b58a56a2ce629e1fd7cabae83b61823239ea6
2022-03-14Network infoKristofer Jonsson
Add UAPI and core message that allows user space space to fetch information about network models built into the firmware. Change-Id: Ic92529bce3edd0a5499e691a566bd065da2a72ad
2022-03-10Firmware resident modelKristofer Jonsson
Support referencing a network model by index that has been built into the firmware binary. Change-Id: Idd5294376ea82503dfeafe1203dcc0694d296dfe
2022-01-17Updating tflite schema22.02-rc322.02-rc222.02-rc122.02Kristofer Jonsson
Change-Id: Iaf878efcbe42d7a658a76db868806114df9e4b27
2021-12-17Support up to 8 PMU countersJonny Svärd
Change-Id: Ia470d230b4bce152f88ab735e0a2ad2cdba80226
2021-12-16Corstone700 Kernel modules build fix.Lior Dekel
JIRA: MLBEDSW-5531 Change-Id: Ib4b6b6b0ee3995bb01029d561c4cf7eed981a303
2021-12-14const:ify userspace driver libraryPer Åstrand
Change-Id: I965a6f4c42fca1b3b4493e7eef3cbb75e236fe3a
2021-11-23Add support for int32 in inference_runner21.11Henrik Hoglind
Change-Id: Ic4605a22547ab797c638bfddd9719c69d495da75
2021-11-23linux_driver_stack: ethosu_remoteproc.c:122:14: error: initialization from ↵Nir Ekhauz
incompatible pointer type Change-Id: I50396299f4d9878bb0b43ea5acd06951e4df698e
2021-11-15Verify that dma buffer fits in the mapped range21.11-rc321.11-rc2Per Åstrand
Change-Id: I1ad92264eb5dae672faf3f5b08a6f987148f629e
2021-11-15Fix: do not leak file descriptors on errorsDavide Grohmann
When bailing out on errors in the constructors of Buffers or Networks, the open file descriptor should be closed since the descructor will never be called. Change-Id: I8e1954e9efd65b594cc9544e18d0bfbe0730f156
2021-11-11Documentation updates21.11-rc1Kristofer Jonsson
Adding note about that a configured Linux kernel source tree is required to build the kernel drivers. Change-Id: I3a4c7fd20e24731864b768051f2ce1f5714b5535
2021-11-02Add support for ID 0x20112 of FPGA reset ctrlPer Åstrand
Change-Id: I5a87686aa2b4ebf7d9d6202a6c4852d34be5f9e4
2021-11-01Increase message timeoutPer Åstrand
Bump the hardcoded timeout value to allow for userspaces process to be scheduled and receive the response from the capabilities request. Change-Id: Ia2c8a0554870cf8470a2bb40bf8ed450c10f8446