At this point the MCU and FPGA are talking over quad SPI and are able to read a bunch of basic system health registers like voltages and temperatures (code mostly copied verbatim from LATENTPINK).
But I'm not yet able to ping it. In fact, the MCU isn't seeing any Ethernet frames at all as far as I can tell. Investigating now... the frames are reaching the FPGA, but seem to be dropped for some reason.