Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 7 Mar 2005 01:03:28 GMT
From:      Andrzej Kukula <akukula@navopgd.pl>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   i386/78517: WRITE_DMA and READ_DMA timeouts with ATI RX330 chipset
Message-ID:  <200503070103.j2713Sae023132@www.freebsd.org>
Resent-Message-ID: <200503070110.j271A2C2022328@freefall.freebsd.org>

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

>Number:         78517
>Category:       i386
>Synopsis:       WRITE_DMA and READ_DMA timeouts with ATI RX330 chipset
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-i386
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Mon Mar 07 01:10:01 GMT 2005
>Closed-Date:
>Last-Modified:
>Originator:     Andrzej Kukula
>Release:        5.3-RELEASE ISO from freebsd.org
>Organization:
>Environment:
FreeBSD 5.3-RELEASE i386, kernel GENERIC installed from CD
>Description:
1. Default installation CD cannot proceed with newfs(8) due to WRITE_DMA errors. I had to provide hw.ata.ata_dma=0 to proceed with the installation. The hardware is Gigabyte 8TRX330-L mainboard with ATI RX330 chipset (ATI IXP 300 South Bridge with integrated ATA/SATA controller). My disk is Seagate ST340810A 40GB UDMA/33.

The error message was exactly as follows:
ad0: TIMEOUT - WRITE DMA retrying (2 retries left) LBA=xxxxxx
ata0: reiniting channel ..
ata0: reset tp1 mask=03 ostat0=58 ostat1=00
ad0: stat=0x50 err=0x01 lsb=0x00 msb=0x00
ata0-slave: stat=0x00 err=0x01 lsb=0x00 msb=0x00
ata0: reset tp2 stat0=50 stat1=00 devices=0x1<ATA_MASTER>
ata0: resetting done ..
ad0: pio=0x0c wdma=0x22 udma=0x45 cable=80pin
ata0: device config done ..
ad0: FAILURE - WRITE_DMA timed out

It is surprising as FreeBSD is the only OS among 5 I've installed on this machine that doesn't work.

2. Any attempt to enable DMA either via boot loader or atacontrol(8) gives the above error or frozen system. I tried
# atacontrol mode 0 wdma2 biospio
then
# find /
System printed:
ad0: TIMEOUT - READ DMA retrying (2 retries left)
and hung.

3. This ATA controller is detected as
atapci0:<GENERIC ATA controller> port 0xf000-0xf00f,0x376,0x170-0x177,0x3f6,0x1f0-0x1f7 at device 20.1 on pci0

# pciconf -l -v
..
atapci0@pci0:20:1: class=0x01018a card=0x50021458 chip=0x43691002 rev=0x01 hdr=0x00
vendor = 'ATI Technologies Inc.'
class = mass storage
subclass = ATA

>How-To-Repeat:
obvious methinks...
>Fix:
I just started poking, but I'm not a kernel hacker by any means... Maybe this is of little help...
<http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/dev/pci/ixpide.c?rev=1.2>;
althought still lacking ID 0x4369

<http://linux.bkbits.net:8080/linux-2.6/anno/drivers/ide/pci/atiixp.c@1.9>;
<http://linux.bkbits.net:8080/linux-2.6/anno/include/linux/pci_ids.h@1.203>;

I can help by testing any CVS version and providing root on this machine if it's needed (it's not production, contains no valuable data and is not connected to any machine I care of... :)

>Release-Note:
>Audit-Trail:
>Unformatted:



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