PopSolutions Sails — FPGA-side rigging. Custom FPGA boards (KiCad), bring-up scripts, upstream contributions to Project Oxide / prjtrellis / LiteDRAM. The structural support that lets the MAST move forward.
Find a file
Marcos Méndez Quintero 5d4d5b052d
Some checks are pending
ci / Docs / ADR sanity (push) Waiting to run
ci / KiCad / ERC + DRC (push) Waiting to run
fix(hw): PHY 88E1512 primary, KSZ9031RNX substitute (closes #36) (#37)
Reconcile docs/PCB_DESIGN.md with the planning artefact merged in
Stays PR #35: the Marvell Alaska 88E1512 is the rev-A primary
SGMII PHY (LATAM distributor stocking, 32-pin QFN smaller package,
NDA-free public datasheet). The Microchip KSZ9031RNX is preserved
as a documented substitute since the 2.5 V analog and 1.0 V
digital-core rails are fungible at this voltage class — no
power-tree change is needed if a builder swaps.

Cross-references docs/hw/schematic-page-breakdown.md §P4 for the
full criteria matrix and the swap procedure that placement PR P4
will codify.

Out of scope: any other PCB_DESIGN.md edits.

Authored by Agent 2 (FPGA Hardware).

Signed-off-by: Marcos (Agent 4) <popsolutions.co@gmail.com>
Co-authored-by: Marcos (Agent 4) <popsolutions.co@gmail.com>
2026-05-06 13:09:53 -03:00
.github/workflows feat(hw): bootstrap kicad/innerjib7ea-rev-a/ as KiCad 8 project skeleton (#23) 2026-05-06 01:30:03 -03:00
bringup feat(scaffolding): bootstrap kicad/ + bringup/ READMEs and KiCad ERC/DRC CI job (#4) 2026-05-05 23:28:36 -03:00
docs fix(hw): PHY 88E1512 primary, KSZ9031RNX substitute (closes #36) (#37) 2026-05-06 13:09:53 -03:00
kicad docs(hw): rev-A schematic capture day-1 planning (page breakdown + symbol inventory + decoupling topology) (#35) 2026-05-06 13:04:09 -03:00
.gitignore feat(hw): bootstrap kicad/innerjib7ea-rev-a/ as KiCad 8 project skeleton (#23) 2026-05-06 01:30:03 -03:00
LICENSE feat: initial Stays repo bootstrap 2026-05-05 20:43:05 -03:00
README.md feat: initial Stays repo bootstrap 2026-05-05 20:43:05 -03:00

Stays — PopSolutions Sails FPGA-side rigging

In a tall ship, the stays are the rigging that holds the mast in place. A strong mast with weak stays cannot move the ship forward.

Stays is the FPGA-side counterpart to MAST. Where MAST holds the shared RTL trunk that becomes silicon in the long run, Stays holds everything that turns that RTL into a real board you can hold in your hand right now:

  • Custom FPGA board designs (KiCad schematics, layout, gerbers, BOMs)
  • Bring-up scripts for first-power-on, JTAG access, DDR3 calibration, PCIe link training
  • Upstream contributions back to the open FPGA toolchain community (Project Oxide, prjtrellis, LiteDRAM, LitePCIe, nextpnr-ecp5, yosys) — tracked here as a first-class project deliverable
  • Inter-card connector specs and validation (per the multi-card parallelism requirement)

The current bootstrap target is a custom PCB hosting **Lattice ECP5-85F

Why a separate repo from MAST

MAST is the silicon-ready RTL: cycle-accurate, tape-out-bound, frozen at every Sail's tape-out tag. Stays is the journey — the FPGA boards that let us validate MAST RTL on real hardware right now, the bring-up log of every prototype rev, the upstream patches we landed in open FPGA tooling along the way.

In nautical terms: MAST is the mast itself; Stays is the rigging that keeps it standing and lets the ship move forward. Different lifecycle, different cadence, different audience for contributions. They live together in the same fleet but in separate repos.

Mission alignment

Per the project mission (memory entry): we use AI to reduce the technological gap, especially in the Global South. Open-toolchain FPGAs are the bridge between open-source RTL (which we can write today) and open-source silicon (which we can tape out years from now).

The open FPGA ecosystem is itself underdeveloped because closed players hoard their tooling. Every bug we find, every fix we upstream to Project Oxide / prjtrellis / nextpnr / LiteDRAM, every recipe for a working DDR controller config we publish — that is the contribution, not just our own boards.

License

  • Hardware contributions (KiCad schematics, layout, gerbers, BOMs): CERN-OHL-S v2 (strongly reciprocal). Commercial license via the cooperative.
  • Software contributions (bring-up scripts, drivers, build glue): Apache 2.0.
  • Documentation: CC-BY-SA 4.0.
  • Upstream contributions to other open projects: licensed per the upstream project's terms (we contribute, we don't relicense).

Layout

Stays/
├── README.md                   (this file)
├── LICENSE                     (CERN-OHL-S v2)
├── docs/
│   ├── adr/                    (irreversible architectural decisions)
│   │   └── 0001-fpga-target.md
│   ├── PCB_DESIGN.md           (process notes, layer stackup, etc.)
│   └── upstream-contributions/ (changelog of upstream patches)
├── kicad/                      (KiCad project files)
├── bringup/                    (Python / shell scripts for first-light)
└── .github/workflows/          (CI: KiCad ERC + DRC, doc lint)

Status

Bootstrap (2026-05-05). No PCB committed yet; ADR-001 just landed locking the target FPGA chip and memory profile.