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
All,
On the System Reference meeting yesterday we decided the best method to collaborate on the proposal was a google doc. I have copied the text below into this google doc:
https://docs.google.com/document/d/1hoMpIfgUEEQQMK3_64COSr0IGGYvDWFDIHjK4i_f...
The editors of the document are Dan, Arnaud, and myself. Everyone else on this list should have comment rights. If I missed anyone please let me know.
Anyone in the world that finds the link above in the list archive has viewing privileged only.
Thanks, Bill
On 3/2/22 11:38 AM, Bill Mills wrote:
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
-- Bill Mills Principal Technical Consultant, Linaro +1-240-643-0836 TZ: US Eastern Work Schedule: Tues/Wed/Thur