mirror of https://github.com/torvalds/linux.git
80 lines
2.6 KiB
Plaintext
80 lines
2.6 KiB
Plaintext
# 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
|