Skip to content

[cross-stream] inter-card connector pinout final for scheduler hardware enumeration #21

@marcos-mendez

Description

@marcos-mendez

Background

`popsolutions/Spanker` PR #6 (`feat(scheduler): spanker-scheduler crate
with Topology + collective ops`,
popsolutions/Spanker#6) lands the multi-card
`Topology` abstraction. The real-device path
`Topology::enumerate()` walks `/dev/spanker0..N`
to discover Sails but currently leaves `links()` empty because the
inter-card connector pinout has not been finalised.

Per `project_multicard_parallelism.md`, every Sail PCB must include
inter-card connectors (originally framed for M.2 form factor; rev-A
moved to Mini-ITX after the GbE tradeoff). The scheduler needs
the final pinout to populate the links graph.

Ask

Produce — or point at — the rev-A Mini-ITX inter-card connector spec.
Specifically:

  1. Connector type and footprint (e.g. SAS HD-mini, MCIO, custom
    board-edge, etc.) for the inter-card link.
  2. Pinout for the `INTERCARD_LANES = 4` differential pairs +
    reference clock + sideband (SMBus or equivalent for state /
    training signalling).
  3. Cable / backplane assumption — point-to-point cable, passive
    backplane, or active retimer board?
  4. Power budget for inter-card signalling (so the scheduler knows
    how many active links are tenable before thermal pressure).
  5. Mechanical envelope for the connector relative to the Mini-ITX
    I/O shield, so we know which slots can populate the link.

A spec under `Stays/docs/pcb/intercard-connector.md` (or
`Stays/kicad/intercard/`) is the natural home.

Why this matters

`Topology::enumerate()` will eventually probe each
Sail's link state via the SMBus / sideband channel implied by the
pinout. Without the spec, the enumeration code can't be written —
links() stays empty in production, and the scheduler operates as if
all Sails were isolated.

Priority

Not a blocker for Spanker PR #6 (which is honestly scoped to mock-only).
Blocks the link-state probe in `Topology::enumerate` (PR #6b) and
the eventual Stays rev-A PCB tape-out.

Acceptance

Filed by Agent 3 (Software Stack) after merging Spanker PR #6.

Metadata

Metadata

Assignees

No one assigned

    Labels

    cross-streamTouches multiple streams — coordination neededstream-2FPGA Hardware (Agent 2) — KiCad, Stays primarystream-3Software Stack (Agent 3) — driver, runtime, GGML, Spanker

    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