[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20210312090411.6030-7-suravee.suthikulpanit@amd.com>
Date: Fri, 12 Mar 2021 03:04:10 -0600
From: Suravee Suthikulpanit <suravee.suthikulpanit@....com>
To: linux-kernel@...r.kernel.org, iommu@...ts.linux-foundation.org
Cc: joro@...tes.org, Jon.Grimm@....com, Wei.Huang2@....com,
Suravee Suthikulpanit <suravee.suthikulpanit@....com>
Subject: [RFC PATCH 6/7] iommu/amd: Introduce amd_iommu_pgtable command-line option
To allow specification whether to use v1 or v2 IOMMU pagetable for
DMA remapping when calling kernel DMA-API.
Signed-off-by: Suravee Suthikulpanit <suravee.suthikulpanit@....com>
---
Documentation/admin-guide/kernel-parameters.txt | 6 ++++++
drivers/iommu/amd/init.c | 15 +++++++++++++++
2 files changed, 21 insertions(+)
diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
index 04545725f187..466e807369ea 100644
--- a/Documentation/admin-guide/kernel-parameters.txt
+++ b/Documentation/admin-guide/kernel-parameters.txt
@@ -319,6 +319,12 @@
This mode requires kvm-amd.avic=1.
(Default when IOMMU HW support is present.)
+ amd_iommu_pgtable= [HW,X86-64]
+ Specifies one of the following AMD IOMMU page table to
+ be used for DMA remapping for DMA-API:
+ v1 - Use v1 page table (Default)
+ v2 - Use v2 page table
+
amijoy.map= [HW,JOY] Amiga joystick support
Map of devices attached to JOY0DAT and JOY1DAT
Format: <a>,<b>
diff --git a/drivers/iommu/amd/init.c b/drivers/iommu/amd/init.c
index 9265c1bf1d84..6d5163bfb87e 100644
--- a/drivers/iommu/amd/init.c
+++ b/drivers/iommu/amd/init.c
@@ -3123,6 +3123,20 @@ static int __init parse_amd_iommu_dump(char *str)
return 1;
}
+static int __init parse_amd_iommu_pgtable(char *str)
+{
+ for (; *str; ++str) {
+ if (strncmp(str, "v1", 2) == 0) {
+ amd_iommu_pgtable = AMD_IOMMU_V1;
+ break;
+ } else if (strncmp(str, "v2", 2) == 0) {
+ amd_iommu_pgtable = AMD_IOMMU_V2;
+ break;
+ }
+ }
+ return 1;
+}
+
static int __init parse_amd_iommu_intr(char *str)
{
for (; *str; ++str) {
@@ -3246,6 +3260,7 @@ static int __init parse_ivrs_acpihid(char *str)
__setup("amd_iommu_dump", parse_amd_iommu_dump);
__setup("amd_iommu=", parse_amd_iommu_options);
+__setup("amd_iommu_pgtable=", parse_amd_iommu_pgtable);
__setup("amd_iommu_intr=", parse_amd_iommu_intr);
__setup("ivrs_ioapic", parse_ivrs_ioapic);
__setup("ivrs_hpet", parse_ivrs_hpet);
--
2.17.1
Powered by blists - more mailing lists