#
# Open-Channel SSD NVM configuration
#

menuconfig NVM
	bool "Open-Channel SSD target support"
	depends on BLOCK && HAS_DMA && PCI
	select BLK_DEV_NVME
	help
	  Say Y here to get to enable Open-channel SSDs.

	  Open-Channel SSDs implement a set of extension to SSDs, that
	  exposes direct access to the underlying non-volatile memory.

	  If you say N, all options in this submenu will be skipped and disabled
	  only do this if you know what you are doing.

if NVM

config NVM_DEBUG
	bool "Open-Channel SSD debugging support"
	default n
	---help---
	Exposes a debug management interface to create/remove targets at:

	  /sys/module/lnvm/parameters/configure_debug

	It is required to create/remove targets without IOCTLs.

config NVM_RRPC
	tristate "Round-robin Hybrid Open-Channel SSD target"
	---help---
	Allows an open-channel SSD to be exposed as a block device to the
	host. The target is implemented using a linear mapping table and
	cost-based garbage collection. It is optimized for 4K IO sizes.

config NVM_PBLK
	tristate "Physical Block Device Open-Channel SSD target"
	---help---
	Allows an open-channel SSD to be exposed as a block device to the
	host. The target assumes the device exposes raw flash and must be
	explicitly managed by the host.

	Please note the disk format is considered EXPERIMENTAL for now.

endif # NVM