From: Jean-Philippe Brucker <jean-philippe.brucker@arm.com> To: linux-arm-kernel@lists.infradead.org, linux-pci@vger.kernel.org, linux-acpi@vger.kernel.org, devicetree@vger.kernel.org, iommu@lists.linux-foundation.org Cc: joro@8bytes.org, robh+dt@kernel.org, mark.rutland@arm.com, catalin.marinas@arm.com, will.deacon@arm.com, lorenzo.pieralisi@arm.com, hanjun.guo@linaro.org, sudeep.holla@arm.com, rjw@rjwysocki.net, lenb@kernel.org, robin.murphy@arm.com, bhelgaas@google.com, alex.williamson@redhat.com, tn@semihalf.com, liubo95@huawei.com, thunder.leizhen@huawei.com, xieyisheng1@huawei.com, gabriele.paoloni@huawei.com, nwatters@codeaurora.org, okaya@codeaurora.org, rfranz@cavium.com, dwmw2@infradead.org, jacob.jun.pan@linux.intel.com, yi.l.liu@intel.com, ashok.raj@intel.com, robdclark@gmail.com Subject: [RFCv2 PATCH 16/36] iommu/arm-smmu-v3: Add support for VHE Date: Fri, 6 Oct 2017 14:31:43 +0100 [thread overview] Message-ID: <20171006133203.22803-17-jean-philippe.brucker@arm.com> (raw) In-Reply-To: <20171006133203.22803-1-jean-philippe.brucker@arm.com> ARMv8.1 extensions added Virtualization Host Extensions (VHE), which allow to run a host kernel at EL2. When using normal DMA, Device and CPU address spaces are orthogonal, and do not need to implement the same capabilities, so VHE hasn't been in use on the SMMU side until now. With shared address spaces however, ASIDs are shared between MMU and SMMU, and broadcast TLB invalidations issued by a CPU are taken into account by the SMMU. TLB entries on both sides need to have identical exception level in order to be shot with a single invalidation. When the CPU is using VHE, enable VHE in the SMMU and for all streams. Normal DMA mappings will need to use TLBI_EL2 commands instead of TLBI_NH, but shouldn't be otherwise affected by this change. Signed-off-by: Jean-Philippe Brucker <jean-philippe.brucker@arm.com> --- drivers/iommu/arm-smmu-v3.c | 29 ++++++++++++++++++++++++----- 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/drivers/iommu/arm-smmu-v3.c b/drivers/iommu/arm-smmu-v3.c index c444f9e83b91..27376e1193c1 100644 --- a/drivers/iommu/arm-smmu-v3.c +++ b/drivers/iommu/arm-smmu-v3.c @@ -22,6 +22,7 @@ #include <linux/acpi.h> #include <linux/acpi_iort.h> +#include <linux/cpufeature.h> #include <linux/delay.h> #include <linux/dma-iommu.h> #include <linux/err.h> @@ -516,6 +517,8 @@ struct arm_smmu_cmdq_ent { #define CMDQ_OP_TLBI_NH_ASID 0x11 #define CMDQ_OP_TLBI_NH_VA 0x12 #define CMDQ_OP_TLBI_EL2_ALL 0x20 + #define CMDQ_OP_TLBI_EL2_ASID 0x21 + #define CMDQ_OP_TLBI_EL2_VA 0x22 #define CMDQ_OP_TLBI_S12_VMALL 0x28 #define CMDQ_OP_TLBI_S2_IPA 0x2a #define CMDQ_OP_TLBI_NSNH_ALL 0x30 @@ -655,6 +658,7 @@ struct arm_smmu_device { #define ARM_SMMU_FEAT_STALLS (1 << 11) #define ARM_SMMU_FEAT_HYP (1 << 12) #define ARM_SMMU_FEAT_STALL_FORCE (1 << 13) +#define ARM_SMMU_FEAT_E2H (1 << 14) u32 features; #define ARM_SMMU_OPT_SKIP_PREFETCH (1 << 0) @@ -912,6 +916,7 @@ static int arm_smmu_cmdq_build_cmd(u64 *cmd, struct arm_smmu_cmdq_ent *ent) cmd[1] |= CMDQ_CFGI_1_RANGE_MASK << CMDQ_CFGI_1_RANGE_SHIFT; break; case CMDQ_OP_TLBI_NH_VA: + case CMDQ_OP_TLBI_EL2_VA: cmd[0] |= (u64)ent->tlbi.asid << CMDQ_TLBI_0_ASID_SHIFT; cmd[1] |= ent->tlbi.leaf ? CMDQ_TLBI_1_LEAF : 0; cmd[1] |= ent->tlbi.addr & CMDQ_TLBI_1_VA_MASK; @@ -927,6 +932,9 @@ static int arm_smmu_cmdq_build_cmd(u64 *cmd, struct arm_smmu_cmdq_ent *ent) case CMDQ_OP_TLBI_S12_VMALL: cmd[0] |= (u64)ent->tlbi.vmid << CMDQ_TLBI_0_VMID_SHIFT; break; + case CMDQ_OP_TLBI_EL2_ASID: + cmd[0] |= (u64)ent->tlbi.asid << CMDQ_TLBI_0_ASID_SHIFT; + break; case CMDQ_OP_PRI_RESP: cmd[0] |= ent->substream_valid ? CMDQ_0_SSV : 0; cmd[0] |= ent->pri.ssid << CMDQ_PRI_0_SSID_SHIFT; @@ -1428,7 +1436,9 @@ static void arm_smmu_write_strtab_ent(struct arm_smmu_device *smmu, u32 sid, #ifdef CONFIG_PCI_ATS STRTAB_STE_1_EATS_TRANS << STRTAB_STE_1_EATS_SHIFT | #endif - STRTAB_STE_1_STRW_NSEL1 << STRTAB_STE_1_STRW_SHIFT); + (smmu->features & ARM_SMMU_FEAT_E2H ? + STRTAB_STE_1_STRW_EL2 : STRTAB_STE_1_STRW_NSEL1) << + STRTAB_STE_1_STRW_SHIFT); if (smmu->features & ARM_SMMU_FEAT_STALLS && !(smmu->features & ARM_SMMU_FEAT_STALL_FORCE)) @@ -1694,7 +1704,8 @@ static void arm_smmu_tlb_inv_context(void *cookie) struct arm_smmu_cmdq_ent cmd; if (smmu_domain->stage == ARM_SMMU_DOMAIN_S1) { - cmd.opcode = CMDQ_OP_TLBI_NH_ASID; + cmd.opcode = smmu->features & ARM_SMMU_FEAT_E2H ? + CMDQ_OP_TLBI_EL2_ASID : CMDQ_OP_TLBI_NH_ASID; cmd.tlbi.asid = smmu_domain->s1_cfg.cd.asid; cmd.tlbi.vmid = 0; } else { @@ -1719,7 +1730,8 @@ static void arm_smmu_tlb_inv_range_nosync(unsigned long iova, size_t size, }; if (smmu_domain->stage == ARM_SMMU_DOMAIN_S1) { - cmd.opcode = CMDQ_OP_TLBI_NH_VA; + cmd.opcode = smmu->features & ARM_SMMU_FEAT_E2H ? + CMDQ_OP_TLBI_EL2_VA : CMDQ_OP_TLBI_NH_VA; cmd.tlbi.asid = smmu_domain->s1_cfg.cd.asid; } else { cmd.opcode = CMDQ_OP_TLBI_S2_IPA; @@ -2718,7 +2730,11 @@ static int arm_smmu_device_reset(struct arm_smmu_device *smmu, bool bypass) writel_relaxed(reg, smmu->base + ARM_SMMU_CR1); /* CR2 (random crap) */ - reg = CR2_PTM | CR2_RECINVSID | CR2_E2H; + reg = CR2_PTM | CR2_RECINVSID; + + if (smmu->features & ARM_SMMU_FEAT_E2H) + reg |= CR2_E2H; + writel_relaxed(reg, smmu->base + ARM_SMMU_CR2); /* Stream table */ @@ -2868,8 +2884,11 @@ static int arm_smmu_device_hw_probe(struct arm_smmu_device *smmu) if (reg & IDR0_MSI) smmu->features |= ARM_SMMU_FEAT_MSI; - if (reg & IDR0_HYP) + if (reg & IDR0_HYP) { smmu->features |= ARM_SMMU_FEAT_HYP; + if (cpus_have_cap(ARM64_HAS_VIRT_HOST_EXTN)) + smmu->features |= ARM_SMMU_FEAT_E2H; + } /* * The coherency feature as set by FW is used in preference to the ID -- 2.13.3
WARNING: multiple messages have this Message-ID (diff)
From: jean-philippe.brucker@arm.com (Jean-Philippe Brucker) To: linux-arm-kernel@lists.infradead.org Subject: [RFCv2 PATCH 16/36] iommu/arm-smmu-v3: Add support for VHE Date: Fri, 6 Oct 2017 14:31:43 +0100 [thread overview] Message-ID: <20171006133203.22803-17-jean-philippe.brucker@arm.com> (raw) In-Reply-To: <20171006133203.22803-1-jean-philippe.brucker@arm.com> ARMv8.1 extensions added Virtualization Host Extensions (VHE), which allow to run a host kernel at EL2. When using normal DMA, Device and CPU address spaces are orthogonal, and do not need to implement the same capabilities, so VHE hasn't been in use on the SMMU side until now. With shared address spaces however, ASIDs are shared between MMU and SMMU, and broadcast TLB invalidations issued by a CPU are taken into account by the SMMU. TLB entries on both sides need to have identical exception level in order to be shot with a single invalidation. When the CPU is using VHE, enable VHE in the SMMU and for all streams. Normal DMA mappings will need to use TLBI_EL2 commands instead of TLBI_NH, but shouldn't be otherwise affected by this change. Signed-off-by: Jean-Philippe Brucker <jean-philippe.brucker@arm.com> --- drivers/iommu/arm-smmu-v3.c | 29 ++++++++++++++++++++++++----- 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/drivers/iommu/arm-smmu-v3.c b/drivers/iommu/arm-smmu-v3.c index c444f9e83b91..27376e1193c1 100644 --- a/drivers/iommu/arm-smmu-v3.c +++ b/drivers/iommu/arm-smmu-v3.c @@ -22,6 +22,7 @@ #include <linux/acpi.h> #include <linux/acpi_iort.h> +#include <linux/cpufeature.h> #include <linux/delay.h> #include <linux/dma-iommu.h> #include <linux/err.h> @@ -516,6 +517,8 @@ struct arm_smmu_cmdq_ent { #define CMDQ_OP_TLBI_NH_ASID 0x11 #define CMDQ_OP_TLBI_NH_VA 0x12 #define CMDQ_OP_TLBI_EL2_ALL 0x20 + #define CMDQ_OP_TLBI_EL2_ASID 0x21 + #define CMDQ_OP_TLBI_EL2_VA 0x22 #define CMDQ_OP_TLBI_S12_VMALL 0x28 #define CMDQ_OP_TLBI_S2_IPA 0x2a #define CMDQ_OP_TLBI_NSNH_ALL 0x30 @@ -655,6 +658,7 @@ struct arm_smmu_device { #define ARM_SMMU_FEAT_STALLS (1 << 11) #define ARM_SMMU_FEAT_HYP (1 << 12) #define ARM_SMMU_FEAT_STALL_FORCE (1 << 13) +#define ARM_SMMU_FEAT_E2H (1 << 14) u32 features; #define ARM_SMMU_OPT_SKIP_PREFETCH (1 << 0) @@ -912,6 +916,7 @@ static int arm_smmu_cmdq_build_cmd(u64 *cmd, struct arm_smmu_cmdq_ent *ent) cmd[1] |= CMDQ_CFGI_1_RANGE_MASK << CMDQ_CFGI_1_RANGE_SHIFT; break; case CMDQ_OP_TLBI_NH_VA: + case CMDQ_OP_TLBI_EL2_VA: cmd[0] |= (u64)ent->tlbi.asid << CMDQ_TLBI_0_ASID_SHIFT; cmd[1] |= ent->tlbi.leaf ? CMDQ_TLBI_1_LEAF : 0; cmd[1] |= ent->tlbi.addr & CMDQ_TLBI_1_VA_MASK; @@ -927,6 +932,9 @@ static int arm_smmu_cmdq_build_cmd(u64 *cmd, struct arm_smmu_cmdq_ent *ent) case CMDQ_OP_TLBI_S12_VMALL: cmd[0] |= (u64)ent->tlbi.vmid << CMDQ_TLBI_0_VMID_SHIFT; break; + case CMDQ_OP_TLBI_EL2_ASID: + cmd[0] |= (u64)ent->tlbi.asid << CMDQ_TLBI_0_ASID_SHIFT; + break; case CMDQ_OP_PRI_RESP: cmd[0] |= ent->substream_valid ? CMDQ_0_SSV : 0; cmd[0] |= ent->pri.ssid << CMDQ_PRI_0_SSID_SHIFT; @@ -1428,7 +1436,9 @@ static void arm_smmu_write_strtab_ent(struct arm_smmu_device *smmu, u32 sid, #ifdef CONFIG_PCI_ATS STRTAB_STE_1_EATS_TRANS << STRTAB_STE_1_EATS_SHIFT | #endif - STRTAB_STE_1_STRW_NSEL1 << STRTAB_STE_1_STRW_SHIFT); + (smmu->features & ARM_SMMU_FEAT_E2H ? + STRTAB_STE_1_STRW_EL2 : STRTAB_STE_1_STRW_NSEL1) << + STRTAB_STE_1_STRW_SHIFT); if (smmu->features & ARM_SMMU_FEAT_STALLS && !(smmu->features & ARM_SMMU_FEAT_STALL_FORCE)) @@ -1694,7 +1704,8 @@ static void arm_smmu_tlb_inv_context(void *cookie) struct arm_smmu_cmdq_ent cmd; if (smmu_domain->stage == ARM_SMMU_DOMAIN_S1) { - cmd.opcode = CMDQ_OP_TLBI_NH_ASID; + cmd.opcode = smmu->features & ARM_SMMU_FEAT_E2H ? + CMDQ_OP_TLBI_EL2_ASID : CMDQ_OP_TLBI_NH_ASID; cmd.tlbi.asid = smmu_domain->s1_cfg.cd.asid; cmd.tlbi.vmid = 0; } else { @@ -1719,7 +1730,8 @@ static void arm_smmu_tlb_inv_range_nosync(unsigned long iova, size_t size, }; if (smmu_domain->stage == ARM_SMMU_DOMAIN_S1) { - cmd.opcode = CMDQ_OP_TLBI_NH_VA; + cmd.opcode = smmu->features & ARM_SMMU_FEAT_E2H ? + CMDQ_OP_TLBI_EL2_VA : CMDQ_OP_TLBI_NH_VA; cmd.tlbi.asid = smmu_domain->s1_cfg.cd.asid; } else { cmd.opcode = CMDQ_OP_TLBI_S2_IPA; @@ -2718,7 +2730,11 @@ static int arm_smmu_device_reset(struct arm_smmu_device *smmu, bool bypass) writel_relaxed(reg, smmu->base + ARM_SMMU_CR1); /* CR2 (random crap) */ - reg = CR2_PTM | CR2_RECINVSID | CR2_E2H; + reg = CR2_PTM | CR2_RECINVSID; + + if (smmu->features & ARM_SMMU_FEAT_E2H) + reg |= CR2_E2H; + writel_relaxed(reg, smmu->base + ARM_SMMU_CR2); /* Stream table */ @@ -2868,8 +2884,11 @@ static int arm_smmu_device_hw_probe(struct arm_smmu_device *smmu) if (reg & IDR0_MSI) smmu->features |= ARM_SMMU_FEAT_MSI; - if (reg & IDR0_HYP) + if (reg & IDR0_HYP) { smmu->features |= ARM_SMMU_FEAT_HYP; + if (cpus_have_cap(ARM64_HAS_VIRT_HOST_EXTN)) + smmu->features |= ARM_SMMU_FEAT_E2H; + } /* * The coherency feature as set by FW is used in preference to the ID -- 2.13.3
next prev parent reply other threads:[~2017-10-06 13:31 UTC|newest] Thread overview: 268+ messages / expand[flat|nested] mbox.gz Atom feed top 2017-10-06 13:31 [RFCv2 PATCH 00/36] Process management for IOMMU + SVM for SMMUv3 Jean-Philippe Brucker 2017-10-06 13:31 ` Jean-Philippe Brucker 2017-10-06 13:31 ` Jean-Philippe Brucker 2017-10-06 13:31 ` [RFCv2 PATCH 02/36] iommu: Add a process_exit callback for device drivers Jean-Philippe Brucker 2017-10-06 13:31 ` Jean-Philippe Brucker 2017-10-06 13:31 ` Jean-Philippe Brucker 2017-10-06 13:31 ` [RFCv2 PATCH 03/36] iommu/process: Add public function to search for a process Jean-Philippe Brucker 2017-10-06 13:31 ` Jean-Philippe Brucker 2017-10-06 13:31 ` Jean-Philippe Brucker [not found] ` <20171006133203.22803-1-jean-philippe.brucker-5wv7dgnIgG8@public.gmane.org> 2017-10-06 13:31 ` [RFCv2 PATCH 01/36] iommu: Keep track of processes and PASIDs Jean-Philippe Brucker 2017-10-06 13:31 ` Jean-Philippe Brucker 2017-10-06 13:31 ` Jean-Philippe Brucker 2017-10-23 11:04 ` Liu, Yi L 2017-10-23 11:04 ` Liu, Yi L 2017-10-23 11:04 ` Liu, Yi L 2017-10-23 12:17 ` Jean-Philippe Brucker 2017-10-23 12:17 ` Jean-Philippe Brucker 2017-10-23 12:17 ` Jean-Philippe Brucker [not found] ` <7aaf9851-9546-f34d-1496-cbeea404abbd-5wv7dgnIgG8@public.gmane.org> 2017-10-25 18:05 ` Raj, Ashok 2017-10-25 18:05 ` Raj, Ashok 2017-10-25 18:05 ` Raj, Ashok 2017-10-30 10:28 ` Jean-Philippe Brucker 2017-10-30 10:28 ` Jean-Philippe Brucker 2017-10-30 10:28 ` Jean-Philippe Brucker [not found] ` <20171006133203.22803-2-jean-philippe.brucker-5wv7dgnIgG8@public.gmane.org> 2017-10-20 23:32 ` Sinan Kaya 2017-10-20 23:32 ` Sinan Kaya 2017-10-20 23:32 ` Sinan Kaya 2017-11-02 16:20 ` Jean-Philippe Brucker 2017-11-02 16:20 ` Jean-Philippe Brucker 2017-11-02 16:20 ` Jean-Philippe Brucker 2017-11-08 17:50 ` Bharat Kumar Gogada 2017-11-08 17:50 ` Bharat Kumar Gogada 2017-11-08 17:50 ` Bharat Kumar Gogada 2017-11-09 12:13 ` Jean-Philippe Brucker 2017-11-09 12:13 ` Jean-Philippe Brucker 2017-11-09 12:13 ` Jean-Philippe Brucker [not found] ` <BLUPR0201MB150538FDD455F6042803B54FA5560-hRBPhS1iNj/g9tdZWAsUFxrHTHEw16jenBOFsp37pqbUKgpGm//BTAC/G2K4zDHf@public.gmane.org> 2017-11-09 12:16 ` Jean-Philippe Brucker 2017-11-09 12:16 ` Jean-Philippe Brucker 2017-11-09 12:16 ` Jean-Philippe Brucker [not found] ` <16b6ba80-b15b-b278-0d06-350ae0201e82-5wv7dgnIgG8@public.gmane.org> 2017-11-13 11:06 ` Bharat Kumar Gogada 2017-11-13 11:06 ` Bharat Kumar Gogada 2017-11-13 11:06 ` Bharat Kumar Gogada 2017-11-22 3:15 ` Bob Liu 2017-11-22 3:15 ` Bob Liu 2017-11-22 3:15 ` Bob Liu 2017-11-22 13:04 ` Jean-Philippe Brucker 2017-11-22 13:04 ` Jean-Philippe Brucker 2017-11-22 13:04 ` Jean-Philippe Brucker [not found] ` <42f815ee-2a9a-ac49-2392-5c03c1d4c809-5wv7dgnIgG8@public.gmane.org> 2017-11-23 10:33 ` Bob Liu 2017-11-23 10:33 ` Bob Liu 2017-11-23 10:33 ` Bob Liu 2017-10-06 13:31 ` [RFCv2 PATCH 04/36] iommu/process: Track process changes with an mmu_notifier Jean-Philippe Brucker 2017-10-06 13:31 ` Jean-Philippe Brucker 2017-10-06 13:31 ` Jean-Philippe Brucker 2017-10-06 13:31 ` [RFCv2 PATCH 05/36] iommu/process: Bind and unbind process to and from devices Jean-Philippe Brucker 2017-10-06 13:31 ` Jean-Philippe Brucker 2017-10-06 13:31 ` Jean-Philippe Brucker 2017-10-11 11:33 ` Joerg Roedel 2017-10-11 11:33 ` Joerg Roedel 2017-10-12 11:13 ` Jean-Philippe Brucker 2017-10-12 11:13 ` Jean-Philippe Brucker 2017-10-12 11:13 ` Jean-Philippe Brucker [not found] ` <ee7f80e3-ca30-0ee7-53f3-3e57b2b58df6-5wv7dgnIgG8@public.gmane.org> 2017-10-12 12:47 ` Joerg Roedel 2017-10-12 12:47 ` Joerg Roedel 2017-10-12 12:47 ` Joerg Roedel [not found] ` <20171006133203.22803-6-jean-philippe.brucker-5wv7dgnIgG8@public.gmane.org> 2017-10-21 15:47 ` Sinan Kaya 2017-10-21 15:47 ` Sinan Kaya 2017-10-21 15:47 ` Sinan Kaya [not found] ` <683a518d-0e22-c855-2416-2e097ec3291d-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org> 2017-11-02 16:21 ` Jean-Philippe Brucker 2017-11-02 16:21 ` Jean-Philippe Brucker 2017-11-02 16:21 ` Jean-Philippe Brucker 2017-11-29 6:08 ` Yisheng Xie 2017-11-29 6:08 ` Yisheng Xie 2017-11-29 6:08 ` Yisheng Xie 2017-11-29 15:01 ` Jean-Philippe Brucker 2017-11-29 15:01 ` Jean-Philippe Brucker 2017-11-29 15:01 ` Jean-Philippe Brucker 2017-11-30 1:11 ` Yisheng Xie 2017-11-30 1:11 ` Yisheng Xie 2017-11-30 1:11 ` Yisheng Xie 2017-11-30 13:39 ` Jean-Philippe Brucker 2017-11-30 13:39 ` Jean-Philippe Brucker 2017-11-30 13:39 ` Jean-Philippe Brucker 2018-01-19 4:52 ` Sinan Kaya 2018-01-19 4:52 ` Sinan Kaya 2018-01-19 4:52 ` Sinan Kaya [not found] ` <0772e71e-4861-1e7b-f248-88aaba8bf2fc-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org> 2018-01-19 10:27 ` Jean-Philippe Brucker 2018-01-19 10:27 ` Jean-Philippe Brucker 2018-01-19 10:27 ` Jean-Philippe Brucker 2018-01-19 13:07 ` okaya 2018-01-19 13:07 ` okaya at codeaurora.org 2018-01-19 13:07 ` okaya 2017-10-06 13:31 ` [RFCv2 PATCH 06/36] iommu: Extend fault reporting Jean-Philippe Brucker 2017-10-06 13:31 ` Jean-Philippe Brucker 2017-10-06 13:31 ` Jean-Philippe Brucker 2017-10-06 13:31 ` [RFCv2 PATCH 07/36] iommu: Add a fault handler Jean-Philippe Brucker 2017-10-06 13:31 ` Jean-Philippe Brucker 2017-10-06 13:31 ` Jean-Philippe Brucker 2017-10-06 13:31 ` [RFCv2 PATCH 08/36] iommu/fault: Handle mm faults Jean-Philippe Brucker 2017-10-06 13:31 ` Jean-Philippe Brucker 2017-10-06 13:31 ` Jean-Philippe Brucker 2017-10-06 13:31 ` [RFCv2 PATCH 13/36] iommu/of: Add stall and pasid properties to iommu_fwspec Jean-Philippe Brucker 2017-10-06 13:31 ` Jean-Philippe Brucker 2017-10-06 13:31 ` Jean-Philippe Brucker 2017-10-06 13:31 ` [RFCv2 PATCH 19/36] arm64: mm: Pin down ASIDs for sharing contexts with devices Jean-Philippe Brucker 2017-10-06 13:31 ` Jean-Philippe Brucker 2017-10-06 13:31 ` Jean-Philippe Brucker 2017-10-06 13:31 ` [RFCv2 PATCH 20/36] iommu/arm-smmu-v3: Track ASID state Jean-Philippe Brucker 2017-10-06 13:31 ` Jean-Philippe Brucker 2017-10-06 13:31 ` Jean-Philippe Brucker 2017-10-06 13:31 ` [RFCv2 PATCH 21/36] iommu/arm-smmu-v3: Implement process operations Jean-Philippe Brucker 2017-10-06 13:31 ` Jean-Philippe Brucker 2017-10-06 13:31 ` Jean-Philippe Brucker 2017-11-09 3:32 ` Yisheng Xie 2017-11-09 3:32 ` Yisheng Xie 2017-11-09 3:32 ` Yisheng Xie 2017-11-09 12:08 ` Jean-Philippe Brucker 2017-11-09 12:08 ` Jean-Philippe Brucker 2017-11-09 12:08 ` Jean-Philippe Brucker 2017-10-06 13:31 ` [RFCv2 PATCH 23/36] iommu/arm-smmu-v3: Share process page tables Jean-Philippe Brucker 2017-10-06 13:31 ` Jean-Philippe Brucker 2017-10-06 13:31 ` Jean-Philippe Brucker 2017-10-06 13:31 ` [RFCv2 PATCH 28/36] iommu/arm-smmu-v3: Maintain a SID->device structure Jean-Philippe Brucker 2017-10-06 13:31 ` Jean-Philippe Brucker 2017-10-06 13:31 ` Jean-Philippe Brucker 2017-10-06 13:31 ` [RFCv2 PATCH 29/36] iommu/arm-smmu-v3: Add stall support for platform devices Jean-Philippe Brucker 2017-10-06 13:31 ` Jean-Philippe Brucker 2017-10-06 13:31 ` Jean-Philippe Brucker 2017-10-06 13:31 ` [RFCv2 PATCH 30/36] ACPI/IORT: Check ATS capability in root complex nodes Jean-Philippe Brucker 2017-10-06 13:31 ` Jean-Philippe Brucker 2017-10-06 13:31 ` Jean-Philippe Brucker 2017-10-06 13:32 ` [RFCv2 PATCH 34/36] PCI: Make "PRG Response PASID Required" handling common Jean-Philippe Brucker 2017-10-06 13:32 ` Jean-Philippe Brucker 2017-10-06 13:32 ` Jean-Philippe Brucker [not found] ` <20171006133203.22803-35-jean-philippe.brucker-5wv7dgnIgG8@public.gmane.org> 2017-10-06 18:11 ` Bjorn Helgaas 2017-10-06 18:11 ` Bjorn Helgaas 2017-10-06 18:11 ` Bjorn Helgaas 2017-10-06 13:32 ` [RFCv2 PATCH 35/36] iommu/arm-smmu-v3: Add support for PRI Jean-Philippe Brucker 2017-10-06 13:32 ` Jean-Philippe Brucker 2017-10-06 13:32 ` Jean-Philippe Brucker 2017-10-06 13:31 ` [RFCv2 PATCH 09/36] iommu/fault: Allow blocking fault handlers Jean-Philippe Brucker 2017-10-06 13:31 ` Jean-Philippe Brucker [not found] ` <20171006133203.22803-10-jean-philippe.brucker-5wv7dgnIgG8@public.gmane.org> 2017-11-29 6:15 ` Yisheng Xie 2017-11-29 6:15 ` Yisheng Xie 2017-11-29 6:15 ` Yisheng Xie [not found] ` <7e1c8ea4-e568-1000-17de-62f8562c7169-hv44wF8Li93QT0dZR+AlfA@public.gmane.org> 2017-11-29 15:01 ` Jean-Philippe Brucker 2017-11-29 15:01 ` Jean-Philippe Brucker 2017-11-29 15:01 ` Jean-Philippe Brucker [not found] ` <74891e35-17d8-5831-1ebd-18e00ce00d74-5wv7dgnIgG8@public.gmane.org> 2017-11-30 2:45 ` Yisheng Xie 2017-11-30 2:45 ` Yisheng Xie 2017-11-30 2:45 ` Yisheng Xie 2017-10-06 13:31 ` [RFCv2 PATCH 10/36] vfio: Add support for Shared Virtual Memory Jean-Philippe Brucker 2017-10-06 13:31 ` Jean-Philippe Brucker 2017-11-24 8:23 ` Bob Liu 2017-11-24 8:23 ` Bob Liu 2017-11-24 8:23 ` Bob Liu 2017-11-24 10:58 ` Jean-Philippe Brucker 2017-11-24 10:58 ` Jean-Philippe Brucker 2017-11-24 10:58 ` Jean-Philippe Brucker 2017-10-06 13:31 ` [RFCv2 PATCH 11/36] iommu/arm-smmu-v3: Link domains and devices Jean-Philippe Brucker 2017-10-06 13:31 ` Jean-Philippe Brucker 2017-10-06 13:31 ` [RFCv2 PATCH 12/36] dt-bindings: document stall and PASID properties for IOMMU masters Jean-Philippe Brucker 2017-10-06 13:31 ` Jean-Philippe Brucker [not found] ` <20171006133203.22803-13-jean-philippe.brucker-5wv7dgnIgG8@public.gmane.org> 2017-10-13 19:10 ` Rob Herring 2017-10-13 19:10 ` Rob Herring 2017-10-13 19:10 ` Rob Herring 2017-10-16 10:23 ` Jean-Philippe Brucker 2017-10-16 10:23 ` Jean-Philippe Brucker 2017-10-16 10:23 ` Jean-Philippe Brucker [not found] ` <e7288f51-1cfa-44ce-e3ce-e9f3daf91579-5wv7dgnIgG8@public.gmane.org> 2017-10-18 2:06 ` Rob Herring 2017-10-18 2:06 ` Rob Herring 2017-10-18 2:06 ` Rob Herring 2017-10-06 13:31 ` [RFCv2 PATCH 14/36] iommu/arm-smmu-v3: Add support for Substream IDs Jean-Philippe Brucker 2017-10-06 13:31 ` Jean-Philippe Brucker 2017-11-02 12:49 ` Shameerali Kolothum Thodi 2017-11-02 12:49 ` Shameerali Kolothum Thodi 2017-11-02 12:49 ` Shameerali Kolothum Thodi 2017-11-02 15:51 ` Jean-Philippe Brucker 2017-11-02 15:51 ` Jean-Philippe Brucker 2017-11-02 15:51 ` Jean-Philippe Brucker 2017-11-02 17:02 ` Shameerali Kolothum Thodi 2017-11-02 17:02 ` Shameerali Kolothum Thodi 2017-11-02 17:02 ` Shameerali Kolothum Thodi 2017-11-03 5:45 ` Yisheng Xie 2017-11-03 5:45 ` Yisheng Xie 2017-11-03 5:45 ` Yisheng Xie 2017-11-03 9:37 ` Jean-Philippe Brucker 2017-11-03 9:37 ` Jean-Philippe Brucker 2017-11-03 9:37 ` Jean-Philippe Brucker 2017-11-03 9:39 ` Shameerali Kolothum Thodi 2017-11-03 9:39 ` Shameerali Kolothum Thodi 2017-11-03 9:39 ` Shameerali Kolothum Thodi 2017-11-06 0:50 ` Yisheng Xie 2017-11-06 0:50 ` Yisheng Xie 2017-11-06 0:50 ` Yisheng Xie 2017-10-06 13:31 ` [RFCv2 PATCH 15/36] iommu/arm-smmu-v3: Add second level of context descriptor table Jean-Philippe Brucker 2017-10-06 13:31 ` Jean-Philippe Brucker 2017-10-06 13:31 ` Jean-Philippe Brucker [this message] 2017-10-06 13:31 ` [RFCv2 PATCH 16/36] iommu/arm-smmu-v3: Add support for VHE Jean-Philippe Brucker 2017-10-06 13:31 ` [RFCv2 PATCH 17/36] iommu/arm-smmu-v3: Support broadcast TLB maintenance Jean-Philippe Brucker 2017-10-06 13:31 ` Jean-Philippe Brucker 2017-10-06 13:31 ` [RFCv2 PATCH 18/36] iommu/arm-smmu-v3: Add SVM feature checking Jean-Philippe Brucker 2017-10-06 13:31 ` Jean-Philippe Brucker 2017-10-06 13:31 ` [RFCv2 PATCH 22/36] iommu/io-pgtable-arm: Factor out ARM LPAE register defines Jean-Philippe Brucker 2017-10-06 13:31 ` Jean-Philippe Brucker 2017-10-06 13:31 ` [RFCv2 PATCH 24/36] iommu/arm-smmu-v3: Steal private ASID from a domain Jean-Philippe Brucker 2017-10-06 13:31 ` Jean-Philippe Brucker 2017-10-06 13:31 ` [RFCv2 PATCH 25/36] iommu/arm-smmu-v3: Use shared ASID set Jean-Philippe Brucker 2017-10-06 13:31 ` Jean-Philippe Brucker 2017-10-06 13:31 ` [RFCv2 PATCH 26/36] iommu/arm-smmu-v3: Add support for Hardware Translation Table Update Jean-Philippe Brucker 2017-10-06 13:31 ` Jean-Philippe Brucker 2017-12-06 6:51 ` Yisheng Xie 2017-12-06 6:51 ` Yisheng Xie 2017-12-06 6:51 ` Yisheng Xie [not found] ` <d2ec2e61-f758-0394-41d2-555ae65feb0d-hv44wF8Li93QT0dZR+AlfA@public.gmane.org> 2017-12-06 11:06 ` Jean-Philippe Brucker 2017-12-06 11:06 ` Jean-Philippe Brucker 2017-12-06 11:06 ` Jean-Philippe Brucker 2017-10-06 13:31 ` [RFCv2 PATCH 27/36] iommu/arm-smmu-v3: Register fault workqueue Jean-Philippe Brucker 2017-10-06 13:31 ` Jean-Philippe Brucker 2017-10-06 13:31 ` [RFCv2 PATCH 31/36] iommu/arm-smmu-v3: Add support for PCI ATS Jean-Philippe Brucker 2017-10-06 13:31 ` Jean-Philippe Brucker 2017-11-16 14:19 ` Bharat Kumar Gogada 2017-11-16 14:19 ` Bharat Kumar Gogada 2017-11-16 14:19 ` Bharat Kumar Gogada [not found] ` <BLUPR0201MB150565029F9260A528739ACBA52E0-hRBPhS1iNj/g9tdZWAsUFxrHTHEw16jenBOFsp37pqbUKgpGm//BTAC/G2K4zDHf@public.gmane.org> 2017-11-16 15:03 ` Jean-Philippe Brucker 2017-11-16 15:03 ` Jean-Philippe Brucker 2017-11-16 15:03 ` Jean-Philippe Brucker [not found] ` <673fda01-2ae0-87e4-637e-fe27096b6be0-5wv7dgnIgG8@public.gmane.org> 2017-11-17 6:11 ` Bharat Kumar Gogada 2017-11-17 6:11 ` Bharat Kumar Gogada 2017-11-17 6:11 ` Bharat Kumar Gogada [not found] ` <BLUPR0201MB1505BC86D3838D13F38665E7A52F0-hRBPhS1iNj/g9tdZWAsUFxrHTHEw16jenBOFsp37pqbUKgpGm//BTAC/G2K4zDHf@public.gmane.org> 2017-11-17 11:39 ` Jean-Philippe Brucker 2017-11-17 11:39 ` Jean-Philippe Brucker 2017-11-17 11:39 ` Jean-Philippe Brucker 2017-10-06 13:31 ` [RFCv2 PATCH 32/36] iommu/arm-smmu-v3: Hook ATC invalidation to process ops Jean-Philippe Brucker 2017-10-06 13:31 ` Jean-Philippe Brucker 2017-10-06 13:32 ` [RFCv2 PATCH 33/36] iommu/arm-smmu-v3: Disable tagged pointers Jean-Philippe Brucker 2017-10-06 13:32 ` Jean-Philippe Brucker 2017-10-06 13:32 ` [RFCv2 PATCH 36/36] iommu/arm-smmu-v3: Add support for PCI PASID Jean-Philippe Brucker 2017-10-06 13:32 ` Jean-Philippe Brucker 2017-10-09 9:49 ` [RFCv2 PATCH 00/36] Process management for IOMMU + SVM for SMMUv3 Yisheng Xie 2017-10-09 9:49 ` Yisheng Xie 2017-10-09 9:49 ` Yisheng Xie 2017-10-09 11:36 ` Jean-Philippe Brucker 2017-10-09 11:36 ` Jean-Philippe Brucker 2017-10-09 11:36 ` Jean-Philippe Brucker [not found] ` <0fecd29e-eaf7-9503-b087-7bfbc251da88-5wv7dgnIgG8@public.gmane.org> 2017-10-12 12:05 ` Yisheng Xie 2017-10-12 12:05 ` Yisheng Xie 2017-10-12 12:05 ` Yisheng Xie 2017-10-12 12:55 ` Jean-Philippe Brucker 2017-10-12 12:55 ` Jean-Philippe Brucker 2017-10-12 12:55 ` Jean-Philippe Brucker [not found] ` <8a1e090d-22e8-0295-a53f-bc3b5b7d7971-5wv7dgnIgG8@public.gmane.org> 2017-10-12 15:28 ` Jordan Crouse 2017-10-12 15:28 ` Jordan Crouse 2017-10-12 15:28 ` Jordan Crouse [not found] ` <20171012152803.GA3027-9PYrDHPZ2Orvke4nUoYGnHL1okKdlPRT@public.gmane.org> 2017-10-23 13:00 ` Jean-Philippe Brucker 2017-10-23 13:00 ` Jean-Philippe Brucker [not found] ` <8539601d-ef7a-8dd0-2fc7-51240c292678-5wv7dgnIgG8@public.gmane.org> 2017-10-25 20:20 ` Jordan Crouse 2017-10-25 20:20 ` Jordan Crouse [not found] ` <20171025202015.GA6159-9PYrDHPZ2Orvke4nUoYGnHL1okKdlPRT@public.gmane.org> 2018-02-05 18:15 ` Jordan Crouse 2018-02-05 18:15 ` Jordan Crouse [not found] ` <20180205181513.GB878-9PYrDHPZ2Orvke4nUoYGnHL1okKdlPRT@public.gmane.org> 2018-02-05 18:43 ` Jean-Philippe Brucker 2018-02-05 18:43 ` Jean-Philippe Brucker 2017-11-08 1:21 ` Bob Liu 2017-11-08 1:21 ` Bob Liu 2017-11-08 1:21 ` Bob Liu 2017-11-08 10:50 ` Jean-Philippe Brucker 2017-11-08 10:50 ` Jean-Philippe Brucker 2017-11-08 10:50 ` Jean-Philippe Brucker
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20171006133203.22803-17-jean-philippe.brucker@arm.com \ --to=jean-philippe.brucker@arm.com \ --cc=alex.williamson@redhat.com \ --cc=ashok.raj@intel.com \ --cc=bhelgaas@google.com \ --cc=catalin.marinas@arm.com \ --cc=devicetree@vger.kernel.org \ --cc=dwmw2@infradead.org \ --cc=gabriele.paoloni@huawei.com \ --cc=hanjun.guo@linaro.org \ --cc=iommu@lists.linux-foundation.org \ --cc=jacob.jun.pan@linux.intel.com \ --cc=joro@8bytes.org \ --cc=lenb@kernel.org \ --cc=linux-acpi@vger.kernel.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-pci@vger.kernel.org \ --cc=liubo95@huawei.com \ --cc=lorenzo.pieralisi@arm.com \ --cc=mark.rutland@arm.com \ --cc=nwatters@codeaurora.org \ --cc=okaya@codeaurora.org \ --cc=rfranz@cavium.com \ --cc=rjw@rjwysocki.net \ --cc=robdclark@gmail.com \ --cc=robh+dt@kernel.org \ --cc=robin.murphy@arm.com \ --cc=sudeep.holla@arm.com \ --cc=thunder.leizhen@huawei.com \ --cc=tn@semihalf.com \ --cc=will.deacon@arm.com \ --cc=xieyisheng1@huawei.com \ --cc=yi.l.liu@intel.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.