1. 24 2月, 2012 1 次提交
  2. 07 1月, 2012 2 次提交
  3. 06 12月, 2011 2 次提交
  4. 15 10月, 2011 2 次提交
  5. 12 5月, 2011 3 次提交
  6. 31 3月, 2011 1 次提交
  7. 24 12月, 2010 3 次提交
  8. 18 10月, 2010 1 次提交
  9. 12 5月, 2010 1 次提交
  10. 28 4月, 2010 1 次提交
  11. 24 2月, 2010 1 次提交
    • J
      x86/PCI: Moorestown PCI support · a712ffbc
      Jesse Barnes 提交于
      The Moorestown platform only has a few devices that actually support
      PCI config cycles.  The rest of the devices use an in-RAM MCFG space
      for the purposes of device enumeration and initialization.
      
      There are a few uglies in the fake support, like BAR sizes that aren't
      a power of two, sizing detection, and writes to the real devices, but
      other than that it's pretty straightforward.
      
      Another way to think of this is not really as PCI at all, but just a
      table in RAM describing which devices are present, their capabilities
      and their offsets in MMIO space.  This could have been done with a
      special new firmware table on this platform, but given that we do have
      some real PCI devices too, simply describing things in an MCFG type
      space was pretty simple.
      Signed-off-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      LKML-Reference: <43F901BD926A4E43B106BF17856F07559FB80D08@orsmsx508.amr.corp.intel.com>
      Signed-off-by: NJacob Pan <jacob.jun.pan@intel.com>
      Signed-off-by: NH. Peter Anvin <hpa@zytor.com>
      a712ffbc
  12. 05 11月, 2009 2 次提交
    • G
      PCI: populate subsystem vendor and device IDs for PCI bridges · bc577d2b
      Gabe Black 提交于
      Change to populate the subsystem vendor and subsytem device IDs for
      PCI-PCI bridges that implement the PCI Subsystem Vendor ID capability.
      Previously bridges left subsystem vendor IDs unpopulated.
      Signed-off-by: NGabe Black <gabe.black@ni.com>
      Signed-off-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      bc577d2b
    • A
      PCI: acs p2p upsteram forwarding enabling · ae21ee65
      Allen Kay 提交于
      Note: dom0 checking in v4 has been separated out into 2/2.
      
      This patch enables P2P upstream forwarding in ACS capable PCIe switches.
      It solves two potential problems in virtualization environment where a PCIe
      device is assigned to a guest domain using a HW iommu such as VT-d:
      
      1) Unintentional failure caused by guest physical address programmed
         into the device's DMA that happens to match the memory address range
         of other downstream ports in the same PCIe switch.  This causes the PCI
         transaction to go to the matching downstream port instead of go to the
         root complex to get translated by VT-d as it should be.
      
      2) Malicious guest software intentionally attacks another downstream
         PCIe device by programming the DMA address into the assigned device
         that matches memory address range of the downstream PCIe port.
      
      We are in process of implementing device filtering software in KVM/XEN
      management software to allow device assignment of PCIe devices behind a PCIe
      switch only if it has ACS capability and with the P2P upstream forwarding bits
      enabled.  This patch is intended to work for both KVM and Xen environments.
      Signed-off-by: NAllen Kay <allen.m.kay@intel.com>
      Reviewed-by: NMathew Wilcox <willy@linux.intel.com>
      Reviewed-by: NChris Wright <chris@sous-sol.org>
      Signed-off-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      ae21ee65
  13. 16 9月, 2009 1 次提交
  14. 12 6月, 2009 2 次提交
  15. 18 5月, 2009 1 次提交
  16. 23 4月, 2009 1 次提交
    • Y
      PCI: only save/restore existent registers in the PCIe capability · 1b6b8ce2
      Yu Zhao 提交于
      PCIe 1.1 base neither requires the endpoint to implement the entire
      PCIe capability structure nor specifies default values of registers
      that are not implemented by the device. So we only save and restore
      registers that must be implemented by different device types if the
      device PCIe capability version is 1.
      
      PCIe 1.1 Capability Structure Expansion ECN and PCIe 2.0 requires
      all registers in the PCIe capability to be either implemented or
      hardwired to 0. Their PCIe capability version is 2.
      Signed-off-by: NYu Zhao <yu.zhao@intel.com>
      Signed-off-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      1b6b8ce2
  17. 27 3月, 2009 1 次提交
  18. 21 3月, 2009 2 次提交
  19. 08 1月, 2009 2 次提交
  20. 23 10月, 2008 1 次提交
    • S
      PCI: add support for function level reset · 8dd7f803
      Sheng Yang 提交于
      Sometimes, it's necessary to enable software's ability to quiesce and
      reset endpoint hardware with function-level granularity, so provide
      support for it.
      
      The patch implement Function Level Reset(FLR) feature following PCI-e
      spec. And this is the first step. We would add more generic method, like
      D0/D3, to allow more devices support this function.
      
      The patch contains two functions. pcie_reset_function() is the new
      driver API, and, contains some action to quiesce a device.  The other
      function is a helper:  pcie_execute_reset_function() just executes the
      reset for a particular device function.
      
      Current the usage model is in KVM. Function reset is necessary for
      assigning device to a guest, or moving it between partitions.
      
      For Function Level Reset(FLR), please refer to PCI Express spec chapter
      6.6.2.
      Signed-off-by: NSheng Yang <sheng@linux.intel.com>
      Signed-off-by: NMatthew Wilcox <willy@linux.intel.com>
      Signed-off-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      8dd7f803
  21. 21 10月, 2008 1 次提交
  22. 29 7月, 2008 1 次提交
  23. 08 7月, 2008 1 次提交
  24. 21 4月, 2008 1 次提交
    • S
      PCI: add PCI Express ASPM support · 7d715a6c
      Shaohua Li 提交于
      PCI Express ASPM defines a protocol for PCI Express components in the D0
      state to reduce Link power by placing their Links into a low power state
      and instructing the other end of the Link to do likewise. This
      capability allows hardware-autonomous, dynamic Link power reduction
      beyond what is achievable by software-only controlled power management.
      However, The device should be configured by software appropriately.
      Enabling ASPM will save power, but will introduce device latency.
      
      This patch adds ASPM support in Linux. It introduces a global policy for
      ASPM, a sysfs file /sys/module/pcie_aspm/parameters/policy can control
      it. The interface can be used as a boot option too. Currently we have
      below setting:
              -default, BIOS default setting
              -powersave, highest power saving mode, enable all available ASPM
      state and clock power management
              -performance, highest performance, disable ASPM and clock power
      management
      By default, the 'default' policy is used currently.
      
      In my test, power difference between powersave mode and performance mode
      is about 1.3w in a system with 3 PCIE links.
      
      Note: some devices might not work well with aspm, either because chipset
      issue or device issue. The patch provide API (pci_disable_link_state),
      driver can disable ASPM for specific device.
      Signed-off-by: NShaohua Li <shaohua.li@intel.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      7d715a6c
  25. 03 2月, 2008 1 次提交
  26. 02 2月, 2008 1 次提交
    • S
      PCI: PCIE ASPM support · 6c723d5b
      Shaohua Li 提交于
      PCI Express ASPM defines a protocol for PCI Express components in the D0
      state to reduce Link power by placing their Links into a low power state
      and instructing the other end of the Link to do likewise. This
      capability allows hardware-autonomous, dynamic Link power reduction
      beyond what is achievable by software-only controlled power management.
      However, The device should be configured by software appropriately.
      Enabling ASPM will save power, but will introduce device latency.
      
      This patch adds ASPM support in Linux. It introduces a global policy for
      ASPM, a sysfs file /sys/module/pcie_aspm/parameters/policy can control
      it. The interface can be used as a boot option too. Currently we have
      below setting:
              -default, BIOS default setting
              -powersave, highest power saving mode, enable all available ASPM
      state
      and clock power management
              -performance, highest performance, disable ASPM and clock power
      management
      By default, the 'default' policy is used currently.
      
      In my test, power difference between powersave mode and performance mode
      is about 1.3w in a system with 3 PCIE links.
      Signed-off-by: NShaohua Li <shaohua.li@intel.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      6c723d5b
  27. 13 10月, 2007 2 次提交
  28. 11 10月, 2007 1 次提交