Samsung SSD 840 PRO fails to probe
Adam McDougall
mcdouga9 at egr.msu.edu
Mon Nov 26 19:51:04 UTC 2012
On 11/26/12 14:27, Alexander Motin wrote:
> Hi.
>
> On 26.11.2012 20:51, Adam McDougall wrote:
>> My co-worker ordered a Samsung 840 PRO series SSD for his desktop but we
>> found 9.0-rel would not probe it and 9.1-rc3 shows some errors. I got
>> past the problem with a workaround of disabling AHCI mode in the BIOS
>> which drops it to IDE mode and it detects fine, although runs a little
>> slower. Is there something I can try to make it probe properly in AHCI
>> mode? We also tried moving it to the SATA data and power cables from
>> the working SATA HD so I don't think it is the port or controller
>> driver. The same model motherboard from another computer did the same
>> thing. Thanks.
>>
>> dmesg line when it is working:
>> ada0: <Samsung SSD 840 PRO Series DXM03B0Q> ATA-9 SATA 3.x device
>>
>> dmesg lines when it is not working: (hand transcribed from a picture)
>> (aprobe0:ahcich0:0:0): SETFEATURES ENABLE SATA FEATURE. ACB: ef 10 00 00
>> 00 40 00 00 00 00 05 00
>> (aprobe0:ahcich0:0:0): CAM status: ATA Status Error
>> (aprobe0:ahcich0:0:0): ATA status: 51 (DRDY SERV ERR), error: 04 (ABRT )
>> (aprobe0:ahcich0:0:0): RES: 51 04 00 00 00 40 00 00 00 00 00
>> (aprobe0:ahcich0:0:0): Retrying command
>> (aprobe0:ahcich0:0:0): SETFEATURES ENABLE SATA FEATURE. ACB: ef 10 00 00
>> 00 40 00 00 00 00 05 00
>> (aprobe0:ahcich0:0:0): CAM status: ATA Status Error
>> (aprobe0:ahcich0:0:0): ATA status: 51 (DRDY SERV ERR), error: 04 (ABRT )
>> (aprobe0:ahcich0:0:0): RES: 51 04 00 00 00 40 00 00 00 00 00
>> (aprobe0:ahcich0:0:0): Error 5, Retries exhausted
>
> I believe that is SSD's firmware bug. Probably it declares support for
> SATA Asynchronous Notifications in its IDENTIFY data, but returns error
> on attempt to enable it. Switching controller to legacy mode disables
> that functionality and so works as workaround. Patch below should
> workaround the problem from the OS side:
>
> --- ata_xpt.c (revision 243561)
> +++ ata_xpt.c (working copy)
> @@ -745,6 +745,14 @@ probedone(struct cam_periph *periph, union ccb *do
> goto noerror;
>
> /*
> + * Some Samsung SSDs report supported Asynchronous
> Notification,
> + * but return ABORT on attempt to enable it.
> + */
> + } else if (softc->action == PROBE_SETAN &&
> + status == CAM_ATA_STATUS_ERROR) {
> + goto noerror;
> +
> + /*
> * SES and SAF-TE SEPs have different IDENTIFY commands,
> * but SATA specification doesn't tell how to identify
> them.
> * Until better way found, just try another if first fail.
>
>
Thanks for the prompt response and patch, that worked!
More information about the freebsd-stable
mailing list