Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 17 Apr 2001 19:46:43 +0200
From:      Matthias Andree <matthias.andree@stud.uni-dortmund.de>
To:        Doug White <dwhite@resnet.uoregon.edu>
Cc:        freebsd-stable@FreeBSD.ORG
Subject:   Re: FreeBSD 4.x refuses to use DMA on WDC31200F?
Message-ID:  <20010417194643.A15712@emma1.emma.line.org>
In-Reply-To: <Pine.BSF.4.33.0104161421520.81871-100000@resnet.uoregon.edu>; from dwhite@resnet.uoregon.edu on Mon, Apr 16, 2001 at 14:24:07 -0700
References:  <m3ae5jakvg.fsf@emma1.emma.line.org> <Pine.BSF.4.33.0104161421520.81871-100000@resnet.uoregon.edu>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, 16 Apr 2001, Doug White wrote:

> Try booting -v and see if the system is intentionally demoting your
> controller. Not all controllers that claim DMA support actually work with
> it. Also note there are 2 "DMA" modes ... UltraDMA ("UDMA") and "WDMA".

Attaching a WDC420400D to the board, I get UDMA/33, it's working. I don't
expect UDMA from my WDC31200F (that drives does at best around 3 MB/s even in
PIO3), but DMA1 mode rather than PIO3 would be nice IMHO.

/kernel: atapci0: <VIA 82C586 ATA33 controller> port 0xe000-0xe00f at device 7.1 on pci0
/kernel: ata0: iobase=0x01f0 altiobase=0x03f6 bmaddr=0xe000
/kernel: ata0: mask=03 status0=50 status1=00
/kernel: ata0: mask=03 ostat0=50 ostat2=00
/kernel: ata0-master: ATAPI probe a=00 b=00
/kernel: ata0-slave: ATAPI probe a=00 b=00
/kernel: ata0: mask=03 status0=50 status1=00
/kernel: ata0-master: ATA probe a=01 b=a5
/kernel: ata0: devices=01
/kernel: ata0: at 0x1f0 irq 14 on atapci0
...
/kernel: ata0-master: success setting PIO3 on generic chip
/kernel: Creating DISK ad0
/kernel: Creating DISK wd0
/kernel: ad0: <WDC AC31200F/14.04E28> ATA-0 disk at ata0-master
/kernel: ad0: 1222MB (2503872 sectors), 2484 cyls, 16 heads, 63 S/T, 512 B/S
/kernel: ad0: 1 secs/int, 1 depth queue, PIO3
/kernel: ad0: piomode=3 dmamode=1 udmamode=-1 cblid=0
/kernel: ad0: 1222MB <WDC AC31200F> [2484/16/63] at ata0-master PIO3

> There's code to activate the 586B in src/sys/dev/ata/ata-dma.c, at least.
> But then again I was talking to someone the other day having problems with
> that chipset...

Looks like FreeBSD would either program any PIO mode (0 - 4), WDMA 2 or UDMA 2,
4 or 5, but nothing besides that such as WDMA 1, but why?

In contrast, this is NetBSD 1.5 with GENERIC kernel (same machine, it's a
dual-boot FreeBSD 4.3-RC/NetBSD 1.5 machine):

/netbsd: pciide0 at pci0 dev 7 function 1: VIA Tech VT82C586A IDE Controller (rev. 0x06)
/netbsd: pciide0: bus-master DMA support present
/netbsd: pciide0: primary channel configured to compatibility mode
/netbsd: wd0 at pciide0 channel 0 drive 0: <WDC AC31200F>
/netbsd: wd0: drive supports 16-sector pio transfers, lba addressing
/netbsd: wd0: 1222 MB, 2484 cyl, 16 head, 63 sec, 512 bytes/sect x 2503872 sectors
/netbsd: wd0: 32-bit data port
/netbsd: wd0: drive supports PIO mode 3, DMA mode 1
/netbsd: pciide0: primary channel interrupting at irq 14
/netbsd: wd0(pciide0:0:0): using PIO mode 3, DMA mode 1 (using DMA data transfers)

-- 
Matthias Andree

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-stable" in the body of the message




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