- 09 10月, 2013 6 次提交
-
-
由 Andreas Herrmann 提交于
Print context fault information when the fault was not handled by report_iommu_fault. Signed-off-by: NAndreas Herrmann <andreas.herrmann@calxeda.com> [will: fixed string formatting] Signed-off-by: NWill Deacon <will.deacon@arm.com>
-
由 Andreas Herrmann 提交于
With the right (or wrong;-) definition of v1 SMMU node in DTB it is possible to trigger a division by zero in arm_smmu_init_domain_context (if number of context irqs is 0): if (smmu->version == 1) { root_cfg->irptndx = atomic_inc_return(&smmu->irptndx); => root_cfg->irptndx %= smmu->num_context_irqs; } else { Avoid this by checking for num_context_irqs > 0 when probing for SMMU devices. Signed-off-by: NAndreas Herrmann <andreas.herrmann@calxeda.com> [will: changed to dev_err on probe failure path] Signed-off-by: NWill Deacon <will.deacon@arm.com>
-
由 Andreas Herrmann 提交于
There is already a check to print a warning if the size of SMMU address space (calculated from SMMU register values) is greater than the size of the mapped memory region (e.g. passed via DT to the driver). Adapt this check to print also a warning in case the mapped region is larger than the SMMU address space. Such a mismatch could be intentional (to fix wrong register values). If its not intentional (e.g. due to wrong DT information) this will very likely cause a malfunction of the driver as SMMU_CB_BASE is derived from the size of the mapped region. The warning helps to identify the root cause in this case. Signed-off-by: NAndreas Herrmann <andreas.herrmann@calxeda.com> Signed-off-by: NWill Deacon <will.deacon@arm.com>
-
由 Andreas Herrmann 提交于
This should ensure that arm-smmu is initialized before other drivers start handling devices that propably need smmu support. Signed-off-by: NAndreas Herrmann <andreas.herrmann@calxeda.com> Signed-off-by: NWill Deacon <will.deacon@arm.com>
-
由 Will Deacon 提交于
Apart from fault handling and page table manipulation, we don't care about memory ordering between SMMU control registers and normal, cacheable memory, so use the _relaxed I/O accessors wherever possible. Signed-off-by: NWill Deacon <will.deacon@arm.com>
-
由 Julia Lawall 提交于
Use devm_ioremap_resource instead of devm_request_and_ioremap. This was partly done using the semantic patch scripts/coccinelle/api/devm_ioremap_resource.cocci The error-handling code on the call to platform_get_resource was removed manually, and the initialization of smmu->size was manually moved lower, to take advantage of the NULL test on res performed by devm_ioremap_resource. Signed-off-by: NJulia Lawall <Julia.Lawall@lip6.fr> Signed-off-by: NWill Deacon <will.deacon@arm.com>
-
- 17 9月, 2013 3 次提交
-
-
由 Will Deacon 提交于
We currently reset and enable the SMMU before the device has finished being probed, so if we fail later on (for example, because we couldn't request a global irq successfully) then we will leave the device in an active state. This patch delays the reset and enabling of the SMMU hardware until probing has completed. Cc: <stable@vger.kernel.org> Signed-off-by: NWill Deacon <will.deacon@arm.com>
-
由 Dan Carpenter 提交于
The extra semi-colon on the end breaks the test. Cc: <stable@vger.kernel.org> Tested-by: NWill Deacon <will.deacon@arm.com> Signed-off-by: NDan Carpenter <dan.carpenter@oracle.com> Signed-off-by: NWill Deacon <will.deacon@arm.com>
-
由 Dan Carpenter 提交于
Unsigned char is never equal to -1. Cc: <stable@vger.kernel.org> Tested-by: NWill Deacon <will.deacon@arm.com> Signed-off-by: NDan Carpenter <dan.carpenter@oracle.com> Signed-off-by: NWill Deacon <will.deacon@arm.com>
-
- 14 8月, 2013 4 次提交
-
-
由 Will Deacon 提交于
We only use ASIDs and VMIDs to identify individual stage-1 and stage-2 context-banks respectively, so rather than allocate these separately from the context-banks, just calculate them based on the context bank index. Note that VMIDs are offset by 1, since VMID 0 is reserved for stage-1. This doesn't cause us any issues with the numberspaces, since the maximum number of context banks is half the minimum number of VMIDs. Signed-off-by: NWill Deacon <will.deacon@arm.com> Signed-off-by: NJoerg Roedel <joro@8bytes.org>
-
由 Will Deacon 提交于
Although permitted by the architecture, using VMIDs for stage-1 translations causes a complete nightmare for hypervisors, who end up having to virtualise the VMID space across VMs, which may be using multiple VMIDs each. To make life easier for hypervisors (which might just decide not to support this VMID virtualisation), this patch reworks the stage-1 context-bank TLB invalidation so that: - Stage-1 mappings are marked non-global in the ptes - Each Stage-1 context-bank is assigned an ASID in TTBR0 - VMID 0 is reserved for Stage-1 context-banks This allows the hypervisor to overwrite the Stage-1 VMID in the CBAR when trapping the write from the guest. Signed-off-by: NWill Deacon <will.deacon@arm.com> Signed-off-by: NJoerg Roedel <joro@8bytes.org>
-
由 Will Deacon 提交于
On systems which use a single, combined irq line for the SMMU, context faults may result in us spuriously reporting global faults with zero status registers. This patch fixes up the fsr checks in both the context and global fault interrupt handlers, so that we only report the fault if the fsr indicates something did indeed go awry. Signed-off-by: NWill Deacon <will.deacon@arm.com> Signed-off-by: NJoerg Roedel <joro@8bytes.org>
-
由 Will Deacon 提交于
The bottom word of the pgd should always be written to the low half of the TTBR, so we don't need to swap anything for big-endian. Signed-off-by: NWill Deacon <will.deacon@arm.com> Signed-off-by: NJoerg Roedel <joro@8bytes.org>
-
- 26 6月, 2013 1 次提交
-
-
由 Will Deacon 提交于
This patch adds support for SMMUs implementing the ARM System MMU architecture versions 1 or 2. Both arm and arm64 are supported, although the v7s descriptor format is not used. Cc: Rob Herring <robherring2@gmail.com> Cc: Andreas Herrmann <andreas.herrmann@calxeda.com> Cc: Olav Haugan <ohaugan@codeaurora.org> Cc: Joerg Roedel <joro@8bytes.org> Signed-off-by: NWill Deacon <will.deacon@arm.com> Acked-by: NAndreas Herrmann <andreas.herrmann@calxeda.com> Signed-off-by: NJoerg Roedel <joro@8bytes.org>
-