Commit 6845d9cf authored by Suman Anna's avatar Suman Anna
Browse files

TEMP: remoteproc: Add support to handle device specific resource types



The remoteproc framework handles a fixed set of resource table entries
today. To make it scalable across multiple platforms, it makes sense
for the framework to provide a way for the device specific implementation
to define and handle vendor specific resource types. These resource types
would be very specific to an implementation instance that it does not
make sense for the framework to handle it. There can be two types of
such resources depending on whether they need to be handled prior to
the loading of the firmware segments or after. A post-loading resource
type is typically needed because it references a loaded segment pointer
for conveying the resource information.

For instance, a remoteproc implementation might want timers information
embedded in the resource table so that the driver could parse the binary
and enable accordingly. Another example would be hwspinlocks that it
is using, to properly share system wide resources. A PRU post-loading
vendor resource handler for interrupts requires the PRU event - interrupt
channel information to be loaded into device memory.

This patch adds a function pointer to the list of rproc_ops for the
driver implementation to handle such custom vendor resources, and
reuses the same handler between pre-loading and post-loading resource
types, with the sub-types in the implementation handling the processing
of those resource types.

NOTE:
This is preserving the TI implementation of vendor resources from older
kernels. Upstream has gained a similar feature in v5.3 kernel in commit
b1a17513 ("remoteproc: add vendor resources handling"), but that is
only limited for pre-loading resources and also defines a range rather
than a single resource type. This patch provides the infrastructure for
PRU post-loading vendor resource, which will be re-evaluated in the
future.

Signed-off-by: default avatarSuman Anna <s-anna@ti.com>
parent 470d11a0
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment