Skip to content

Commit 1d239c1

Browse files
committed
Merge tag 'iommu-updates-v5.20-or-v6.0' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu
Pull iommu updates from Joerg Roedel: - The most intrusive patch is small and changes the default allocation policy for DMA addresses. Before the change the allocator tried its best to find an address in the first 4GB. But that lead to performance problems when that space gets exhaused, and since most devices are capable of 64-bit DMA these days, we changed it to search in the full DMA-mask range from the beginning. This change has the potential to uncover bugs elsewhere, in the kernel or the hardware. There is a Kconfig option and a command line option to restore the old behavior, but none of them is enabled by default. - Add Robin Murphy as reviewer of IOMMU code and maintainer for the dma-iommu and iova code - Chaning IOVA magazine size from 1032 to 1024 bytes to save memory - Some core code cleanups and dead-code removal - Support for ACPI IORT RMR node - Support for multiple PCI domains in the AMD-Vi driver - ARM SMMU changes from Will Deacon: - Add even more Qualcomm device-tree compatible strings - Support dumping of IMP DEF Qualcomm registers on TLB sync timeout - Fix reference count leak on device tree node in Qualcomm driver - Intel VT-d driver updates from Lu Baolu: - Make intel-iommu.h private - Optimize the use of two locks - Extend the driver to support large-scale platforms - Cleanup some dead code - MediaTek IOMMU refactoring and support for TTBR up to 35bit - Basic support for Exynos SysMMU v7 - VirtIO IOMMU driver gets a map/unmap_pages() implementation - Other smaller cleanups and fixes * tag 'iommu-updates-v5.20-or-v6.0' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu: (116 commits) iommu/amd: Fix compile warning in init code iommu/amd: Add support for AVIC when SNP is enabled iommu/amd: Simplify and Consolidate Virtual APIC (AVIC) Enablement ACPI/IORT: Fix build error implicit-function-declaration drivers: iommu: fix clang -wformat warning iommu/arm-smmu: qcom_iommu: Add of_node_put() when breaking out of loop iommu/arm-smmu-qcom: Add SM6375 SMMU compatible dt-bindings: arm-smmu: Add compatible for Qualcomm SM6375 MAINTAINERS: Add Robin Murphy as IOMMU SUBSYTEM reviewer iommu/amd: Do not support IOMMUv2 APIs when SNP is enabled iommu/amd: Do not support IOMMU_DOMAIN_IDENTITY after SNP is enabled iommu/amd: Set translation valid bit only when IO page tables are in use iommu/amd: Introduce function to check and enable SNP iommu/amd: Globally detect SNP support iommu/amd: Process all IVHDs before enabling IOMMU features iommu/amd: Introduce global variable for storing common EFR and EFR2 iommu/amd: Introduce Support for Extended Feature 2 Register iommu/amd: Change macro for IOMMU control register bit shift to decimal value iommu/exynos: Enable default VM instance on SysMMU v7 iommu/exynos: Add SysMMU v7 register set ...
2 parents 75b9fcb + c10100a commit 1d239c1

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

59 files changed

+2521
-1484
lines changed

Documentation/admin-guide/kernel-parameters.txt

Lines changed: 25 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2274,23 +2274,39 @@
22742274

22752275
ivrs_ioapic [HW,X86-64]
22762276
Provide an override to the IOAPIC-ID<->DEVICE-ID
2277-
mapping provided in the IVRS ACPI table. For
2278-
example, to map IOAPIC-ID decimal 10 to
2279-
PCI device 00:14.0 write the parameter as:
2277+
mapping provided in the IVRS ACPI table.
2278+
By default, PCI segment is 0, and can be omitted.
2279+
For example:
2280+
* To map IOAPIC-ID decimal 10 to PCI device 00:14.0
2281+
write the parameter as:
22802282
ivrs_ioapic[10]=00:14.0
2283+
* To map IOAPIC-ID decimal 10 to PCI segment 0x1 and
2284+
PCI device 00:14.0 write the parameter as:
2285+
ivrs_ioapic[10]=0001:00:14.0
22812286

22822287
ivrs_hpet [HW,X86-64]
22832288
Provide an override to the HPET-ID<->DEVICE-ID
2284-
mapping provided in the IVRS ACPI table. For
2285-
example, to map HPET-ID decimal 0 to
2286-
PCI device 00:14.0 write the parameter as:
2289+
mapping provided in the IVRS ACPI table.
2290+
By default, PCI segment is 0, and can be omitted.
2291+
For example:
2292+
* To map HPET-ID decimal 0 to PCI device 00:14.0
2293+
write the parameter as:
22872294
ivrs_hpet[0]=00:14.0
2295+
* To map HPET-ID decimal 10 to PCI segment 0x1 and
2296+
PCI device 00:14.0 write the parameter as:
2297+
ivrs_ioapic[10]=0001:00:14.0
22882298

