Date: Mon, 6 Sep 2004 11:43:12 GMT From: Daan Goedkoop <dgoedkoop@gmx.net> To: freebsd-gnats-submit@FreeBSD.org Subject: kern/71428: DMA does not work on VIA 82C586 Message-ID: <200409061143.i86BhCB9044679@www.freebsd.org> Resent-Message-ID: <200409061150.i86BoO2p003981@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 71428 >Category: kern >Synopsis: DMA does not work on VIA 82C586 >Confidential: no >Severity: serious >Priority: medium >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Mon Sep 06 11:50:24 GMT 2004 >Closed-Date: >Last-Modified: >Originator: Daan Goedkoop >Release: 4.10-RELEASE (generic kernel; i386) >Organization: >Environment: Unfortunately I do not have access to my box right now, so I can not give you the uname -a output, but I have secured the dmesg output. Please use that, thank you. >Description: I think the problem is apparent from the dmesg output below, e.g. when I forget to disable DMA on my VIA 82C586, which is according to the Hardware Notes supported since at least FreeBSD 4.4, I constantly get DMA write timeout messages and during these timeouts any application that uses the harddisk freezes for a short while. The problem occured with generic kernels of FreeBSD 4.8, 4.9, 4.10, 5.0, 5.1 and 5.2. It does not seem to be a problem with the harddisk or the controller, as I tried two harddisks from different manufacturers, and DMA works fine on at least Windows, Linux, NetBSD and OpenBSD. After disabling DMA everything works fine, but as you can probably understand that doesn't really satisfy me. Copyright (c) 1992-2004 The FreeBSD Project. Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994 The Regents of the University of California. All rights reserved. FreeBSD 4.10-RELEASE #0: Tue May 25 22:47:12 GMT 2004 root@perseus.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC Timecounter "i8254" frequency 1193182 Hz CPU: Pentium II/Pentium II Xeon/Celeron (350.80-MHz 686-class CPU) Origin = "GenuineIntel" Id = 0x652 Stepping = 2 Features=0x183f9ff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,SEP,MTRR,PGE,MCA,CMOV, PAT,PSE36,MMX,FXSR> real memory = 134217728 (131072K bytes) avail memory = 125165568 (122232K bytes) Preloaded elf kernel "kernel" at 0xc0551000. Pentium Pro MTRR support enabled md0: Malloc disk Using $PIR table, 6 entries at 0xc00f85c0 npx0: <math processor> on motherboard npx0: INT 16 interface pcib0: <Host to PCI bridge> on motherboard pci0: <PCI bus> on pcib0 agp0: <VIA 82C691 (Apollo Pro) host to PCI bridge> mem 0xe0000000-0xe7ffffff at device 0.0 on pci0 pcib1: <VIA 82C598MVP (Apollo MVP3) PCI-PCI (AGP) bridge> at device 1.0 on pci0 pci1: <PCI bus> on pcib1 pci1: <SiS 6326 SVGA controller> at 0.0 isab0: <VIA 82C586 PCI-ISA bridge> at device 7.0 on pci0 isa0: <ISA bus> on isab0 atapci0: <VIA 82C586 ATA33 controller> port 0xffa0-0xffaf at device 7.1 on pci0 ata0: at 0x1f0 irq 14 on atapci0 ata1: at 0x170 irq 15 on atapci0 uhci0: <VIA 83C572 USB controller> port 0xde00-0xde1f irq 10 at device 7.2 on pci0 usb0: <VIA 83C572 USB controller> on uhci0 usb0: USB revision 1.0 uhub0: VIA UHCI root hub, class 9/0, rev 1.00/1.00, addr 1 uhub0: 2 ports with 2 removable, self powered pci0: <unknown card> (vendor=0x1106, dev=0x3040) at 7.3 vr0: <VIA VT6105 Rhine III 10/100BaseTX> port 0xdc00-0xdcff mem 0xefffff00-0xefffffff irq 10 at device 8.0 on pci0 vr0: Ethernet address: 00:40:f4:8c:63:fb miibus0: <MII bus> on vr0 ukphy0: <Generic IEEE 802.3u media interface> on miibus0 ukphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto pci0: <unknown card> (vendor=0x1057, dev=0x5600) at 10.0 irq 10 orm0: <Option ROM> at iomem 0xc0000-0xc7fff on isa0 pmtimer0 on isa0 fdc0: <NEC 72065B or clone> at port 0x3f0-0x3f5,0x3f7 irq 6 drq 2 on isa0 fdc0: FIFO enabled, 8 bytes threshold fd0: <1440-KB 3.5" drive> on fdc0 drive 0 atkbdc0: <Keyboard controller (i8042)> at port 0x60,0x64 on isa0 atkbd0: <AT Keyboard> flags 0x1 irq 1 on atkbdc0 kbd0 at atkbd0 psm0: <PS/2 Mouse> irq 12 on atkbdc0 psm0: model IntelliMouse, device ID 3 vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0 sc0: <System console> at flags 0x100 on isa0 sc0: VGA <16 virtual consoles, flags=0x300> sio0 at port 0x3f8-0x3ff irq 4 flags 0x10 on isa0 sio0: type 16550A sio1 at port 0x2f8-0x2ff irq 3 on isa0 sio1: type 16550A ppc0: <Parallel port> at port 0x378-0x37f irq 7 on isa0 ppc0: Generic chipset (ECP/PS2/NIBBLE) in COMPATIBLE mode ppc0: FIFO with 16/16/16 bytes threshold plip0: <PLIP network interface> on ppbus0 lpt0: <Printer> on ppbus0 lpt0: Interrupt-driven port ppi0: <Parallel I/O> on ppbus0 ad0: 32253MB <Maxtor 6E040L0> [65531/16/63] at ata0-master UDMA33 acd0: DVD-ROM <SAMSUNG DVD-ROM SD-616E> at ata1-master PIO4 acd1: CD-RW <AOPEN CD-RW CRW5232 1.02 20030718> at ata1-slave PIO4 Mounting root from ufs:/dev/ad0s2a ad0: WRITE command timeout tag=0 serv=0 - resetting ata0: resetting devices .. done ad0: WRITE command timeout tag=0 serv=0 - resetting ata0: resetting devices .. done ad0: WRITE command timeout tag=0 serv=0 - resetting ata0: resetting devices .. done ad0: WRITE command timeout tag=0 serv=0 - resetting ata0: resetting devices .. done pid 114 (ls), uid 0: exited on signal 12 (core dumped) ad0: WRITE command timeout tag=0 serv=0 - resetting ata0: resetting devices .. done pid 115 (ls), uid 0: exited on signal 12 (core dumped) >How-To-Repeat: Enable ata_dma. >Fix: Workaround: disabling DMA Real fix: N/A >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200409061143.i86BhCB9044679>