From a48c05226d8ca89ba11483e75dad74d373af27e8 Mon Sep 17 00:00:00 2001 From: Pavel Pisa Date: Fri, 15 Jul 2016 16:21:12 +0200 Subject: arm/raspberrypi: cache manager can be used for mailbox synchronization now. Remove workarounds. Signed-off-by: Pavel Pisa --- c/src/lib/libbsp/arm/raspberrypi/misc/vc.c | 35 ++---------------------------- 1 file changed, 2 insertions(+), 33 deletions(-) diff --git a/c/src/lib/libbsp/arm/raspberrypi/misc/vc.c b/c/src/lib/libbsp/arm/raspberrypi/misc/vc.c index 0bec0c2dab..a3753ccc0c 100644 --- a/c/src/lib/libbsp/arm/raspberrypi/misc/vc.c +++ b/c/src/lib/libbsp/arm/raspberrypi/misc/vc.c @@ -56,39 +56,8 @@ static inline void bcm2835_mailbox_buffer_flush_and_invalidate( size_t size ) { - uint32_t sctlr_val; - - sctlr_val = arm_cp15_get_control(); - - RTEMS_COMPILER_MEMORY_BARRIER(); - arm_cp15_drain_write_buffer(); - - if ( sctlr_val & ( ARM_CP15_CTRL_C | ARM_CP15_CTRL_M ) ) { -#if 0 - /* - These architecture independent RTEMS API functions should be - used there but CPU_DATA_CACHE_ALIGNMENT is not defined - for ARM architecture version used on RPi and functions - are dummy for now and do not provide required synchronization - */ - rtems_cache_flush_multiple_data_lines( buf, size ); - rtems_cache_invalidate_multiple_data_lines( buf, size ); -#elif 0 - /* Flush complete data cache, does not work on RPi2 for some reason */ - arm_cp15_data_cache_clean_and_invalidate(); -#else - /* - * This is temporal workaround for missing cache meanager - * which works on RPi2 - */ - size += (uintptr_t)buf & ~63; - size = (size + 63) & ~63; - while ( size ) { - size -= 32; - arm_cp15_data_cache_clean_and_invalidate_line(buf); - } -#endif - } + rtems_cache_flush_multiple_data_lines( buf, size ); + rtems_cache_invalidate_multiple_data_lines( buf, size ); } #define BCM2835_MBOX_VAL_LENGTH_MASK( _val_len ) \ -- cgit v1.2.3