How to flush the pipeline of a processor using XScale-compatible Assembly?


Some friends and I are playing with a Cortex-A15 core (using a Beagleboard) but, due to compatibility with some legacy code, we need to use the --cpu=xscale option when building our executable. We were able to perform a board startup by using the startup file that comes with the DS-5 v5.29.1, but this code makes use of the ISB instruction at some points and this instruction is not available in the XScale architecture.

Thus, we are looking for something else that could flush the processor pipeline, as we suppose those instructions were put there for some good reason (we are beginners in the ARM architecture and Assembly language). We were thinking about doing some workaround with the BX instruction, but we do not know how to use it properly (i.e. we suppose we would have to "branch" to the address of the next instruction, but we do not know how to do it). Of course, there may be much more decent solutions but we are not aware of them.

What shall we do?

Thank you!

Best regards,


More questions in this forum