Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a5235725 authored by Joerg Roedel's avatar Joerg Roedel
Browse files

x86/amd-iommu: Add amd_iommu=off command line option



This patch adds a command line option to tell the AMD IOMMU
driver to not initialize any IOMMU it finds.

Signed-off-by: default avatarJoerg Roedel <joerg.roedel@amd.com>
parent b57f95a3
Loading
Loading
Loading
Loading
+2 −0
Original line number Original line Diff line number Diff line
@@ -324,6 +324,8 @@ and is between 256 and 4096 characters. It is defined in the file
				    they are unmapped. Otherwise they are
				    they are unmapped. Otherwise they are
				    flushed before they will be reused, which
				    flushed before they will be reused, which
				    is a lot of faster
				    is a lot of faster
			off	  - do not initialize any AMD IOMMU found in
				    the system


	amijoy.map=	[HW,JOY] Amiga joystick support
	amijoy.map=	[HW,JOY] Amiga joystick support
			Map of devices attached to JOY0DAT and JOY1DAT
			Map of devices attached to JOY0DAT and JOY1DAT
+6 −0
Original line number Original line Diff line number Diff line
@@ -120,6 +120,7 @@ struct ivmd_header {
bool amd_iommu_dump;
bool amd_iommu_dump;


static int __initdata amd_iommu_detected;
static int __initdata amd_iommu_detected;
static bool __initdata amd_iommu_disabled;


u16 amd_iommu_last_bdf;			/* largest PCI device id we have
u16 amd_iommu_last_bdf;			/* largest PCI device id we have
					   to handle */
					   to handle */
@@ -1372,6 +1373,9 @@ void __init amd_iommu_detect(void)
	if (no_iommu || (iommu_detected && !gart_iommu_aperture))
	if (no_iommu || (iommu_detected && !gart_iommu_aperture))
		return;
		return;


	if (amd_iommu_disabled)
		return;

	if (acpi_table_parse("IVRS", early_amd_iommu_detect) == 0) {
	if (acpi_table_parse("IVRS", early_amd_iommu_detect) == 0) {
		iommu_detected = 1;
		iommu_detected = 1;
		amd_iommu_detected = 1;
		amd_iommu_detected = 1;
@@ -1401,6 +1405,8 @@ static int __init parse_amd_iommu_options(char *str)
	for (; *str; ++str) {
	for (; *str; ++str) {
		if (strncmp(str, "fullflush", 9) == 0)
		if (strncmp(str, "fullflush", 9) == 0)
			amd_iommu_unmap_flush = true;
			amd_iommu_unmap_flush = true;
		if (strncmp(str, "off", 3) == 0)
			amd_iommu_disabled = true;
	}
	}


	return 1;
	return 1;