cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

Kconfig (3641B)


      1# SPDX-License-Identifier: GPL-2.0-only
      2menuconfig LIBNVDIMM
      3	tristate "NVDIMM (Non-Volatile Memory Device) Support"
      4	depends on PHYS_ADDR_T_64BIT
      5	depends on HAS_IOMEM
      6	depends on BLK_DEV
      7	select MEMREGION
      8	help
      9	  Generic support for non-volatile memory devices including
     10	  ACPI-6-NFIT defined resources.  On platforms that define an
     11	  NFIT, or otherwise can discover NVDIMM resources, a libnvdimm
     12	  bus is registered to advertise PMEM (persistent memory)
     13	  namespaces (/dev/pmemX). A PMEM namespace refers to a
     14	  memory resource that may span multiple DIMMs and support DAX
     15	  (see CONFIG_DAX).
     16
     17if LIBNVDIMM
     18
     19config BLK_DEV_PMEM
     20	tristate "PMEM: Persistent memory block device support"
     21	default LIBNVDIMM
     22	select DAX
     23	select ND_BTT if BTT
     24	select ND_PFN if NVDIMM_PFN
     25	help
     26	  Memory ranges for PMEM are described by either an NFIT
     27	  (NVDIMM Firmware Interface Table, see CONFIG_NFIT_ACPI), a
     28	  non-standard OEM-specific E820 memory type (type-12, see
     29	  CONFIG_X86_PMEM_LEGACY), or it is manually specified by the
     30	  'memmap=nn[KMG]!ss[KMG]' kernel command line (see
     31	  Documentation/admin-guide/kernel-parameters.rst).  This driver converts
     32	  these persistent memory ranges into block devices that are
     33	  capable of DAX (direct-access) file system mappings.  See
     34	  Documentation/driver-api/nvdimm/nvdimm.rst for more details.
     35
     36	  Say Y if you want to use an NVDIMM
     37
     38config ND_CLAIM
     39	bool
     40
     41config ND_BTT
     42	tristate
     43
     44config BTT
     45	bool "BTT: Block Translation Table (atomic sector updates)"
     46	default y if LIBNVDIMM
     47	select ND_CLAIM
     48	help
     49	  The Block Translation Table (BTT) provides atomic sector
     50	  update semantics for persistent memory devices, so that
     51	  applications that rely on sector writes not being torn (a
     52	  guarantee that typical disks provide) can continue to do so.
     53	  The BTT manifests itself as an alternate personality for an
     54	  NVDIMM namespace, i.e. a namespace can be in raw mode pmemX,
     55	  or 'sectored' mode.
     56
     57	  Select Y if unsure
     58
     59config ND_PFN
     60	tristate
     61
     62config NVDIMM_PFN
     63	bool "PFN: Map persistent (device) memory"
     64	default LIBNVDIMM
     65	depends on ZONE_DEVICE
     66	select ND_CLAIM
     67	help
     68	  Map persistent memory, i.e. advertise it to the memory
     69	  management sub-system.  By default persistent memory does
     70	  not support direct I/O, RDMA, or any other usage that
     71	  requires a 'struct page' to mediate an I/O request.  This
     72	  driver allocates and initializes the infrastructure needed
     73	  to support those use cases.
     74
     75	  Select Y if unsure
     76
     77config NVDIMM_DAX
     78	bool "NVDIMM DAX: Raw access to persistent memory"
     79	default LIBNVDIMM
     80	depends on NVDIMM_PFN
     81	help
     82	  Support raw device dax access to a persistent memory
     83	  namespace.  For environments that want to hard partition
     84	  persistent memory, this capability provides a mechanism to
     85	  sub-divide a namespace into character devices that can only be
     86	  accessed via DAX (mmap(2)).
     87
     88	  Select Y if unsure
     89
     90config OF_PMEM
     91	tristate "Device-tree support for persistent memory regions"
     92	depends on OF
     93	default LIBNVDIMM
     94	help
     95	  Allows regions of persistent memory to be described in the
     96	  device-tree.
     97
     98	  Select Y if unsure.
     99
    100config NVDIMM_KEYS
    101	def_bool y
    102	depends on ENCRYPTED_KEYS
    103	depends on (LIBNVDIMM=ENCRYPTED_KEYS) || LIBNVDIMM=m
    104
    105config NVDIMM_TEST_BUILD
    106	tristate "Build the unit test core"
    107	depends on m
    108	depends on COMPILE_TEST && X86_64
    109	default m if COMPILE_TEST
    110	help
    111	  Build the core of the unit test infrastructure. The result of
    112	  this build is non-functional for unit test execution, but it
    113	  otherwise helps catch build errors induced by changes to the
    114	  core devm_memremap_pages() implementation and other
    115	  infrastructure.
    116
    117endif