Re: ATA regression [PATCH]

From: Ruslan Ermilov <ru_at_FreeBSD.ORG>
Date: Tue, 28 Dec 2004 13:06:44 +0200
On Mon, Dec 27, 2004 at 05:39:00PM +0100, S?ren Schmidt wrote:
> Ruslan Ermilov wrote:
> 
> >>Hmm, on the exact same controller with two SATA drives on it and stock 
> >>current it "just works" (tm) here, I cannot reproduce the problem...
> >>Are you sure its a stock GENERIC kernel with no local mods/patches ?
> >>
> >Yes.  This is the Asus SK8N motherboard, but I only have one PATA
> >drive attached to 3rd (PATA) channel; first two channels (SATA)
> >don't have any drives attached.  Can you check in this configuration?
> 
> 
> atapci0: <Promise PDC20378 SATA150 controller> port 
> 0xb800-0xb87f,0xd000-0xd00f,0xd400-0xd43f mem 
> 0xfc800000-0xfc81ffff,0xfd000000-0xfd000fff irq 18 at device 5.0 on pci0
> atapci0: failed: rid 0x20 is memory, requested 4
> ata2: channel #0 on atapci0
> ata3: channel #1 on atapci0
> ata4: channel #2 on atapci0
> ...
> atapci1: <ServerWorks ROSB4 UDMA33 controller> port 
> 0xb000-0xb00f,0x376,0x170-0x177,0x3f6,0x1f0-0x1f7 at device 15.1 on pci0
> ata0: channel #0 on atapci1
> ata1: channel #1 on atapci1
> ...
> ad0: 13042MB <IBM-DPTA-371360/P74OA30A> [26500/16/63] at ata0-master UDMA33
> acd0: DVDRAM <HITACHI GF-1000 B/I002> at ata0-slave PIO4
> afd0: REMOVABLE <LS-120 VER5 00 UHD Floppy/F515M59V> at ata1-master PIO3
> acd1: CDRW <GENERIC CRD-BP1400P/5.29> at ata1-slave PIO4
> ad1: 38166MB <ST340016A/3.19> [77545/16/63] at ata4-master UDMA100
> 
> That works just as well...
> 
OK, but the fact is that if I revert sys/dev/ata/ to just before
this change, with otherwise -CURRENT sources (except for keeping
atapi-cd.c at its current version), it all works perfectly again.

: sos         2004-12-08 10:02:41 UTC
:
:   FreeBSD src repository
:
:   Modified files:
:     sys/dev/ata          ata-chipset.c ata-pci.h
:   Log:
:   Add first shot on support for the new Promise SATAII chips.
:
:   HW donated by:  pil.dk
:
:   Revision  Changes    Path
:   1.93      +109 -49   src/sys/dev/ata/ata-chipset.c
:   1.36      +10 -2     src/sys/dev/ata/ata-pci.h

So I analyzed what was changed in this ata-chipset.c revision
when it comes to my chip, and tried the following patch, and
it brought me back my ad8 drive:

%%%
Index: ata-chipset.c
===================================================================
RCS file: /home/ncvs/src/sys/dev/ata/ata-chipset.c,v
retrieving revision 1.97
diff -u -p -r1.97 ata-chipset.c
--- ata-chipset.c	24 Dec 2004 13:36:04 -0000	1.97
+++ ata-chipset.c	28 Dec 2004 10:59:06 -0000
_at__at_ -1607,7 +1607,7 _at__at_ ata_promise_mio_reset(struct ata_channel
 		 (ATA_INL(ctlr->r_res2, 0xc012c) & ~0x00000f9f));
 	mtx_unlock(&hpktp->mtx);
     }
-    else if (ctlr->chip->cfg2 & PRSATA) {
+    else if (ctlr->chip->cfg2 & (PRSATA | PRCMBO)) {
 	u_int32_t status = 0;
 	int timeout;
 
%%%


Cheers,
-- 
Ruslan Ermilov
ru_at_FreeBSD.org
FreeBSD committer

Received on Tue Dec 28 2004 - 10:06:49 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:25 UTC