Did some code refactoring and additional testing.
Brought up a second GTX interface (TX1) sending a PRBS-15 pattern.
For whatever reason, I didn't include AC coupling caps on the PCB for the transceivers. Not a big deal, I can use an external SMA DC block on the front panel ports, but still odd. Not sure why I did that.
SSH console is now alive. Still has all of the limitations of my TCP/IP stack (e.g. incomplete retransmits) but now I have a dev platform to work on that.
Trigger out waveforms look mostly good (here's a LVCMOS25 output) but there does seem to be a small reflection (also visible on the GTX output at lower data rates). Maybe my SMPM launch isn't quite as good as I thought it was. Not remotely enough to impair functionality, but definitely something to fix before I spin more boards on this stackup.