From a20463642e2f2b60d27122bd9bdc9327e4e08d91 Mon Sep 17 00:00:00 2001 From: Masayuki Ishikawa Date: Sat, 14 Nov 2020 18:30:38 +0900 Subject: [PATCH] arch: armv7-a: Fix MMU settings for SDRAM in SMP mode Summary: - This commit fixes armv7-a deadlocks with D-cache in SMP mode. - In SMP mode, MMU for SDRAM area must be set to shareable Impact: - SMP only Testing: - Tested with sabre-6quad:smp (QEMU and dev board) Signed-off-by: Masayuki Ishikawa --- arch/arm/src/armv7-a/mmu.h | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/arch/arm/src/armv7-a/mmu.h b/arch/arm/src/armv7-a/mmu.h index 94f7227b6d7..83eb36036a0 100644 --- a/arch/arm/src/armv7-a/mmu.h +++ b/arch/arm/src/armv7-a/mmu.h @@ -584,8 +584,15 @@ #define MMU_ROMFLAGS (PMD_TYPE_SECT | PMD_SECT_AP_R1 | PMD_CACHEABLE | \ PMD_SECT_DOM(0)) + +#ifdef CONFIG_SMP +#define MMU_MEMFLAGS (PMD_TYPE_SECT | PMD_SECT_AP_RW1 | PMD_CACHEABLE | \ + PMD_SECT_S | PMD_SECT_DOM(0)) +#else #define MMU_MEMFLAGS (PMD_TYPE_SECT | PMD_SECT_AP_RW1 | PMD_CACHEABLE | \ PMD_SECT_DOM(0)) +#endif + #define MMU_IOFLAGS (PMD_TYPE_SECT | PMD_SECT_AP_RW1 | PMD_DEVICE | \ PMD_SECT_DOM(0) | PMD_SECT_XN) #define MMU_STRONGLY_ORDERED (PMD_TYPE_SECT | PMD_SECT_AP_RW1 | \