Today I've made the first successful communication with an EtherCAT servo. First, I had to scratch my head several times because the device refused to respond while WireShark displayed a perfectly valid EtherCAT packet. But I found out that the first packet seems to be necessary to pull the servo out of some kind of sleep mode. It responds to every packet from the second one.
Of course, this is a very rudementary test and there's still a long way to go to make the motor actually run. All that is needed for an EtherCAT master implementation is a normal Ethernet accessory board (the left one). I've already made an accessory board for a slave device (the right one). The later is a bit more complicated, has a LAN9252 and two RJ45 jacks on it and requires the QSPI driver to work before doing anything useful.