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:
- Connector type and footprint (e.g. SAS HD-mini, MCIO, custom
board-edge, etc.) for the inter-card link.
- Pinout for the `INTERCARD_LANES = 4` differential pairs +
reference clock + sideband (SMBus or equivalent for state /
training signalling).
- Cable / backplane assumption — point-to-point cable, passive
backplane, or active retimer board?
- Power budget for inter-card signalling (so the scheduler knows
how many active links are tenable before thermal pressure).
- 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.
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:
board-edge, etc.) for the inter-card link.
reference clock + sideband (SMBus or equivalent for state /
training signalling).
backplane, or active retimer board?
how many active links are tenable before thermal pressure).
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
`INTERCARD_BUS_WIDTH = 128` at the assumed line rate.
Filed by Agent 3 (Software Stack) after merging Spanker PR #6.