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

[Xen-devel] [VTD][PATCH] enabling pci mmcfg and ATS for x86_64


  • To: "xen-devel@xxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxx>
  • From: "Kay, Allen M" <allen.m.kay@xxxxxxxxx>
  • Date: Mon, 1 Jun 2009 17:23:33 -0700
  • Accept-language: en-US
  • Acceptlanguage: en-US
  • Delivery-date: Mon, 01 Jun 2009 17:24:13 -0700
  • List-id: Xen developer discussion <xen-devel.lists.xensource.com>
  • Thread-index: AcnjGFU+qnNsFrR2RYuDR+n59/542w==
  • Thread-topic: [VTD][PATCH] enabling pci mmcfg and ATS for x86_64

This patch enables PCI MMCONFIG in xen and turns on hooks for ATS.  All 
previous feedbacks for PCI MMCFG have been incorporated.

I have tested the patch on Intel x86_64 and build tested on IA-64 and x86_32.  
Since PCI config offsets below 256 is still using cfc/cf8 method, I don't 
expect impact to existing code accessing PCI config area.

 xen/arch/x86/acpi/boot.c                : add call acpi_mmcfg_init()

 xen/arch/x86/e820.c                     : add linux function e820_all_mapped() 
- used by mmconfig-shared.c

 xen/arch/x86/pci.c                      : move pci_conf_*() from here to 
x86_64 and x86_32

 xen/arch/x86/x86_32/pci.c               : pci_conf_read*() and 
pci_conf_write*() moved here unchanged

 xen/arch/x86/x86_64/pci.c               : for PCI reg value > 255 use 
pci_mmcfg_*() else use the original cfc/cf8

 xen/include/asm-x86/msr-index.h         : sync with Linux kernel, change
                                               "#define 
FAM10H_MMIO_CONF_ENABLE_BIT 0"
                                           to
                                               "#define FAM10H_MMIO_CONF_ENABLE 
 (1<<0)"

 xen/arch/x86/traps.c                    : change (1 << 
FAM10H_MMIO_CONF_ENABLE_BIT) to FAM10H_MMIO_CONF_ENABLE

 xen/arch/x86/x86_64/acpi_mmcfg.c        : Linux acpi mmcfg parsing functions

 xen/arch/x86/x86_64/mmconfig-shared.c   : ported over Linux file with same name

 xen/arch/x86/x86_64/mmconfig.h          : misc. definitions used by mmcfg

 xen/arch/x86/x86_64/mmconfig_64.c       : ported over Linux file with same name

 xen/arch/x86/x86_32/Makefile            : add pci.o

 xen/arch/x86/x86_64/Makefile            : add pci.o, acpi_mmcfg.o, 
mmconfig_64.o, mmconfig-shared.o

 xen/drivers/passthrough/vtd/extern.h    : add new ats function prototypes

 xen/drivers/passthrough/vtd/ia64/ats.c  : remove unnecessary stub function.

 xen/drivers/passthrough/vtd/iommu.c     : enable call to ats_device() and 
enable_ats_device()

 xen/drivers/passthrough/vtd/qinval.c    : enable call to dev_invalidate_iotlb()

 xen/drivers/passthrough/vtd/x86/ats.c   : remove unnecessary stub function.

 xen/include/asm-x86/acpi.h              : add acpi_mmcfg_init() prototype, 
clean up

 xen/include/asm-x86/config.h            : reserve SLOT 257 for 
PCI_MCFG_VIRT_START/END.  Given PML4 slot has 39 bits,
                                           we currently limit to maximum of 
2049 PCI segments.

 xen/include/asm-x86/e820.h              : add prototype for e820_all_mapped()

 xen/include/xen/pci.h                   : add prototypes for 
pci_mmcfg_read/write(), pci_find_ext_capability()


Signed-off-by: Allen Kay allen.m.kay@xxxxxxxxx

Attachment: mmcfg06019.patch
Description: mmcfg06019.patch

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.