[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [STABLE 0.14][PATCH 08/14] ahci: Implement HBA reset
From: |
Kevin Wolf |
Subject: |
[Qemu-devel] [STABLE 0.14][PATCH 08/14] ahci: Implement HBA reset |
Date: |
Mon, 7 Feb 2011 13:46:30 +0100 |
From: Alexander Graf <address@hidden>
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>
Signed-off-by: Kevin Wolf <address@hidden>
(cherry picked from commit 760c3e44d3a1d8a7e9d22f0429b1805d1c688178)
---
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 e6ac77c..105dd53 100644
--- a/hw/ide/ahci.c
+++ b/hw/ide/ahci.c
@@ -335,7 +335,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);
@@ -1134,6 +1134,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.7.2.3
- [Qemu-devel] [STABLE 0.14][PULL 00/14] Block patches for stable-0.14, Kevin Wolf, 2011/02/07
- [Qemu-devel] [STABLE 0.14][PATCH 01/14] qcow2: Really use cache=unsafe for image creation, Kevin Wolf, 2011/02/07
- [Qemu-devel] [STABLE 0.14][PATCH 02/14] Documentation: add Sheepdog disk images, Kevin Wolf, 2011/02/07
- [Qemu-devel] [STABLE 0.14][PATCH 08/14] ahci: Implement HBA reset,
Kevin Wolf <=
- [Qemu-devel] [STABLE 0.14][PATCH 05/14] ahci: add license header in ahci.h, Kevin Wolf, 2011/02/07
- [Qemu-devel] [STABLE 0.14][PATCH 04/14] ahci: split ICH9 from core, Kevin Wolf, 2011/02/07
- [Qemu-devel] [STABLE 0.14][PATCH 06/14] ahci: split ICH and AHCI even more, Kevin Wolf, 2011/02/07
- [Qemu-devel] [STABLE 0.14][PATCH 03/14] block/vdi: Fix wrong size in conditionally used memset, memcmp, Kevin Wolf, 2011/02/07
- [Qemu-devel] [STABLE 0.14][PATCH 07/14] ahci: send init d2h fis on fis enable, Kevin Wolf, 2011/02/07
- [Qemu-devel] [STABLE 0.14][PATCH 10/14] block-migration: actually disable dirty tracking on cleanup, Kevin Wolf, 2011/02/07
- [Qemu-devel] [STABLE 0.14][PATCH 12/14] block-migration: add reference to target DriveInfo, Kevin Wolf, 2011/02/07
- [Qemu-devel] [STABLE 0.14][PATCH 11/14] blockdev: add refcount to DriveInfo, Kevin Wolf, 2011/02/07
- [Qemu-devel] [STABLE 0.14][PATCH 09/14] ahci: make number of ports runtime determined, Kevin Wolf, 2011/02/07
- [Qemu-devel] [STABLE 0.14][PATCH 13/14] Add flag to indicate external users to block device, Kevin Wolf, 2011/02/07