]> xenbits.xensource.com Git - people/andrewcoop/seabios.git/commitdiff
ahci: Disable Native Command Queueing
authorZeh, Werner <werner.zeh@siemens.com>
Fri, 23 Jun 2017 07:18:04 +0000 (07:18 +0000)
committerKevin O'Connor <kevin@koconnor.net>
Sun, 2 Jul 2017 16:58:52 +0000 (12:58 -0400)
The AHCI driver currently sets the NCQ bit for every command that is
issued to the SATA drive.  This is not needed as there is always only
one command active at a time and in turn can lead to a hanging AHCI
controller (true for Marvel 88SE9170). The following patch disables
the usage of NCQ completely. With this patch the Marvel AHCI
controller works just fine without any issues.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
src/hw/ahci.c

index 2eee192bfb3e57b09c0bc13aa46cbfb9122e0642..b9043b9f22174dc70334019363f161a1b703c762 100644 (file)
@@ -130,7 +130,6 @@ static int ahci_command(struct ahci_port_s *port_gf, int iswrite, int isatapi,
     intbits = ahci_port_readl(ctrl, pnr, PORT_IRQ_STAT);
     if (intbits)
         ahci_port_writel(ctrl, pnr, PORT_IRQ_STAT, intbits);
-    ahci_port_writel(ctrl, pnr, PORT_SCR_ACT, 1);
     ahci_port_writel(ctrl, pnr, PORT_CMD_ISSUE, 1);
 
     u32 end = timer_calc(AHCI_REQUEST_TIMEOUT);