From: Ladi Prosek Date: Fri, 13 Jan 2017 09:48:29 +0000 (+0100) Subject: ahci: Set upper 32-bit registers to zero X-Git-Tag: rel-1.10.2~7 X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=ca3ab938bc3e795581b799e6d7c4e8a2b17c2b3c;p=seabios.git ahci: Set upper 32-bit registers to zero If the HBA supports 64-bit addressing, the registers may contain non-zero values, for example after reboot as a leftover from the OS driving the adapter. Reviewed-by: Paolo Bonzini Signed-off-by: Ladi Prosek (cherry picked from commit 106543deb447c4005f9a9845f1f43a72547f6209) --- diff --git a/src/hw/ahci.c b/src/hw/ahci.c index 261a7d2..2eee192 100644 --- a/src/hw/ahci.c +++ b/src/hw/ahci.c @@ -361,6 +361,11 @@ ahci_port_alloc(struct ahci_ctrl_s *ctrl, u32 pnr) ahci_port_writel(ctrl, pnr, PORT_LST_ADDR, (u32)port->list); ahci_port_writel(ctrl, pnr, PORT_FIS_ADDR, (u32)port->fis); + if (ctrl->caps & HOST_CAP_64) { + ahci_port_writel(ctrl, pnr, PORT_LST_ADDR_HI, 0); + ahci_port_writel(ctrl, pnr, PORT_FIS_ADDR_HI, 0); + } + return port; }