From owner-freebsd-stable Thu Nov 2 3:59:59 2000 Delivered-To: freebsd-stable@freebsd.org Received: from mel.alcatel.fr (mel.alcatel.fr [212.208.74.132]) by hub.freebsd.org (Postfix) with ESMTP id A6B3237B4CF for ; Thu, 2 Nov 2000 03:59:55 -0800 (PST) Received: from aifhs2.alcatel.fr (mailhub.alcatel.fr [155.132.180.80]) by mel.alcatel.fr (ALCANET/SMTP) with ESMTP id MAA01563 for ; Thu, 2 Nov 2000 12:59:16 +0100 Received: from dnscit.cit.alcatel.fr (dnscit.cit.alcatel.fr [139.54.100.2]) by aifhs2.alcatel.fr (ALCANET/SMTP2) with ESMTP id MAA03429 for ; Thu, 2 Nov 2000 12:56:46 +0100 (MET) Received: from dnsvz.vz.cit.alcatel.fr (dnsvz.vz.cit.alcatel.fr [139.54.85.1]) by dnscit.cit.alcatel.fr (8.9.3+Sun/8.9.3) with ESMTP id NAA26361 for ; Thu, 2 Nov 2000 13:01:41 +0100 (MET) Received: from vz.cit.alcatel.fr (bcv02w84.vz.cit.alcatel.fr [139.54.102.132]) by dnsvz.vz.cit.alcatel.fr (8.9.3+Sun/8.9.3) with ESMTP id NAA01276 for ; Thu, 2 Nov 2000 13:02:24 +0100 (MET) Message-ID: <3A015724.5832AC36@vz.cit.alcatel.fr> Date: Thu, 02 Nov 2000 12:59:32 +0100 From: Janusz Szpilewski Organization: Alcatel Telecom X-Mailer: Mozilla 4.07 [en] (X11; I; SunOS 5.5.1 sun4m) MIME-Version: 1.0 To: freebsd-stable@FreeBSD.ORG Subject: ATA, Aladdin & DMA Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Sender: owner-freebsd-stable@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG Hello, Recently, after incorporating last patches (CTM 294 and above), I found some problems with mounting the root partion on my box: Mounting root from ufs:/dev/ad0s2a ad0: READ command timeout tag=0 serv=0 - resetting ata0: resetting devices .. ata0: mask=01 status0=50 status1=00 ata0-master: success setting WDMA2 on Aladdin chip done etc. and falling back to PIO4 After some research I have discovered that now the controller is trying to use WDMA2 (and fails) and previously it was UDMA33. Examining it further I found that in the file: sys/dev/ata/ata-dma.c version: 1.35.2.5 line: 287 the condition qualifying for UDMA33 was changed from: if (udmamode >= 2) to: if (udmamode >= 2 && pci_get_revid(parent) > 0x20) It happened that revid of my controller is 0x20. So after replacing '>' with '>=' the system boots and works fine as before. But I am curious why this extra condition is added (it's MFC as I found) and what is wrong with controllers version 0x20 and below. Some other info about ATA on my box (Compaq Prosignia 150 notebook): atapci0: port 0xfc90-0xfc9f irq 0 at device 16.0 on pci0 ata0: at 0x1f0 irq 14 on atapci0 ad0: ATA-4 disk at ata0-master ad0: 6194MB (12685680 sectors), 13424 cyls, 15 heads, 63 S/T, 512 B/S ad0: 16 secs/int, 1 depth queue, UDMA33 ad0: piomode=4 dmamode=2 udmamode=2 cblid=0 ad0: 6194MB [13424/15/63] at ata0-master UDMA33 Greetings, Janusz To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-stable" in the body of the message