aboutsummaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorKeir Fraser <keir.fraser@citrix.com>2008-12-11 13:26:02 +0000
committerKeir Fraser <keir.fraser@citrix.com>2008-12-11 13:26:02 +0000
commit20553adcd9157010e708488b8b74af8cc135096a (patch)
tree078c3dc9329036c5c663dd746e7c6ada03f9762e /tools
parent4fef1ea1f4be2baa11c68d5577f4df1ede76bf59 (diff)
downloadxen-20553adcd9157010e708488b8b74af8cc135096a.tar.gz
xen-20553adcd9157010e708488b8b74af8cc135096a.tar.bz2
xen-20553adcd9157010e708488b8b74af8cc135096a.zip
hvmloader: enable bus mastering of PCI device
Without this, init routine in some PCI option ROM doesn't work well. Signed-off-by: Kouya Shimura <kouya@jp.fujitsu.com>
Diffstat (limited to 'tools')
-rw-r--r--tools/firmware/hvmloader/hvmloader.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/tools/firmware/hvmloader/hvmloader.c b/tools/firmware/hvmloader/hvmloader.c
index bff548f9f2..9723306f8e 100644
--- a/tools/firmware/hvmloader/hvmloader.c
+++ b/tools/firmware/hvmloader/hvmloader.c
@@ -269,6 +269,11 @@ static void pci_setup(void)
printf("pci dev %02x:%x INT%c->IRQ%u\n",
devfn>>3, devfn&7, 'A'+pin-1, isa_irq);
}
+
+ /* Enable bus mastering. */
+ cmd = pci_readw(devfn, PCI_COMMAND);
+ cmd |= PCI_COMMAND_MASTER;
+ pci_writew(devfn, PCI_COMMAND, cmd);
}
/* Assign iomem and ioport resources in descending order of size. */