[issue1449] AHCI panic on Intel 6321ESB AHCI
Matthew Dillon
dillon at apollo.backplane.com
Tue Aug 18 09:13:52 PDT 2009
:Perhaps your "if intel but AHCI is not enabled then write some value to
:a particular config register" change. I'm thinking there's more work to
:do to kick the chip into AHCI mode and not confuse the BIOS; besides
:that, I think it's not clean. If the device doesn't advertise itself as
:being an AHCI subclass, then don't try to force it.
I don't know what that kick code is for but the BIOS is already
advertising the device as AHCI in the PCI configuration space.
The AHCI driver only picks it up if it is advertised as AHCI.
I think you are onto something regarding the BIOS handoff, though.
Combined with Rumko's report that the HR reset sequence seems to be
the core of the issue that seems to indicate an issue with
the BIOS supervisory code running in ring -1.
A third possibility is that the HR sequence is bricking the chip's
PCI physical interface for a short while and that ANY access to the
chip registers just after HR is set is blowing the system up.
A fourth possibility is that the HR sequence is not clearing the AHCI
enable bit as it is supposed to, and perhaps cycling the AE bit will
deal with the case.
So I would like to try two more things. First to try this patch:
fetch http://apollo.backplane.com/DFlyMisc/ahci11.patch
If the patch does not work, then modify line 141 from:
ahci_write(sc, AHCI_REG_GHC, AHCI_REG_GHC_AE | AHCI_REG_GHC_HR);
To:
ahci_write(sc, AHCI_REG_GHC, AHCI_REG_GHC_HR);
IF it can be gotten to work then I also want to try to reduce those
500ms delays I have in there to something more reasonable, like 200ms,
and see if it continues to work.
-Matt
More information about the Bugs
mailing list