1ec8f24b7SThomas Gleixner# SPDX-License-Identifier: GPL-2.0-only 27b6be844SDan Williamsmenuconfig DAX 3ab68f262SDan Williams tristate "DAX: direct access to differentiated memory" 4956a4cd2SDan Williams default m if NVDIMM_DAX 57b6be844SDan Williams 67b6be844SDan Williamsif DAX 77b6be844SDan Williams 87b6be844SDan Williamsconfig DEV_DAX 97b6be844SDan Williams tristate "Device DAX: direct access mapping device" 107b6be844SDan Williams depends on TRANSPARENT_HUGEPAGE 117b6be844SDan Williams help 12ab68f262SDan Williams Support raw access to differentiated (persistence, bandwidth, 13ab68f262SDan Williams latency...) memory via an mmap(2) capable character 14ab68f262SDan Williams device. Platform firmware or a device driver may identify a 15ab68f262SDan Williams platform memory resource that is differentiated from the 16ab68f262SDan Williams baseline memory pool. Mappings of a /dev/daxX.Y device impose 17ab68f262SDan Williams restrictions that make the mapping behavior deterministic. 18ab68f262SDan Williams 19ab68f262SDan Williamsconfig DEV_DAX_PMEM 20ab68f262SDan Williams tristate "PMEM DAX: direct access to persistent memory" 21ab68f262SDan Williams depends on LIBNVDIMM && NVDIMM_DAX && DEV_DAX 2274d71a01SMike Galbraith default DEV_DAX 23ab68f262SDan Williams help 24ab68f262SDan Williams Support raw access to persistent memory. Note that this 25ab68f262SDan Williams driver consumes memory ranges allocated and exported by the 26ab68f262SDan Williams libnvdimm sub-system. 27ab68f262SDan Williams 28ab68f262SDan Williams Say M if unsure 29730926c3SDan Williams 30730926c3SDan Williamsconfig DEV_DAX_HMEM 31a6c7f4c6SDan Williams tristate "HMEM DAX: direct access to 'specific purpose' memory" 32a6c7f4c6SDan Williams depends on EFI_SOFT_RESERVE 33a6c7f4c6SDan Williams select NUMA_KEEP_MEMINFO if (NUMA && X86) 345ccac54fSDan Williams default DEV_DAX 35a6c7f4c6SDan Williams help 36a6c7f4c6SDan Williams EFI 2.8 platforms, and others, may advertise 'specific purpose' 37a6c7f4c6SDan Williams memory. For example, a high bandwidth memory pool. The 38a6c7f4c6SDan Williams indication from platform firmware is meant to reserve the 39a6c7f4c6SDan Williams memory from typical usage by default. This driver creates 40a6c7f4c6SDan Williams device-dax instances for these memory ranges, and that also 41a6c7f4c6SDan Williams enables the possibility to assign them to the DEV_DAX_KMEM 42a6c7f4c6SDan Williams driver to override the reservation and add them to kernel 43a6c7f4c6SDan Williams "System RAM" pool. 44a6c7f4c6SDan Williams 45a6c7f4c6SDan Williams Say M if unsure. 46a6c7f4c6SDan Williams 47a6c7f4c6SDan Williamsconfig DEV_DAX_CXL 4809d09e04SDan Williams tristate "CXL DAX: direct access to CXL RAM regions" 4909d09e04SDan Williams depends on CXL_BUS && CXL_REGION && DEV_DAX 50*0c16c83eSArnd Bergmann default CXL_REGION && DEV_DAX 5109d09e04SDan Williams help 5209d09e04SDan Williams CXL RAM regions are either mapped by platform-firmware 5309d09e04SDan Williams and published in the initial system-memory map as "System RAM", mapped 5409d09e04SDan Williams by platform-firmware as "Soft Reserved", or dynamically provisioned 5509d09e04SDan Williams after boot by the CXL driver. In the latter two cases a device-dax 5609d09e04SDan Williams instance is created to access that unmapped-by-default address range. 5709d09e04SDan Williams Per usual it can remain as dedicated access via a device interface, or 5809d09e04SDan Williams converted to "System RAM" via the dax_kmem facility. 5909d09e04SDan Williams 6009d09e04SDan Williamsconfig DEV_DAX_HMEM_DEVICES 61c01044ccSDan Williams depends on DEV_DAX_HMEM && DAX 627dab174eSDan Williams def_bool y 63c01044ccSDan Williams 64c01044ccSDan Williamsconfig DEV_DAX_KMEM 65c221c0b0SDave Hansen tristate "KMEM DAX: map dax-devices as System-RAM" 66e9ee9fe3SDan Williams default DEV_DAX 67c221c0b0SDave Hansen depends on DEV_DAX 68c221c0b0SDave Hansen depends on MEMORY_HOTPLUG # for add_memory() and friends 69c221c0b0SDave Hansen help 70c221c0b0SDave Hansen Support access to persistent, or other performance 71a6c7f4c6SDan Williams differentiated memory as if it were System RAM. This allows 72a6c7f4c6SDan Williams easier use of persistent memory by unmodified applications, or 73a6c7f4c6SDan Williams adds core kernel memory services to heterogeneous memory types 74a6c7f4c6SDan Williams (HMEM) marked "reserved" by platform firmware. 75a6c7f4c6SDan Williams 76c221c0b0SDave Hansen To use this feature, a DAX device must be unbound from the 77c221c0b0SDave Hansen device_dax driver and bound to this kmem driver on each boot. 78a6c7f4c6SDan Williams 79c221c0b0SDave Hansen Say N if unsure. 80c221c0b0SDave Hansen 81c221c0b0SDave Hansenendif 82ab68f262SDan Williams