22892299
ivrs_acpihid [HW,X86-64]
22902300
Provide an override to the ACPI-HID:UID<->DEVICE-ID
2291-
mapping provided in the IVRS ACPI table. For
2292-
example, to map UART-HID:UID AMD0020:0 to
2293-
PCI device 00:14.5 write the parameter as:
2301+
mapping provided in the IVRS ACPI table.
2302+
2303+
For example, to map UART-HID:UID AMD0020:0 to
2304+
PCI segment 0x1 and PCI device ID 00:14.5,
2305+
write the parameter as:
2306+
ivrs_acpihid[0001:00:14.5]=AMD0020:0
2307+
2308+
By default, PCI segment is 0, and can be omitted.
2309+
For example, PCI device 00:14.5 write the parameter as:
22942310
ivrs_acpihid[00:14.5]=AMD0020:0
22952311

22962312
js= [HW,JOY] Analog joystick

Documentation/devicetree/bindings/iommu/arm,smmu.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ properties:
4242
- qcom,sdx55-smmu-500
4343
- qcom,sdx65-smmu-500
4444
- qcom,sm6350-smmu-500
45+
- qcom,sm6375-smmu-500
4546
- qcom,sm8150-smmu-500
4647
- qcom,sm8250-smmu-500
4748
- qcom,sm8350-smmu-500

Documentation/devicetree/bindings/iommu/mediatek,iommu.yaml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,10 @@ properties:
101101
items:
102102
- const: bclk
103103

104+
mediatek,infracfg:
105+
$ref: /schemas/types.yaml#/definitions/phandle
106+
description: The phandle to the mediatek infracfg syscon
107+
104108
mediatek,larbs:
105109
$ref: /schemas/types.yaml#/definitions/phandle-array
106110
minItems: 1
@@ -167,6 +171,18 @@ allOf:
167171
required:
168172
- power-domains
169173

174+
- if:
175+
properties:
176+
compatible:
177+
contains:
178+
enum:
179+
- mediatek,mt2712-m4u
180+
- mediatek,mt8173-m4u
181+
182+
then:
183+
required:
184+
- mediatek,infracfg
185+
170186
- if: # The IOMMUs don't have larbs.
171187
not:
172188
properties:
@@ -191,6 +207,7 @@ examples:
191207
interrupts = <GIC_SPI 139 IRQ_TYPE_LEVEL_LOW>;
192208
clocks = <&infracfg CLK_INFRA_M4U>;
193209
clock-names = "bclk";
210+
mediatek,infracfg = <&infracfg>;
194211
mediatek,larbs = <&larb0>, <&larb1>, <&larb2>,
195212
<&larb3>, <&larb4>, <&larb5>;
196213
#iommu-cells = <1>;

MAINTAINERS

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10233,7 +10233,6 @@ L: iommu@lists.linux.dev
1023310233
S: Supported
1023410234
T: git git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu.git
1023510235
F: drivers/iommu/intel/
10236-
F: include/linux/intel-iommu.h
1023710236
F: include/linux/intel-svm.h
1023810237

1023910238
INTEL IOP-ADMA DMA DRIVER
@@ -10605,9 +10604,20 @@ T: git git://git.kernel.org/pub/scm/fs/xfs/xfs-linux.git
1060510604
F: fs/iomap/
1060610605
F: include/linux/iomap.h
1060710606

10608-
IOMMU DRIVERS
10607+
IOMMU DMA-API LAYER
10608+
M: Robin Murphy <robin.murphy@arm.com>
10609+
L: iommu@lists.linux.dev
10610+
S: Maintained
10611+
T: git git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu.git
10612+
F: drivers/iommu/dma-iommu.c
10613+
F: drivers/iommu/iova.c
10614+
F: include/linux/dma-iommu.h
10615+
F: include/linux/iova.h
10616+
10617+
IOMMU SUBSYSTEM
1060910618
M: Joerg Roedel <joro@8bytes.org>
1061010619
M: Will Deacon <will@kernel.org>
10620+
R: Robin Murphy <robin.murphy@arm.com>
1061110621
L: iommu@lists.linux.dev
1061210622
S: Maintained
1061310623
T: git git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu.git

arch/x86/kernel/tboot.c

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
* Copyright (c) 2006-2009, Intel Corporation
77
*/
88

9-
#include <linux/intel-iommu.h>
109
#include <linux/init_task.h>
1110
#include <linux/spinlock.h>
1211
#include <linux/export.h>
@@ -516,17 +515,3 @@ struct acpi_table_header *tboot_get_dmar_table(struct acpi_table_header *dmar_tb
516515

517516
return dmar_tbl;
518517
}
519-
520-
int tboot_force_iommu(void)
521-
{
522-
if (!tboot_enabled())
523-
return 0;
524-
525-
if (no_iommu || dmar_disabled)
526-
pr_warn("Forcing Intel-IOMMU to enabled\n");
527-
528-
dmar_disabled = 0;
529-
no_iommu = 0;
530-
531-
return 1;
532-
}

arch/x86/kvm/x86.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,6 @@
4141
#include <linux/mman.h>
4242
#include <linux/highmem.h>
4343
#include <linux/iommu.h>
44-
#include <linux/intel-iommu.h>
4544
#include <linux/cpufreq.h>
4645
#include <linux/user-return-notifier.h>
4746
#include <linux/srcu.h>

0 commit comments

Comments
 (0)