This new subsystem provides a common way to talk to secondary processors
on an SoC, e.g. a DSP, GPU or service processor, using virtio as the
transport. In the long run, it should replace a few dozen vendor
specific ways to do the same thing, which all never made it into the
upstream kernel. There is a broad agreement that rpmsg is the way to
go here and several vendors have started working on replacing their
own subsystems.
Two branches each add one virtio protocol number. Fortunately the
numbers were agreed upon in advance, so there are only context changes.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
iQIVAwUAT24/OmCrR//JCVInAQJmfQ/+NklCaFIHX5Mbi1ZdeekT1p8l7OVXs1zU
ygJA86Vlbz3dL7t08HcAqS+C3tGE4iTGp9IJrBQBjZdCuPJujyB+xAYFNU39TZzH
osdiSSQZapkIzMcviCqQPO70bzUPWtskXmVNmrKiHOM7HLHMWRWUqtfj2wNqqeIa
l+mCC3q9ZV4JJ9puzW9UMRZKsSUYNJ9q/MfAbBHXJawhKtZWpT5Luwa8s2KTFfz3
XY6iW+FfY6d6+jU3p9AGxZqT02V9H/mOqP9dyM6wK6BfHrISFYIkN+KAzhMkxY+Z
p7folq/WipN9XoizWql7QKAa4wKMyhRNmScfCfSdKhSOzWzWMiu9ySLUqx/KEJq7
OknCtnHNhAp/hcR39f2Nv6mLNxA01WeUvaPTzzjTotpwCEcbcZpsGT/OBN/vZyZ5
ZAqZlEg/D65ZIU2dESx2U2XMiGTBc7AAgfLj0PjmhsMH3bVlG3IHcnGH6wqwGpvH
zglaCy67/htEW6jMFjhqginXssPtcaFGz56g+/WkEyvYCJTwdMAiXc05uZS/EeZT
uF8Vpg3cEFDJUtGrcA9FSKZ/2f6pLKvHY7yYRGwhR7pajQl7I0WDwgCQmy4pE6Ao
l9MNeoPKQyFmuVhZbQP4QLRRGDD6Hm+qbPRqaRJI2DuM2g8v6Yk3ydd8EOgHm+O3
n1W0zBfQ2l4=
=SC55
-----END PGP SIGNATURE-----
Merge tag 'rpmsg' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
Pull "remoteproc/rpmsg: new subsystem" from Arnd Bergmann:
"This new subsystem provides a common way to talk to secondary
processors on an SoC, e.g. a DSP, GPU or service processor, using
virtio as the transport. In the long run, it should replace a few
dozen vendor specific ways to do the same thing, which all never made
it into the upstream kernel. There is a broad agreement that rpmsg is
the way to go here and several vendors have started working on
replacing their own subsystems.
Two branches each add one virtio protocol number. Fortunately the
numbers were agreed upon in advance, so there are only context
changes.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>"
Fixed up trivial protocol number conflict due to the mentioned additions
next to each other.
* tag 'rpmsg' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (32 commits)
remoteproc: cleanup resource table parsing paths
remoteproc: remove the hardcoded vring alignment
remoteproc/omap: remove the mbox_callback limitation
remoteproc: remove the single rpmsg vdev limitation
remoteproc: safer boot/shutdown order
remoteproc: remoteproc_rpmsg -> remoteproc_virtio
remoteproc: resource table overhaul
rpmsg: fix build warning when dma_addr_t is 64-bit
rpmsg: fix published buffer length in rpmsg_recv_done
rpmsg: validate incoming message length before propagating
rpmsg: fix name service endpoint leak
remoteproc/omap: two Kconfig fixes
remoteproc: make sure we're parsing a 32bit firmware
remoteproc: s/big switch/lookup table/
remoteproc: bail out if firmware has different endianess
remoteproc: don't use virtio's weak barriers
rpmsg: rename virtqueue_add_buf_gfp to virtqueue_add_buf
rpmsg: depend on EXPERIMENTAL
remoteproc: depend on EXPERIMENTAL
rpmsg: add Kconfig menu
...
Conflicts:
include/linux/virtio_ids.h
The virtio-scsi HBA is the basis of an alternative storage stack
for QEMU-based virtual machines (including KVM). Compared to
virtio-blk it is more scalable, because it supports many LUNs
on a single PCI slot), more powerful (it more easily supports
passthrough of host devices to the guest) and more easily
extensible (new SCSI features implemented by QEMU should not
require updating the driver in the guest).
Acked-by: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Add a virtio-based inter-processor communication bus, which enables
kernel drivers to communicate with entities, running on remote
processors, over shared memory using a simple messaging protocol.
Every pair of AMP processors share two vrings, which are used to send
and receive the messages over shared memory.
The header of every message sent on the rpmsg bus contains src and dst
addresses, which make it possible to multiplex several rpmsg channels on
the same vring.
Every rpmsg channel is a device on this bus. When a channel is added,
and an appropriate rpmsg driver is found and probed, it is also assigned
a local rpmsg address, which is then bound to the driver's callback.
When inbound messages carry the local address of a bound driver,
its callback is invoked by the bus.
This patch provides a kernel interface only; user space interfaces
will be later exposed by kernel users of this rpmsg bus.
Designed with Brian Swetland <swetland@google.com>.
Signed-off-by: Ohad Ben-Cohen <ohad@wizery.com>
Acked-by: Rusty Russell <rusty@rustcorp.com.au> (virtio_ids.h)
Cc: Brian Swetland <swetland@google.com>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Grant Likely <grant.likely@secretlab.ca>
Cc: Tony Lindgren <tony@atomide.com>
Cc: Russell King <linux@arm.linux.org.uk>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Greg KH <greg@kroah.com>
Cc: Stephen Boyd <sboyd@codeaurora.org>
It's unclear to me if it's important, but it's obviously causing my
technical colleages some headaches and I'd hate such imprecision to
slow virtio adoption.
I've emailed this to all non-trivial contributors for approval, too.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Acked-by: Grant Likely <grant.likely@secretlab.ca>
Acked-by: Ryan Harper <ryanh@us.ibm.com>
Acked-by: Anthony Liguori <aliguori@us.ibm.com>
Acked-by: Eric Van Hensbergen <ericvh@gmail.com>
Acked-by: john cooper <john.cooper@redhat.com>
Acked-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Acked-by: Christian Borntraeger <borntraeger@de.ibm.com>
Acked-by: Fernando Luis Vazquez Cao <fernando@oss.ntt.co.jp>
Virtio IDs are spread all over the tree which makes assigning new IDs
bothersome. Putting them together should make the process less error-prone.
Signed-off-by: Fernando Luis Vazquez Cao <fernando@oss.ntt.co.jp>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>