|
@@ -167,6 +167,9 @@
|
|
#define S2CR_TYPE_BYPASS (1 << S2CR_TYPE_SHIFT)
|
|
#define S2CR_TYPE_BYPASS (1 << S2CR_TYPE_SHIFT)
|
|
#define S2CR_TYPE_FAULT (2 << S2CR_TYPE_SHIFT)
|
|
#define S2CR_TYPE_FAULT (2 << S2CR_TYPE_SHIFT)
|
|
|
|
|
|
|
|
+#define S2CR_PRIVCFG_SHIFT 24
|
|
|
|
+#define S2CR_PRIVCFG_UNPRIV (2 << S2CR_PRIVCFG_SHIFT)
|
|
|
|
+
|
|
/* Context bank attribute registers */
|
|
/* Context bank attribute registers */
|
|
#define ARM_SMMU_GR1_CBAR(n) (0x0 + ((n) << 2))
|
|
#define ARM_SMMU_GR1_CBAR(n) (0x0 + ((n) << 2))
|
|
#define CBAR_VMID_SHIFT 0
|
|
#define CBAR_VMID_SHIFT 0
|
|
@@ -1083,7 +1086,7 @@ static int arm_smmu_domain_add_master(struct arm_smmu_domain *smmu_domain,
|
|
u32 idx, s2cr;
|
|
u32 idx, s2cr;
|
|
|
|
|
|
idx = cfg->smrs ? cfg->smrs[i].idx : cfg->streamids[i];
|
|
idx = cfg->smrs ? cfg->smrs[i].idx : cfg->streamids[i];
|
|
- s2cr = S2CR_TYPE_TRANS |
|
|
|
|
|
|
+ s2cr = S2CR_TYPE_TRANS | S2CR_PRIVCFG_UNPRIV |
|
|
(smmu_domain->cfg.cbndx << S2CR_CBNDX_SHIFT);
|
|
(smmu_domain->cfg.cbndx << S2CR_CBNDX_SHIFT);
|
|
writel_relaxed(s2cr, gr0_base + ARM_SMMU_GR0_S2CR(idx));
|
|
writel_relaxed(s2cr, gr0_base + ARM_SMMU_GR0_S2CR(idx));
|
|
}
|
|
}
|