[SeaBIOS] [PATCH 2/4] ahci: enable io/mem/dma
Gerd Hoffmann
kraxel at redhat.com
Wed Dec 8 11:24:12 CET 2010
Make sure IO, MMIO and DMA are enabled in pci config space
before using the device.
Signed-off-by: Gerd Hoffmann <kraxel at redhat.com>
---
src/ahci.c | 7 +++++++
1 files changed, 7 insertions(+), 0 deletions(-)
diff --git a/src/ahci.c b/src/ahci.c
index ed37b38..b906cc5 100644
--- a/src/ahci.c
+++ b/src/ahci.c
@@ -433,6 +433,7 @@ ahci_init_controller(int bdf)
{
struct ahci_ctrl_s *ctrl = malloc_fseg(sizeof(*ctrl));
u32 val;
+ u16 cmd;
if (!ctrl) {
warn_noalloc();
@@ -444,6 +445,12 @@ ahci_init_controller(int bdf)
dprintf(1, "AHCI controller at %02x.%x, iobase %x, irq %d\n",
bdf >> 3, bdf & 7, ctrl->iobase, ctrl->irq);
+ cmd = pci_config_readw(bdf, PCI_COMMAND);
+ cmd |= PCI_COMMAND_IO;
+ cmd |= PCI_COMMAND_MEMORY;
+ cmd |= PCI_COMMAND_MASTER;
+ pci_config_writew(bdf, PCI_COMMAND, cmd);
+
val = ahci_ctrl_readl(ctrl, HOST_CTL);
ahci_ctrl_writel(ctrl, HOST_CTL, val | HOST_CTL_AHCI_EN);
--
1.7.1
More information about the SeaBIOS
mailing list