Here is an update but remember I am not using the psp version from TI, I am not even using the SDK from TI. The kernel I am using is the mainline 3.15-rc1.
I connected one beaglebone as the spi master to an Arduino uno as slave; doing that I can have serial terminals at both sides so that I can see everything. In the middle I have a logic analyzer to confirm that what I am reading at the terminals is exactly what I can see in the display of logic analyzer for both directions. I didn't find anything wrong!
There is only one detail that I supposed has to be handled by the application: The first byte I receive back from a block transfer is always the last byte from the last block received. This is at least consistent with the way that the Arduino SPI works and maybe it's not something general but from the perspective of beaglebone everything was correct.
Another check that I did was a stress test making transitions from PIO to DMA sending blocks of two different sizes and again everything works perfectly. This eliminates completely the drive spi_opmp2_mcspi as the originator of the problem I am having with the network card enc28j60. The problem has to be in the enc28j60 driver itself.
Ventura