I have seen some other posts on this subject, but with no solutions or suggestions from NXP.
So, I am bringing it up again.
With SAI setup as TDM, the channels can become unaligned under various circumstances.
For example, with TDM8, you always expect channel 1 to be directly after the FS transition.
But if the BCK/FS clocks are stopped and restarted, the IMX8 will re-arrange the channels in a seemingly random way. For example, everything will be shifted backwards, so channel 1 is in channel 8's slot.
So from a software perspective, we cannot get the expected data because the channels are shifted around.
Another condition that has caused this shift to happen: an xrun on SAI2 (normal I2S) results in channel rearrangement on SAI5 (TDM8). This should not happen, of course.
This all seems to be due to either incorrect SAI or SDMA driver code, or perhaps a combination of both.