Hello,
I was able to successfully test memory sharing over Vsock, implemented over a
virtio message FFA transport. The memory is shared, as an FD, from Linux
userspace (via a FFA specific DMA HEAP) and is received in OP-TEE as a buffer,
which prints the string written by Linux.
Steps to reproduce:
- Jens shared an OP-TEE based setup few days back [1]. Reproduce it first.
- Migrate to my branches for the following repositories within that:
- build, optee_os, optee_test
- Path to my repos: git@github.com:vireshk/
- branch: vsock/shmem
- Migrate to my linux repo: git://git.kernel.org/pub/scm/linux/kernel/git/vireshk/linux.git virtio/msg
- Repeat the same test from Jens's setup: "xtest 2005"
- The firmware side will print:
Hello from shared memory via FD!
This string was written by the Linux userspace in the memory provided by FFA
DMA HEAP.
Thanks.
--
viresh
[1] https://linaro.atlassian.net/browse/LEDGE-725
Hi Everyone,
Today, Arm is releasing the first public version of the Virtio Message Bus over FF-A in version 1.0 and in quality state Alpha 0.
The document is available for download here:
https://developer.arm.com/documentation/den0153/0100
Please contact me if you have any comment, remarks, questions or improvements to suggest so that i can handle them before the spec reaches Beta quality.
Regards
Bertrand
IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.
Hi all,
This the RFC I'm preparing to send to upstream QEMU for initial RFC review.
I didn't see much precedence for Signed-off-by lines in cover letter so instead
I'm thinking to explicitely CC Bill and Alex and anyone else who would like to be
on copy, just let me know.
Changes from v1:
* Move VIRTIO_MSG_VENDOR_ID to virtio-msg.c
* Update to match recent spec changes (token + set/get_vqueue padding)
* Add endian conversion of dev_num and msg_size
* Add instructions for running on GPEX PCI x86 microVM and ARM virt
* Add missing spsc_queue.h
-------------------
This adds virtio-msg, a new virtio transport. Virtio-msg works by
exchanging messages over a bus and doesn't rely on trapping and emulating
making it a good fit for a number of applications such as AMP, real-time
and safety applications.
Together with the new transport, this series adds a PCI device that
implements an AMP setup much like it would look if two SoC's would
use virtio-msg across a PCI link.
Current limitations:
We only support a single device per bus (dev_num = 0).
Shared memory queue layout likely to change in the future.
Temporarily uses PCI Vendor Xilinx / Device 0x9039.
Missing documentation.
The virtio-msg spec:
https://github.com/Linaro/virtio-msg-spec/
QEMU with these patches:
https://github.com/edgarigl/qemu/tree/edgar/virtio-msg-rfc
Linux with virtio-msg suppport:
https://github.com/edgarigl/linux/tree/edgari/virtio-msg-6.17
To try it, first build Linux with the following enabled:
CONFIG_VIRTIO_MSG=y
CONFIG_VIRTIO_MSG_AMP=y
CONFIG_VIRTIO_MSG_AMP_PCI=y
Boot linux in QEMU with a virtio-msg-amp-pci device, in this example
with a virtio-net device attached to it:
x86/q35 machine:
-device virtio-msg-amp-pci
-device virtio-net-device,netdev=n1,bus=/q35-pcihost/pcie.0/virtio-msg-amp-pci/vmsg.0
-netdev user,id=n1
x86/microvm or ARM virt machines:
-device virtio-msg-amp-pci
-device virtio-net-device,netdev=n1,bus=/gpex-pcihost/pcie.0/virtio-msg-amp-pci/vmsg.0/virtio-msg/virtio-msg-proxy-bus.0
-netdev user,id=n1
Cheers,
Edgar
Edgar E. Iglesias (4):
virtio: Introduce notify_queue
virtio: Add virtio_queue_get_rings
virtio: Add the virtio-msg transport
virtio-msg-bus: amp-pci: Add generic AMP PCI device
hw/misc/Kconfig | 7 +
hw/misc/meson.build | 1 +
hw/misc/virtio-msg-amp-pci.c | 324 ++++++++++++
hw/virtio/Kconfig | 4 +
hw/virtio/meson.build | 5 +
hw/virtio/virtio-msg-bus.c | 89 ++++
hw/virtio/virtio-msg.c | 598 ++++++++++++++++++++++
hw/virtio/virtio.c | 23 +
include/hw/virtio/spsc_queue.h | 213 ++++++++
include/hw/virtio/virtio-bus.h | 1 +
include/hw/virtio/virtio-msg-bus.h | 95 ++++
include/hw/virtio/virtio-msg-prot.h | 749 ++++++++++++++++++++++++++++
include/hw/virtio/virtio-msg.h | 45 ++
include/hw/virtio/virtio.h | 2 +
14 files changed, 2156 insertions(+)
create mode 100644 hw/misc/virtio-msg-amp-pci.c
create mode 100644 hw/virtio/virtio-msg-bus.c
create mode 100644 hw/virtio/virtio-msg.c
create mode 100644 include/hw/virtio/spsc_queue.h
create mode 100644 include/hw/virtio/virtio-msg-bus.h
create mode 100644 include/hw/virtio/virtio-msg-prot.h
create mode 100644 include/hw/virtio/virtio-msg.h
--
2.43.0
Hi all,
This the RFC I'm preparing to send to upstream QEMU for initial RFC review.
A couple of limitations:
I've not updated the protocol with the new msg_token field yet.
We only support a single device per bus (dev_num = 0).
The kernel driver only works as a module, when building it into the kernel
it panics.
-------------------
This adds virtio-msg, a new virtio transport. Virtio-msg works by
exchanging messages over a bus and doesn't rely on trapping and emulating
making it a good fit for a number of applications such as AMP, real-time
and safety applications.
Together with the new transport, this series adds a PCI device that
implements an AMP setup much like it would look if two SoC's would
use virtio-msg across a PCI link.
The virtio-msg spec:
https://github.com/Linaro/virtio-msg-spec/
Linux with virtio-msg:
https://github.com/edgarigl/linux/tree/edgari/virtio-msg-6.17
To try it, first build Linux with the following as modules:
CONFIG_VIRTIO_MSG=m
CONFIG_VIRTIO_MSG_AMP=m
CONFIG_VIRTIO_MSG_AMP_PCI=m
Boot linux in QEMU with a virtio-msg-amp-pci device, in this example
with a virtio-net device attached to it (x86/q35 machine):
-device virtio-msg-amp-pci
-device virtio-net-device,netdev=n1,bus=/q35-pcihost/pcie.0/virtio-msg-amp-pci/vmsg.0
-netdev user,id=nc
Modprobe:
modprobe virtio_msg_transport.ko
modprobe virtio_msg_amp.ko
modprobe virtio_msg_amp_pci.ko
You now should see the virtio device.
Cheers,
Edgar
Edgar E. Iglesias (4):
virtio: Introduce notify_queue
virtio: Add virtio_queue_get_rings
virtio: Add the virtio-msg transport
virtio-msg-bus: amp-pci: Add generic AMP PCI device
hw/misc/Kconfig | 7 +
hw/misc/meson.build | 1 +
hw/misc/virtio-msg-amp-pci.c | 324 ++++++++++++
hw/virtio/Kconfig | 4 +
hw/virtio/meson.build | 5 +
hw/virtio/virtio-msg-bus.c | 89 ++++
hw/virtio/virtio-msg.c | 596 ++++++++++++++++++++++
hw/virtio/virtio.c | 23 +
include/hw/virtio/virtio-bus.h | 1 +
include/hw/virtio/virtio-msg-bus.h | 95 ++++
include/hw/virtio/virtio-msg-prot.h | 747 ++++++++++++++++++++++++++++
include/hw/virtio/virtio-msg.h | 45 ++
include/hw/virtio/virtio.h | 2 +
13 files changed, 1939 insertions(+)
create mode 100644 hw/misc/virtio-msg-amp-pci.c
create mode 100644 hw/virtio/virtio-msg-bus.c
create mode 100644 hw/virtio/virtio-msg.c
create mode 100644 include/hw/virtio/virtio-msg-bus.h
create mode 100644 include/hw/virtio/virtio-msg-prot.h
create mode 100644 include/hw/virtio/virtio-msg.h
--
2.43.0
Wondering does Apple TV have live TV? The answer is yes — but with a twist. Apple TV itself doesn’t stream live channels directly. Instead, it lets you access live TV through different apps and streaming services. Think of it as a smart hub that connects all your favorite entertainment in one place.
You can watch live news, sports, and local channels using apps like YouTube TV, Hulu + Live TV, Sling TV, or fuboTV. These apps stream live content right through your Apple TV device, so you never miss your favorite shows or games. Plus, Apple TV’s clean interface and Siri voice control make browsing super easy and fun.
If you’re subscribed to Apple TV+, you’ll get original series and movies, but not traditional live channels. To enjoy live TV, just download your preferred streaming app, sign in, and start watching.
So, does Apple TV have live TV? Absolutely — through partner apps and services. It’s the perfect choice for cord-cutters who want flexibility, high quality, and convenience in one device. For more tech tips and guides like this, visit Home Tech Nerves and stay tuned for smarter streaming solutions!
Visit Now: https://hometechnerves.com/does-apple-tv-have-live-tv/
Hi,
I pushed the following pull request to github:
https://github.com/Linaro/virtio-msg-spec/pull/24
It is a proposal to handle some things we agreed on modifying in the spec:
- header size 8 byte
- unique identifier in header
- relax error handling to let bus report errors and be coherent with current linux implementation
This is a draft and i am definitely open to comments :-)
Cheers
Bertrand
IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.