summaryrefslogtreecommitdiff
path: root/package/boot/uboot-layerscape/patches/0030-ARMv8-Enable-CPUECTLR.SMPEN-for-data-coherency.patch
blob: 33ea6685262ca8f5833939677d910c687be78123 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
From 367c16da9255dacf6440f3c72c01c197cfb1bbe8 Mon Sep 17 00:00:00 2001
From: Sumit Garg <sumit.garg@nxp.com>
Date: Wed, 11 May 2016 12:44:35 -0400
Subject: [PATCH 30/93] ARMv8: Enable CPUECTLR.SMPEN for data coherency

Data coherency is enabled only when the CPUECTLR.SMPEN bit is set.
The SMPEN bit should be set before enabling the data cache. If not
enabled, the cache is not coherent with other cores and data
corruption could occur. It also enables core level cache snooping.

Signed-off-by: Sumit Garg <sumit.garg@nxp.com>
---
 arch/arm/cpu/armv8/start.S |    3 +++
 1 file changed, 3 insertions(+)

diff --git a/arch/arm/cpu/armv8/start.S b/arch/arm/cpu/armv8/start.S
index 235213f..9703f6b 100644
--- a/arch/arm/cpu/armv8/start.S
+++ b/arch/arm/cpu/armv8/start.S
@@ -70,6 +70,9 @@ reset:
 	mov	x0, #3 << 20
 	msr	cpacr_el1, x0			/* Enable FP/SIMD */
 0:
+	/* Enalbe SMPEN bit */
+	mov	x0, #0x40
+	msr	s3_1_c15_c2_1, x0
 
 	/* Apply ARM core specific erratas */
 	bl	apply_core_errata
-- 
1.7.9.5