1# Copyright (c) 2022 Intel Corporation
2# SPDX-License-Identifier: Apache-2.0
3
4menuconfig NVME
5	bool "NVMe disk"
6	depends on PCIE
7	select PCIE_MSI_X
8	select PCIE_MSI_MULTI_VECTOR
9	help
10	  NVMe disk(s) might be present on the system through PCIe, enable this
11	  driver to support these. It will enable MSI-X and MSI multi-vector
12	  support
13
14if NVME
15
16config NVME_ADMIN_ENTRIES
17	int "Number of admin queue entries"
18	range 2 4096
19	default 256
20	help
21	  This sets the amount of allocated admin queue entries.
22	  Do not touch this unless you know what you are doing.
23
24config NVME_IO_QUEUES
25	int "Number of IO queues"
26	range 1 65536
27	default 1
28	help
29	  This sets the amount of allocated I/O queues.
30	  Do not touch this unless you know what you are doing.
31
32config NVME_IO_ENTRIES
33	int "Number of IO queue entries"
34	range 2 65536
35	default 256
36	help
37	  This sets the amount of allocated IO queue entries.
38	  Do not touch this unless you know what you are doing.
39
40config NVME_RETRY_COUNT
41	int "Retry count"
42	default 2
43	help
44	  This sets the amount of possible retries per-request.
45	  Do not touch this unless you know what you are doing.
46
47config NVME_REQUEST_TIMEOUT
48	int "Timeout period for NVMe request"
49	range 5 120
50	default 5
51	help
52	  This sets the waiting time for a request to succeed.
53	  Do not touch this unless you know what you are doing.
54
55config NVME_PRP_LIST_AMOUNT
56	int "Number of allocated PRP list"
57	default 2
58	help
59	  This sets the amount of pre-allocated PRP list. Each list
60	  can be used in a NVMe command to address memory where to
61	  read or write data. Each PRP list is of page size be careful
62	  on this number as it may take a sensible amount of memory.
63
64config NVME_MAX_NAMESPACES
65	int "Maximum namespace to allocate"
66	range 1 16
67	default 1
68	help
69	  This sets the maximum namespace to allocate. Note that there may
70	  be much less to be actually instantiated at runtime.
71	  This option can be used to reduce the memory usage a bit then.
72
73config NVME_INT_PRIORITY
74	int "Interrupt priority"
75	default 2
76	help
77	  Interrupt priority used for the MSI-X generated interrupts.
78
79module = NVME
80module-str = nvme
81source "subsys/logging/Kconfig.template.log_config"
82
83endif # NVME
84