]> xenbits.xensource.com Git - osstest/seabios.git/commitdiff
Add AHCI Power ON + ICC_ACTIVE into port setup code
authorAndrej Kruták <andrej.krutak@sysgo.com>
Tue, 9 Jan 2024 15:34:23 +0000 (16:34 +0100)
committerGerd Hoffmann <kraxel@redhat.com>
Thu, 25 Jan 2024 09:12:22 +0000 (10:12 +0100)
Windows appears to put the AHCI port into 'Partial power management state'
during reboot, the command puts it back into 'active state'.

AHCI/1: link down 0x00000231 (SCR STAT register)
 ->
AHCI/1: link up 0x00000133

Signed-off-by: Andrej Krutak andrej.krutak@sysgo.com
Message-ID: <1531455205.6484.1704814463638@ox.sysgo.com>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
src/hw/ahci.c

index 3fa845aa056551aa2eb060b7c2b68c0bf48db813..4f0f640a1c64f1e858d3c891453003b528374021 100644 (file)
@@ -444,7 +444,8 @@ static int ahci_port_setup(struct ahci_port_s *port)
     ahci_port_writel(ctrl, pnr, PORT_CMD, cmd);
 
     /* spin up */
-    cmd |= PORT_CMD_SPIN_UP;
+    cmd &= ~PORT_CMD_ICC_MASK;
+    cmd |= PORT_CMD_SPIN_UP | PORT_CMD_POWER_ON | PORT_CMD_ICC_ACTIVE;
     ahci_port_writel(ctrl, pnr, PORT_CMD, cmd);
     u32 end = timer_calc(AHCI_LINK_TIMEOUT);
     for (;;) {