drivers/dax/Kconfig

Source file repositories/reference/linux-study-clean/drivers/dax/Kconfig

File Facts

System
Linux kernel
Corpus path
drivers/dax/Kconfig
Extension
[no extension]
Size
3149 bytes
Lines
91
Domain
Driver Families
Bucket
drivers/dax
Inferred role
Driver Families: build/configuration rule
Status
atlas-only

Why This File Exists

Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.

Dependency Surface

Detected Declarations

Annotated Snippet

# SPDX-License-Identifier: GPL-2.0-only
menuconfig DAX
	tristate "DAX: direct access to differentiated memory"
	default m if NVDIMM_DAX

if DAX

config DEV_DAX
	tristate "Device DAX: direct access mapping device"
	depends on TRANSPARENT_HUGEPAGE
	help
	  Support raw access to differentiated (persistence, bandwidth,
	  latency...) memory via an mmap(2) capable character
	  device.  Platform firmware or a device driver may identify a
	  platform memory resource that is differentiated from the
	  baseline memory pool.  Mappings of a /dev/daxX.Y device impose
	  restrictions that make the mapping behavior deterministic.

config DEV_DAX_PMEM
	tristate "PMEM DAX: direct access to persistent memory"
	depends on LIBNVDIMM && NVDIMM_DAX && DEV_DAX
	default DEV_DAX
	help
	  Support raw access to persistent memory.  Note that this
	  driver consumes memory ranges allocated and exported by the
	  libnvdimm sub-system.

	  Say M if unsure

config DEV_DAX_HMEM
	tristate "HMEM DAX: direct access to 'specific purpose' memory"
	depends on EFI_SOFT_RESERVE
	select NUMA_KEEP_MEMINFO if NUMA_MEMBLKS
	default DEV_DAX
	depends on CXL_ACPI || !CXL_ACPI
	depends on CXL_PCI || !CXL_PCI
	depends on CXL_BUS || !CXL_BUS
	help
	  EFI 2.8 platforms, and others, may advertise 'specific purpose'
	  memory. For example, a high bandwidth memory pool. The
	  indication from platform firmware is meant to reserve the
	  memory from typical usage by default. This driver creates
	  device-dax instances for these memory ranges, and that also
	  enables the possibility to assign them to the DEV_DAX_KMEM
	  driver to override the reservation and add them to kernel
	  "System RAM" pool.

	  Say M if unsure.

config DEV_DAX_CXL
	tristate "CXL DAX: direct access to CXL RAM regions"
	depends on CXL_BUS && CXL_REGION && DEV_DAX
	default CXL_REGION && DEV_DAX
	depends on DEV_DAX_HMEM || !DEV_DAX_HMEM
	help
	  CXL RAM regions are either mapped by platform-firmware
	  and published in the initial system-memory map as "System RAM", mapped
	  by platform-firmware as "Soft Reserved", or dynamically provisioned
	  after boot by the CXL driver. In the latter two cases a device-dax
	  instance is created to access that unmapped-by-default address range.
	  Per usual it can remain as dedicated access via a device interface, or
	  converted to "System RAM" via the dax_kmem facility.

config DEV_DAX_HMEM_DEVICES
	depends on DEV_DAX_HMEM && DAX
	def_bool y

config DEV_DAX_FSDEV
	tristate
	depends on DEV_DAX && FS_DAX

Annotation

Implementation Notes