From owner-FreeBSD-tech-jp@jp.FreeBSD.org Wed Dec  1 00:09:29 2004
Received: (from daemon@localhost)
	by castle.jp.FreeBSD.org (8.11.6p2+3.4W/8.11.3) id iAUF9TN39030;
	Wed, 1 Dec 2004 00:09:29 +0900 (JST)
	(envelope-from owner-FreeBSD-tech-jp@jp.FreeBSD.org)
Received: from r-kk.iij4u.or.jp (r-kk.iij4u.or.jp [210.130.0.73])
	by castle.jp.FreeBSD.org (8.11.6p2+3.4W/8.11.3) with ESMTP/inet id iAUF9S839025
	for <FreeBSD-tech-jp@jp.freebsd.org>; Wed, 1 Dec 2004 00:09:28 +0900 (JST)
	(envelope-from kiyohara@kk.iij4u.or.jp)
Received: from localhost (h074.p081.iij4u.or.jp [210.130.81.74])
	by r-kk.iij4u.or.jp (8.11.6+IIJ/8.11.6) with ESMTP id iAUF9S622803
	for <FreeBSD-tech-jp@jp.freebsd.org>; Wed, 1 Dec 2004 00:09:28 +0900 (JST)
Message-Id: <20041201.000925.104031688.kiyohara@kk.iij4u.or.jp>
To: FreeBSD-tech-jp@jp.FreeBSD.org
From: KIYOHARA Takashi <kiyohara@kk.iij4u.or.jp>
X-Mailer: Mew version 2.3 on Emacs 20.7 / Mule 4.1 (AOI)
Mime-Version: 1.0
Content-Type: Text/Plain; charset=iso-2022-jp
Content-Transfer-Encoding: 7bit
Reply-To: FreeBSD-tech-jp@jp.FreeBSD.org
Precedence: list
Date: Wed, 01 Dec 2004 00:09:25 +0900
X-Sequence: FreeBSD-tech-jp 3481
Subject: [FreeBSD-tech-jp 3481] ata-alowlevel.c
 =?ISO-2022-JP?B?GyRCJE4bKEI=?= ata_generic_reset()
 =?ISO-2022-JP?B?GyRCJE8yPyRyJGQkQyRGJCQkayROJCshKRsoQg==?=
Sender: owner-FreeBSD-tech-jp@jp.FreeBSD.org
X-Originator: kiyohara@kk.iij4u.or.jp
X-Distribute: distribute version 2.1 (Alpha) patchlevel 24e+041128

$B@686$G$9(B


$B$I$J$?$+(B ATA/ATAPI $B4XO"$K>\$7$$J}!"$*65$(2<$5$$!#(B

$B;d$O<+Bp$G(B PC-9821Cf $B$H$$$&5!<o$r;H$C$F$$$^$9!#$3$N%^%7%s$K$OFbB"(B CD-ROM
$B%I%i%$%V$,$D$$$F$$$k$N$G$9$,!"(B5.2-RELEASE $B0J9_$3$N(B CD-ROM $B%I%i%$%V$,G'<1(B
$B=PMh$J$/$J$C$F$7$^$$$^$7$?!#$G$9$,!"F1$8%^%7%s$NJL$N(B HDD $B$K%$%s%9%H!<%k(B
$B$7$F$$$k(B NetBSD/pc98 $B$r5/F0$5$;$k$H(B CD-ROM $B%I%i%$%V$,G'<1$5$l$F(B mount $BEy(B
$B$,2DG=$K$J$j$^$9!#(B


verbose $B%b!<%I$G5/F0$9$k$J$j$7$FD4$Y$F$_$k$H!"(Bata-lowlevel.c $B$N(B
ata_generic_reset() $B$H$$$&4X?tFb$G%G%P%$%9$NG'<1$K<:GT$7$F$$$k$h$&$J$N$G(B
$B$9!#(B

$BEv3:2U=j$O$3$3$+$i(B --

    if (!((mask == 0x03) && (stat0 & ATA_S_BUSY)) && (stat1 & ATA_S_BUSY)) {
	ATA_IDX_OUTB(ch, ATA_DRIVE, ATA_D_IBM | ATA_SLAVE);
	DELAY(10);
	err = ATA_IDX_INB(ch, ATA_ERROR);
	lsb = ATA_IDX_INB(ch, ATA_CYL_LSB);
	msb = ATA_IDX_INB(ch, ATA_CYL_MSB);
	stat1 = ATA_IDX_INB(ch, ATA_STATUS);
	if (bootverbose)
	    ata_printf(ch, ATA_SLAVE,
		" stat=0x%02x err=0x%02x lsb=0x%02x msb=0x%02x\n",
		stat1, err, lsb, msb);
	if (!(stat1 & ATA_S_BUSY)) {
	    if ((err & 0x7f) == ATA_E_ILI) {
		if (lsb == ATAPI_MAGIC_LSB && msb == ATAPI_MAGIC_MSB) {
		    ch->devices |= ATA_ATAPI_SLAVE;
		}
		else if (stat1 & ATA_S_READY) {
		    ch->devices |= ATA_ATA_SLAVE;
		}
	    }
	    else if ((stat1 & 0x4f) && err == lsb && err == msb) {
		stat1 |= ATA_S_BUSY;
	    }
	}
    }

-- $BEv3:2U=j$O$3$3$^$G(B


$B6qBNE*$K$O(B err $B$NCM$,(B ATA_E_ILI (ata-all.h $B$K$h$k$H(B illegal length $B$i(B
$B$7$$(B ???) $B$G$O$J$$$N$G(B (0 $B$,JV$C$F$-$F$$$k$?$a(B) $B%G%P%$%9$,L5$$;v$K$5$l(B
$B$F$$$k$+$N$h$&$G$9$,!"(Blsb, msb $B$K$O(B ATAPI_MAGIC_LSB $B$H(B ATAPI_MAGIC_MSB
$B$,FI$_=P$;$F$$$^$7$?!#(B


$B$=$3$G$*;G$$$7$?$$$N$,!"4X?t(B ata_generic_reset() $B$G$O0lBS2?$r$d$C$F$$(B
$B$k$N$G$7$g$&$+!)(B
$B:G=i$O(B ATA/ATAPI $B$N(B DEVICE RESET $B%3%^%s%I$r<B9T$7$F$$$k$N$+$H;W$C$?$N(B
$B$G$9$,!"$I$&$b0c$&$h$&$@$H$$$&;v$O$o$+$j$^$7$?!#(B
$B$7$+$7!"2?$,$7$+$N=hM}$r<B9T$7$?7k2L!"(Billegal length $B$N%(%i!<$,=P$k$H(B
$B%G%P%$%9$rG'<1$G$-$k$H$$$&!"$3$N=hM}$N0UL#$,M}2r$G$-$^$;$s!#(B


$B!t(B $B$?$@!"$3$l$,(B DEVICE RESET $B$+(B CFA REQUEST EXTENDED ERROR CODE $B$r<B9T(B
$B!t(B $B$7$?$N$HF15A$G$"$l$P!"JV$C$F$-$?(B 1 $B$H$$$&CM(B ($B$J$<(B ATA_E_ILI ?) $B$,@5(B
$B!t(B $B>o$G$"$k$H$$$&$N$O;EMM=q$rFI$`;v$G$o$+$j$^$7$?!#(B

$B59$7$/$*4j$$CW$7$^$9!#(B
--
kiyohara
