[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 5/8] ahci: Implement HBA reset
|
From: |
Alexander Graf |
|
Subject: |
[Qemu-devel] [PATCH 5/8] ahci: Implement HBA reset |
|
Date: |
Mon, 20 Dec 2010 22:13:21 +0100 |
The ahci code was missing its soft reset functionality. This wasn't really an
issue for Linux guests, but Windows gets confused when the controller doesn't
reset when it tells it so.
Using this patch I can now successfully boot Windows 7 from AHCI using AHCI
enabled SeaBIOS.
Signed-off-by: Alexander Graf <address@hidden>
---
hw/ide/ahci.c | 5 ++++-
1 files changed, 4 insertions(+), 1 deletions(-)
diff --git a/hw/ide/ahci.c b/hw/ide/ahci.c
index 7a29925..bd4f8a4 100644
--- a/hw/ide/ahci.c
+++ b/hw/ide/ahci.c
@@ -332,7 +332,7 @@ static void ahci_mem_writel(void *ptr, target_phys_addr_t
addr, uint32_t val)
case HOST_CTL: /* R/W */
if (val & HOST_CTL_RESET) {
DPRINTF(-1, "HBA Reset\n");
- /* FIXME reset? */
+ ahci_reset(container_of(s, AHCIPCIState, ahci));
} else {
s->control_regs.ghc = (val & 0x3) | HOST_CTL_AHCI_EN;
ahci_check_irq(s);
@@ -1215,6 +1215,9 @@ void ahci_reset(void *opaque)
struct AHCIPCIState *d = opaque;
int i;
+ d->ahci.control_regs.irqstatus = 0;
+ d->ahci.control_regs.ghc = 0;
+
for (i = 0; i < SATA_PORTS; i++) {
ahci_reset_port(&d->ahci, i);
}
--
1.6.0.2
- [Qemu-devel] [PATCH 0/8] Some more AHCI work, Alexander Graf, 2010/12/20
- [Qemu-devel] [PATCH 8/8] ahci: fix !msi interrupts, Alexander Graf, 2010/12/20
- [Qemu-devel] [PATCH 3/8] ahci: send init d2h fis on fis enable, Alexander Graf, 2010/12/20
- [Qemu-devel] [PATCH 6/8] ahci: make number of ports runtime determined, Alexander Graf, 2010/12/20
- [Qemu-devel] [PATCH 5/8] ahci: Implement HBA reset,
Alexander Graf <=
- [Qemu-devel] [PATCH 7/8] ahci: free dynamically allocated iovs, Alexander Graf, 2010/12/20
- [Qemu-devel] [PATCH 2/8] ahci: split ICH and AHCI even more, Alexander Graf, 2010/12/20
- [Qemu-devel] [PATCH 4/8] ahci: use qiov instead of dma helpers, Alexander Graf, 2010/12/20
- [Qemu-devel] [PATCH 1/8] ahci: split ICH9 from core, Alexander Graf, 2010/12/20