- 02 9月, 2017 1 次提交
-
-
由 Bjorn Andersson 提交于
In certain circumstances rpmsg devices needs to acquire a handle to the ancestor remoteproc instance, e.g. to invoke rproc_report_crash() when a fatal error is detected. Introduce an interface that walks the device tree in search for a remoteproc instance and return this. Tested-by: NSuman Anna <s-anna@ti.com> Signed-off-by: NBjorn Andersson <bjorn.andersson@linaro.org>
-
- 31 8月, 2017 1 次提交
-
-
由 Bjorn Andersson 提交于
Subdevices might depend on earlier registered subdevices for communication purposes, as such they should be stopped in reverse order so that said communication channel is removed after the dependent subdevice is stopped. Signed-off-by: NBjorn Andersson <bjorn.andersson@linaro.org>
-
- 25 8月, 2017 1 次提交
-
-
由 Bhumika Goyal 提交于
Make this const as it is only stored in the type field of a device structure, which is const. Done using Coccinelle. Signed-off-by: NBhumika Goyal <bhumirks@gmail.com> Signed-off-by: NBjorn Andersson <bjorn.andersson@linaro.org>
-
- 27 7月, 2017 1 次提交
-
-
由 Suman Anna 提交于
The additional arguments in the internal __rproc_boot() function were dropped in commit 2bfc311a ("remoteproc: Drop wait in __rproc_boot()"). The exported rproc_boot() is now just a wrapper around this internal function, so merge them together. While at this, also remove the declaration for the previously cleaned up rproc_boot_nowait() function. Signed-off-by: NSuman Anna <s-anna@ti.com> Signed-off-by: NBjorn Andersson <bjorn.andersson@linaro.org>
-
- 31 5月, 2017 1 次提交
-
-
由 Colin Ian King 提交于
Trivial fix to spelling mistake in dev_err message Signed-off-by: NColin Ian King <colin.king@canonical.com> Signed-off-by: NBjorn Andersson <bjorn.andersson@linaro.org>
-
- 27 5月, 2017 2 次提交
-
-
由 Sarangdhar Joshi 提交于
Replace rproc_shutdown() by rproc_stop() and rproc_boot() by rproc_start() in the recovery path, in order to avoid remoteproc resources re-allocation overhead and to assist with extracting the coredumps after stopping the remote processor. Signed-off-by: NSarangdhar Joshi <spjoshi@codeaurora.org> Signed-off-by: NBjorn Andersson <bjorn.andersson@linaro.org>
-
由 Sarangdhar Joshi 提交于
In the context of recovering from crash, rproc_trigger_recovery() does rproc_shutdown() followed by rproc_boot(). The remoteproc resources are cleaned up in rproc_shutdown() and immediately reallocated in rproc_boot() which is an unnecessary overhead. Furthermore, we want the memory regions to be accessible after stopping the remote processor, to be able to extract the memory content for a coredump. This patch factors out the code in rproc_boot() and rproc_shutdown() path and introduces rproc_{start,stop}() in order to avoid resource allocation overhead. Signed-off-by: NSarangdhar Joshi <spjoshi@codeaurora.org> Signed-off-by: NBjorn Andersson <bjorn.andersson@linaro.org>
-
- 07 2月, 2017 2 次提交
-
-
由 Sarangdhar Joshi 提交于
The functions rproc_add_virtio_devices() and rproc_fw_config_virtio() are reduced to trigger auto-boot only. Modify these function names and related comments to reflect their current state. This patch does not add any functional change. Signed-off-by: NSarangdhar Joshi <spjoshi@codeaurora.org> Signed-off-by: NBjorn Andersson <bjorn.andersson@linaro.org>
-
由 Sarangdhar Joshi 提交于
The rproc_add_virtio_devices() requests firmware asynchronously and triggers boot if the auto_boot flag is set. However, this asynchronous call seems to be redundant for non auto-boot scenario since the rproc_boot() would call request_firmware() anyways. Move the auto_boot check to rproc_add() so that a redundant call to _request_firmware can be avoided for non auto-boot case. Signed-off-by: NSarangdhar Joshi <spjoshi@codeaurora.org> Signed-off-by: NBjorn Andersson <bjorn.andersson@linaro.org>
-
- 31 1月, 2017 2 次提交
-
-
由 Sarangdhar Joshi 提交于
firmware_loading_complete is used to synchronize operations on rproc while asynchronous firmware loading is in progress. However, rproc_boot() no longer waits on firmware_loading_complete. Hence drop this completion variable altogether and handle the race between rproc_del() and rproc_boot() using new state RPROC_DELETED. The request_firmware_nowait() will hold the reference to rproc device by using a get_device()/put_device(), so the rproc struct will remain valid even when we return from rproc_del() before the asynchronous call to rproc_fw_config_virtio() completes. CC: Loic Pallardy <loic.pallardy@st.com> CC: Bjorn Andersson <bjorn.andersson@linaro.org> Signed-off-by: NSarangdhar Joshi <spjoshi@codeaurora.org> Signed-off-by: NBjorn Andersson <bjorn.andersson@linaro.org>
-
由 Sarangdhar Joshi 提交于
The "remoteproc{0,1...}" sysfs entries are added in rproc_add() and deleted in rproc_type_release() instead of in rproc_del(). That leaves these lingering entries sticking around after we return from rproc_del(). Move the rproc_delete_debug_dir() to rproc_del() to fix this. Signed-off-by: NSarangdhar Joshi <spjoshi@codeaurora.org> Signed-off-by: NBjorn Andersson <bjorn.andersson@linaro.org>
-
- 30 12月, 2016 2 次提交
-
-
由 Bjorn Andersson 提交于
Following any fw_rsc_vdev entries in the resource table are two variable length arrays, the first one reference vring resources and the second one is the virtio config space. The virtio config space is used by virtio to communicate status and configuration changes and must as such be shared with the remote. The reverted commit incorrectly made any changes to the virtio config space only affect the local copy, in an attempt to allowing memory protection of the shared resource table. This reverts commit cda85293. Signed-off-by: NBjorn Andersson <bjorn.andersson@linaro.org>
-
由 Loic Pallardy 提交于
Commit 2b45cef5 ("remoteproc: Further extend the vdev life cycle") extends kref support for vdev management. It introduces a regression when following sequence is executed: rproc_boot --> rproc_shutdown --> rproc_boot Second rproc_boot call crashes on register_virtio_device as device is already existing. Issue is previous vdev is never released when rproc is stop because associated refcount is too high. kref_get introduces is not needed as kref_init already initializes krefcount to 1 because it considers associated variable as used. This introduces a misalignment between kref_get and kref_put calls. Fixes: 2b45cef5 ("remoteproc: Further extend the vdev life cycle") Signed-off-by: NLoic Pallardy <loic.pallardy@st.com> Signed-off-by: NBjorn Andersson <bjorn.andersson@linaro.org>
-
- 10 12月, 2016 2 次提交
-
-
由 Bjorn Andersson 提交于
In the event that rproc_boot() is called before the firmware loaded completion has been flagged it will wait with the mutex held, obstructing the request_firmware_nowait() callback from completing the wait. As rproc_fw_config_virtio() has been reduced to only triggering auto-boot there is no longer a reason for waiting in rproc_boot(), so drop this. Cc: Sarangdhar Joshi <spjoshi@codeaurora.org> Signed-off-by: NBjorn Andersson <bjorn.andersson@linaro.org>
-
由 Bjorn Andersson 提交于
Warning users that remoteproc and it's binary format are under development doesn't serve much of a purpose. Different drivers support different image formats and the resource table has a version field that would need to be bumped when incompatible changes are introduced. So lets drop this warning to clean up the kernel log. Signed-off-by: NBjorn Andersson <bjorn.andersson@linaro.org>
-
- 15 11月, 2016 7 次提交
-
-
由 Bjorn Andersson 提交于
As all vdev resources are allocated before we boot the remote processor we no longer need to support modifying the resource table while the remote is running. This saves us from the table_ptr dance, but more importantly allow the remote processor to enable security lock down of the loaded table memory region. Signed-off-by: NBjorn Andersson <bjorn.andersson@linaro.org>
-
由 Bjorn Andersson 提交于
The vdev handler is now just another resource allocator, so handle all resource types in a single pass. Signed-off-by: NBjorn Andersson <bjorn.andersson@linaro.org>
-
由 Bjorn Andersson 提交于
Vrings are now allocated as we parse the resource table, before we boot the rproc or register any virtio devices, so it's safe to bump max_notifyid as part of this process. Signed-off-by: NBjorn Andersson <bjorn.andersson@linaro.org>
-
由 Bjorn Andersson 提交于
Represent the virtio device part of the vdev resources as remoteproc subdevices to finalize the decoupling of the virtio resource and device handling. Signed-off-by: NBjorn Andersson <bjorn.andersson@linaro.org>
-
由 Bjorn Andersson 提交于
Tie the vdev (and hence vring) life cycle to the resource parsing and resource cleanup operations, allowing us to safely register and unregister virtio devices on the go. Signed-off-by: NBjorn Andersson <bjorn.andersson@linaro.org>
-
由 Bjorn Andersson 提交于
Instead of having the vrings being allocated and freed as they are requested by the virtio device tie their life cycle to the vdev resource. This allows us to decouple the vdev resource management from the virtio device management. Signed-off-by: NBjorn Andersson <bjorn.andersson@linaro.org>
-
由 Bjorn Andersson 提交于
No functional change Signed-off-by: NBjorn Andersson <bjorn.andersson@linaro.org>
-
- 10 11月, 2016 1 次提交
-
-
由 Bjorn Andersson 提交于
A subdevice is an abstract entity that can be used to tie actions to the booting and shutting down of a remote processor. The subdevice object is expected to be embedded in concrete implementations, allowing for a variety of use cases to be implemented. Signed-off-by: NBjorn Andersson <bjorn.andersson@linaro.org>
-
- 01 11月, 2016 1 次提交
-
-
由 Matt Redfearn 提交于
This patch adds a sysfs interface to rproc allowing the firmware name and processor state to be changed dynamically. State was previously available in debugfs, and is replicated here. The firmware file allows retrieval of the running firmware name, and a new one to be specified at run time, so long as the remote processor has been stopped. Signed-off-by: NMatt Redfearn <matt.redfearn@imgtec.com> Signed-off-by: NBjorn Andersson <bjorn.andersson@linaro.org>
-
- 19 10月, 2016 1 次提交
-
-
由 Matt Redfearn 提交于
Storage of the firmware name was inconsistent, either storing a pointer to a name stored with unknown ownership, or a variable length tacked onto the end of the struct proc allocated in rproc_alloc. In preparation for allowing the firmware of an already allocated struct rproc to be changed, instead always keep a locally maintained copy of the firmware name. Signed-off-by: NMatt Redfearn <matt.redfearn@imgtec.com> Signed-off-by: NBjorn Andersson <bjorn.andersson@linaro.org>
-
- 03 10月, 2016 3 次提交
-
-
由 Bjorn Andersson 提交于
Lock the implementation as we hand out references to client drivers rather than when they try to boot the remote processor. This allows auto-booting remote processors to be shut down by unloading their module, in addition to first unbinding them. Signed-off-by: NBjorn Andersson <bjorn.andersson@linaro.org>
-
由 Bjorn Andersson 提交于
In order to be able to lock a rproc driver implementations only when used by a client, we must differ between the dereference operation of a client and the implementation itself. This patch brings no functional change. Signed-off-by: NBjorn Andersson <bjorn.andersson@linaro.org>
-
由 Bjorn Andersson 提交于
The freeing of resources will attempt to clear values previously set in the cached resource table, so make sure to free the table after we have cleaned up the resources. Fixes: 988d204c ("remoteproc: Move handling of cached table to boot/shutdown") Signed-off-by: NBjorn Andersson <bjorn.andersson@linaro.org>
-
- 20 9月, 2016 1 次提交
-
-
由 Bjorn Andersson 提交于
rproc_alloc() will make sure that the "firmware" pointer is either a driver supplied value or pointing to a generated firmware filename, it can't be NULL. So drop the extra check in the rproc_boot() path. Signed-off-by: NBjorn Andersson <bjorn.andersson@linaro.org>
-
- 07 9月, 2016 1 次提交
-
-
由 Loic PALLARDY 提交于
In current implementation, struct fw_rsc_vdev_vring which describes vring resource in firmware resource table owns only device address, because it assumes that host is responsible of vring allocation and only device address is needed by coprocessor. But if vrings need to be fixed in system memory map for any reasons (security, SoC charactieristics...), physical address is needed exatly identified the memory chunck by host. For that let's transform reserved field of struct fw_rsc_vdev_vring to pa (physical address). Signed-off-by: NLoic Pallardy <loic.pallardy@st.com> Signed-off-by: NBjorn Andersson <bjorn.andersson@linaro.org>
-
- 19 8月, 2016 1 次提交
-
-
由 Bjorn Andersson 提交于
In the case that we have a resource table, but not a loaded one we should leave the table_ptr intact, as subsequent resource handling could otherwise dereference the NULL pointer. Signed-off-by: NBjorn Andersson <bjorn.andersson@linaro.org>
-
- 18 8月, 2016 4 次提交
-
-
由 Bjorn Andersson 提交于
As we moved the vdev handling to the main boot/shutdown code path we can further simplify the resource table handling by moving the parsing spet to boot as well. The lifespan of the resource table is changed to live from rproc_boot() to rproc_shutdown(). Cc: Lee Jones <lee.jones@linaro.org> Cc: Loic Pallardy <loic.pallardy@st.com> Signed-off-by: NBjorn Andersson <bjorn.andersson@linaro.org>
-
由 Bjorn Andersson 提交于
The newly introduced "always-on" flag allows us to stop giving the vdevs special treatment. The ordering of resource allocation and life cycle of the remote processor is kept intact. This allows us to mark a remote processor with vdevs to not boot unless explicitly requested to do so by a client driver. Cc: Lee Jones <lee.jones@linaro.org> Cc: Loic Pallardy <loic.pallardy@st.com> Signed-off-by: NBjorn Andersson <bjorn.andersson@linaro.org>
-
由 Bjorn Andersson 提交于
The calculation of max_notifyid must only be done before we call start() on the remoteproc drivers, so move the calculation to be part of the loading steps. Cc: Lee Jones <lee.jones@linaro.org> Cc: Loic Pallardy <loic.pallardy@st.com> Signed-off-by: NBjorn Andersson <bjorn.andersson@linaro.org>
-
由 Bjorn Andersson 提交于
Introduce an "auto-boot" flag on rprocs to make it possible to flag remote processors without vdevs to automatically boot once the firmware is found. Preserve previous behavior of the wkup_m3 processor being explicitly booted by a consumer. Cc: Lee Jones <lee.jones@linaro.org> Cc: Loic Pallardy <loic.pallardy@st.com> Cc: Suman Anna <s-anna@ti.com> Signed-off-by: NBjorn Andersson <bjorn.andersson@linaro.org>
-
- 13 8月, 2016 5 次提交
-
-
由 Anna, Suman 提交于
There are couple of debug statements that are printing hexadecimal numbers without the leading 0x. Fix these and use the standard 0x%x format specifier so that there is no confusion when looking at the traces. Signed-off-by: NSuman Anna <s-anna@ti.com> Signed-off-by: NBjorn Andersson <bjorn.andersson@linaro.org>
-
由 Anna, Suman 提交于
This patch fixes the existing alignment checkpatch check warnings of the type "Alignment should match open parenthesis" in the remoteproc core source files. Signed-off-by: NSuman Anna <s-anna@ti.com> Signed-off-by: NBjorn Andersson <bjorn.andersson@linaro.org>
-
由 Anna, Suman 提交于
Fix the code formatting to use the kernel preferred style of using the actual variables to determize the size using the sizeof() operator. Signed-off-by: NSuman Anna <s-anna@ti.com> Signed-off-by: NBjorn Andersson <bjorn.andersson@linaro.org>
-
由 Anna, Suman 提交于
Fix couple of minor mis-spelled words in all the remoteproc source files. Signed-off-by: NSuman Anna <s-anna@ti.com> Signed-off-by: NBjorn Andersson <bjorn.andersson@linaro.org>
-
由 Anna, Suman 提交于
The dma_addr_t types can be printed properly using the %pad printk format-specifier, there is no need to resort to the unsigned long long type-casting to deal with different possible type sizes. Signed-off-by: NSuman Anna <s-anna@ti.com> Signed-off-by: NBjorn Andersson <bjorn.andersson@linaro.org>
-