]> CyberLeo.Net >> Repos - FreeBSD/stable/10.git/commit
MFC r264007,r264008,r264009,r264011,r264012,r264013
authorrstone <rstone@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Sun, 1 Mar 2015 04:22:06 +0000 (04:22 +0000)
committerrstone <rstone@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Sun, 1 Mar 2015 04:22:06 +0000 (04:22 +0000)
commit49f9f19e78cd4027145b999b55aeb2cd16541300
tree446f913517294e1706cb75904e32f64162cd9d7d
parent123f9c22da489c5f1d61a739028fd4fe01f3fd4e
MFC r264007,r264008,r264009,r264011,r264012,r264013

MFC support for PCI Alternate RID Interpretation.  ARI is an optional PCIe
feature that allows PCI devices to present up to 256 functions on a bus.
This is effectively a prerequisite for PCI SR-IOV support.

r264007:
   Add a method to get the PCI RID for a device.

   Reviewed by:  kib
   MFC after:    2 months
   Sponsored by: Sandvine Inc.

r264008:
   Re-implement the DMAR I/O MMU code in terms of PCI RIDs

   Under the hood the VT-d spec is really implemented in terms of
   PCI RIDs instead of bus/slot/function, even though the spec makes
   pains to convert back to bus/slot/function in examples.  However
   working with bus/slot/function is not correct when PCI ARI is
   in use, so convert to using RIDs in most cases.  bus/slot/function
   will only be used when reporting errors to a user.

   Reviewed by:  kib
   MFC after:    2 months
   Sponsored by: Sandvine Inc.

r264009:
   Re-write bhyve's I/O MMU handling in terms of PCI RID.

   Reviewed by:  neel
   MFC after:    2 months
   Sponsored by: Sandvine Inc.

r264011:
   Add support for PCIe ARI

   PCIe Alternate RID Interpretation (ARI) is an optional feature that
   allows devices to have up to 256 different functions.  It is
   implemented by always setting the PCI slot number to 0 and
   re-purposing the 5 bits used to encode the slot number to instead
   contain the function number.  Combined with the original 3 bits
   allocated for the function number, this allows for 256 functions.

   This is enabled by default, but it's expected to be a no-op on currently
   supported hardware.  It's a prerequisite for supporting PCI SR-IOV, and
   I want the ARI support to go in early to help shake out any bugs in it.
   ARI can be disabled by setting the tunable hw.pci.enable_ari=0.

   Reviewed by:  kib
   MFC after:    2 months
   Sponsored by: Sandvine Inc.

r264012:
   Print status of ARI capability in pciconf -c

   Teach pciconf how to print out the status (enabled/disabled) of the ARI
   capability on PCI Root Complexes and Downstream Ports.

   MFC after:    2 months
   Sponsored by: Sandvine Inc.

r264013:
   Add missing copyright date.

   MFC after:    2 months

git-svn-id: svn://svn.freebsd.org/base/stable/10@279470 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
21 files changed:
sys/amd64/vmm/amd/amdv.c
sys/amd64/vmm/intel/vtd.c
sys/amd64/vmm/io/iommu.c
sys/amd64/vmm/io/iommu.h
sys/amd64/vmm/io/ppt.c
sys/conf/files
sys/dev/pci/pci.c
sys/dev/pci/pci_if.m
sys/dev/pci/pci_pci.c
sys/dev/pci/pcib_if.m
sys/dev/pci/pcib_private.h
sys/dev/pci/pcib_support.c [new file with mode: 0644]
sys/dev/pci/pcireg.h
sys/dev/pci/pcivar.h
sys/x86/iommu/busdma_dmar.c
sys/x86/iommu/intel_ctx.c
sys/x86/iommu/intel_dmar.h
sys/x86/iommu/intel_drv.c
sys/x86/iommu/intel_fault.c
sys/x86/iommu/intel_utils.c
usr.sbin/pciconf/cap.c