[PATCH v2 00/18] MMCONFIG: get ready for _CBA and hot-plug host bridges

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



These patches convert the table of MMCONFIG regions to a list, to make it
easier to support addition and removal of regions at run-time.

MMCONFIG management will need to be more dynamic to support _CBA (a PCI host
bridge ACPI method that reports the MMCONFIG address), because we will discover
_CBA when we claim the host bridge, not in the current pci_arch_init() path.

The PCI Firmware Spec requires BIOS to use _CBA, not MCFG, to report MMCONFIG
regions of hot-pluggable host bridges.  Therefore, if the hardware and firmware
support host bridge hotplug, we will encounter _CBA even if Linux itself
doesn't support hotplug.

I changed some printk and resource name text, but otherwise, except for any
implementation errors I made, this series should have no functional change.

Changes from v1 to v2:
    - update resource name when changing bus number range (Yinghai, in 11/18)

---

Bjorn Helgaas (18):
      x86/PCI: MMCONFIG: remove unused definitions
      x86/PCI: MMCONFIG: count MCFG structures with local variable
      x86/PCI: MMCONFIG: step through MCFG table, not pci_mmcfg_config[]
      x86/PCI: MMCONFIG: centralize MCFG structure management
      x86/PCI: MMCONFIG: simplify tests for empty pci_mmcfg_config table
      x86/PCI: MMCONFIG: reject MMCONFIG apertures at address zero
      x86/PCI: MMCONFIG: add PCI_MMCFG_BUS_OFFSET() to factor common expression
      x86/PCI: MMCONFIG: use a private structure rather than the ACPI MCFG one
      x86/PCI: MMCONFIG: rename pci_mmcfg_region structure members
      x86/PCI: MMCONFIG: use pointer to simplify pci_mmcfg_config[] structure access
      x86/PCI: MMCONFIG: add resource to struct pci_mmcfg_region
      x86/PCI: MMCONFIG: trivial is_mmconf_reserved() interface simplification
      x86/PCI: MMCONFIG: add virtual address to struct pci_mmcfg_region
      x86/PCI: MMCONFIG: remove typeof so we can use a list
      x86/PCI: MMCONFIG: manage pci_mmcfg_region as a list, not a table
      x86/PCI: MMCONFIG: add pci_mmconfig_remove() to remove MMCONFIG region
      x86/PCI: MMCONFIG: clean up printks
      x86/PCI: MMCONFIG: add lookup function


 arch/x86/include/asm/pci_x86.h |   20 ++
 arch/x86/pci/mmconfig-shared.c |  331 +++++++++++++++++++---------------------
 arch/x86/pci/mmconfig_32.c     |   16 --
 arch/x86/pci/mmconfig_64.c     |   88 +++--------
 4 files changed, 201 insertions(+), 254 deletions(-)

-- 
Bjorn
--
To unsubscribe from this list: send the line "unsubscribe linux-pci" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux