From 5db97b2668a1b8b86fa7a40a8c265e789418e978 Mon Sep 17 00:00:00 2001 From: Michael Lotz Date: Tue, 27 Nov 2012 20:22:42 +0100 Subject: [PATCH] Add memory barrier functions to the ARM bootloader. --- src/system/boot/arch/arm/arch_cpu.cpp | 14 ++++++++++++++ src/system/boot/arch/arm/arch_cpu.h | 2 ++ 2 files changed, 16 insertions(+) diff --git a/src/system/boot/arch/arm/arch_cpu.cpp b/src/system/boot/arch/arm/arch_cpu.cpp index 5868da03c2..23dd70bfa2 100644 --- a/src/system/boot/arch/arm/arch_cpu.cpp +++ b/src/system/boot/arch/arm/arch_cpu.cpp @@ -87,6 +87,20 @@ check_cpu_features() } +void +arch_cpu_memory_read_barrier(void) +{ + asm volatile ("" : : : "memory"); +} + + +void +arch_cpu_memory_write_barrier(void) +{ + asm volatile ("" : : : "memory"); +} + + extern "C" void arch_spin(bigtime_t microseconds) { diff --git a/src/system/boot/arch/arm/arch_cpu.h b/src/system/boot/arch/arm/arch_cpu.h index dd9de74e55..beebacb359 100644 --- a/src/system/boot/arch/arm/arch_cpu.h +++ b/src/system/boot/arch/arm/arch_cpu.h @@ -14,6 +14,8 @@ extern "C" { #endif extern void arch_spin(bigtime_t microseconds); +extern void arch_cpu_memory_read_barrier(void); +extern void arch_cpu_memory_write_barrier(void); extern status_t boot_arch_cpu_init(void); extern void cpu_init(void);