[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#515201: linux-image: sata drive connected via marvell controller crashes



tags 515201 + upstream
quit

(cc-ing the bug log)
egross@bol.com.br wrote:

> I booted with the initrd (2.6.32-5-amd64) which came with the last
> update of squeeze, in order to copy the error messages, and now it
> boots correctly with my marvel external sata connected! So, the
> problem is not with the initrd. Only putting the commands suggested
> by that site in modprobe.d solve the problem.
>
> Trying to get the previous error messages, I removed the suggested
> commands in modprobe.d/. Removing only the second (options ahci
> marvell_enable=1), the error on boot occurs again: 
>
> xxxxx
> "[   11.516226] ata6.01: failed to IDENTIFY (I/O error, err_mask=0x4)
> [   16.556015] ata6: link is slow to respond, please be patient (ready=0)
> [   21.540016] ata6: device not ready (errno=-16), forcing hardreset
> [   26.848015] ata6: link is slow to respond, please be patient (ready=0)
> [   31.552016] ata6: SRST failed (errno=-16)
> [   36.861014] ata6: link is slow to respond, please be patient (ready=0)
> [   41.564018] ata6: SRST failed (errno=-16)
> [   46.872017] ata6: link is slow to respond, please be patient (ready=0)
> [   76.612017] ata6: SRST failed (errno=-16)
> [   81.640014] ata6: SRST failed (errno=-16)
> [   81.640087] ata6: reset failed, giving up
> [   86.680014] ata6: link is slow to respond, please be patient (ready=0)
> [   91.664017] ata6: device not ready (errno=-16), forcing hardreset
> [   91.664096] ata6: soft resetting link
> [   96.972016] ata6: link is slow to respond, please be patient (ready=0)
> [  101.676016] ata6: SRST failed (errno=-16)
> [  101.676092] ata6: soft resetting link
> [  106.988014] ata6: link is slow to respond, please be patient (ready=0)
> [  111.692013] ata6: SRST failed (errno=-16)
> [  111.692088] ata6: soft resetting link
> [  117.004011] ata6: link is slow to respond, please be patient (ready=0)
> [  146.744017] ata6: SRST failed (errno=-16)
> [  146.744094] ata6: soft resetting link
> [  151.772016] ata6: SRST failed (errno=-16)
> [  151.772089] ata6: reset failed, giving up
> [  151.772161] ata6: EH complete"
> xxxxxxx
>
> After these error messages, boot continues, but it takes a very long
> time.
>
> Then I changed the archive in modprobe.d, and removed only the first
> suggested entry (install pata_marvell /bin/true). Now, the pc boots
> normally.
>
> I cannot say if this occurs because the other command has already
> been entered before, once I only did what the consulted site
> suggested, without a clear knowledge about what the commands mean in
> detail. Anyway, now only the second command is needed in an archive
> in the directory modprobe.d in order to all work well - boot does
> not fail and the external drive connected to sata controller works
> perfectly. So, the main command seems to be "options ahci
> marvell_enable=1".

Thanks for checking.  So it seems the fundamental thing is to teach
Linux to automatically detect when the ahci driver can be used,
instead of requiring it to be specified on the module command line.

The source (drivers/ata/ahci.c) says:

	/* The AHCI driver can only drive the SATA ports, the PATA driver
	   can drive them all so if both drivers are selected make sure
	   AHCI stays out of the way */

Yuck!  I guess one way to move forward would be to teach the AHCI
driver to drive the PATA ports, or to detect if anything is connected
to the PATA ports and only engage this safety in that case.

In any event, I think this is ready to be passed upstream.  Could you
report it at bugzilla.kernel.org, Product IO/Storage, Component Serial
ATA and send us the bug number for tracking?  Thanks much.



Reply to: