From mboxrd@z Thu Jan 1 00:00:00 1970 From: Joe Kulikauskas Date: Tue, 27 Nov 2012 08:01:16 -0700 Subject: [U-Boot] arm: empty isb() in set_cr Message-ID: <50B4D5BC.5030907@gmail.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de #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.