From fcf6c8c416f790ad3d9f76bf75b5b528c11896c7 Mon Sep 17 00:00:00 2001 From: Karol Trzcinski Date: Fri, 22 Nov 2019 13:33:38 +0100 Subject: [PATCH] trace: Use uncached memory in trace_point and panic It didn't work correctly if multiple cores write to "sw regs" allocated on the same cache line. Signed-off-by: Karol Trzcinski --- src/include/sof/lib/mailbox.h | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/include/sof/lib/mailbox.h b/src/include/sof/lib/mailbox.h index 26ecb3d037ca..2ab98bdd66e1 100644 --- a/src/include/sof/lib/mailbox.h +++ b/src/include/sof/lib/mailbox.h @@ -105,9 +105,11 @@ void mailbox_stream_write(size_t offset, const void *src, size_t bytes) static inline void mailbox_sw_reg_write(size_t offset, uint32_t src) { - *((volatile uint32_t*)(MAILBOX_SW_REG_BASE + offset)) = src; - dcache_writeback_region((void *)(MAILBOX_SW_REG_BASE + offset), - sizeof(src)); + volatile uint32_t *ptr; + + ptr = (volatile uint32_t *)(MAILBOX_SW_REG_BASE + offset); + ptr = cache_to_uncache(ptr); + *ptr = src; } #endif /* __SOF_LIB_MAILBOX_H__ */