Skip to content

Software Bus: provide a no_std shared-memory/ipc_service transport backend behind the stream<T> seam (inter-core) #177

Description

@avrabe

Software Bus needs a no_std shared-memory transport backend behind the stream<T> seam (inter-core)

The relay-software-bus WIT (wit/interfaces/relay-software-bus/bus.wit) documents the intent stream<T> → Gale ring_buf, future<T> → Gale event — i.e. the typed-stream interface is transport-neutral and the backend is chosen by the host/linker. But in the current tree the only Software Bus implementation is host/relay-sb/src/core.rs, which is std-only (Vec/VecDeque, in-process) — there is no no_std shared-memory / Zephyr ipc_service / CAN backend in source (confirmed by code search).

jess needs exactly that backend for the Pixhawk 6X-RT: an inter-core (M7 ↔ M4) shared-memory ring + mailbox-IRQ transport behind the stream seam (REQ-PIX-007/008, DD-009). The natural shape per the bus.wit comment is a no_std/no_alloc SPSC ring on a Gale ring_buf (or a Zephyr ipc_service/ICMsg backend), with the RT1176 non-cacheable-shared-region + cache-coherency handling.

The ask: is a no_std shared-memory Software Bus backend in scope for relay, or should it live in gale (cross-ref gale#63, which already covers the gale executable substrate)? Either way jess would like to co-design/contribute the backend so the stream<T> seam has a real embedded transport, and the same WIT contract can be fused (same core, meld) or streamed (cross core) as a deployment choice. If relay owns the seam and gale owns the ring, a thin agreed interface between them is the thing to pin.

Grounded in the relay-comms deep-dive (jess iter#18). Happy to bring a spar/AADL model of the transport binding.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions