[U-Boot] arm: empty isb() in set_cr
Joe Kulikauskas
joe.kulikauskas at gmail.com
Tue Nov 27 16:01:16 CET 2012
#define isb() __asm__ __volatile__ ("" : : : "memory")
is in arch/arm/include/asm/system.h. In my build, that is going into
set_cr(), producing no instruction.
Is that correct? It has been in code since
http://lists.denx.de/pipermail/u-boot/2009-March/049870.html.
Looks like it's used only in set_cr. Other points in the code have
nonempty code for ISB, for example
#define CP15ISB asm volatile ("mcr p15, 0, %0, c7, c5, 4" : : "r"
(0))
which is in armv7.h
I don't have a standard reference platform to experiment with. The
platform that I have uses a Cortex-A9 core, u-boot.2012.07 is ported and
running. There are some intermittent issues there relating to enabling
MMU/cache, lack of instruction barriers would be a plausible explanation.
Adding ISB SY in set_cr doesn't fix my issues, but it looks like a step
in right direction. If someone could explain, or point me to email, I
would appreciate it. Thanks in advance.
More information about the U-Boot
mailing list