aboutsummaryrefslogtreecommitdiff
path: root/kernel/ethosu_driver.c
AgeCommit message (Collapse)Author
2024-02-12Restructure kernel driver source treeMikael Olsson
As a first step to have a clearer separation of the different parts of the kernel driver, the source files have been placed into separate directories according to their purpose and the different parts are only allowed to use headers from another part in the include folder. Files have been renamed accordingly to namespace them by their purpose. Change-Id: I75e09ebf0002c99a22b6d4b09d34504d186c32b3 Signed-off-by: Mikael Olsson <mikael.olsson@arm.com>
2023-11-01Decrease log verbosity in the kernel modulesLedion Daja
Changed several logs level from info to dbg and removed redundant or uninformative logging in order to reduce verbosity of the kernel modules. Change-Id: Ie9ff7f3ae6478007ea58547380b3ddfef5d280b4 Signed-off-by: Ledion Daja <ledion.daja@arm.com>
2023-08-09Add kernel driver version to UAPIMikael Olsson
The kernel driver's version is now exposed in the UAPI so the UAPI user can validate that they are compatible with the kernel driver in use. Change-Id: I52d096dfaedb8c3c1889d27a907626be96779ee7 Signed-off-by: Mikael Olsson <mikael.olsson@arm.com>
2023-07-31Change NPU kernel driver to use async probingMikael Olsson
If the rpmsg channel to communicate with the subsystem is not available until after the NPU kernel driver has been registered, the driver's probe function will be called from the rpmsg message receive callback and block handling of any other messages until the probing is done. To avoid blocking the callback while performing the probing and to allow the probe to communicate with the subsystem, the kernel driver will now request that its probe function is called asynchronously. Change-Id: Iaeaa4a2322f6a76c0acd202e69b91a8beeb6114b Signed-off-by: Mikael Olsson <mikael.olsson@arm.com>
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
2022-03-10Firmware resident modelKristofer Jonsson
Support referencing a network model by index that has been built into the firmware binary. Change-Id: Idd5294376ea82503dfeafe1203dcc0694d296dfe
2021-10-18Use minor number for device nodeKristofer Jonsson
Allocate a range of minor numbers and use the minor number as index when creating the /dev/ethosu<nr> device node. Change-Id: I76c2a3995ff5087e42a4e95945eb884a4bfb58f6
2020-08-27Initial commit20.08-rc220.08Kristofer Jonsson
Change-Id: I14b6becc908a0ac215769c32ee9c43db192ae6c8