RPMsg Message Flow Sequence - RPMsg Message Flow Sequence - 2026.1 English - UG1186

Libmetal and OpenAMP User Guide (UG1186)

Document ID
UG1186
Release Date
2026-06-24
Version
2026.1 English
Linux App                RPMsg Driver          VirtIO          IPI HW          Zephyr OpenAMP     Zephyr App
    │                         │                   │              │                    │                │
    ├─write("/dev/ttyRPMSG0")─►                   │              │                    │                │
    │                         │                   │              │                    │                │
    │                         ├─Allocate buffer───►              │                    │                │
    │                         │                   │              │                    │                │
    │                         ├─Update VRing0─────►              │                    │                │
    │                         │                   │              │                    │                │
    │                         │                   ├─Kick IPI─────►                    │                │
    │                         │                   │              │                    │                │
    │                         │                   │              ├─IRQ 0x41───────────►                │
    │                         │                   │              │                    │                │
    │                         │                   │              │                    ├─Process VRing0─►
    │                         │                   │              │                    │                │
    │                         │                   │              │                    │    ┌───────────┤
    │                         │                   │              │                    │    │Callback   │
    │                         │                   │              │                    │    │invoked    │
    │                         │                   │              │                    │    └───────────►
    │                         │                   │              │                    │                │
    │                         │                   │              │                    ◄─rpmsg_send()───┤
    │                         │                   │              │                    │                │
    │                         │                   │              │                    ├─Update VRing1──┤
    │                         │                   │              │                    │                │
    │                         │                   │              ◄────Kick IPI────────┤                │
    │                         │                   │              │                    │                │
    │                         │                   ◄──IRQ 0x39────┤                    │                │
    │                         │                   │              │                    │                │
    │                         ◄─Process VRing1────┤              │                    │                │
    │                         │                   │              │                    │                │
    ◄───read() returns data───┤                   │              │                    │                │
    │                         │                   │              │                    │                │