aboutsummaryrefslogtreecommitdiffstats
path: root/docs
diff options
context:
space:
mode:
authorIan Campbell <ian.campbell@citrix.com>2013-07-15 09:24:05 +0100
committerIan Campbell <ian.campbell@citrix.com>2013-07-17 10:48:54 +0100
commit8348707ce1c76e2fecbe9d413d5d8f2085bf57cb (patch)
treeea5212c891fb924bb73e01aaa387402a8c702dcc /docs
parent26b48cf251c6ce39c07462b833d33195c172466b (diff)
downloadxen-8348707ce1c76e2fecbe9d413d5d8f2085bf57cb.tar.gz
xen-8348707ce1c76e2fecbe9d413d5d8f2085bf57cb.tar.bz2
xen-8348707ce1c76e2fecbe9d413d5d8f2085bf57cb.zip
xen: arm: correctly configure NSACR.
Previously we were setting it up twice, the second time neglecting to set the NS_SMP bit. NSACR.NS_SMP is a processor specific bit which on Cortex-A7 and -A15 regulates access to the (also processor specific) ACTLR.SMP bit. Not setting NSACR.NS_SMP meant that Xen's attempts to set ACTLR.SMP was silently ignored. Setting this bit is required in order to cause the processor to take part in cache and TLB coherency protocols. Failure to set this bit leads to random memory corruption in guests (although nothing like as catastrophic as you might expect!). An alternative fix would have been to set ACTLR.SMP when in Secure World, however Linux expects to set ACTLR.SMP itself in NS mode, so it's a good bet that bootloaders will set NSACR.NS_SMP instead. While here switch to a read-modify-write of NSACR to preserve any existing bits -- seems safer. Signed-off-by: Ian Campbell <ian.campbell@citrix.com> Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com> Acked-by: Julien Grall <julien.grall@linaro.org>
Diffstat (limited to 'docs')
0 files changed, 0 insertions, 0 deletions