All,
I had the action item to write up the Virtio Proposal from our alignment meeting on Feb 17. Sorry it took so long. Here is my stab at it.
This is very high level and the devil is in the details. However it is good to get high level agreement and where we are going before slogging into the think of things.
End State ========= OpenAMP git hub has: * openamp library + existing support for remoteproc, virtio, and rpmsg + virtio-mmio support (device and driver sides) + enhanced virtio layer to support openamp-virtio needs # support copy based buffer management API pattern # support zero copy buffer management API pattern * openamp-virtio library + supports driver and device side usage + supports virtio-net, console, rng, vsock, p9fs, blk + uses openamp lib for base virtio layer and for virtio-mmio * optimized libmetal + same scope of use cases + smaller footprint when all abstractions are not needed * All libraries integrate well with Zephyr but can also be used with other RTOSes + libraries can carry some Zephyr specific code
Initial Steps ============= * Create openamp-virto lib repo + import existing virtio from WR Zephyr fork + includes virtio-net, virtio-console, virtio-rng driver side + includes existing virtio layer and hlv support (driver side) + includes existing virtio-mmio (driver side) + re-license from Apache to BSD 2 or 3 Clause * Re-integrate with Zephyr + pull above library into Zephyr and re-integrate with sample
Refinement over time ==================== Move toward end state w/o having to go through * add virtio-mmio capababilities to openamp lib * enhance virtio-layer for needs of openamp-virtio * remove code from openamp-virtio library as it becomes supported in base openamp library * add device side functionality to openamp-virtio * add additional capabilities to openamp-virtio + virtio-vsock + virtio-p9fs * support zero copy pattern in openamp-virtio where it make sense
Thanks, Bill