
This patch adds "driver_override" device attribute for rpmsg_device which will allow users to explicitly specify the rpmsg_driver to be used via sysfs entry. The "driver_override" device attribute implemented here is very similar to "driver_override" implemented for platform, pci, and amba bus types. One important use-case of "driver_override" device attribute is to force use of rpmsg_chrdev driver for certain rpmsg_device instances. Signed-off-by: Anup Patel <anup@brainfault.org> Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
3.7 KiB
What: /sys/bus/rpmsg/devices/.../name Date: June 2011 KernelVersion: 3.3 Contact: Ohad Ben-Cohen ohad@wizery.com Description: Every rpmsg device is a communication channel with a remote processor. Channels are identified with a (textual) name, which is maximum 32 bytes long (defined as RPMSG_NAME_SIZE in rpmsg.h).
This sysfs entry contains the name of this channel.
What: /sys/bus/rpmsg/devices/.../src Date: June 2011 KernelVersion: 3.3 Contact: Ohad Ben-Cohen ohad@wizery.com Description: Every rpmsg device is a communication channel with a remote processor. Channels have a local ("source") rpmsg address, and remote ("destination") rpmsg address. When an entity starts listening on one end of a channel, it assigns it with a unique rpmsg address (a 32 bits integer). This way when inbound messages arrive to this address, the rpmsg core dispatches them to the listening entity (a kernel driver).
This sysfs entry contains the src (local) rpmsg address
of this channel. If it contains 0xffffffff, then an address
wasn't assigned (can happen if no driver exists for this
channel).
What: /sys/bus/rpmsg/devices/.../dst Date: June 2011 KernelVersion: 3.3 Contact: Ohad Ben-Cohen ohad@wizery.com Description: Every rpmsg device is a communication channel with a remote processor. Channels have a local ("source") rpmsg address, and remote ("destination") rpmsg address. When an entity starts listening on one end of a channel, it assigns it with a unique rpmsg address (a 32 bits integer). This way when inbound messages arrive to this address, the rpmsg core dispatches them to the listening entity.
This sysfs entry contains the dst (remote) rpmsg address
of this channel. If it contains 0xffffffff, then an address
wasn't assigned (can happen if the kernel driver that
is attached to this channel is exposing a service to the
remote processor. This make it a local rpmsg server,
and it is listening for inbound messages that may be sent
from any remote rpmsg client; it is not bound to a single
remote entity).
What: /sys/bus/rpmsg/devices/.../announce Date: June 2011 KernelVersion: 3.3 Contact: Ohad Ben-Cohen ohad@wizery.com Description: Every rpmsg device is a communication channel with a remote processor. Channels are identified by a textual name (see /sys/bus/rpmsg/devices/.../name above) and have a local ("source") rpmsg address, and remote ("destination") rpmsg address.
A channel is first created when an entity, whether local
or remote, starts listening on it for messages (and is thus
called an rpmsg server).
When that happens, a "name service" announcement is sent
to the other processor, in order to let it know about the
creation of the channel (this way remote clients know they
can start sending messages).
This sysfs entry tells us whether the channel is a local
server channel that is announced (values are either
true or false).
What: /sys/bus/rpmsg/devices/.../driver_override Date: April 2018 KernelVersion: 4.18 Contact: Bjorn Andersson bjorn.andersson@linaro.org Description: Every rpmsg device is a communication channel with a remote processor. Channels are identified by a textual name (see /sys/bus/rpmsg/devices/.../name above) and have a local ("source") rpmsg address, and remote ("destination") rpmsg address.
The listening entity (or client) which communicates with a
remote processor is referred as rpmsg driver. The rpmsg device
and rpmsg driver are matched based on rpmsg device name and
rpmsg driver ID table.
This sysfs entry allows the rpmsg driver for a rpmsg device
to be specified which will override standard OF, ID table
and name matching.