Skip site navigation (1)Skip section navigation (2)
Date:      12 May 1999 15:37:40 +0200
From:      Dag-Erling Smorgrav <des@yes.no>
To:        current@freebsd.org
Subject:   DMA problems with IBM DeskStar drive
Message-ID:  <xzpn1zas923.fsf@des.follo.net>

next in thread | raw e-mail | index | archive | help
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): <IBM-DTTA-371010>, 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): <ST32122A>, 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): <IBM-DTTA-371010>, 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): <ST32122A>, 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<active>
wd0: DMA failure, DMA status 5<active>
wd0: DMA failure, DMA status 5<active>
wd0: DMA failure, DMA status 5<active>
wd2s1: type 0xa5, start 0, end = 4124735, size 4124736 : OK
xl0: selecting BNC port, half duplex
wd0: DMA failure, DMA status 5<active>
wd0: DMA failure, DMA status 5<active>
wd0: DMA failure, DMA status 5<active>
wd0: DMA failure, DMA status 5<active>

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<FPU,VME,DE,PSE,TSC,MSR,MCE,CX8,PGE,MMX>
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 <Vibra16X> 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: <math processor> on motherboard
npx0: INT 16 interface
i586_bzero() bandwidth = 1400812397 bytes/sec
bzero() bandwidth = 132380195 bytes/sec
apm0: <APM BIOS> on motherboard
apm: found APM BIOS version 1.2
pcib0: <PCI host bus adapter> 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: <PCI bus> on pcib0
chip0: <AcerLabs M1541 (Aladdin-V) PCI host bridge> at device 0.0 on pci0
pcib1: <AcerLabs M5243 PCI-PCI bridge> 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: <PCI bus> on pcib1
chip1: <AcerLabs M15x3 Power Management Unit> at device 3.0 on pci0
isab0: <AcerLabs M1533 portable PCI-ISA bridge> 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: <Acer Aladdin IV/V (M5229) Bus-master IDE controller> 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: <ISA bus> on motherboard
fdc0: <NEC 72065B or clone> 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): <IBM-DTTA-371010>, 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): <ST32122A>, 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: <keyboard controller (i8042)> at port 0x60 on isa0
atkbd0: <AT Keyboard> 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: <Generic ISA VGA> 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: <System console> 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: <PLIP network interface> on ppbus 0
bpf: lp0 attached
lpt0: <generic printer> on ppbus 0
lpt0: Interrupt-driven port
ppi0: <generic parallel i/o> 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<active>
wd0: DMA failure, DMA status 5<active>
wd0: DMA failure, DMA status 5<active>
wd0: DMA failure, DMA status 5<active>
wd2s1: type 0xa5, start 0, end = 4124735, size 4124736 : OK
xl0: selecting BNC port, half duplex
wd0: DMA failure, DMA status 5<active>
wd0: DMA failure, DMA status 5<active>
wd0: DMA failure, DMA status 5<active>
wd0: DMA failure, DMA status 5<active>


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




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