[nSLUG] How to get a Marvell 88SE6145 (and probably 6121) sata controller working on new kernels
ian at slu.ms
Mon Oct 20 19:13:21 ADT 2008
So I just got bitten by an idiotic bug in recent Linux kernels, and
figured I'd share. Symptoms are being unable to access (or install if
it's your primary/only controller) SATA drives on Marvell controllers.
I gather PATA is unaffected.
Ubuntu 8.04 (which I think is 2.6.24) was unaffected, 8.10 (2.6.27)
is. I believe 2.6.25 and 2.6.26 were affected as well. This isn't
distro-specific, I've seen people complaining about it on SuSE as
You'll see things in the syslog looking like this:
Oct 19 23:18:34 leviathan kernel: [ 5.085025] scsi6 : pata_marvell
Oct 19 23:18:34 leviathan kernel: [ 5.085093] scsi7 : pata_marvell
Oct 19 23:18:34 leviathan kernel: [ 5.085131] ata7: PATA max UDMA/100 cmd 0x3018 ctl 0x3024 bmdma 0x3000 irq 16
Oct 19 23:18:34 leviathan kernel: [ 5.085133] ata8: PATA max UDMA/133 cmd 0x3010 ctl 0x3020 bmdma 0x3008 irq 16
Oct 19 23:18:34 leviathan kernel: [ 5.085152] BAR5:00:04 01:7F 02:22 03:C8 04:02 05:00 06:00 07:80 08:00 09:00 0A:00 0B:00 0C:1F 0D:00 0E:00 0F:00
*snipped about 20 lines of md0 being sad*
Oct 19 23:18:34 leviathan kernel: [ 10.520156] ata8.01: qc timeout (cmd 0xec)
Oct 19 23:18:34 leviathan kernel: [ 10.520163] ata8.01: failed to IDENTIFY (I/O error, err_mask=0x4)
Oct 19 23:18:34 leviathan kernel: [ 15.560030] ata8: link is slow to respond, please be patient (ready=0)
Oct 19 23:18:34 leviathan kernel: [ 20.544020] ata8: device not ready (errno=-16), forcing hardreset
Oct 19 23:18:34 leviathan kernel: [ 25.852020] ata8: link is slow to respond, please be patient (ready=0)
Oct 19 23:18:34 leviathan kernel: [ 30.556020] ata8: SRST failed (errno=-16)
Those last couple lines will loop for a while. Sometimes the system
will finish booting, sometimes it won't, but the drives won't show up.
Then I stumbled on this:
It's an amusing thread, but the result is that there's a patch
present in 2.6.27.
I added this to /etc/modprobe.d/options:
options ahci marvell_enable=1
... and ran update-initramfs -u
I'm not sure if that last step is really necessary, but it can't hurt.
I think you may be able to set that on the boot line as well,
ahci.marvell_enable=1, but I'm not sure.
Setting that option has the AHCI module take over the drives instead
of the (awful) pata_marvell driver. Downsides are that you'll lose the
IDE controllers, but at least in my case that's no contest.
Not sure how common the chipsets are, I've got the 6145 on my
motherboard, which is an Intel D975XBX2.
Hope this saves someone some time.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Size: 195 bytes
Desc: not available
More information about the nSLUG