11da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#
21da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds# PCI configuration
31da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#
4f282b97021ddc95c6092b9016f667c0963858fb1Dan Williamsconfig ARCH_SUPPORTS_MSI
5f282b97021ddc95c6092b9016f667c0963858fb1Dan Williams	bool
6f282b97021ddc95c6092b9016f667c0963858fb1Dan Williams	default n
7f282b97021ddc95c6092b9016f667c0963858fb1Dan Williams
81da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsconfig PCI_MSI
91da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	bool "Message Signaled Interrupts (MSI and MSI-X)"
101da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	depends on PCI
11f282b97021ddc95c6092b9016f667c0963858fb1Dan Williams	depends on ARCH_SUPPORTS_MSI
121da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	help
131da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	   This allows device drivers to enable MSI (Message Signaled
141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	   Interrupts).  Message Signaled Interrupts enable a device to
151da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	   generate an interrupt using an inbound Memory Write on its
161da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	   PCI bus instead of asserting a device IRQ pin.
171da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
18309e57df7b766172ba137a8cbd909f88dd76e8e9Matthew Wilcox	   Use of PCI MSI interrupts can be disabled at kernel boot time
19309e57df7b766172ba137a8cbd909f88dd76e8e9Matthew Wilcox	   by using the 'pci=nomsi' option.  This disables MSI for the
20309e57df7b766172ba137a8cbd909f88dd76e8e9Matthew Wilcox	   entire system.
21309e57df7b766172ba137a8cbd909f88dd76e8e9Matthew Wilcox
223196180a54b593838c0b6496e5b524a2f69bb190Jesse Barnes	   If you don't know what to do here, say Y.
231da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
241da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsconfig PCI_DEBUG
251da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	bool "PCI Debugging"
261da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	depends on PCI && DEBUG_KERNEL
271da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	help
281da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	  Say Y here if you want the PCI core to produce a bunch of debug
291da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	  messages to the system log.  Select this if you are having a
301da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	  problem with PCI support and want to see more of what is going on.
311da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
321da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	  When in doubt, say N.
331da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
34b07f2ebc109b607789f648dedcff4b125f9afec6Yinghai Luconfig PCI_REALLOC_ENABLE_AUTO
35b07f2ebc109b607789f648dedcff4b125f9afec6Yinghai Lu	bool "Enable PCI resource re-allocation detection"
36b07f2ebc109b607789f648dedcff4b125f9afec6Yinghai Lu	depends on PCI
37b07f2ebc109b607789f648dedcff4b125f9afec6Yinghai Lu	help
38b07f2ebc109b607789f648dedcff4b125f9afec6Yinghai Lu	  Say Y here if you want the PCI core to detect if PCI resource
39b07f2ebc109b607789f648dedcff4b125f9afec6Yinghai Lu	  re-allocation needs to be enabled. You can always use pci=realloc=on
40b07f2ebc109b607789f648dedcff4b125f9afec6Yinghai Lu          or pci=realloc=off to override it.  Note this feature is a no-op
41b07f2ebc109b607789f648dedcff4b125f9afec6Yinghai Lu          unless PCI_IOV support is also enabled; in that case it will
42b07f2ebc109b607789f648dedcff4b125f9afec6Yinghai Lu          automatically re-allocate PCI resources if SR-IOV BARs have not
43b07f2ebc109b607789f648dedcff4b125f9afec6Yinghai Lu          been allocated by the BIOS.
44b07f2ebc109b607789f648dedcff4b125f9afec6Yinghai Lu
45b07f2ebc109b607789f648dedcff4b125f9afec6Yinghai Lu	  When in doubt, say N.
46b07f2ebc109b607789f648dedcff4b125f9afec6Yinghai Lu
47c70e0d9dfef3d826c8ae4f7544acc53887cb161dChris Wrightconfig PCI_STUB
48c70e0d9dfef3d826c8ae4f7544acc53887cb161dChris Wright	tristate "PCI Stub driver"
49c70e0d9dfef3d826c8ae4f7544acc53887cb161dChris Wright	depends on PCI
50c70e0d9dfef3d826c8ae4f7544acc53887cb161dChris Wright	help
51c70e0d9dfef3d826c8ae4f7544acc53887cb161dChris Wright	  Say Y or M here if you want be able to reserve a PCI device
52c70e0d9dfef3d826c8ae4f7544acc53887cb161dChris Wright	  when it is going to be assigned to a guest operating system.
53c70e0d9dfef3d826c8ae4f7544acc53887cb161dChris Wright
54c70e0d9dfef3d826c8ae4f7544acc53887cb161dChris Wright	  When in doubt, say N.
55c70e0d9dfef3d826c8ae4f7544acc53887cb161dChris Wright
56956a9202cd1220397933a07beda9f96b3df1fa24Ryan Wilsonconfig XEN_PCIDEV_FRONTEND
57956a9202cd1220397933a07beda9f96b3df1fa24Ryan Wilson        tristate "Xen PCI Frontend"
58956a9202cd1220397933a07beda9f96b3df1fa24Ryan Wilson        depends on PCI && X86 && XEN
59956a9202cd1220397933a07beda9f96b3df1fa24Ryan Wilson        select HOTPLUG
60956a9202cd1220397933a07beda9f96b3df1fa24Ryan Wilson        select PCI_XEN
61fce263c141faca8db85acb0524bdfdfae3ec0725Konrad Rzeszutek Wilk	select XEN_XENBUS_FRONTEND
62956a9202cd1220397933a07beda9f96b3df1fa24Ryan Wilson        default y
63956a9202cd1220397933a07beda9f96b3df1fa24Ryan Wilson        help
64956a9202cd1220397933a07beda9f96b3df1fa24Ryan Wilson          The PCI device frontend driver allows the kernel to import arbitrary
65956a9202cd1220397933a07beda9f96b3df1fa24Ryan Wilson          PCI devices from a PCI backend to support PCI driver domains.
66956a9202cd1220397933a07beda9f96b3df1fa24Ryan Wilson
678b955b0dddb35e398b07e217a81f8bd49400796fEric W. Biedermanconfig HT_IRQ
688b955b0dddb35e398b07e217a81f8bd49400796fEric W. Biederman	bool "Interrupts on hypertransport devices"
698b955b0dddb35e398b07e217a81f8bd49400796fEric W. Biederman	default y
70fbab41ccc479b6b0ba15c137af9e0b1c100bff24Adrian Bunk	depends on PCI && X86_LOCAL_APIC && X86_IO_APIC
718b955b0dddb35e398b07e217a81f8bd49400796fEric W. Biederman	help
728b955b0dddb35e398b07e217a81f8bd49400796fEric W. Biederman	   This allows native hypertransport devices to use interrupts.
738b955b0dddb35e398b07e217a81f8bd49400796fEric W. Biederman
748b955b0dddb35e398b07e217a81f8bd49400796fEric W. Biederman	   If unsure say Y.
75d1b054da8f599905f3c18a218961dcf17f9d5f13Yu Zhao
76db3c33c6d3fa04ee46b491e9d75d0d3b4798d074Joerg Roedelconfig PCI_ATS
77db3c33c6d3fa04ee46b491e9d75d0d3b4798d074Joerg Roedel	bool
78db3c33c6d3fa04ee46b491e9d75d0d3b4798d074Joerg Roedel
79d1b054da8f599905f3c18a218961dcf17f9d5f13Yu Zhaoconfig PCI_IOV
80d1b054da8f599905f3c18a218961dcf17f9d5f13Yu Zhao	bool "PCI IOV support"
81d1b054da8f599905f3c18a218961dcf17f9d5f13Yu Zhao	depends on PCI
82db3c33c6d3fa04ee46b491e9d75d0d3b4798d074Joerg Roedel	select PCI_ATS
83d1b054da8f599905f3c18a218961dcf17f9d5f13Yu Zhao	help
84d1b054da8f599905f3c18a218961dcf17f9d5f13Yu Zhao	  I/O Virtualization is a PCI feature supported by some devices
85d1b054da8f599905f3c18a218961dcf17f9d5f13Yu Zhao	  which allows them to create virtual devices which share their
86d1b054da8f599905f3c18a218961dcf17f9d5f13Yu Zhao	  physical resources.
87d1b054da8f599905f3c18a218961dcf17f9d5f13Yu Zhao
88d1b054da8f599905f3c18a218961dcf17f9d5f13Yu Zhao	  If unsure, say N.
89204d49a5613a06eb2fa5c3b842a29b1336cc7995Bjorn Helgaas
90c320b976d7837c561ce4aa49dfe0a64f0e527ce4Joerg Roedelconfig PCI_PRI
91c320b976d7837c561ce4aa49dfe0a64f0e527ce4Joerg Roedel	bool "PCI PRI support"
92c54420d3302d30999060e2669d0800b85e5b5a20Joerg Roedel	depends on PCI
93c320b976d7837c561ce4aa49dfe0a64f0e527ce4Joerg Roedel	select PCI_ATS
94c320b976d7837c561ce4aa49dfe0a64f0e527ce4Joerg Roedel	help
95c320b976d7837c561ce4aa49dfe0a64f0e527ce4Joerg Roedel	  PRI is the PCI Page Request Interface. It allows PCI devices that are
96c320b976d7837c561ce4aa49dfe0a64f0e527ce4Joerg Roedel	  behind an IOMMU to recover from page faults.
97c320b976d7837c561ce4aa49dfe0a64f0e527ce4Joerg Roedel
98c320b976d7837c561ce4aa49dfe0a64f0e527ce4Joerg Roedel	  If unsure, say N.
99c320b976d7837c561ce4aa49dfe0a64f0e527ce4Joerg Roedel
100086ac11f6435c9dc2fe5025fc8ea3a1dbca273d6Joerg Roedelconfig PCI_PASID
101086ac11f6435c9dc2fe5025fc8ea3a1dbca273d6Joerg Roedel	bool "PCI PASID support"
102086ac11f6435c9dc2fe5025fc8ea3a1dbca273d6Joerg Roedel	depends on PCI
103086ac11f6435c9dc2fe5025fc8ea3a1dbca273d6Joerg Roedel	select PCI_ATS
104086ac11f6435c9dc2fe5025fc8ea3a1dbca273d6Joerg Roedel	help
105086ac11f6435c9dc2fe5025fc8ea3a1dbca273d6Joerg Roedel	  Process Address Space Identifiers (PASIDs) can be used by PCI devices
106086ac11f6435c9dc2fe5025fc8ea3a1dbca273d6Joerg Roedel	  to access more than one IO address space at the same time. To make
107086ac11f6435c9dc2fe5025fc8ea3a1dbca273d6Joerg Roedel	  use of this feature an IOMMU is required which also supports PASIDs.
108086ac11f6435c9dc2fe5025fc8ea3a1dbca273d6Joerg Roedel	  Select this option if you have such an IOMMU and want to compile the
109086ac11f6435c9dc2fe5025fc8ea3a1dbca273d6Joerg Roedel	  driver for it into your kernel.
110086ac11f6435c9dc2fe5025fc8ea3a1dbca273d6Joerg Roedel
111086ac11f6435c9dc2fe5025fc8ea3a1dbca273d6Joerg Roedel	  If unsure, say N.
112086ac11f6435c9dc2fe5025fc8ea3a1dbca273d6Joerg Roedel
113204d49a5613a06eb2fa5c3b842a29b1336cc7995Bjorn Helgaasconfig PCI_IOAPIC
114b95a7bd700466c10fda84acbd33f70cf66ec91ceJan Beulich	tristate "PCI IO-APIC hotplug support" if X86
115204d49a5613a06eb2fa5c3b842a29b1336cc7995Bjorn Helgaas	depends on PCI
116204d49a5613a06eb2fa5c3b842a29b1336cc7995Bjorn Helgaas	depends on ACPI
117204d49a5613a06eb2fa5c3b842a29b1336cc7995Bjorn Helgaas	depends on HOTPLUG
118b95a7bd700466c10fda84acbd33f70cf66ec91ceJan Beulich	default !X86
1196058989bad05b82e78baacce69ec14f27a11b5fdNarendra_K@Dell.com
1208a226e00eeed8db843d4a580013a49ae3559bcd7Randy Dunlapconfig PCI_LABEL
1218a226e00eeed8db843d4a580013a49ae3559bcd7Randy Dunlap	def_bool y if (DMI || ACPI)
1228a226e00eeed8db843d4a580013a49ae3559bcd7Randy Dunlap	select NLS
123