| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- # SPDX-License-Identifier: GPL-2.0-only
- menuconfig GENERIC_PT
- bool "Generic Radix Page Table" if COMPILE_TEST
- help
- Generic library for building radix tree page tables.
- Generic PT provides a set of HW page table formats and a common
- set of APIs to work with them.
- if GENERIC_PT
- config DEBUG_GENERIC_PT
- bool "Extra debugging checks for GENERIC_PT"
- help
- Enable extra run time debugging checks for GENERIC_PT code. This
- incurs a runtime cost and should not be enabled for production
- kernels.
- The kunit tests require this to be enabled to get full coverage.
- config IOMMU_PT
- tristate "IOMMU Page Tables"
- select IOMMU_API
- depends on IOMMU_SUPPORT
- depends on GENERIC_PT
- help
- Generic library for building IOMMU page tables
- IOMMU_PT provides an implementation of the page table operations
- related to struct iommu_domain using GENERIC_PT. It provides a single
- implementation of the page table operations that can be shared by
- multiple drivers.
- if IOMMU_PT
- config IOMMU_PT_AMDV1
- tristate "IOMMU page table for 64-bit AMD IOMMU v1"
- depends on !GENERIC_ATOMIC64 # for cmpxchg64
- help
- iommu_domain implementation for the AMD v1 page table. AMDv1 is the
- "host" page table. It supports granular page sizes of almost every
- power of 2 and decodes the full 64-bit IOVA space.
- Selected automatically by an IOMMU driver that uses this format.
- config IOMMU_PT_VTDSS
- tristate "IOMMU page table for Intel VT-d Second Stage"
- depends on !GENERIC_ATOMIC64 # for cmpxchg64
- help
- iommu_domain implementation for the Intel VT-d's 64 bit 3/4/5
- level Second Stage page table. It is similar to the X86_64 format with
- 4K/2M/1G page sizes.
- Selected automatically by an IOMMU driver that uses this format.
- config IOMMU_PT_X86_64
- tristate "IOMMU page table for x86 64-bit, 4/5 levels"
- depends on !GENERIC_ATOMIC64 # for cmpxchg64
- help
- iommu_domain implementation for the x86 64-bit 4/5 level page table.
- It supports 4K/2M/1G page sizes and can decode a sign-extended
- portion of the 64-bit IOVA space.
- Selected automatically by an IOMMU driver that uses this format.
- config IOMMU_PT_KUNIT_TEST
- tristate "IOMMU Page Table KUnit Test" if !KUNIT_ALL_TESTS
- depends on KUNIT
- depends on IOMMU_PT_AMDV1 || !IOMMU_PT_AMDV1
- depends on IOMMU_PT_X86_64 || !IOMMU_PT_X86_64
- depends on IOMMU_PT_VTDSS || !IOMMU_PT_VTDSS
- default KUNIT_ALL_TESTS
- help
- Enable kunit tests for GENERIC_PT and IOMMU_PT that covers all the
- enabled page table formats. The test covers most of the GENERIC_PT
- functions provided by the page table format, as well as covering the
- iommu_domain related functions.
- endif
- endif
|