Exclusive load and stores require enabled caches on real hardware (Raspberry Pi 3b+ - Cortex-A53)

Hello,

I'm contribute to a bare-metal project (small operating system kernel inclusive user space). The project worked without issues in QEMU. But every time failed on real hardware because a dead lock which was only on real hardware. The dead lock was caused by the Spinloop and Mutex implementation which are using the exclusive load (ldaxr, ldxr, ...) and store (stxr, ...) instructions. These instructions doesn't work correctly when the caches are disabled.

Can somebody explain the reason of this behavior?  Unfortunately I didn't found any hint in the architecture reference manual.