Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 27 Apr 2004 14:16:03 -0500 (CDT)
From:      "Paul Seniura" <pdseniura@techie.com>
To:        <FreeBSD-gnats-submit@freebsd.org>, <freebsd-current@freebsd.org>
Subject:   Re: kern/64637: ata1-slave:  stat=0x01 err=0x00 lsb=0x00 msb=0x00 <- repeats for exactly 30 seconds during boot when no slave iswired
Message-ID:  <20040427191603.B0B1F5C2B@techpc04.okladot.state.ok.us>
In-Reply-To: <20040323224904.9C8E95C11@techpc04.okladot.state.ok.us>
References:  <20040323224904.9C8E95C11@techpc04.okladot.state.ok.us>

next in thread | previous in thread | raw e-mail | index | archive | help


With the recent patches to ata-lowlevel.c (v1.33 at this writing), verbose boot is showing this in the dmesg:
[...]
atapci0: <Intel PIIX4 UDMA33 controller> port 0xfff0-0xffff,0x376,0x170-0x177,0x3f6,0x1f0-0x1f7 at device 2.1 on pci0
atapci0: Reserved 0x10 bytes for rid 0x20 type 4 at 0xfff0
atapci0: Reserved 0x8 bytes for rid 0x10 type 4 at 0x1f0
atapci0: Reserved 0x1 bytes for rid 0x14 type 4 at 0x3f6
ata0: reset tp1 mask=03 ostat0=50 ostat1=00
ata0-master: stat=0x50 err=0x01 lsb=0x00 msb=0x00
ata0-slave:  stat=0x00 err=0x01 lsb=0x00 msb=0x00
ata0: reset tp2 mask=03 stat0=50 stat1=00 devices=0x1<ATA_MASTER>
ata0: at 0x1f0 irq 14 on atapci0
ata0: [MPSAFE]
atapci0: Reserved 0x8 bytes for rid 0x18 type 4 at 0x170
atapci0: Reserved 0x1 bytes for rid 0x1c type 4 at 0x376
ata1: reset tp1 mask=03 ostat0=50 ostat1=00
ata1-master: stat=0x00 err=0x01 lsb=0x14 msb=0xeb  <-- Magic Numbers for ATAPI device
ata1-slave:  stat=0x01 err=0x00 lsb=0x00 msb=0x00 \ <----------/////////////////
[...^v^v^v^ repeats 30 seconds' worth ^v^v^v^...] < <---------<<<  looping  <<<
ata1-slave:  stat=0x01 err=0x00 lsb=0x00 msb=0x00 / <----------\\\\\\\\\\\\\\\\\
ata1: reset tp2 mask=01 stat0=00 stat1=81 devices=0x4<ATAPI_MASTER>
ata1: at 0x170 irq 15 on atapci0
ata1: [MPSAFE]
[...]


The 'atacontrol list' shows:
ATA channel 0:
    Master:  ad0 <IBM-DTTA-371010/T77IA73A> ATA/ATAPI revision 4
    Slave:       no device present
ATA channel 1:
    Master: acd0 <HL-DT-ST RW/DVD GCC-4120B/2.02> ATA/ATAPI revision 0
    Slave:       no device present


The 'atacontrol mode 0' shows:
Master = UDMA33
Slave  = BIOSPIO


The 'atacontrol mode 1' shows:
Master = WDMA2
Slave  = BIOSPIO


With this new info, we can see that we are getting the ATAPI_MAGIC_* numbers from the secondary channel (still connected only to the LG Combo as Master, no Slaves at all anywhere).
The code turns on 'ch->devices |= ATA_ATAPI_MASTER;' at this point and continues.
We see different stat1 values afterwards, when checking for slave on secondary.
It seems stat1 is not checked against ATA_S_ERROR at this point.
How can we do this properly so it'd work for everyone?

Also should I figure out why tp2 on primary channel ends up with mask=03, with no slaves at all anywhere?
Or is this a common assumption being made?

? ? ? ?


  --  thx, Paul Seniura.




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20040427191603.B0B1F5C2B>