Date: Thu, 22 Jul 1999 00:53:08 -0400 From: Christopher Masto <chris@netmonger.net> To: current@freebsd.org Cc: julian@whistle.com Subject: ide_pci.c DMA broken Message-ID: <19990722005308.A14871@netmonger.net>
next in thread | raw e-mail | index | archive | help
Revision 1.36 of sys/pci/ide_pci.c causes DMA problems and a panic on
my laptop:
[...]
Considering FFS root f/s.
changing root device to wd0s1a
Card inserted, slot 0
wd0s1: type 0xa5, start 63, end = 12398399, size 12398337 : OK
wd0s4: type 0xa0, start 12398400, end = 12670559, size 272160 : OK
wd0: DMA failure, DMA status 5<active>
wd0: DMA failure, DMA status 5<active>
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>
wd0: DMA failure, DMA status 5<active>
spec_getpages: preposterous offset 0xffffff1c19d3fc00
vm_fault: pager read error, pid 1 (\M^P\M^A\M-b)
wd0: DMA failure, DMA status 5<active>
Fatal trap 12: page fault while in kernel mode
fault virtual address = 0x768d2d
fault code = supervisor read, page not present
instruction pointer = 0x8:0x768d2d
stack pointer = 0x10:0xc63ddd04
frame pointer = 0x10:0xeb000000
code segment = base 0x0, limit 0xfffff, type 0x1b
= DPL 0, pres 1, def32 1, gran 1
processor eflags = interrupt enabled, resume, IOPL = 0
current process = 1 (\M^P\M^A\M-b)
interrupt mask = net tty bio cam
Unfortunately, I don't have a serial console attached and the dmesg
buffer is cut off after any ide_pci messages on the bad boot. I'll be
able to get that information tomorrow if the cause of this problem
isn't clear without it. I do have the full messages from a successful
boot (the only change was backing ide_pci.c to 1.35):
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: Thu Jul 22 00:22:46 EDT 1999
root@habanero.netmonger.net:/usr/local/usr-src/sys/compile/HABANERO
Calibrating clock(s) ... TSC clock: 298385463 Hz, i8254 clock: 1193041 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: Pentium/P55C (quarter-micron) (298.42-MHz 586-class CPU)
Origin = "GenuineIntel" Id = 0x582 Stepping = 2
Features=0x8001bf<FPU,VME,DE,PSE,TSC,MSR,MCE,CX8,MMX>
real memory = 67043328 (65472K bytes)
Physical memory chunk(s):
0x00001000 - 0x0009efff, 647168 bytes (158 pages)
0x00314000 - 0x03febfff, 63799296 bytes (15576 pages)
sio0: gdb debugging port
avail memory = 61865984 (60416K bytes)
Found BIOS32 Service Directory header at 0xc00f6d60
Entry = 0xfd7f0 (0xc00fd7f0) Rev = 0 Len = 1
PCI BIOS entry at 0x214
Other BIOS signatures found:
ACPI: 00000000
$PnP: 000f6d90
Preloaded elf kernel "kernel" at 0xc02fb000.
Intel Pentium detected, installing workaround for F00F bug
Math emulator present
Initializing PnP override table
Probing for PnP devices:
Trying Read_Port at 203
Trying Read_Port at 243
Trying Read_Port at 283
Trying Read_Port at 2c3
Trying Read_Port at 303
Trying Read_Port at 343
Trying Read_Port at 383
Trying Read_Port at 3c3
No Plug-n-Play devices were found
pci_open(1): mode 1 addr port (0x0cf8) is 0x80000058
pci_open(1a): mode1res=0x80000000 (0x80000000)
pci_cfgcheck: device 0 [class=060000] [hdr=00] is there (id=71008086)
npx0: <math processor> on motherboard
npx0: INT 16 interface
i586_bzero() bandwidth = 174155346 bytes/sec
bzero() bandwidth = 719942404 bytes/sec
apm0: <APM BIOS> on motherboard
apm: found APM BIOS version 1.2
pci_open(1): mode 1 addr port (0x0cf8) is 0x80003b54
pci_open(1a): mode1res=0x80000000 (0x80000000)
pci_cfgcheck: device 0 [class=060000] [hdr=00] is there (id=71008086)
pcib0: <Host to PCI bridge> on motherboard
found-> vendor=0x8086, dev=0x7100, revid=0x01
class=06-00-00, hdrtype=0x00, mfdev=0
subordinatebus=0 secondarybus=0
found-> vendor=0x8086, dev=0x7110, revid=0x02
class=06-80-00, hdrtype=0x00, mfdev=1
subordinatebus=0 secondarybus=0
found-> vendor=0x8086, dev=0x7111, revid=0x01
class=01-01-80, hdrtype=0x00, mfdev=0
subordinatebus=0 secondarybus=0
map[0]: type 4, range 32, base 0000fcd0, size 4
found-> vendor=0x8086, dev=0x7112, revid=0x01
class=0c-03-00, hdrtype=0x00, mfdev=0
subordinatebus=0 secondarybus=0
intpin=d, irq=9
map[0]: type 4, range 32, base 0000fce0, size 5
found-> vendor=0x8086, dev=0x7113, revid=0x02
class=06-80-00, hdrtype=0x00, mfdev=0
subordinatebus=0 secondarybus=0
found-> vendor=0x10c8, dev=0x0004, revid=0x01
class=03-00-00, hdrtype=0x00, mfdev=0
subordinatebus=0 secondarybus=0
intpin=a, irq=9
map[0]: type 3, range 32, base fd000000, size 24
map[1]: type 1, range 32, base fea00000, size 21
map[2]: type 1, range 32, base fed00000, size 20
found-> vendor=0x104d, dev=0x8009, revid=0x01
class=0c-00-00, hdrtype=0x00, mfdev=0
subordinatebus=0 secondarybus=0
intpin=a, irq=9
map[0]: type 1, range 32, base fecffc00, size 9
found-> vendor=0x1180, dev=0x0475, revid=0x00
class=06-07-00, hdrtype=0x02, mfdev=0
subordinatebus=0 secondarybus=0
intpin=a, irq=255
pci0: <PCI bus> on pcib0
isab0: <Intel 82371AB PCI to ISA bridge> at device 7.0 on pci0
ide_pci0: <Intel PIIX4 Bus-master IDE controller> at device 7.1 on pci0
intel_piix_status: primary master/slave sample = 3, master/slave recovery = 1
intel_piix_status: primary master fastDMAonly disabled, pre/post enabled,
intel_piix_status: IORDY sampling enabled,
intel_piix_status: fast PIO enabled
intel_piix_status: primary master/slave sample = 3, master/slave recovery = 1
intel_piix_status: primary slave fastDMAonly disabled, pre/post disabled,
intel_piix_status: IORDY sampling disabled,
intel_piix_status: fast PIO disabled
ide_pci: busmaster 0 status: 24 from port: 0000fcd2
ide_pci: ide0:0 has been configured for DMA by BIOS
intel_piix_status: secondary master/slave sample = 5, master/slave recovery = 4
intel_piix_status: secondary master fastDMAonly disabled, pre/post disabled,
intel_piix_status: IORDY sampling disabled,
intel_piix_status: fast PIO disabled
intel_piix_status: secondary master/slave sample = 5, master/slave recovery = 4
intel_piix_status: secondary slave fastDMAonly disabled, pre/post disabled,
intel_piix_status: IORDY sampling disabled,
intel_piix_status: fast PIO disabled
ide_pci: busmaster 1 status: 04 from port: 0000fcda
uhci0: <Intel 82371AB/EB (PIIX4) USB controller> irq 9 at device 7.2 on pci0
uhci0: USB version 1.0, chip rev. 1
usb0: <Intel 82371AB/EB (PIIX4) USB controller> on uhci0
uhub0: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub0: 2 ports with 2 removable, self powered
intpm0: <Intel 82371AB Power management controller> at device 7.3 on pci0
intpm0: I/O mapped 2180
intpm0: intr IRQ 9 enabled revision 0
using shared irq9.
intsmb0: <Intel PIIX4 SMBUS Interface>
smbus0: <System Management Bus> on intsmb0
smb0: <SMBus general purpose I/O> on smbus0
intpm0: PM I/O mapped 8000
vga-pci0: <NeoMagic NM2160 laptop SVGA controller> irq 9 at device 8.0 on pci0
pcic0: <Ricoh RL5C475 PCI-CardBus Brige> at device 10.0 on pci0
PCI Config space:
00: 04751180 02100007 06070000 00020000
10: 00000000 020000dc 00000000 00000000
20: 00000000 00000000 00000000 00000000
30: 00000000 00000000 00000000 008001ff
40: 8030104d 000003e1 00000000 00000000
50: 00000000 00000000 00000000 00000000
60: 00000000 00000000 00000000 00000000
70: 00000000 00000000 00000000 00000000
80: 00000000 00000000 04630463 00000000
90: 00000000 00000000 00000000 00000000
Cardbus Socket registers:
00: f000ff53: f000ff53: f000e2c3: f000ff53:
10: f000ff53: f000ff54: f000ac16: f000ff53:
ExCa registers:
00: fb 77 c5 86 c4 c0 c8 02 08 e8 40 91 88 fe 28 e0
10: 8a 66 03 38 e0 72 02 88 e0 bf 05 00 c4 5e 04 50
20: b4 02 cd 13 5b 73 0a 4f 74 1c 30 e4 cd 13 93 eb
30: eb 0f b6 c3 01 46 08 73 03 ff 46 0a d0 e3 00 5e
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 flags 0xa0ffa0ff on isa0
wdc0: unit 0 (wd0): <TOSHIBA MK6412MAT>, DMA, 32-bit, multi-block-16
wd0: 6194MB (12685680 sectors), 13424 cyls, 15 heads, 63 S/T, 512 B/S
wd0: ATA INQUIRE valid = 0007, dmamword = 0007, apio = 0003, udma = 0407
wdc1: not probed (disabled)
atkbdc0: <keyboard controller (i8042)> at port 0x60-0x6f on isa0
atkbd0: <AT Keyboard> irq 1 on atkbdc0
atkbd: the current kbd controller command byte 0047
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:0047
kbdc: TEST_AUX_PORT status:0000
kbdc: RESET_AUX return code:00fa
kbdc: RESET_AUX status:00aa
kbdc: RESET_AUX ID:0000
psm: status 00 02 64
psm: status 00 00 64
psm: status 00 03 64
psm: status 00 03 64
psm: status 10 00 64
psm: data 08 00 00
psm: data 08 00 00
psm: status 00 02 64
psm0: <PS/2 Mouse> irq 12 on atkbdc0
psm0: model Generic PS/2 mouse, device ID 0-00, 2 buttons
psm0: config:00000000, flags:00000000, packet size:3
psm0: syncmask:c0, syncbits:00
vga0: <Generic ISA VGA> at port 0x3b0-0x3df iomem 0xa0000-0xbffff on isa0
fb0: vga0, vga, type:VGA (5), flags:0x7007f
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:0 size:32k
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 0d 0e 00 00 05 f0 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
sc0: <System console> on isa0
sc0: VGA <16 virtual consoles, flags=0x200>
sc0: fb0 kbd0
sio0: irq maps: 0x449 0x459 0x449 0x449
sio0 at port 0x3f8-0x3ff irq 4 flags 0x90 on isa0
sio0: type 16550A
sio1: irq maps: 0x441 0x449 0x441 0x441
sio1 at port 0x2f8-0x2ff irq 3 on isa0
sio1: type 16550A
sio2: irq maps: 0x41 0x441 0x41 0x41
sio2 at port 0x3e8-0x3ef irq 10 on isa0
sio2: type 16550A
ppc: parallel port found at 0x378
ppc: chipset forced to generic
ppc0: ECP SPP ECP+EPP SPP
ppc0 at port 0x378-0x37f irq 7 flags 0x40 on isa0
ppc0: SMC-like chipset (ECP/EPP/PS2/NIBBLE) in COMPATIBLE mode
ppc0: FIFO with 16/16/8 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)
pcm0 at port 0x220 irq 5 drq 1 on isa0
ESS1868 (rev 11)
device combination doesn't support shared irq3
intr_connect(irq3) failed, result=-1
device combination doesn't support shared irq4
intr_connect(irq4) failed, result=-1
device combination doesn't support shared irq5
intr_connect(irq5) failed, result=-1
device combination doesn't support shared irq7
intr_connect(irq7) failed, result=-1
device combination doesn't support shared irq9
intr_connect(irq9) failed, result=-1
device combination doesn't support shared irq10
intr_connect(irq10) failed, result=-1
device combination doesn't support shared irq12
intr_connect(irq12) failed, result=-1
device combination doesn't support shared irq14
intr_connect(irq14) failed, result=-1
PC-Card Intel 82365 (5 mem & 2 I/O windows)
pcic: controller irq 11
Initializing PC-card drivers: ep
BIOS Geometries:
0:0345ef3f 0..837=838 cylinders, 0..239=240 heads, 1..63=63 sectors
0 accounted for
Device configuration finished.
Considering MFS root f/s.
No MFS image available as root f/s.
IP packet filtering initialized, divert disabled, rule-based forwarding enabled, logging limited to 100 packets/entry
DUMMYNET initialized (990504)
bpf: tun0 attached
bpf: sl0 attached
bpf: ppp0 attached
new masks: bio 40084240, tty 4003149a, net 4007149a
bpf: lo0 attached
Considering FFS root f/s.
changing root device to wd0s1a
Card inserted, slot 0
wd0s1: type 0xa5, start 63, end = 12398399, size 12398337 : OK
wd0s4: type 0xa0, start 12398400, end = 12670559, size 272160 : OK
start_init: trying /sbin/init
And here's the config file:
machine i386
cpu I586_CPU
ident HABANERO
maxusers 64
makeoptions DEBUG=-g #Build kernel with gdb(1) debug symbols
options MATH_EMULATE #Support for x87 emulation
options INET #InterNETworking
options FFS #Berkeley Fast Filesystem
options FFS_ROOT #FFS usable as root device [keep this!]
options MFS #Memory Filesystem
options MFS_ROOT #MFS usable as root device, "MFS" req'ed
options NFS #Network Filesystem
options NFS_ROOT #NFS usable as root device, "NFS" req'ed
options MSDOSFS #MSDOS Filesystem
options CD9660 #ISO 9660 Filesystem
options CD9660_ROOT #CD-ROM usable as root. "CD9660" req'ed
options PROCFS #Process filesystem
options COMPAT_43 #Compatible with BSD 4.3 [KEEP THIS!]
options SCSI_DELAY=15000 #Be pessimistic about Joe SCSI device
options UCONSOLE #Allow users to grab the console
options USERCONFIG #boot -c editor
options VISUAL_USERCONFIG #visual boot -c editor
controller isa0
controller pnp0 # PnP support for ISA
controller pci0
#controller pccard0
controller fdc0 at isa? port IO_FD1 irq 6 drq 2
disk fd0 at fdc0 drive 0
#controller ata0
#device atadisk0 # ATA disk drives
#device atapicd0 # ATAPI CDROM drives
#device atapist0 # ATAPI tape drives
controller wdc0 at isa? port IO_WD1 irq 14 flags 0xa0ffa0ff
disk wd0 at wdc0 drive 0
disk wd1 at wdc0 drive 1
controller wdc1 at isa? disable port IO_WD2 irq 15
disk wd2 at wdc1 drive 0
disk wd3 at wdc1 drive 1
# atkbdc0 controls both the keyboard and the PS/2 mouse
controller atkbdc0 at isa? port IO_KBD
device atkbd0 at atkbdc? irq 1
device psm0 at atkbdc? irq 12
# Options for psm:
#options PSM_HOOKAPM
#options PSM_RESETAFTERSUSPEND
device vga0 at isa? port ? conflicts
# splash screen/screen saver
pseudo-device splash
# syscons is the default console driver, resembling an SCO console
device sc0 at isa?
device npx0 at nexus? port IO_NPX irq 13
device apm0 at nexus? flags 0x20 # Advanced Power Management
device sio0 at isa? port IO_COM1 flags 0x90 irq 4
device sio1 at isa? port IO_COM2 irq 3
device sio2 at isa? port 0x3e8 irq 10
# Parallel port
device ppc0 at isa? port? flags 0x40 irq 7
controller ppbus0
device lpt0 at ppbus?
device plip0 at ppbus?
device ppi0 at ppbus?
device ep0 at isa? port 0x300 irq 10
# SMB Bus
controller smbus0
controller intpm0
controller alpm0
device smb0 at smbus?
# PCCARD
controller card0
device pcic0 at card?
#device pcic0
options PCIC_RESUME_RESET
# Sound
device pcm0 at isa? port ? irq 5 drq 1 flags 0x0
#controller snd0
#device sb0 at isa? port 0x220 irq 5 drq 1
#device sbxvi0 at isa? drq 5
#device sbmidi0 at isa? port 0x330
#device awe0 at isa? port 0x620
# USB
controller uhci0
controller ohci0
controller usb0
#controller umass0
device ums0
device ukbd0
device ulpt0
device uhid0
device ugen0
pseudo-device loop
pseudo-device ether
pseudo-device sl 1
pseudo-device ppp 1
pseudo-device tun 1
pseudo-device pty 32
pseudo-device gzip # Exec gzipped a.out's
pseudo-device snp 3
# KTRACE enables the system-call tracing facility ktrace(2).
# This adds 4 KB bloat to your kernel, and slightly increases
# the costs of each syscall.
options KTRACE #kernel tracing
# This provides support for System V shared memory and message queues.
#
options SYSVSHM
options SYSVMSG
options SYSVSEM
# The `bpfilter' pseudo-device enables the Berkeley Packet Filter. Be
# aware of the legal and administrative consequences of enabling this
# option. The number of devices determines the maximum number of
# simultaneous BPF clients programs runnable.
pseudo-device bpf 4 #Berkeley packet filter
#options NETATALK
options MSGBUF_SIZE=16384
options DDB
#options DDB_UNATTENDED
options BREAK_TO_DEBUGGER
options SOFTUPDATES
options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPFIREWALL_FORWARD
options IPFIREWALL_VERBOSE_LIMIT=100
options ICMP_BANDLIM
options DUMMYNET
options USER_LDT
#options VM86
#options VESA
options P1003_1B
options _KPOSIX_PRIORITY_SCHEDULING
options _KPOSIX_VERSION=199309L
I really don't know crap about what's going on in that part of the
kernel, but I'll do whatever I can to help track this down. Or
perhaps it will be intuitively obvious from this report.
--
Christopher Masto Senior Network Monkey NetMonger Communications
chris@netmonger.net info@netmonger.net http://www.netmonger.net
Free yourself, free your machine, free the daemon -- http://www.freebsd.org/
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?19990722005308.A14871>
