1# PCIe/new PCI configuration options
2
3# Copyright (c) 2019 Intel Corporation
4# SPDX-License-Identifier: Apache-2.0
5
6menuconfig PCIE
7	bool "New PCI/PCIe Root Complex support"
8	help
9	  This option enables support for new PCI(e) drivers.
10
11if PCIE
12
13module = PCIE
14module-str = pcie
15source "subsys/logging/Kconfig.template.log_config"
16
17config PCIE_INIT_PRIORITY
18	int "PCIe initialization priority"
19	default 41
20	help
21	  PCIe host drivers initialization priority.
22
23config PCIE_CONTROLLER
24	bool "PCIe Controller management"
25	help
26	  Add support for PCIe Controller management when not handled by a
27	  system firmware like on x86 platforms.
28
29if PCIE_CONTROLLER
30
31config PCIE_ECAM
32	bool "Support for PCIe ECAM Controllers"
33	help
34	  Add support for Enhanced Configuration Address Mapping configured
35	  PCIe Controllers allowing all outgoing I/O and MEM TLPs to be mapped
36	  from memory space into any 256 MB region of the PCIe configuration space.
37
38endif # PCIE_CONTROLLER
39
40config PCIE_MSI
41	bool "Support for PCI(e) MSI"
42	help
43	  Use Message-Signaled Interrupts where possible. With this option
44	  enabled, PCI(e) devices which support MSI will be configured (at
45	  runtime) to use them. This is typically required for PCIe devices
46	  to generate interrupts at all.
47
48if PCIE_MSI
49
50config PCIE_MSI_MULTI_VECTOR
51	bool "MSI multi-vector support"
52	help
53	  MSI can support up to 32 different messages. This will enable the
54	  support of such capability so each message can get a vector
55	  assigned to it. This will require for the selected architecture
56	  to provide the necessary logic to make it work. Disable this if
57	  the vectors cannot be managed by the hardware or if none of the
58	  peripheral require this.
59
60config PCIE_MSI_X
61	bool "MSI-X support"
62	help
63	  If one or more device support MSI-X, you'll need to enable this.
64	  If a device exposes support for both MSI-X and MSI, MSI-X will be
65	  used and MSI disabled on that device. Enable PCIE_MSI_MULTI_VECTOR
66	  if you want to support multi-vector on MSI-X as well.
67
68endif # PCIE_MSI
69
70config PCIE_PTM
71	bool "Support for PCI(e) Precision Time Management (PTM)"
72	help
73	  This will enable support both PTM root and PTM requester features.
74	  Up to the PCIe device driver to enable its PTM requester capability.
75
76config PCIE_PRT
77	bool "Support for IRQ information retrieve via ACPI PRT (PCI Routing Table)"
78	default y if ACPI_DSDT_SUPPORT
79	help
80	  This will enable retrieve interrupt routing information for PCI legacy
81	  interrupt via ACPI PRT (PCI Routing Table)
82
83config PCIE_SHELL
84	bool "PCIe/new PCI Shell"
85	default y
86	depends on SHELL
87	help
88	  Enable commands for debugging PCI(e) using the built-in shell.
89
90endif # PCIE
91