RFC: ATA to CAM integration patch

Alexander Motin mav at FreeBSD.org
Mon Aug 17 06:31:50 UTC 2009


Ilya Zhuravlev wrote:
> Alexander Motin пишет:
>> Ilya Zhuravlev wrote:
>>> Alexander Motin wrote:
>>>> Ilya Zhuravlev wrote:
>>>>> Alexander Motin wrote:
>>>>>> Ilya Zhuravlev wrote:
>>>>>>> ahci cannot attach drives
>>>>>>> 8.0-beta2, laptop asus k50in, nvidia MCP75L-based
>>>>>>>
>>>>>>> ahci0: [THREAD]
>>>>>>> ahci0: AHCI v1.20 with 2 3Gbps ports, Port Multiplier supported
>>>>>>> ahcich0: <AHCI channel> at channel 0 on ahci0
>>>>>>> ahcich0: [THREAD]
>>>>>>> ahcich1: <AHCI channel> at channel 1 on ahci0
>>>>>>> ahcich1: [THREAD]
>>>>>>> ......
>>>>>>> (aprobe0:ahcich0:0:15:0): SIGNATURE: 0000
>>>>>>> (aprobe0:ahcich0:0:0:0): SIGNATURE: 0000
>>>>>>> (aprobe0:ahcich0:0:0:0): Uncorrected Parity Error
>>>>>>> (aprobe0:ahcich0:0:0:0): Retrying Command
>>>>>>> (aprobe0:ahcich0:0:0:0): Uncoreccted Parity Error
>>>>>>> (aprobe0:ahcich0:0:0:0): error 5
>>>>>>> (aprobe0:ahcich0:0:0:0): Retries Exhausted
>>>>>>> (aprobe1:ahcich1:0:15:0): SIGNATURE: eb14
>>>>>>> (aprobe0:ahcich1:0:0:0): SIGNATURE: eb14
>>>>>>> (aprobe0:ahcich1:0:0:0): Uncoreccted Parity Error
>>>>>>> (aprobe0:ahcich1:0:0:0): Retrying Command
>>>>>>> (aprobe0:ahcich1:0:0:0): Uncoreccted Parity Error
>>>>>>> (aprobe0:ahcich1:0:0:0): error 5
>>>>>>> (aprobe0:ahcich1:0:0:0): Retries Exhausted
>>>>>>>
>>>>>> Try please to uncomment device_printf() lines inside ahci_ch_intr()
>>>>>> function. It could give some ideas about what's going on there.
>>>>>>
>>>>> Sorry for long delay.
>>>>> boot -v, pciconf attached
>>>>
>>>> I don't see that you've uncommented
>>>> //device_printf(dev, "%s ERROR is %08x cs %08x...
>>>> lines in ahci_ch_intr() and rebuilt kernel as I've said.
>>>>
>>> Ehm, sorry, svn upping after edit was bad idea
>>
> Or some additional changes were missed by me?

I have meant simple 4-line patch, attached here.

-- 
Alexander Motin
-------------- next part --------------
--- ata_xpt.c	2009-07-14 00:21:16.000000000 +0300
+++ ata_xpt.c	2009-08-10 00:38:03.000000000 +0300
@@ -370,10 +344,10 @@ probestart(struct cam_periph *periph, un
 		cam_fill_ataio(ataio,
 		      1,
 		      probedone,
-		      /*flags*/CAM_DIR_IN,
-		      MSG_SIMPLE_Q_TAG,
-		      /*data_ptr*/(u_int8_t *)ident_buf,
-		      /*dxfer_len*/sizeof(struct ata_params),
+		      /*flags*/CAM_DIR_NONE,
+		      0,
+		      /*data_ptr*/NULL,
+		      /*dxfer_len*/0,
 		      30 * 1000);
 		ata_36bit_cmd(ataio, ATA_SETFEATURES, ATA_SF_SETXFER, 0,
 		    ata_max_mode(ident_buf, ATA_UDMA6, ATA_UDMA6));


More information about the freebsd-current mailing list