aboutsummaryrefslogtreecommitdiff
path: root/remoteproc
AgeCommit message (Collapse)Author
2024-04-16Change remoteproc to map ROM as device memoryMikael Olsson
The ROM is memory attached to the remote processor and should be mapped as device memory rather than normal memory to ensure memory transactions are handled correctly. To ensure this, the remoteproc driver will now map the ROM as device memory. Change-Id: I1b5f1dcd7af06bb9e1656f653d65813f7af424c3 Signed-off-by: Mikael Olsson <mikael.olsson@arm.com>
2023-11-14Make all kernel module Sparse warnings into errors23.11-rc2Mikael Olsson
The CMake files for the kernel modules have been updated to treat all Sparse warnings as errors so that warnings cause the build to fail. Change-Id: I3682afc3beea7244bb6e0831b2baf48b95611dbc Signed-off-by: Mikael Olsson <mikael.olsson@arm.com>
2023-11-14Fix device id data ptr using 0 instead of NULLMikael Olsson
In some of the kernel modules, 0 is used instead of NULL to indicate that there is no data in the of_device_id struct. These instances have now been replaced with NULL instead. Change-Id: I14f4aabf266bb5144107e101006e257bb7876782 Signed-off-by: Mikael Olsson <mikael.olsson@arm.com>
2023-11-14Make internal functions static in kernel modulesMikael Olsson
Internal functions in some of the kernel modules were not marked as static and have now been fixed. Change-Id: Ibec000e4370f2438e7190a9178e05513fcccda26 Signed-off-by: Mikael Olsson <mikael.olsson@arm.com>
2023-11-14Fix iomem pointer usage with rproc_mem_entry_initMikael Olsson
The carveout memory is being mapped with one of the ioremap functions that returns a iomem pointer and should normally only be passed to functions that request iomem pointers because they shouldn't be dereferenced. Currently, the iomem pointer is passed to rproc_mem_entry_init that is expecting a normal pointer and Sparse is generating a warnings about this. However, rproc_mem_entry_init won't dereference the pointer and can handle any pointer type so the iomem attribute is cast away when setting up the mem entry and the io_mem flag is set to indicate a iomem pointer. To ensure that the mapping is correctly managed, the mapping and unmapping is now handled with the callback functions for rproc_mem_entry_init instead of holding onto the mapping forever. Change-Id: I511a9a16f110a23490141dd3db943244e0f978e2 Signed-off-by: Mikael Olsson <mikael.olsson@arm.com>
2023-11-01Add Sparse checking to kernel module buildsMikael Olsson
Sparse is a semantic checker for C that can help find potential issues in the kernel module code. To make use of the tool, the CMake files for the kernel modules have been updated to enable the tool to run on all the kernel module source files before they are built. Change-Id: I114920448763b69eb0bdfb9ab6ec51ea8b940881 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-10-06Add -Werror to kernel module buildsMikael Olsson
To ensure that no compilation warnings goes unnoticed, the kernel modules are now built with the -Werror flag so all warnings are treated as errors. Change-Id: Id688052bd297e366ab7ca07c508ca697ca03431e Signed-off-by: Mikael Olsson <mikael.olsson@arm.com>
2023-10-06Fix C90 declaration order warning in remoteprocMikael Olsson
A "declaration-after-statement" warning is generated when building the remoteproc driver because C90 doesn't allow variables to be declared after a statement in a scope. To resolve this, the order of the variables at the start of the problematic scope have been reordered to comply with C90. Change-Id: Id7fec564858168fd71cd10af9c99340691484b89 Signed-off-by: Mikael Olsson <mikael.olsson@arm.com>
2023-09-25Add resource table entry for address translationMikael Olsson
To avoid having to use a hardcoded memory map to translate between the Linux physical addresses to device addresses in the firmware, a new entry type has been added to the resource table that allows the NPU remoteproc driver to provide the memory map to the firmware. With this change, the device tree layout has been changed to wrap the ethosu-rproc node with an ethosu parent node that represents the NPU subsystem. This makes it possible to use the APIs provided by the Linux kernel to perform address translation etc. The "ethosu,dma-ranges" property has been removed from ethosu-proc because the ethosu parent node provides information for how to translate between the Linux Kernel physical addresses and device addresses with a "dma-ranges" property. Change-Id: I48719ee808a5e9391c5a3e967042d26dd92d5026 Signed-off-by: Mikael Olsson <mikael.olsson@arm.com>
2023-09-15Add support for new Juno FPGA reset controllerMikael Olsson
Support for a new reset controller that identifies itself with ID 0x20113 has been added in the Juno FPGA reset driver. The driver version has been given a minor version bump to indicate the new support. Change-Id: Ife21d8b2c97d68eea3c4780c4124aac136b36c0b Signed-off-by: Mikael Olsson <mikael.olsson@arm.com>
2023-09-15Fix code style in Juno FPGA reset driverMikael Olsson
There were some places in the Juno FPGA reset driver that did not follow the Linux kernel code style which have now been fixed. Change-Id: I0316b23b99fde05068ba5e50442a6cb5b5ea8214 Signed-off-by: Mikael Olsson <mikael.olsson@arm.com>
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
2022-08-25Remove sgm775 supportDavide Grohmann
That platform has been replaced by Corstone-1000 Change-Id: I2dd6e190cbbc84c02f101bd6214c802585d8ca25
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-19Add sentinel entry to dt array22.05-rc322.05-rc222.05Per Åstrand
Change-Id: Ic5d98c108593a16034c7dbc18043bbee13c31833
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
2021-12-16Corstone700 Kernel modules build fix.Lior Dekel
JIRA: MLBEDSW-5531 Change-Id: Ib4b6b6b0ee3995bb01029d561c4cf7eed981a303
2021-11-23linux_driver_stack: ethosu_remoteproc.c:122:14: error: initialization from ↵Nir Ekhauz
incompatible pointer type Change-Id: I50396299f4d9878bb0b43ea5acd06951e4df698e
2021-11-02Add support for ID 0x20112 of FPGA reset ctrlPer Åstrand
Change-Id: I5a87686aa2b4ebf7d9d6202a6c4852d34be5f9e4
2021-09-30Add Juno FPGA reset kernel modulePer Åstrand
Change-Id: I93708d609d77484770bd4cea9c4a7cf86361c5ea
2021-06-21Use remoteproc for controlling Ethos-U cpuPer Åstrand
Implement a remoteproc driver for controlling firmware loading and powering up and down of the CPU on a Ethos-U subsystem. Change-Id: I075d24c780b306aa8152c4a9e24a31df29574f9e
2021-06-21Implement reset handler for remoteprocPer Åstrand
Use the reset controller driver mechanism to control the Ethos-U subsystem remoteproc driver. Change-Id: If180d5b922f8b1cd245af7f922911c17ecd313a3