From owner-freebsd-current Wed May 12 6:37:53 1999 Delivered-To: freebsd-current@freebsd.org Received: from des.follo.net (des.follo.net [195.204.143.216]) by hub.freebsd.org (Postfix) with ESMTP id 96B2314F34 for ; Wed, 12 May 1999 06:37:44 -0700 (PDT) (envelope-from des@des.follo.net) Received: (from des@localhost) by des.follo.net (8.9.3/8.9.3) id PAA11289; Wed, 12 May 1999 15:37:41 +0200 (CEST) (envelope-from des) To: current@freebsd.org Subject: DMA problems with IBM DeskStar drive Organization: Yes! Interactive Visit-Us-At: http://www.yes.no/ From: Dag-Erling Smorgrav Date: 12 May 1999 15:37:40 +0200 Message-ID: Lines: 344 X-Mailer: Gnus v5.5/Emacs 19.34 Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG I have a brand new 10 GB IBM UltrStar (DTTA-371010) which is causing me some pains. If I boot with flags 0x80ff, everything works fine: wdc0 at port 0x1f0-0x1f7 irq 14 on isa0 wdc0: unit 0 (wd0): , 32-bit, multi-block-16 wd0: 9641MB (19746720 sectors), 19590 cyls, 16 heads, 63 S/T, 512 B/S wdc1 at port 0x170-0x177 irq 15 on isa0 wdc1: unit 0 (wd2): , 32-bit, multi-block-16 wd2: 2014MB (4124736 sectors), 4092 cyls, 16 heads, 63 S/T, 512 B/S but heavy disk access slows the machine to a crawl, as can be expected from any device that does heavy PIO. If I try to boot with flags 0xa0ff to enable DMA, however, this is what I get: wdc0 at port 0x1f0-0x1f7 irq 14 on isa0 wdc0: unit 0 (wd0): , DMA, 32-bit, multi-block-16 wd0: 9641MB (19746720 sectors), 19590 cyls, 16 heads, 63 S/T, 512 B/S wd0: ATA INQUIRE valid = 0007, dmamword = 0007, apio = 0003, udma = 0407 wdc1 at port 0x170-0x177 irq 15 on isa0 wdc1: unit 0 (wd2): , DMA, 32-bit, multi-block-16 wd2: 2014MB (4124736 sectors), 4092 cyls, 16 heads, 63 S/T, 512 B/S wd2: ATA INQUIRE valid = 0007, dmamword = 0007, apio = 0003, udma = 0407 [...] Considering FFS root f/s. changing root device to wd0s4a changing root device to wd0a start_init: trying /sbin/init wd0: DMA failure, DMA status 5 wd0: DMA failure, DMA status 5 wd0: DMA failure, DMA status 5 wd0: DMA failure, DMA status 5 wd2s1: type 0xa5, start 0, end = 4124735, size 4124736 : OK xl0: selecting BNC port, half duplex wd0: DMA failure, DMA status 5 wd0: DMA failure, DMA status 5 wd0: DMA failure, DMA status 5 wd0: DMA failure, DMA status 5 and a *lot* more of those. Nothing bad seems to hapen (no fs corruption or anything). In fact, I managed to recompile a kernel while this was going on. The Seagate disk (wd2) causes no trouble at all, DMA or no DMA. The problem occurs in both -STABLE and -CURRENT. I've attached a complete kernel config and verbose boot log. DES -- Dag-Erling Smorgrav - des@yes.no # Kernel configuration for des.follo.net machine i386 cpu I586_CPU cpu I686_CPU ident DES maxusers 32 makeoptions DEBUG=-g options COMPAT_43 options FFS options FFS_ROOT options ICMP_BANDLIM options INCLUDE_CONFIG_FILE options INET options IPFIREWALL options IPFIREWALL_VERBOSE options KTRACE options PROCFS options SOFTUPDATES options SYSVMSG options SYSVSEM options SYSVSHM options UCONSOLE options USERCONFIG options VESA options VISUAL_USERCONFIG options VM86 config kernel root on wd0 controller isa0 controller pci0 controller pnp0 controller fdc0 at isa? port IO_FD1 irq 6 drq 2 disk fd0 at fdc0 drive 0 controller wdc0 at isa? port IO_WD1 irq 14 controller wdc1 at isa? port IO_WD2 irq 15 disk wd0 at wdc0 drive 0 flags 0xa0ff disk wd2 at wdc1 drive 0 flags 0xa0ff controller atkbdc0 at isa? port IO_KBD device atkbd0 at atkbdc? irq 1 device psm0 at atkbdc? irq 12 device vga0 at isa? port ? conflicts pseudo-device splash device sc0 at isa? options MSGBUF_SIZE=32768 options SC_HISTORY_SIZE=1024 device npx0 at nexus? port IO_NPX irq 13 device apm0 at isa? device sio0 at isa? port IO_COM1 flags 0x10 irq 4 device sio1 at isa? port IO_COM2 irq 3 device ppc0 at isa? port? irq 7 controller ppbus0 device lpt0 at ppbus? device plip0 at ppbus? device ppi0 at ppbus? device xl0 pseudo-device loop pseudo-device ether pseudo-device tun 4 pseudo-device bpfilter 4 pseudo-device pty 64 pseudo-device vn 4 device pcm0 at isa? port? irq 5 drq 1 flags 0x0 Copyright (c) 1992-1999 The FreeBSD Project. Copyright (c) 1982, 1986, 1989, 1991, 1993 The Regents of the University of California. All rights reserved. FreeBSD 4.0-CURRENT #0: Sun May 9 19:00:44 CEST 1999 root@des.follo.net:/usr/src/sys/compile/DES Calibrating clock(s) ... TSC clock: 350799158 Hz, i8254 clock: 1193196 Hz CLK_USE_I8254_CALIBRATION not specified - using default frequency Timecounter "i8254" frequency 1193182 Hz CLK_USE_TSC_CALIBRATION not specified - using old calibration method CPU: AMD-K6(tm) 3D processor (350.80-MHz 586-class CPU) Origin = "AuthenticAMD" Id = 0x58c Stepping=12 Features=0x8021bf Data TLB: 128 entries, 2-way associative Instruction TLB: 64 entries, 1-way associative L1 data cache: 32 kbytes, 32 bytes/line, 2 lines/tag, 2-way associative L1 instruction cache: 32 kbytes, 32 bytes/line, 2 lines/tag, 2-way associative Write Allocate Enable Limit: 128M bytes Write Allocate 15-16M bytes: Enable real memory = 134217728 (131072K bytes) Physical memory chunk(s): 0x00001000 - 0x0009ffff, 651264 bytes (159 pages) 0x00281000 - 0x07ff7fff, 131559424 bytes (32119 pages) sio0: system console avail memory = 128118784 (125116K bytes) Found BIOS32 Service Directory header at 0xc00f9b80 Entry = 0xf0530 (0xc00f0530) Rev = 0 Len = 1 PCI BIOS entry at 0x560 DMI header at 0xc00f5490 Version 2.0 Table at 0xf54aa, 31 entries, 990 bytes Other BIOS signatures found: ACPI: 00000000 $PnP: 000fcfb0 Preloaded elf kernel "kernel" at 0xc0268000. VESA: information block 56 45 53 41 00 02 a5 72 00 c0 01 00 00 00 22 00 00 01 80 00 03 01 ba 72 00 c0 c1 72 00 c0 ca 72 00 c0 00 01 01 01 02 01 03 01 05 01 07 01 08 01 09 01 0a 01 0b 01 0c 01 10 01 11 01 12 01 13 01 VESA: 25 mode(s) found Initializing PnP override table Probing for PnP devices: Trying Read_Port at 203 PnP: CSN 1 COMP_DEVICE_ID = 0x2fb0d041 CSN 1 Vendor ID: CTL00f0 [0xf0008c0e] Serial 0xffffffff Comp ID: PNPb02f [0x2fb0d041] Called nullpnp_probe with tag 0x00000001, type 0xf0008c0e Called nullpnp_probe with tag 0x00000001, type 0x2fb0d041 port 0x0220 0x0300 0x0388 0x0000 irq 10:0 drq 1:0 en 1 port 0x0220 0x0300 0x0388 0x0000 irq 10:0 drq 1:0 en 1 pcm1 (SB16pnp sn 0xffffffff) at 0x220-0x22f irq 10 drq 1 flags 0x10 on isa pci_open(1): mode 1 addr port (0x0cf8) is 0x80010000 pci_open(1a): mode1res=0x80000000 (0x80000000) pci_cfgcheck: device 0 [class=060000] [hdr=00] is there (id=154110b9) npx0: on motherboard npx0: INT 16 interface i586_bzero() bandwidth = 1400812397 bytes/sec bzero() bandwidth = 132380195 bytes/sec apm0: on motherboard apm: found APM BIOS version 1.2 pcib0: on motherboard found-> vendor=0x10b9, dev=0x1541, revid=0x04 class=06-00-00, hdrtype=0x00, mfdev=0 subordinatebus=0 secondarybus=0 map[0]: type 1, range 32, base e0000000, size 26 found-> vendor=0x10b9, dev=0x5243, revid=0x04 class=06-04-00, hdrtype=0x01, mfdev=0 subordinatebus=1 secondarybus=1 found-> vendor=0x10b9, dev=0x7101, revid=0x00 class=06-80-00, hdrtype=0x00, mfdev=0 subordinatebus=0 secondarybus=0 found-> vendor=0x10b9, dev=0x1533, revid=0xc3 class=06-01-00, hdrtype=0x00, mfdev=0 subordinatebus=0 secondarybus=0 found-> vendor=0x10b7, dev=0x9001, revid=0x00 class=02-00-00, hdrtype=0x00, mfdev=0 subordinatebus=0 secondarybus=0 intpin=a, irq=12 map[0]: type 4, range 32, base 0000d800, size 6 found-> vendor=0x10b9, dev=0x5229, revid=0xc1 class=01-01-8a, hdrtype=0x00, mfdev=0 subordinatebus=0 secondarybus=0 intpin=a, irq=0 map[0]: type 4, range 32, base 0000d400, size 4 pci0: on pcib0 chip0: at device 0.0 on pci0 pcib1: at device 1.0 on pci0 found-> vendor=0x102b, dev=0x0521, revid=0x01 class=03-00-00, hdrtype=0x00, mfdev=0 subordinatebus=0 secondarybus=0 intpin=a, irq=11 map[0]: type 3, range 32, base e7000000, size 24 map[1]: type 1, range 32, base df800000, size 14 map[2]: type 1, range 32, base df000000, size 23 pci1: on pcib1 chip1: at device 3.0 on pci0 isab0: at device 7.0 on pci0 xl0: <3Com 3c900-COMBO Etherlink XL> irq 12 at device 11.0 on pci0 xl0: Ethernet address: 00:60:08:cf:a8:e4 xl0: media options word: e138 xl0: found 10baseT xl0: found AUI xl0: found BNC xl0: selecting 10baseT transceiver, half duplex bpf: xl0 attached ide_pci0: irq 0 at device 15.0 on pci0 ide_pci: busmaster 0 status: a4 from port: 0000d402 ide_pci: ide0:0 has been configured for DMA by BIOS ide_pci: busmaster 1 status: a4 from port: 0000d40a ide_pci: ide1:0 has been configured for DMA by BIOS devclass_alloc_unit: apm0 already exists, using next available unit number isa0: on motherboard fdc0: at port 0x3f0-0x3f7 irq 6 drq 2 on isa0 fdc0: FIFO enabled, 8 bytes threshold fd0: <1440-KB 3.5" drive> at fdc0 drive 0 wdc0 at port 0x1f0-0x1f7 irq 14 on isa0 wdc0: unit 0 (wd0): , DMA, 32-bit, multi-block-16 wd0: 9641MB (19746720 sectors), 19590 cyls, 16 heads, 63 S/T, 512 B/S wd0: ATA INQUIRE valid = 0007, dmamword = 0007, apio = 0003, udma = 0407 wdc1 at port 0x170-0x177 irq 15 on isa0 wdc1: unit 0 (wd2): , DMA, 32-bit, multi-block-16 wd2: 2014MB (4124736 sectors), 4092 cyls, 16 heads, 63 S/T, 512 B/S wd2: ATA INQUIRE valid = 0007, dmamword = 0007, apio = 0003, udma = 0407 atkbdc0: at port 0x60 on isa0 atkbd0: irq 1 on atkbdc0 atkbd: the current kbd controller command byte 0067 atkbd: keyboard ID 0x41ab (2) kbdc: RESET_KBD return code:00fa kbdc: RESET_KBD status:00aa kbd0: atkbd0, AT 101/102 (2), config:0x0, flags:0x3d0000 psm0: current command byte:0067 kbdc: TEST_AUX_PORT status:0000 kbdc: RESET_AUX return code:00fe kbdc: RESET_AUX return code:00fe kbdc: RESET_AUX return code:00fe kbdc: DIAGNOSE status:0055 kbdc: TEST_KBD_PORT status:0000 psm0: failed to reset the aux device. vga0: on isa0 fb0: vga0, vga, type:VGA (5), flags:0x700ff fb0: port:0x3b0-0x3df, crtc:0x3d4, mem:0xa0000 0x20000 fb0: init mode:24, bios mode:3, current mode:24 fb0: window:0xc00b8000 size:32k gran:32k, buf:0x0 size:0k VGA parameters upon power-up 50 18 10 00 00 00 03 00 02 67 5f 4f 50 82 55 81 bf 1f 00 4f 0e 0f 00 00 07 80 9c 8e 8f 28 1f 96 b9 a3 ff 00 01 02 03 04 05 14 07 38 39 3a 3b 3c 3d 3e 3f 0c 00 0f 08 00 00 00 00 00 10 0e 00 ff VGA parameters in BIOS for mode 24 50 18 10 00 10 00 03 00 02 67 5f 4f 50 82 55 81 bf 1f 00 4f 0d 0e 00 00 00 00 9c 8e 8f 28 1f 96 b9 a3 ff 00 01 02 03 04 05 14 07 38 39 3a 3b 3c 3d 3e 3f 0c 00 0f 08 00 00 00 00 00 10 0e 00 ff EGA/VGA parameters to be used for mode 24 50 18 10 00 10 00 03 00 02 67 5f 4f 50 82 55 81 bf 1f 00 4f 0d 0e 00 00 00 00 9c 8e 8f 28 1f 96 b9 a3 ff 00 01 02 03 04 05 14 07 38 39 3a 3b 3c 3d 3e 3f 0c 00 0f 08 00 00 00 00 00 10 0e 00 ff VESA: v2.0, 8192k memory, flags:0x1, mode table:0xc0226a22 (1000022) VESA: Matrox Graphics Inc. VESA: Matrox VESA: MGA-G200 VESA: 00 sc0: on isa0 sc0: fb0 kbd0 sc0: VGA color <16 virtual consoles, flags=0x0> sio0: irq maps: 0x41 0x51 0x41 0x41 sio0 at port 0x3f8-0x3ff irq 4 flags 0x10 on isa0 sio0: type 16550A sio1: irq maps: 0x41 0x49 0x41 0x41 sio1 at port 0x2f8-0x2ff irq 3 on isa0 sio1: type 16550A ppc: parallel port found at 0x378 ppc0: ECP SPP ECP+EPP SPP ppc0 at port 0x378-0x37f irq 7 on isa0 ppc0: SMC-like chipset (ECP/EPP/PS2/NIBBLE) in COMPATIBLE mode ppc0: FIFO with 16/16/7 bytes threshold plip: irq 7 plip0: on ppbus 0 bpf: lp0 attached lpt0: on ppbus 0 lpt0: Interrupt-driven port ppi0: on ppbus 0 mss_probe: no address supplied, try default 0x530 mss_detect error, busy still set (0xff) sb_probe: no address supplied, try defaults (0x220,0x240) device at 0x220 already attached as unit 1 BIOS Geometries: 0:00000000 0..0=1 cylinders, 0..0=1 heads, 1..0=0 sectors 1:00000000 0..0=1 cylinders, 0..0=1 heads, 1..0=0 sectors 2:00000000 0..0=1 cylinders, 0..0=1 heads, 1..0=0 sectors 3:00000000 0..0=1 cylinders, 0..0=1 heads, 1..0=0 sectors 4:00000000 0..0=1 cylinders, 0..0=1 heads, 1..0=0 sectors 5:00000000 0..0=1 cylinders, 0..0=1 heads, 1..0=0 sectors 6:00000000 0..0=1 cylinders, 0..0=1 heads, 1..0=0 sectors 7:00000000 0..0=1 cylinders, 0..0=1 heads, 1..0=0 sectors 0 accounted for Device configuration finished. IP packet filtering initialized, divert disabled, rule-based forwarding disabled, unlimited logging bpf: tun0 attached bpf: tun1 attached bpf: tun2 attached bpf: tun3 attached bpf: lo0 attached Considering FFS root f/s. changing root device to wd0s4a changing root device to wd0a start_init: trying /sbin/init wd0: DMA failure, DMA status 5 wd0: DMA failure, DMA status 5 wd0: DMA failure, DMA status 5 wd0: DMA failure, DMA status 5 wd2s1: type 0xa5, start 0, end = 4124735, size 4124736 : OK xl0: selecting BNC port, half duplex wd0: DMA failure, DMA status 5 wd0: DMA failure, DMA status 5 wd0: DMA failure, DMA status 5 wd0: DMA failure, DMA status 5 To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message