iommu/arm-smmu: set CBARn.BPSHCFG to NSH for s1-s2-bypass contexts
authorWill Deacon <will.deacon@arm.com>
Thu, 6 Feb 2014 14:59:05 +0000 (14:59 +0000)
committerJiri Slaby <jslaby@suse.cz>
Wed, 5 Mar 2014 16:13:51 +0000 (17:13 +0100)
commit01ffe6154b9939874fb5d7d4cc59d66bec9ebb68
treeb224540f80d47f189cc0530819496e3ad7305481
parent011b7e12aeb92635e5ff3864f5ba6f388720f6ec
iommu/arm-smmu: set CBARn.BPSHCFG to NSH for s1-s2-bypass contexts

commit 57ca90f6800987ac274d7ba065ae6692cdf9bcd7 upstream.

Whilst trying to bring-up an SMMUv2 implementation with the table
walker plumbed into a coherent interconnect, I noticed that the memory
transactions targetting the CPU caches from the SMMU were marked as
outer-shareable instead of inner-shareable.

After a bunch of digging, it seems that we actually need to program
CBARn.BPSHCFG for s1-s2-bypass contexts to act as non-shareable in order
for the shareability configured in the corresponding TTBCR not to be
overridden with an outer-shareable attribute.

Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
drivers/iommu/arm-smmu.c