Re: ATA? related trouble with r300299

From: Kenneth D. Merry <ken_at_FreeBSD.ORG>
Date: Mon, 23 May 2016 19:08:16 -0400
On Tue, May 24, 2016 at 00:59:34 +0300, Oleg V. Nauman wrote:
> On Monday 23 May 2016 17:30:45 you wrote:
> > On Tue, May 24, 2016 at 00:15:25 +0300, Oleg V. Nauman wrote:
> > > On Monday 23 May 2016 17:11:34 Kenneth D. Merry wrote:
> > > > On Tue, May 24, 2016 at 00:05:49 +0300, Oleg V. Nauman wrote:
> > > > > On Monday 23 May 2016 16:53:55 Kenneth D. Merry wrote:
> > > > > > On Mon, May 23, 2016 at 23:21:32 +0300, Oleg V. Nauman wrote:
> > > > > > > On Monday 23 May 2016 15:25:39 Kenneth D. Merry wrote:
> > > > > > > > On Sat, May 21, 2016 at 09:30:35 +0300, Oleg V. Nauman wrote:
> > > > > > > > >  I have faced the issue with fresh CURRENT stopped to boot on
> > > > > > > > >  my
> > > > > > > > >  old
> > > > > > > > >  desktop
> > > > > > > > > 
> > > > > > > > > after update to r300299
> > > > > > > > > Verbose boot shows the endless cycle of
> > > > > > > > > 
> > > > > > > > > ata2: SATA reset: ports status=0x05
> > > > > > > > > ata2: reset tp1 mask=03 ostat0=50 ostat1=50
> > > > > > > > > ata2: stat0=0x50 err=0x01 lsb=0x00 msb=0x00
> > > > > > > > > ata2: stat1=0x50 err=0x01 lsb=0x00 msb=0x00
> > > > > > > > > ata2: reset tp2 stat0=50 stat1=50 devices=0x3
> > > > > > > > > messages logged to console.
> > > > > > > > > 
> > > > > > > > > Below is the relevant portion of ATA controller/devices
> > > > > > > > > probed/attached
> > > > > > > > > during the boot:
> > > > > > > > > 
> > > > > > > > > atapci0: <Intel ICH7 UDMA100 controller> port
> > > > > > > > > 0x1f0-0x1f7,0x3f6,0x170-0x177,0x376,0xffa0-0xffaf at device
> > > > > > > > > 31.1
> > > > > > > > > on
> > > > > > > > > pci0
> > > > > > > > > ata0: <ATA channel> at channel 0 on atapci0
> > > > > > > > > atapci1: <Intel ICH7 SATA300 controller> port 0xd080-0xd087,
> > > > > > > > > 0xd000-0xd003,
> > > > > > > > > 0xcc00-0xcc07,0xc880-0xc883,0xc800-0xc80f irq 19 at device
> > > > > > > > > 31.2 on
> > > > > > > > > pci0
> > > > > > > > > ata2: <ATA channel> at channel 0 on atapci1
> > > > > > > > > ata3: <ATA channel> at channel 1 on atapci1
> > > > > > > > > ada0 at ata2 bus 0 scbus1 target 0 lun 0
> > > > > > > > > ada0: <SAMSUNG HD200HJ KF100-06> ATA-7 SATA 2.x device
> > > > > > > > > ada1 at ata2 bus 0 scbus1 target 1 lun 0
> > > > > > > > > ada1: <ST500DM002-1BC142 JC4B> ATA8-ACS SATA 3.x device
> > > > > > > > > cd0 at ata0 bus 0 scbus0 target 0 lun 0
> > > > > > > > > cd0: <_NEC DVD_RW ND-3570A 1.11> Removable CD-ROM SCSI device
> > > > > > > > 
> > > > > > > > I'm not entirely sure what is causing the problem with your
> > > > > > > > system,
> > > > > > > > but
> > > > > > > > hopefully we can narrow it down a bit.
> > > > > > > > 
> > > > > > > > There is a bug that came in with my SMR changes in revision
> > > > > > > > 300207
> > > > > > > > that
> > > > > > > > broke the quirk functionality in the ada(4) driver.  I don't
> > > > > > > > think
> > > > > > > > that
> > > > > > > > is
> > > > > > > > the problem you're seeing, though.
> > > > > > > > 
> > > > > > > > Can you try out this patch:
> > > > > > > > 
> > > > > > > > https://people.freebsd.org/~ken/cam_smr_ada_patch.20160523.1.txt
> > > > > > > > 
> > > > > > > > In /boot/loader.conf, put the following:
> > > > > > > > 
> > > > > > > > kern.cam.ada.0.quirks="0x04"
> > > > > > > > kern.cam.ada.1.quirks="0x04"
> > > > > > > > 
> > > > > > > > If you're able to boot with those quirk entries in the
> > > > > > > > loader.conf,
> > > > > > > > try
> > > > > > > > taking one of them out, and reboot.  If that works, try taking
> > > > > > > > the
> > > > > > > > other
> > > > > > > > one out and reboot.
> > > > > > > > 
> > > > > > > > What I'm trying to figure out here is where the problem lies:
> > > > > > > > 
> > > > > > > > 1. The bug with the ada(4) driver (in where it loaded the
> > > > > > > > quirks).
> > > > > > > > 2. The extra probe steps in the ada(4) driver might be causing a
> > > > > > > > problem
> > > > > > > > 
> > > > > > > >    with ada0 (Samsung drive).
> > > > > > > > 
> > > > > > > > 3. The extra probe steps in the ada(4) driver might be causing a
> > > > > > > > problem
> > > > > > > > 
> > > > > > > >    with ada1 (Seagate drive).
> > > > > > > > 
> > > > > > > > 4. Something else.
> > > > > > > > 
> > > > > > > > So, if you can try the patch and try to eliminate a few
> > > > > > > > possibilities,
> > > > > > > > we
> > > > > > > > may be able to narrow it down.
> > > > > > >  
> > > > > > >  I was able to boot after applying the patch ;
> > > > > > > 
> > > > > > > kern.cam.ada.0.quirks="0x04"
> > > > > > > was the quirk in effect. It is quirk for my Samsung HD200HJ
> > > > > > > KF100-06
> > > > > > > hard
> > > > > > > drive.
> > > > > > 
> > > > > > Okay.  Just so we can narrow it down a little more, can you try
> > > > > > this:
> > > > > > 
> > > > > > First, let's try getting an ATA Log directory using the PIO version
> > > > > > of
> > > > > > the
> > > > > > command:
> > > > > > 
> > > > > > camcontrol cmd ada0 -v -a "2f 0 0 0 0 0 0 0 0 0 1 0" -i 512 - |hd
> > > > > > 
> > > > > > If that works (you should get hexdump output), try the DMA version
> > > > > > of
> > > > > > the
> > > > > > command:
> > > > > > 
> > > > > > camcontrol cmd ada0 -v -d -a "47 0 0 0 0 0 0 0 0 0 1 0" -i 512 - |hd
> > > > > 
> > > > > "Expecting a character pointer argument." error for both commands.
> > > > 
> > > > Did the double quotes make it onto the command line?  Both of those work
> > > > for me...
> > >  
> > >  Something went wrong from my side, sorry.
> > > 
> > > Below is the output of commands:
> > > 
> > > root_at_desktop:~ # camcontrol cmd ada0 -v -a "2f 0 0 0 0 0 0 0 0 0 1 0" -i
> > > 512 -> 
> > > |hd
> > > 
> > > camcontrol: error sending command
> > > (pass1:ata2:0:0:0): READ_LOG_EXT. ACB: 2f 00 00 00 00 00 00 00 00 00 01 00
> > > (pass1:ata2:0:0:0): CAM status: ATA Status Error
> > > (pass1:ata2:0:0:0): ATA status: 51 (DRDY SERV ERR), error: 04 (ABRT )
> > > (pass1:ata2:0:0:0): RES: 51 04 00 00 00 00 00 00 00 01 00
> > > root_at_desktop:~ # camcontrol cmd ada0 -v -d -a "47 0 0 0 0 0 0 0 0 0 1 0"
> > > -i
> > > 512 - |hd
> > > camcontrol: error sending command
> > > (pass1:ata2:0:0:0): READ_LOG_DMA_EXT. ACB: 47 00 00 00 00 00 00 00 00 00
> > > 01 00 (pass1:ata2:0:0:0): CAM status: ATA Status Error
> > > (pass1:ata2:0:0:0): ATA status: 51 (DRDY SERV ERR), error: 04 (ABRT )
> > > (pass1:ata2:0:0:0): RES: 51 04 00 00 00 00 00 00 00 01 00
> > 
> > Okay, at least it consistently fails with both the PIO and DMA versions.
> > Looks like the drive claims to support READ LOG, but doesn't actually
> > support it.
> > 
> > Can you revert the previous patch, take the quirk out of loader.conf, and
> > try this patch?
> > 
> > https://people.freebsd.org/~ken/cam_smr_ada_patch.20160523.2.txt
> > 
> > It adds the model number for your drive into the ada(4) driver as a quirk.
> 
>  Unfortunately it is not working ; but allows to boot with quirk added back to 
> loader.conf

Okay, try this one.  I put a question mark in place of the space, perhaps
that will match it.

https://people.freebsd.org/~ken/cam_smr_ada_patch.20160523.3.txt

Thanks,

Ken
-- 
Kenneth Merry
ken_at_FreeBSD.ORG
Received on Mon May 23 2016 - 21:08:20 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:41:05 UTC