mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-17 17:53:56 +08:00
iommu/vt-d: Enable base Intel IOMMU debugfs support
Add a new config option CONFIG_INTEL_IOMMU_DEBUGFS and do the base enabling for Intel IOMMU debugfs. Cc: Lu Baolu <baolu.lu@linux.intel.com> Cc: Fenghua Yu <fenghua.yu@intel.com> Cc: Ashok Raj <ashok.raj@intel.com> Cc: Jacob Pan <jacob.jun.pan@linux.intel.com> Co-Developed-by: Gayatri Kammela <gayatri.kammela@intel.com> Signed-off-by: Gayatri Kammela <gayatri.kammela@intel.com> Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Reviewed-by: Lu Baolu <baolu.lu@linux.intel.com> Signed-off-by: Sohil Mehta <sohil.mehta@intel.com> Signed-off-by: Joerg Roedel <jroedel@suse.de>
This commit is contained in:
parent
4a2d80dbad
commit
ee2636b867
@ -186,6 +186,19 @@ config INTEL_IOMMU
|
|||||||
and include PCI device scope covered by these DMA
|
and include PCI device scope covered by these DMA
|
||||||
remapping devices.
|
remapping devices.
|
||||||
|
|
||||||
|
config INTEL_IOMMU_DEBUGFS
|
||||||
|
bool "Export Intel IOMMU internals in Debugfs"
|
||||||
|
depends on INTEL_IOMMU && IOMMU_DEBUGFS
|
||||||
|
help
|
||||||
|
!!!WARNING!!!
|
||||||
|
|
||||||
|
DO NOT ENABLE THIS OPTION UNLESS YOU REALLY KNOW WHAT YOU ARE DOING!!!
|
||||||
|
|
||||||
|
Expose Intel IOMMU internals in Debugfs.
|
||||||
|
|
||||||
|
This option is -NOT- intended for production environments, and should
|
||||||
|
only be enabled for debugging Intel IOMMU.
|
||||||
|
|
||||||
config INTEL_IOMMU_SVM
|
config INTEL_IOMMU_SVM
|
||||||
bool "Support for Shared Virtual Memory with Intel IOMMU"
|
bool "Support for Shared Virtual Memory with Intel IOMMU"
|
||||||
depends on INTEL_IOMMU && X86
|
depends on INTEL_IOMMU && X86
|
||||||
|
@ -17,6 +17,7 @@ obj-$(CONFIG_ARM_SMMU) += arm-smmu.o
|
|||||||
obj-$(CONFIG_ARM_SMMU_V3) += arm-smmu-v3.o
|
obj-$(CONFIG_ARM_SMMU_V3) += arm-smmu-v3.o
|
||||||
obj-$(CONFIG_DMAR_TABLE) += dmar.o
|
obj-$(CONFIG_DMAR_TABLE) += dmar.o
|
||||||
obj-$(CONFIG_INTEL_IOMMU) += intel-iommu.o intel-pasid.o
|
obj-$(CONFIG_INTEL_IOMMU) += intel-iommu.o intel-pasid.o
|
||||||
|
obj-$(CONFIG_INTEL_IOMMU_DEBUGFS) += intel-iommu-debugfs.o
|
||||||
obj-$(CONFIG_INTEL_IOMMU_SVM) += intel-svm.o
|
obj-$(CONFIG_INTEL_IOMMU_SVM) += intel-svm.o
|
||||||
obj-$(CONFIG_IPMMU_VMSA) += ipmmu-vmsa.o
|
obj-$(CONFIG_IPMMU_VMSA) += ipmmu-vmsa.o
|
||||||
obj-$(CONFIG_IRQ_REMAP) += intel_irq_remapping.o irq_remapping.o
|
obj-$(CONFIG_IRQ_REMAP) += intel_irq_remapping.o irq_remapping.o
|
||||||
|
20
drivers/iommu/intel-iommu-debugfs.c
Normal file
20
drivers/iommu/intel-iommu-debugfs.c
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
// SPDX-License-Identifier: GPL-2.0
|
||||||
|
/*
|
||||||
|
* Copyright © 2018 Intel Corporation.
|
||||||
|
*
|
||||||
|
* Authors: Gayatri Kammela <gayatri.kammela@intel.com>
|
||||||
|
* Sohil Mehta <sohil.mehta@intel.com>
|
||||||
|
* Jacob Pan <jacob.jun.pan@linux.intel.com>
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <linux/debugfs.h>
|
||||||
|
#include <linux/dmar.h>
|
||||||
|
#include <linux/intel-iommu.h>
|
||||||
|
#include <linux/pci.h>
|
||||||
|
|
||||||
|
#include <asm/irq_remapping.h>
|
||||||
|
|
||||||
|
void __init intel_iommu_debugfs_init(void)
|
||||||
|
{
|
||||||
|
debugfs_create_dir("intel", iommu_debugfs_dir);
|
||||||
|
}
|
@ -4837,6 +4837,7 @@ int __init intel_iommu_init(void)
|
|||||||
cpuhp_setup_state(CPUHP_IOMMU_INTEL_DEAD, "iommu/intel:dead", NULL,
|
cpuhp_setup_state(CPUHP_IOMMU_INTEL_DEAD, "iommu/intel:dead", NULL,
|
||||||
intel_iommu_cpu_dead);
|
intel_iommu_cpu_dead);
|
||||||
intel_iommu_enabled = 1;
|
intel_iommu_enabled = 1;
|
||||||
|
intel_iommu_debugfs_init();
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
@ -621,6 +621,12 @@ extern int intel_iommu_enable_pasid(struct intel_iommu *iommu, struct intel_svm_
|
|||||||
extern struct intel_iommu *intel_svm_device_to_iommu(struct device *dev);
|
extern struct intel_iommu *intel_svm_device_to_iommu(struct device *dev);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef CONFIG_INTEL_IOMMU_DEBUGFS
|
||||||
|
void intel_iommu_debugfs_init(void);
|
||||||
|
#else
|
||||||
|
static inline void intel_iommu_debugfs_init(void) {}
|
||||||
|
#endif /* CONFIG_INTEL_IOMMU_DEBUGFS */
|
||||||
|
|
||||||
extern const struct attribute_group *intel_iommu_groups[];
|
extern const struct attribute_group *intel_iommu_groups[];
|
||||||
bool context_present(struct context_entry *context);
|
bool context_present(struct context_entry *context);
|
||||||
struct context_entry *iommu_context_addr(struct intel_iommu *iommu, u8 bus,
|
struct context_entry *iommu_context_addr(struct intel_iommu *iommu, u8 bus,
|
||||||
|
Loading…
Reference in New Issue
Block a user