cvs commit: src/sys/dev/ata ata-chipset.c ata-pci.c ata-pci.h

Søren Schmidt sos at FreeBSD.ORG
Sun Apr 13 14:55:41 UTC 2008


I'm aware of an issue with master/slave comboes, I'll lok into it as  
soon as I have time.

-Søren




On 13Apr, 2008, at 16:41 , Fabian Keil wrote:

> Marius Strobl <marius at alchemy.franken.de> wrote:
>
>> On Sat, Apr 12, 2008 at 05:21:23PM +0000, Sren Schmidt wrote:
>>> sos         2008-04-12 17:21:23 UTC
>>>
>>>  FreeBSD src repository
>>>
>>>  Modified files:
>>>    sys/dev/ata          ata-chipset.c ata-pci.c ata-pci.h
>>>  Log:
>>>  Dont call hw.status recursively.
>>>
>>>  Spotted by: Marcel Moolenaar
>
>> Even with these fixes in place your latest round of ata(4)
>> changes causes acd0 to disappear on a sparc64 machine for
>> me. Reverting to ata(4) sources of April 9th fixes these.
>> Verbose before and after dmesg output is at:
>> http://people.freebsd.org/~marius/v100_1.txt
>> http://people.freebsd.org/~marius/v100_2.txt
>
> On one of my i386 systems, ad1 (the disk with
> the root partition) is no longer detected.
>
> As acd0 in the dmesg output above, it's configured
> as slave and the master on the same controller is
> still detected.
>
> With a kernel build a month ago the detection looks like this:
>
> atapci0: <HighPoint HPT372 UDMA133 controller> port  
> 0xa000 
> -0xa007,0xa400-0xa403,0xa800-0xa807,0xac00-0xac03,0xb000-0xb0ff irq  
> 10 at device 14.0 on pci0
> atapci0: Reserved 0x100 bytes for rid 0x20 type 4 at 0xb000
> atapci0: [MPSAFE]
> atapci0: [ITHREAD]
> ata2: <ATA channel 0> on atapci0
> atapci0: Reserved 0x8 bytes for rid 0x10 type 4 at 0xa000
> atapci0: Reserved 0x4 bytes for rid 0x14 type 4 at 0xa400
> ata2: reset tp1 mask=03 ostat0=50 ostat1=00
> ata2: stat0=0x50 err=0x01 lsb=0x00 msb=0x00
> ata2: stat1=0x00 err=0x01 lsb=0x00 msb=0x00
> ata2: reset tp2 stat0=50 stat1=00 devices=0x1<ATA_MASTER>
> ata2: [MPSAFE]
> ata2: [ITHREAD]
> ata3: <ATA channel 1> on atapci0
> atapci0: Reserved 0x8 bytes for rid 0x18 type 4 at 0xa800
> atapci0: Reserved 0x4 bytes for rid 0x1c type 4 at 0xac00
> ata3: reset tp1 mask=03 ostat0=60 ostat1=70
> ata3: stat0=0x20 err=0x20 lsb=0x20 msb=0x20
> ata3: stat1=0x30 err=0x30 lsb=0x30 msb=0x30
> ata3: reset tp2 stat0=20 stat1=30 devices=0x0
> ata3: [MPSAFE]
> ata3: [ITHREAD]
> isab0: <PCI-ISA bridge> at device 17.0 on pci0
> isa0: <ISA bus> on isab0
> atapci1: <VIA 8233A UDMA133 controller> port  
> 0x1f0-0x1f7,0x3f6,0x170-0x177,0x376,0xb400-0xb40f at device 17.1 on  
> pci0
> atapci1: Reserved 0x10 bytes for rid 0x20 type 4 at 0xb400
> ata0: <ATA channel 0> on atapci1
> atapci1: Reserved 0x8 bytes for rid 0x10 type 4 at 0x1f0
> atapci1: Reserved 0x1 bytes for rid 0x14 type 4 at 0x3f6
> ata0: reset tp1 mask=03 ostat0=50 ostat1=50
> ata0: stat0=0x00 err=0x01 lsb=0x14 msb=0xeb
> ata0: stat1=0x50 err=0x01 lsb=0x00 msb=0x00
> ata0: reset tp2 stat0=00 stat1=50 devices=0x6<ATAPI_MASTER,ATA_SLAVE>
> ata0: [MPSAFE]
> ata0: [ITHREAD]
> ata1: <ATA channel 1> on atapci1
> atapci1: Reserved 0x8 bytes for rid 0x18 type 4 at 0x170
> atapci1: Reserved 0x1 bytes for rid 0x1c type 4 at 0x376
> ata1: reset tp1 mask=03 ostat0=50 ostat1=50
> ata1: stat0=0x00 err=0x01 lsb=0x14 msb=0xeb
> ata1: stat1=0x00 err=0x01 lsb=0x14 msb=0xeb
> ata1: reset tp2 stat0=00 stat1=00  
> devices=0xc<ATAPI_SLAVE,ATAPI_MASTER>
> ata1: [MPSAFE]
> ata1: [ITHREAD]
> [...]
> ata0-slave: pio=PIO4 wdma=WDMA2 udma=UDMA100 cable=80 wire
> ata0-master: pio=PIO4 wdma=WDMA2 udma=UDMA66 cable=40 wire
> acd0: setting PIO4 on 8233A chip
> acd0: DMA limited to UDMA33, device found non-ATA66 cable
> acd0: setting UDMA33 on 8233A chip
> acd0: <LITE-ON DVDRW SOHW-1693S/KC4B> DVDR drive at ata0 as master
> acd0: read 8268KB/s (8268KB/s) write 8268KB/s (8268KB/s), 2048KB  
> buffer, UDMA33
> acd0: Reads: CDR, CDRW, CDDA stream, DVDROM, DVDR, packet
> acd0: Writes: CDR, CDRW, DVDR, test write, burnproof
> acd0: Audio: play, 256 volume levels
> acd0: Mechanism: ejectable tray, unlocked
> acd0: Medium: no/blank disc
> ad1: setting PIO4 on 8233A chip
> ad1: setting UDMA100 on 8233A chip
> ad1: 381554MB <SAMSUNG HD400LD WQ100-14> at ata0-slave UDMA100
> ad1: 781422768 sectors [12403536C/1H/63S] 16 sectors/interrupt 1  
> depth queue
> ad1: VIA check1 failed
> ad1: Adaptec check1 failed
> ad1: LSI (v3) check1 failed
> ad1: LSI (v2) check1 failed
> ad1: FreeBSD check1 failed
> ata1-slave: pio=PIO4 wdma=WDMA2 udma=UDMA33 cable=40 wire
> ata1-master: pio=PIO4 wdma=WDMA2 udma=UDMA33 cable=40 wire
> GEOM: new disk ad1
> acd1: setting PIO4 on 8233A chip
> acd1: setting UDMA33 on 8233A chip
> acd1: <LITE-ON DVDRW LDW-811S/HS0R> CDRW drive at ata1 as master
> acd1: read 10820KB/s (10820KB/s) write 10820KB/s (10820KB/s), 2048KB  
> buffer, UDMA33
> acd1: Reads: CDR, CDRW, CDDA stream, DVDROM, DVDR, packet
> acd1: Writes: CDR, CDRW, test write, burnproof
> acd1: Audio: play, 256 volume levels
> acd1: Mechanism: ejectable tray, unlocked
> acd1: Medium: DVD 120mm data disc
> acd2: setting PIO4 on 8233A chip
> acd2: setting UDMA33 on 8233A chip
> acd2: <PLEXTOR CD-R PREMIUM/1.06> CDRW drive at ata1 as slave
> acd2: read 8958KB/s (6890KB/s) write 8958KB/s (8958KB/s), 8192KB  
> buffer, UDMA33
> acd2: Reads: CDR, CDRW, CDDA stream, packet
> acd2: Writes: CDR, CDRW, test write, burnproof
> acd2: Audio: play, 256 volume levels
> acd2: Mechanism: ejectable tray, unlocked
> acd2: Medium: CD-ROM unknown
> ata2-master: pio=PIO4 wdma=WDMA2 udma=UDMA100 cable=80 wire
> ad4: setting PIO4 on HighPoint chip
> ad4: setting UDMA100 on HighPoint chip
> ad4: 381554MB <SAMSUNG HD400LD WQ100-14> at ata2-master UDMA100
> ad4: 781422768 sectors [775221C/16H/63S] 16 sectors/interrupt 1  
> depth queue
> GEOM: new disk ad4
> GEOM_LABEL: Label for provider ad1s1 is ext2fs//12.
> ad4: HighPoint (v3) check1 failed
> ad4: HighPoint (v2) check1 failed
> ad4: Adaptec check1 failed
> ad4: LSI (v3) check1 failed
> ad4: LSI (v2) check1 failed
> ad4: FreeBSD check1 failed
> ATA PseudoRAID loaded
>
> With a kernel from today the line:
>
> ata0: reset tp2 stat0=00 stat1=50 devices=0x6<ATAPI_MASTER,ATA_SLAVE>
>
> changes to:
>
> ata0: reset tp2 stat0=00 stat1=50 devices=0x10002<ATA_SLAVE>
>
> Note that the slave (ad1) is the missing drive
> while the master (acd0) is detected later on.
>
> Fabian



More information about the cvs-all mailing list