All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [PATCH] arm: re-implement proper ISB instruction for ARMv7-A
@ 2016-07-28 10:13 Ziyuan Xu
  2016-07-28 10:39 ` Alexander Graf
                   ` (2 more replies)
  0 siblings, 3 replies; 16+ messages in thread
From: Ziyuan Xu @ 2016-07-28 10:13 UTC (permalink / raw)
  To: u-boot

For ARMv7-A architecture, the valid ISB instruction is asm volatile("isb").

This patch fixes the U-Boot was stuck in invalidate_dcache_all() before
booting linux kernel, which occurred on rk3288-base development board
such as evb-rk3288, rock2-rk3288. And something output via console like:

=> bootz 0x2000000
0x02000000
   ramdisk start = 0x00000000, ramdisk end = 0x00000000
   Continuing to boot without FDT
   Initial value for argc=3
   Final value for argc=3
   using: ATAGS

   Starting kernel ...

Linux kernel exactly the same way(see arch/arm/include/asm/barrier.h).

Signed-off-by: Ziyuan Xu <xzy.xu@rock-chips.com>
---

 arch/arm/include/asm/system.h | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/arch/arm/include/asm/system.h b/arch/arm/include/asm/system.h
index 2bdc0be..12d4ba0 100644
--- a/arch/arm/include/asm/system.h
+++ b/arch/arm/include/asm/system.h
@@ -227,13 +227,15 @@ void __noreturn psci_system_reset(bool smc);
  */
 void save_boot_params_ret(void);
 
-#define isb() __asm__ __volatile__ ("" : : : "memory")
-
 #define nop() __asm__ __volatile__("mov\tr0,r0\t@ nop\n\t");
 
 #ifdef __ARM_ARCH_7A__
+#define isb() __asm__ __volatile__ ("isb" : : : "memory")
+
 #define wfi() __asm__ __volatile__ ("wfi" : : : "memory")
 #else
+#define isb() __asm__ __volatile__ ("" : : : "memory")
+
 #define wfi()
 #endif
 
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2016-08-01  1:07 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-07-28 10:13 [U-Boot] [PATCH] arm: re-implement proper ISB instruction for ARMv7-A Ziyuan Xu
2016-07-28 10:39 ` Alexander Graf
2016-07-28 12:03   ` Ziyuan Xu
2016-07-28 12:41     ` Sandy Patterson
2016-07-28 11:03 ` Chen-Yu Tsai
2016-07-28 11:51   ` Ziyuan Xu
2016-07-28 22:15   ` Tom Rini
2016-07-28 23:34     ` Ziyuan Xu
2016-07-29  0:34       ` Tom Rini
2016-07-29  1:06         ` Ziyuan Xu
2016-07-29  1:12           ` Tom Rini
2016-07-29  1:30             ` Ziyuan Xu
2016-07-31  3:59             ` Ziyuan Xu
2016-07-31 14:27               ` Tom Rini
2016-08-01  1:07                 ` Ziyuan Xu
2016-07-28 22:16 ` Tom Rini

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.