ia64/linux-2.6.18-xen.hg

view drivers/pci/Makefile @ 696:2b5cc22ab406

xen/dom0: Reassign memory resources to device for pci passthrough.

This patch adds the function that reassign page-aligned memory
resources, to dom0 linux. The function is useful when we assign I/O
device to HVM domain using pci passthrough.

When we assign a device to HVM domain using pci passthrough,
the device needs to be assigned page-aligned memory resources. If the
memory resource is not page-aligned, following error occurs.

Error: pci: 0000:00:1d.7: non-page-aligned MMIO BAR found.

On many system, BIOS assigns memory resources to the device and
enables it. So my patch disables the device, and releases resources,
Then it assigns page-aligned memory resource to the device.

To reassign resources, please add boot parameters of dom0 linux as
follows.

reassign_resources reassigndev=00:1d.7,01:00.0

reassign_resources
Enables reassigning resources.

reassigndev= Specifies devices include I/O device and
PCI-PCI
bridge to reassign resources. PCI-PCI bridge
can be specified, if resource windows need to
be expanded.

Signed-off-by: Yuji Shimada <shimada-yxb@necst.nec.co.jp>
author Keir Fraser <keir.fraser@citrix.com>
date Thu Oct 09 11:10:43 2008 +0100 (2008-10-09)
parents 831230e53067
children 16c549b3ba59
line source
1 #
2 # Makefile for the PCI bus specific drivers.
3 #
5 obj-y += access.o bus.o probe.o remove.o pci.o quirks.o \
6 pci-driver.o search.o pci-sysfs.o rom.o setup-res.o \
7 reassigndev.o
8 obj-$(CONFIG_PROC_FS) += proc.o
10 # Build PCI Express stuff if needed
11 obj-$(CONFIG_PCIEPORTBUS) += pcie/
13 obj-$(CONFIG_HOTPLUG) += hotplug.o
15 # Build the PCI Hotplug drivers if we were asked to
16 obj-$(CONFIG_HOTPLUG_PCI) += hotplug/
18 #
19 # Some architectures use the generic PCI setup functions
20 #
21 obj-$(CONFIG_X86) += setup-bus.o
22 obj-$(CONFIG_ALPHA) += setup-bus.o setup-irq.o
23 obj-$(CONFIG_ARM) += setup-bus.o setup-irq.o
24 obj-$(CONFIG_PARISC) += setup-bus.o
25 obj-$(CONFIG_SUPERH) += setup-bus.o setup-irq.o
26 obj-$(CONFIG_PPC32) += setup-irq.o
27 obj-$(CONFIG_PPC64) += setup-bus.o
28 obj-$(CONFIG_MIPS) += setup-bus.o setup-irq.o
29 obj-$(CONFIG_X86_VISWS) += setup-irq.o
31 msiobj-y := msi.o msi-apic.o
32 msiobj-$(CONFIG_IA64_GENERIC) += msi-altix.o
33 msiobj-$(CONFIG_IA64_SGI_SN2) += msi-altix.o
34 obj-$(CONFIG_PCI_MSI) += $(msiobj-y)
36 #
37 # ACPI Related PCI FW Functions
38 #
39 obj-$(CONFIG_ACPI) += pci-acpi.o
41 # Cardbus & CompactPCI use setup-bus
42 obj-$(CONFIG_HOTPLUG) += setup-bus.o
44 ifndef CONFIG_X86
45 obj-y += syscall.o
46 endif
48 ifeq ($(CONFIG_PCI_DEBUG),y)
49 EXTRA_CFLAGS += -DDEBUG
50 endif