Lines Matching +full:mmu +full:- +full:500 +full:s
1 // SPDX-License-Identifier: GPL-2.0-only
5 #define pr_fmt(fmt) "arm-smmu: " fmt
10 #include "arm-smmu.h"
44 /* Since we don't care for sGFAR, we can do without 64-bit accessors */
65 cs->id_base = atomic_fetch_add(smmu->num_context_banks, &context_count); in cavium_cfg_probe()
66 dev_notice(smmu->dev, "\tenabling workaround for Cavium erratum 27704\n"); in cavium_cfg_probe()
74 struct cavium_smmu *cs = container_of(smmu_domain->smmu, in cavium_init_context()
77 if (smmu_domain->stage == ARM_SMMU_DOMAIN_S2) in cavium_init_context()
78 smmu_domain->cfg.vmid += cs->id_base; in cavium_init_context()
80 smmu_domain->cfg.asid += cs->id_base; in cavium_init_context()
94 cs = devm_krealloc(smmu->dev, smmu, sizeof(*cs), GFP_KERNEL); in cavium_smmu_impl_init()
96 return ERR_PTR(-ENOMEM); in cavium_smmu_impl_init()
98 cs->smmu.impl = &cavium_impl; in cavium_smmu_impl_init()
100 return &cs->smmu; in cavium_smmu_impl_init()
115 * On MMU-500 r2p0 onwards we need to clear ACR.CACHE_LOCK before in arm_mmu500_reset()
132 * Disable MMU-500's not-particularly-beneficial next-page in arm_mmu500_reset()
135 for (i = 0; i < smmu->num_context_banks; ++i) { in arm_mmu500_reset()
151 * Marvell Armada-AP806 erratum #582743. in mrvl_mmu500_readq()
161 * Marvell Armada-AP806 erratum #582743. in mrvl_mmu500_writeq()
171 * Armada-AP806 erratum #582743. in mrvl_mmu500_cfg_probe()
176 smmu->features &= ~(ARM_SMMU_FEAT_FMT_AARCH64_4K | in mrvl_mmu500_cfg_probe()
193 const struct device_node *np = smmu->dev->of_node; in arm_smmu_impl_init()
196 * Set the impl for model-specific implementation quirks first, in arm_smmu_impl_init()
200 switch (smmu->model) { in arm_smmu_impl_init()
202 smmu->impl = &arm_mmu500_impl; in arm_smmu_impl_init()
210 /* This is implicitly MMU-400 */ in arm_smmu_impl_init()
211 if (of_property_read_bool(np, "calxeda,smmu-secure-config-access")) in arm_smmu_impl_init()
212 smmu->impl = &calxeda_impl; in arm_smmu_impl_init()
214 if (of_device_is_compatible(np, "nvidia,tegra234-smmu") || in arm_smmu_impl_init()
215 of_device_is_compatible(np, "nvidia,tegra194-smmu") || in arm_smmu_impl_init()
216 of_device_is_compatible(np, "nvidia,tegra186-smmu")) in arm_smmu_impl_init()
222 if (of_device_is_compatible(np, "marvell,ap806-smmu-500")) in arm_smmu_impl_init()
223 smmu->impl = &mrvl_mmu500_impl; in arm_smmu_impl_init()