* [PATCH 0/2] VMD support for 8086:9A0B
@ 2019-11-11 16:53 Jon Derrick
2019-11-11 16:53 ` [PATCH 1/2] PCI: vmd: Add bus 224-255 restriction decode Jon Derrick
` (2 more replies)
0 siblings, 3 replies; 5+ messages in thread
From: Jon Derrick @ 2019-11-11 16:53 UTC (permalink / raw)
To: Lorenzo Pieralisi; +Cc: linux-pci, Bjorn Helgaas, Keith Busch, Jon Derrick
This set adds VMD support for device 8086:9A0B. The first patch adds
another bus range restriction and the second adds the device id.
Jon Derrick (2):
PCI: vmd: Add bus 224-255 restriction decode
PCI: vmd: Add device id for VMD device 8086:9A0B
drivers/pci/controller/vmd.c | 32 ++++++++++++++++++++++++--------
include/linux/pci_ids.h | 1 +
2 files changed, 25 insertions(+), 8 deletions(-)
--
1.8.3.1
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 1/2] PCI: vmd: Add bus 224-255 restriction decode
2019-11-11 16:53 [PATCH 0/2] VMD support for 8086:9A0B Jon Derrick
@ 2019-11-11 16:53 ` Jon Derrick
2019-11-11 17:04 ` Keith Busch
2019-11-11 16:53 ` [PATCH 2/2] PCI: vmd: Add device id for VMD device 8086:9A0B Jon Derrick
2019-11-11 16:55 ` [PATCH 0/2] VMD support for 8086:9A0B Derrick, Jonathan
2 siblings, 1 reply; 5+ messages in thread
From: Jon Derrick @ 2019-11-11 16:53 UTC (permalink / raw)
To: Lorenzo Pieralisi; +Cc: linux-pci, Bjorn Helgaas, Keith Busch, Jon Derrick
VMD bus restrictions are required when IO fabric is multiplexed such
that VMD cannot use the entire bus range. This patch adds another bus
restriction decode bit that can be set by firmware to restrict the VMD
bus range from 224-255.
Signed-off-by: Jon Derrick <jonathan.derrick@intel.com>
---
drivers/pci/controller/vmd.c | 30 ++++++++++++++++++++++--------
1 file changed, 22 insertions(+), 8 deletions(-)
diff --git a/drivers/pci/controller/vmd.c b/drivers/pci/controller/vmd.c
index a35d3f3..db00a71 100644
--- a/drivers/pci/controller/vmd.c
+++ b/drivers/pci/controller/vmd.c
@@ -602,16 +602,30 @@ static int vmd_enable_domain(struct vmd_dev *vmd, unsigned long features)
/*
* Certain VMD devices may have a root port configuration option which
- * limits the bus range to between 0-127 or 128-255
+ * limits the bus range to between 0-127, 128-255, or 224-255
*/
if (features & VMD_FEAT_HAS_BUS_RESTRICTIONS) {
- u32 vmcap, vmconfig;
-
- pci_read_config_dword(vmd->dev, PCI_REG_VMCAP, &vmcap);
- pci_read_config_dword(vmd->dev, PCI_REG_VMCONFIG, &vmconfig);
- if (BUS_RESTRICT_CAP(vmcap) &&
- (BUS_RESTRICT_CFG(vmconfig) == 0x1))
- vmd->busn_start = 128;
+ u16 reg16;
+
+ pci_read_config_word(vmd->dev, PCI_REG_VMCAP, ®16);
+ if (BUS_RESTRICT_CAP(reg16)) {
+ pci_read_config_word(vmd->dev, PCI_REG_VMCONFIG,
+ ®16);
+
+ switch (BUS_RESTRICT_CFG(reg16)) {
+ case(1):
+ vmd->busn_start = 128;
+ break;
+ case(2):
+ vmd->busn_start = 224;
+ break;
+ case(3):
+ pci_err(vmd->dev, "Unknown Bus Offset Setting\n");
+ return -ENODEV;
+ default:
+ break;
+ }
+ }
}
res = &vmd->dev->resource[VMD_CFGBAR];
--
1.8.3.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 2/2] PCI: vmd: Add device id for VMD device 8086:9A0B
2019-11-11 16:53 [PATCH 0/2] VMD support for 8086:9A0B Jon Derrick
2019-11-11 16:53 ` [PATCH 1/2] PCI: vmd: Add bus 224-255 restriction decode Jon Derrick
@ 2019-11-11 16:53 ` Jon Derrick
2019-11-11 16:55 ` [PATCH 0/2] VMD support for 8086:9A0B Derrick, Jonathan
2 siblings, 0 replies; 5+ messages in thread
From: Jon Derrick @ 2019-11-11 16:53 UTC (permalink / raw)
To: Lorenzo Pieralisi; +Cc: linux-pci, Bjorn Helgaas, Keith Busch, Jon Derrick
This patch adds support for this VMD device which supports the bus
restriction mode.
Signed-off-by: Jon Derrick <jonathan.derrick@intel.com>
---
drivers/pci/controller/vmd.c | 2 ++
include/linux/pci_ids.h | 1 +
2 files changed, 3 insertions(+)
diff --git a/drivers/pci/controller/vmd.c b/drivers/pci/controller/vmd.c
index db00a71..cec7872 100644
--- a/drivers/pci/controller/vmd.c
+++ b/drivers/pci/controller/vmd.c
@@ -868,6 +868,8 @@ static int vmd_resume(struct device *dev)
{PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_VMD_28C0),
.driver_data = VMD_FEAT_HAS_MEMBAR_SHADOW |
VMD_FEAT_HAS_BUS_RESTRICTIONS,},
+ {PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_VMD_9A0B),
+ .driver_data = VMD_FEAT_HAS_BUS_RESTRICTIONS,},
{0,}
};
MODULE_DEVICE_TABLE(pci, vmd_ids);
diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h
index 21a5724..3ad3d52 100644
--- a/include/linux/pci_ids.h
+++ b/include/linux/pci_ids.h
@@ -3006,6 +3006,7 @@
#define PCI_DEVICE_ID_INTEL_84460GX 0x84ea
#define PCI_DEVICE_ID_INTEL_IXP4XX 0x8500
#define PCI_DEVICE_ID_INTEL_IXP2800 0x9004
+#define PCI_DEVICE_ID_INTEL_VMD_9A0B 0x9A0B
#define PCI_DEVICE_ID_INTEL_S21152BB 0xb152
#define PCI_VENDOR_ID_SCALEMP 0x8686
--
1.8.3.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH 0/2] VMD support for 8086:9A0B
2019-11-11 16:53 [PATCH 0/2] VMD support for 8086:9A0B Jon Derrick
2019-11-11 16:53 ` [PATCH 1/2] PCI: vmd: Add bus 224-255 restriction decode Jon Derrick
2019-11-11 16:53 ` [PATCH 2/2] PCI: vmd: Add device id for VMD device 8086:9A0B Jon Derrick
@ 2019-11-11 16:55 ` Derrick, Jonathan
2 siblings, 0 replies; 5+ messages in thread
From: Derrick, Jonathan @ 2019-11-11 16:55 UTC (permalink / raw)
To: lorenzo.pieralisi; +Cc: kbusch, linux-pci, helgaas
+Keith
https://patchwork.kernel.org/project/linux-pci/list/?series=201147
On Mon, 2019-11-11 at 09:53 -0700, Jon Derrick wrote:
> This set adds VMD support for device 8086:9A0B. The first patch adds
> another bus range restriction and the second adds the device id.
>
> Jon Derrick (2):
> PCI: vmd: Add bus 224-255 restriction decode
> PCI: vmd: Add device id for VMD device 8086:9A0B
>
> drivers/pci/controller/vmd.c | 32 ++++++++++++++++++++++++--------
> include/linux/pci_ids.h | 1 +
> 2 files changed, 25 insertions(+), 8 deletions(-)
>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 1/2] PCI: vmd: Add bus 224-255 restriction decode
2019-11-11 16:53 ` [PATCH 1/2] PCI: vmd: Add bus 224-255 restriction decode Jon Derrick
@ 2019-11-11 17:04 ` Keith Busch
0 siblings, 0 replies; 5+ messages in thread
From: Keith Busch @ 2019-11-11 17:04 UTC (permalink / raw)
To: Jon Derrick; +Cc: Lorenzo Pieralisi, linux-pci, Bjorn Helgaas, Keith Busch
On Mon, Nov 11, 2019 at 09:53:01AM -0700, Jon Derrick wrote:
> VMD bus restrictions are required when IO fabric is multiplexed such
> that VMD cannot use the entire bus range. This patch adds another bus
> restriction decode bit that can be set by firmware to restrict the VMD
> bus range from 224-255.
The code suggests that such a device is restricted *to* that range,
not from it.
> + switch (BUS_RESTRICT_CFG(reg16)) {
> + case(1):
> + vmd->busn_start = 128;
> + break;
> + case(2):
> + vmd->busn_start = 224;
> + break;
> + case(3):
> + pci_err(vmd->dev, "Unknown Bus Offset Setting\n");
> + return -ENODEV;
> + default:
> + break;
> + }
Just a nit for consistent sytle, every other switch case looks like:
case 1:
...
case 2:
...
case 3:
...
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2019-11-11 17:04 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-11-11 16:53 [PATCH 0/2] VMD support for 8086:9A0B Jon Derrick
2019-11-11 16:53 ` [PATCH 1/2] PCI: vmd: Add bus 224-255 restriction decode Jon Derrick
2019-11-11 17:04 ` Keith Busch
2019-11-11 16:53 ` [PATCH 2/2] PCI: vmd: Add device id for VMD device 8086:9A0B Jon Derrick
2019-11-11 16:55 ` [PATCH 0/2] VMD support for 8086:9A0B Derrick, Jonathan
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).