From 3f082f38bf0050270dc65abf256f7014f6c0c4a8 Mon Sep 17 00:00:00 2001 From: Andrej Kruták Date: Tue, 9 Jan 2024 16:34:23 +0100 Subject: Add AHCI Power ON + ICC_ACTIVE into port setup code 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 --- src/hw/ahci.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/hw/ahci.c b/src/hw/ahci.c index 3fa845aa..4f0f640a 100644 --- a/src/hw/ahci.c +++ b/src/hw/ahci.c @@ -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 (;;) { -- cgit