The current etnaviv code gets around this stop->irq->start dance by spacing out the command streams, which seems to be enough to get around the FE MMU flush failure. This may not work correctly at the end of the address range. I'll take a look at this.
In my case it seems not a command buffer that this is happening for, but another bo used by the command buffer.
Blindly implementing the Vivante way does not seem like the correct approach to me.
I'm not suggesting that that is a good solution! Just needed to do that to narrow down the issue, as well as get rid of it for now.
Regards, Wladimir