* Update cover letter * Update email subject title
Signed-off-by: Bill Mills bill.mills@linaro.org --- .prjinfo/sendmail/cover.txt | 76 ++++++++++++++++++------------------- .prjinfo/sendmail/send.sh | 2 +- 2 files changed, 37 insertions(+), 41 deletions(-)
diff --git a/.prjinfo/sendmail/cover.txt b/.prjinfo/sendmail/cover.txt index e8557de..30000d1 100644 --- a/.prjinfo/sendmail/cover.txt +++ b/.prjinfo/sendmail/cover.txt @@ -37,19 +37,28 @@ implementation specific messages will be needed at the bus level. Over time, if we see similar messages across multiple bus implementations, we will move to standardize a bus level message for that.
-We are working on two reusable bus implementations: +We are working on a few reusable bus implementations:
* virtio-msg-ffa based on Arm FF-A interface for use between: * normal world and secure world * host and VM or VM to VM * Can be used w/ or with out a hypervisor * Any Hypervisor that implements FF-A can be used + * We have this working with pKVM and Xen + * We have this working with Trusty and OP-TEE
* virtio-msg-amp for use between heterogenous systems * The main processors and its co-processors on an AMP SOC * Two or more systems connected via PCIe * Minimal requirements: bi-directional interrupts and at least one shared memory area + * hvac-demo has 2 demos of this + * This is working on two hardware platforms + +* virtio-msg-loopback for userspace implemented devices + * Allows user space to provide devices to its own kernel + * This is similar to fuse, cuse or loopback block devices but for virtio + * hvac-demo has a demo
We also anticipate a few more:
@@ -57,53 +66,40 @@ We also anticipate a few more: * Usable on any Xen system (including x86 where FF-A does not exist) * Using Xen events and page grants
-* virtio-msg-loopback for userspace implemented devices - * Allows user space to provide devices to its own kernel - * This is similar to fuse, cuse or loopback block devices but for virtio - * Once developed this can provide a single kernel demo of virtio-msg - * [Work has begun on this] - * virtio-msg over admin virtqueues * This allows any virtio-pci device that supports admin virtqueues to also support a virtio-msg bus that supports sub devices * [We are looking for collaborators for this work]
-Changes since RFC1: -* reformated document to better conform to the virtio spec style - - created an introduction chapter - - created a basic concept chapter - - created bus operation and device initialization and operation chapters - - reworked description of transport and bus messages - - attempted a "compliance chapter" - - reused spec macros - - switched to MAY/MUST/SHALL/SHOULD wording - - eliminate the use of terms front-end and back-end and use driver and device -* made the maximum message size variable per bus instance -* use "device number" for virtio-msg device instances on the bus instead of - adding yet another meaning for "device ID" -* added the configuration generation count and its use -* described types of things that can be done with bus specific messages - such as setup of bus level shared memory and out of band notifications -* removed wording of notification being optional at transport level and - described bus level notifications of in-band, out-of-band, and polled - from driver side bus -* removed the ERROR message from transport level. Errors should be handled at - the bus level to better match virtio-pci and virtio-mmio -* removed bus level reset and status from standard bus messages -* replaced bus messages DEVICE_{ADDED,REMOVED} with EVENT_DEVICE -* changed names to GET_DEVICE_FEATURES and SET_DRIVER_FEATURES for clarity -* made SET_DEVICE_STATE return new state as it may not match -* Don't echo back the data in SET_VQUEUE (it cannot change) -* defined request/response vs event message id ranges -* match field size of next offset and wrap to virtio-{pci,mmio} -* added maximum number of virtqueues to DEVICE_INFO -* added admin virtqueue and SHM support +Changes since RFC2: + +Spec Functional: +* Made the common message header 8 bytes and added a token for optional use + when parallel outstanding requests are possible +* Made the 8 byte fields align to 8 byte offsets. + This effects the {SET,GET}_VQUEUE messages + +Spec Editorial: +* Added a section to describe how responses are matched to requests + This includes the use of the new token field +* Redefined / better described error handling between to transport and bus + layers to eliminate the need for the bus to generate fake response messages +* Included editorial feedback from Matias +* Included much of Peter's editorial feedback, some items are still pending + +Eco-system: +* Add virtio-msg-loopback demo +* Arm has published the first draft of the virtio-msg over FFA spec +* virtio-msg over FFA has been demonstrated with both Trusty and OP-TEE + secure world +* QEMU RFCv1 has been sent +* LKML RFCs have been sent
This series is a work in progress and we acknowledge at least the following issues we need to work on:
* Better conformance documentation -* Publish an update to Arm FF-A spec that shows virtio-msg binding (work underway) +* Moving the Arm ltd virtio-msg FFA spec from Alpha to at least Beta level * Publish virtio-msg-amp data structures and messages somewhere * Align implementations to this version and send PATCH v1 (non-rfc)
@@ -119,8 +115,8 @@ two hardware systems running: * AMD x86 + AMD Arm Versal connected via PCIe * ST STM32MP157 A7 Linux using virtio-i2c provided by M4 Zephyr
-Please note that although the demos work, they are not yet aligned with each -other nor this version of the spec. +Please note that although the demos work, not all of them have been aligned +with this version of the spec.
[1] https://linaro.atlassian.net/wiki/spaces/HVAC/overview [2] https://github.com/wmamills/hvac-demo diff --git a/.prjinfo/sendmail/send.sh b/.prjinfo/sendmail/send.sh index bac6b14..0a87ecc 100755 --- a/.prjinfo/sendmail/send.sh +++ b/.prjinfo/sendmail/send.sh @@ -1,6 +1,6 @@ #!/bin/bash
-PREFIX="PATCH RFC v2" +PREFIX="PATCH RFC v3" SUBJECT="virtio-msg transport layer" ME="$(git config --get user.name) <$(git config --get user.email)>" ME2="Mr Fake wm.a.mills+mrfake@gmail.com"