-
Notifications
You must be signed in to change notification settings - Fork 293
OpenAMP remoteproc Subgroup Meeting Notes 2022
This sub-group covers areas such as remoteproc, rp-message, virtio, big buffers, etc. The meeting cadence is every 2 weeks on Thursdays at 11 am Eastern US time.
- Bill Mills (Linaro)
- Mathieu Poirier (Linaro)
- Tanmay Shah (Xilinx)
- Tammy Leino (Mentor/Siemens)
- Ben Levinsky (Xilinx)
- Arnaud Pouliquen (ST)
- [PATCH] Introduce PRU remoteproc consumer API
- MP: should finish this one soon
- [PATCH] Introduction of rpmsg_rx_done
- MP: Request Arnaud to look at this WRT flow control etc
- [PATCH] Add support for MT8195 SCP 2nd core
- [PATCH] Add Xilinx RPU subsystem support
- MP: will get to this one this period
- [PATCH] remoteproc: restructure the remoteproc VirtIO device
- MP: may get to this one before next call
- [PATCH] remoteproc: imx: add start up delay
- [PATCH] remoteproc: imx_rproc: support i.MX8QM/QXP
- Other
- MP: Thanks to Arnaud for jumping into upstream virtio changes that have broken rpmsg
- MP: things are slowed slowed down for summer
- TL: when does Xilinx update openamp lib from upstream
- BL TS: at least 1 per year, 20XX.1
- Bill Mills (Linaro)
- Mathieu Poirier (Linaro)
- Tanmay Shah (Xilinx)
- Tammy Leino (Mentor/Siemens)
- Ben Levinsky (Xilinx)
- Arnaud Pouliquen (ST)
- Suman Anna (TI)
- Ed Mooring (Independent)
- Hari Nagalla (TI)
- Segei Korneichuk (AMD/Xilinx)
- Loic Pallardy (ST)
- [PATCH] remoteproc: pru: Enable PRU cores on K3 AM62x SoCs (June 02, Kishon)
- [PATCH] remoteproc: restructure the remoteproc VirtIO device (June 3rd, Arnaud)
- [PATCH] Introduce PRU remoteproc consumer API (June 6th, Puranjay)
- [PATCH] Add support for MT8195 SCP 2nd core (June 8th, Tinghan)
- [PATCH] Introduce helpers for carveout management (June 10th, Chris Lew)
- Looking for people to review this one.
- [PATCH] virtio pci support VIRTIO_F_RING_RESET (June 29th, Xuan Zhuo)
Status emails: OK for everyone?
- EM: AP added mmio stuff on virtio-mmio
- EM: AP Flow control
- EM: AP recycle buffers
- Pending Buffers when endpoint is destroyed
- Host: just clean up in descriptor table
- Device:
- Busy status: reserved field points to descriptor idx
- AP: virtio memory buffer
x Bill Mills (Linaro) x Mathieu Poirier (Linaro) x Tanmay Shah (Xilinx) x Tammy Leino (Mentor/Siemens) x Ben Levinsky (Xilinx) x Arnaud Pouliquen (ST) x Suman Anna (TI) x Ed Mooring (Independent) x Hari Nagalla (TI) x Segei Korneichuk (AMD/Xilinx) x Loic Pallardy (ST)
- MP: back to patch review cycle
- Pang's patch set, what to do after crash
- Arnaud's virtio restructure, maybe wait until other work is done?
- 1st step toward making it a platform device then declare in DT
- MP: also fixes the DMA api usage to be more clean
- TI PRU consume API
- Xilinx remoteproc v7
AP: no big work except virtio-exp and flow control TL: Petalinux 2019.2/1 remoteproc.h has different struct in trace resource TL: endpt problem was running out of memory
AP: virtio-exp what is the policy BM: lets follow the coding standards from the start in the future BM: This branch should be continous history AP: Will accpet Dan's PR EM: OK for me
AP: Don't really like the last patch AP: Other features, aligned with BM: Do we need a feature bit? AP: BM: NAK what you don't like AP: control ept as name
AP: How to move forward on virtio? move meeting and 3 people
Bill Mills (Linaro) Tanmay Shah (Xilinx) Tammy Leino (Mentor/Siemens) Ben Levinsky (Xilinx) Segei Korneichuk (AMD/Xilinx)
- Mathieu could not attend today so we will skip kernel topics
- AP: Interest in virtio from multiple parties
- Dan has responded w/ pointers to his previous work
- Dan is expected
- AP: VDEV status
- Ben has ok'ed
- BM:Does this violate the spec?
- OK to skip checks if no new kick from host
- I would like to hold off until we know if this follows the spec or not
- AP: remote end point disconnect call rpmsg-dev not just EP callback
- Custom rpmsg device
- Crash & Recovery
- BM: the kernmel cleans up after remote crash
- does the library support this also?
- A lot depends of the library user but
- BM: the kernmel cleans up after remote crash
- AP: will push flow-control work, RFC to kernel and PR to openamp
- will depend on QC patches that are pending
Bill Mills (Linaro) Mathieu Poirier (Linaro) Tanmay Shah (AMD/Xilinx) Tammy Leino (Mentor/Siemens) Ben Levinsky (AMD/Xilinx) Arnaud Pouliquen (ST) Ed Mooring (Independent) Segei Korneichuk (AMD/Xilinx)
- BL: customer wants to re-establish the remoteproc
- Linux crashes and want R5 to stay alive
- What to do when Linux comes up again
- Xilinx remoteproc does not re-init on queue, need to relook at
- AP: ST rproc does this, take a look at that
- MP: Looking at Arnaud set destination address 20 lines
- MP: done with most easy ones
- MP: still leaves harder ones like:
- Pang's support for attach then crash what to do
- Fix DMA leak when remoteproc is going down
- MP: Xilinx remoteproc, Suggest V5 for address Rob's comments
- AP: Release is done, looking at pending PR
- Split RX buffer & rings and TX Buffer & rings areas
- Each side needs to know the state
- use case is not Linux
- AP: remove check of device status
- AP: no update on flowctrl
- 20 line patch to set destination is alternative to full flow control
- Ben wants pointers to the ST code on both
- added Ben to PR at openamp
- back compatibility at source level and wire level?
- BM: per TSC, back compat are wire level (once upstream). Any exception needs TSC approval.
- EM: source level is 2 years back
Bill Mills (Linaro) Mathieu Poirier (Linaro) Tammy Leino (Mentor/Siemens) Ben Levinsky (Xilinx) Arnaud Pouliquen (ST) Ed Mooring (Independent) Segei Korneichuk (AMD/Xilinx)
- MP: cleared most of the backlog, left
- AP: set dest address on first message rx
- maybe wait on flow control patches coming
- Pang: support for self recovery
- Mediatek: AngeloGioacchino Del Regno, Fix circular locking dependency
- Still trying to figure out / verify the issue
- Hangyu Hua fixing double free
- AP: set dest address on first message rx
- AP: approaching release, some pull request still pending
- EM: objectionable terms, #defines, cmake options etc
- TL: split child memories
- support for suspending one side of the conversation
- probably RTOS to RTOS only feature
- TL: asking what to do with legacy NS feature bit negotiation
- AP: zero copy issue
- TL: Assert vs error propagation has similar issue
- ran out of time
Bill Mills (Linaro) Mathieu Poirier (Linaro) Tanmay Shah (Xilinx) Ben Levinsky (Xilinx) Arnaud Pouliquen (ST) Suman Anna (TI) Ed Mooring (Independent) Segei Korneichuk (AMD/Xilinx)
- MP: got pulled into other things
- MP: still on todo list: control flow and mediatek
- MP: 11 patch sets in queue, will do easy ones first
- MP: Shengjiu Wang: correct behavior on sysfs
- start -> sysfs/state, currently return BUSY if already running
- MP: Puranjay Mohan, TI pruss: 5000 lines
- SA: Is RFC of multiple subsystems
- Remoteproc is just one
- SA: Is RFC of multiple subsystems
- AP: WRT flow control
- working on proof of concept to add the same flow control as QC for vdev
- QC channels are point to point so flow control is better defined
- hard part for vdev is multipoint to point
- EM: code freeze on April 18
- EM: Remove objectionable terms
- EM: Tamey's fixes are pretty much going is as they come in.
- BL: rpmsg ept recovery, working on proposal
- single end point dies
- remoteproc crash detection & recovery
- remoteproc char driver
- rpmsg char returns error after crash
- EM: RTOS to RTOS does not have support for this
- rpmsg only when Linux crashes
- library does not have crash / recovery support
- today's support is in platform specific code in kernel
- mailbox crash code (relies on self report)
- HW watchdog remoteproc -> interrupt to host
- Exception report to host (IOMMU fault)
- AP: Vdev status should be managed
- MP: crash detection is all vendor specific
Bill Mills (Linaro) Mathieu Poirier (Linaro) Tanmay Shah (Xilinx) Tammy Leino (Mentor/Siemens) Arnaud Pouliquen (ST) Suman Anna (TI) Ed Mooring (Independent) Hari Nagalla (TI) Segei Korneichuk (AMD/Xilinx)
- MP: Arnaud's refactor of rpmsg-char is now accepted in rproc-next
- MP: TI ipc-only patches are accepted
- MP: on todo AP's virtio refactor
- MP: all in all 8 to 10 on list. expect to be done with all before next meeting
- AP: comments on QC control flow patch series, we should do virtio transport also
- Could be a solution to connect ack issue in openamp
- AP: new issue from Tammy about zero copy
- needs API to drop buffer
- found about 10 issues, all publicly documented in openamp issues
- what are the requirements for a PR?
- AP: currently: don't break what is there, test on your platform
- AP: code freeze in mid April
- BM: we have had several meetings over the past 2 month on how to join the
- openamp lib with the general virtio support done by Wind River in the Zephyr fork
- The plan as of now is
- move Zephyr fork to github/openamp
- modify Zephyr code to use virtio layer from openamp lib
- add virtio-mmio to openamp lib (using Vincent's and WR's code)
- add SCMI server code as 1st openamp resident driver
- get this far and re-evaluate
- work toward moving as much code to openamp lib as makes sense but maintain
Bill Mills (Linaro) Mathieu Poirier (Linaro) Tanmay Shah (Xilinx) Tammy Leino (Mentor/Siemens) Arnaud Pouliquen (ST) Suman Anna (TI) Ed Mooring (Independent)
- MP: spent most of review time on Arnaud's refactor patches
- MP: looked at this very hard w/ focus
- MP: started looking at Pang's series for refactor startup & crash recovery
- stopped review due to quality issue and asked for better series
- put at end of queue
- MP: started looking at Suman patch
- Suman: any chance of hitting 5.18
- MP: probably not
- MP: next mediatek 8186 8183
- MP: Daniel kestrel v2 (Borjn looked at v1 assume he will do v2)
- SA: Will Arnaud's refactor be for 5.18?
- MP: His work is coming in 4 waves
- MP: Arnaud please drop the RFC for next cycle
- MP: when you move to next wave, keep wave 1 in series
- EM: library is
- EM: PR 347 new API for "wait_tx_buffer"
- Should the issue be solved by local side or remote side?
- if local should it be at app, bsp, or lib level
- EM: Tammy has been looking at certification issues
- AP: Really want to avoid adding a new library
- already too complex with libmetal
- WM: motivation for extra lib was
- keep existing lib focused
- allow more freedom of config to make app dev's job easier
- WM: example ST added a new lib to make app dev job easier
- AP: ST's extra library was to simplify libmetal startup
- EM: adding a new layer in the library to make app dev life easier is OK
- WM: why can't we create the Zephyr glue in openamp
- AP: cmake and west support
- AP: could use git submodule
- AP & BM: try west manifest not in Zephyr
Bill Mills (Linaro) Mathieu Poirier (Linaro) Tanmay Shah (Xilinx) Tammy Leino (Mentor/Siemens) Arnaud Pouliquen (ST) Hari Nagalla (TI)
- MP/TS: Xilinx Remoteproc V3 finished review ready for V4
- TS: Target V4 in 2 weeks
- MP: Someone interested in AP's work on virtio restructure
- on queue for next week
- Pang's patch on recovery is also on review list for next week
- AP has tested Pang's patch, looks OK
- MP: Request review from TI/Hari
- MP: Xuan Zhuo: support virtio ring reset
- MP: Christoph Konstaph: refactor static memory
- MP: Suman R5 TI K3 IPC only mode
- AP: Tanmay's suggestions for testing
- AP: Jeramie no buffer handling, can call API or wait
- Hookable function to wait
- TL: what is the policy for API parameter checking?
- BM: In some situations the library size must be very small so need to keep
that in mind. Could be an option?
- AP: suggest Tammy point out the specific instances she sees and then discuss
Bill Mills (Linaro) Mathieu Poirier (Linaro) Tanmay Shah (Xilinx) Hari Nagalla (TI)
Short meeting today. Lots of people are out so only went over kernel aspects.
- MP: got Tanmay V3 remoteproc for Xilinx
- will probibly review this next week as below item is a bit stalled
- MP: Pang reworking crash/attach/detach
- MP: Arnaud reworking remoteproc virtio
- Asking Arnaud, Pang, and Hari to cross check the above
- MP: sysfs remoteproc read-only from Puranjay at TI
- done on a per remoteproc basis
- coming from AM335x wakeup M3 which is not for user use, it handles suspend/resume low level work
Bill Mills (Linaro) Tammy Leino (Siemens: past Nucleus, network and higher level stack) Tanmay Shah (Xilinx) Mathieu Poirier (Linaro) Arnaud Pouliquen (ST) Ed Mooring (Independent) Suman Anna (TI) Hari Nagalla (TI)
- MP: still in a backlog, 12 series 50/50 between coresight and rp
- next up K3 M4F
- Pang trying to complete attach/detach
- MP asked HW support from attach/detach
- Arnaud's next gen: rpmsg char driver
- AP: will look at attach/detach patch from ST POV
- will need to enhance it
- AP: new version of rpmsg-char
- Qualcomm also has fixes for rpmsg-char so need to figure out order
- EM xtensa support still going on
- API change to add "const"
- AP: Vincent's changes for SCMI
- AP: multi endpoint on one channel broken
- BM where is the broken part?
- protocol?
- libopenamp?
- kernel API?
- rpmsg_char?
- We really need a rpmsg spec independent of kernel & openamp library
- BM where is the broken part?
Bill Mills (Linaro) Tanmay Shah (Xilinx) Mathieu Poirier (Linaro) Arnaud Pouliquen (ST) Ed Mooring (Independent) Loic Pallardy (ST) Hari Nagalla (TI)
- MP: in a backlog 11 patch sets between coresight and remoteproc
- also doing rust maintenance
- MP: still keeping an eye on Arnaud's rpmsg char driver rework
- AP: to resend same version rebased to tip on Jan 24
- MP will ping Bjorn at that time
- AP: new platforms to support RISC-V & extensa
- AP: will add CI tests for these platforms
- AP: library can define independent buffers for RX and TX
- each rpmsg instance can be configured independently
- new API for configurable sizes keeping existing API for legacy
- AP: PR to remove deprecated APIs will be put off due to 2 year policy
- BM: Looked at Zephyr on virtio: https://github.com/danmilea/zephyr
- Should compare with Vincent Guittot's SCMI on Zephyr work
- Coexistence with independent virtio layers
- need to share mailboxes? Shared Mem carve-outs?
- WR code has virtio-mmio
- WR has not yet shared kernel code for mailbox and memory access from user space