Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 6 Dec 2000 17:12:54 -0600 (CST)
From:      Kevin Day <toasty@temphost.dragondata.com>
To:        bugs@freebsd.org, sos@freebsd.org
Subject:   New ATA code in 4.1.1+ breaks ServerWorks sym
Message-ID:  <200012062312.RAA64600@temphost.dragondata.com>

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


After upgrading my Proliant ML530 server from 4.1 to 4.1.1, i got a panic on
boot in the sym driver, saying "Unable to allocate IRQ resource", then a
kernel trap.

I narrowed down the breakage to a specific set of commits:

 Edit src/sys/dev/ata/ata-all.c
  Add delta 1.50.2.6 2000.08.22.08.41.28 sos
 Edit src/sys/dev/ata/ata-all.h
  Add delta 1.26.2.2 2000.08.22.08.41.29 sos
 Edit src/sys/dev/ata/ata-disk.c
  Add delta 1.60.2.6 2000.08.22.08.41.29 sos
 Edit src/sys/dev/ata/ata-dma.c
  Add delta 1.35.2.4 2000.08.22.08.41.29 sos
 Edit src/sys/dev/ata/atapi-cd.c
  Add delta 1.48.2.4 2000.08.22.08.41.29 sos
 Edit src/sys/dev/ata/atapi-cd.h
  Add delta 1.15.2.3 2000.08.22.08.41.29 sos

MFC:

Update with latest fixes from -current.

ATA100 support.
New improved probe.
Multisector setup more restrictive ata-disk.
New error recovery in ata-disk.
Remove sequence checks in atapi-cd


Full boot message before this commit:

Copyright (c) 1992-2000 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.1-RELEASE #0: Thu Jul 27 04:44:16 GMT 2000
    root@usw4.freebsd.org:/usr/src/sys/compile/GENERIC
Timecounter "i8254"  frequency 1193182 Hz
CPU: Pentium III/Pentium III Xeon/Celeron (863.93-MHz 686-class CPU)
  Origin = "GenuineIntel"  Id = 0x683  Stepping = 3
  Features=0x383f9ff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,MMX,FXSR,XMM>
real memory  = 1073725440 (1048560K bytes)
avail memory = 1040642048 (1016252K bytes)
Pentium Pro MTRR support enabled
md0: Malloc disk
npx0: <math processor> on motherboard
npx0: INT 16 interface
pcib0: <RCC LE host to PCI bridge> on motherboard
pci0: <PCI bus> on pcib0
pci0: <unknown card> (vendor=0x0e11, dev=0xa0f0) at 3.0
pci0: <ATI Mach64-GV graphics accelerator> at 5.0
isab0: <PCI to ISA bridge (vendor=1166 device=0200)> at device 15.0 on pci0
isa0: <ISA bus> on isab0
atapci0: <Generic PCI ATA controller> port 0x2400-0x240f at device 15.1 on pci0
ata0: at 0x1f0 irq 14 on atapci0
pcib2: <RCC LE host to PCI bridge> on motherboard
pci2: <PCI bus> on pcib2
sym0: <896> port 0x3000-0x30ff mem 0xc6bfc000-0xc6bfdfff,0xc6bffc00-0xc6bfffff irq 15 at device 5.0 on pci2
sym0: Symbios NVRAM, ID 7, Fast-40, LVD, parity checking
sym0: open drain IRQ line driver, using on-chip SRAM
sym0: using LOAD/STORE-based firmware.
sym0: handling phase mismatch from SCRIPTS.
sym1: <896> port 0x3400-0x34ff mem 0xc6bf8000-0xc6bf9fff,0xc6bfbc00-0xc6bfbfff irq 15 at device 5.1 on pci2
sym1: Symbios NVRAM, ID 7, Fast-40, SE, parity checking
sym1: open drain IRQ line driver, using on-chip SRAM
sym1: using LOAD/STORE-based firmware.
sym1: handling phase mismatch from SCRIPTS.
pcib255: <RCC LE host to PCI bridge> on motherboard
pci255: <PCI bus> on pcib255
pcib5: <RCC LE host to PCI bridge> on motherboard
pci5: <PCI bus> on pcib5
sym2: <896> port 0x4000-0x40ff mem 0xc6ffc000-0xc6ffdfff,0xc6fffc00-0xc6ffffff irq 10 at device 4.0 on pci5
sym2: No NVRAM, ID 7, Fast-40, LVD, parity checking
sym3: <896> port 0x4400-0x44ff mem 0xc6ff8000-0xc6ff9fff,0xc6ffbc00-0xc6ffbfff irq 11 at device 4.1 on pci5
sym3: No NVRAM, ID 7, Fast-40, LVD, parity checking
pci5: <unknown card> (vendor=0x120e, dev=0x0201) at 8.0
fxp0: <Intel Pro 10/100B/100+ Ethernet> port 0x4880-0x48bf mem 0xc6c00000-0xc6cfffff,0xc6dff000-0xc6dfffff irq 5 at device 9.0 on pc
i5
fxp0: Ethernet address 00:50:8b:af:06:b8
eisa0: <EISA bus> on motherboard
mainboard0: <CPQ0712 (System Board)> on eisa0 slot 0
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
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: cannot reserve I/O port range
ata0-slave: ata_command: timeout waiting for intr
ata0-slave: identify failed
acd0: CDROM <Compaq CRD-8402B> at ata0-master using PIO4



Relevant boot messages after this commit: (hand typed, port/memory regions omitted)

pcib0: <RCC LE host to PCI bridge> on motherboard
pci0: <PCI bus> on pcib0
pci0: <unknown card> (vendor=0x0e11, dev=0xa0f0) at 3.0
pci0: <ATI Mach64-GV graphics accelerator> at 5.0
fxp0: <Intel Pro 10/100B/100+ Ethernet> port 0x2400-0x243f mem=0xc800000-0xc8fffff,0xc69fd000-0xc69fdfff irq5 at device 8.0 on pci0
fxp0: Ethernet address ...
isab0: <PCI to ISA bridge (vendor=1166 device=0200)> at device 15.0 on pci0
isa0: <ISA bus> on isab0
atapci0: <Generic PCI ATA controller> port 0x2440-0x244f at device 15.1 on pci0
ata0: at 0x1f0 irq14 on atapci0
ata1: at 0x170 irq15 on atapci0
pcib2: <RCC LE host to PCI bridge> on motherboard
pci2: <PCI bus> on pcib2
pci2: <unknown card> (vendor=0x1148, dev0x4300) at 6.0 irq 10
pcib255: <RCC LE host to PCI bridge> on motherboard
pci255: <PCI bus> on pcib255
pcib5: <RCC LE host to PCI bridge> on motherboard
pci5: <PCI bux> on pcib5
sym0: <896> port .... mem .... irq 11 at device 4.0 on pci5
sym0: No NVRAM, ID 7, Fast-40, LVD, parity checking
sym1: <896> port .... mem .... irq 15 at device 4.1 on pci5
sym1: failed to allocate IRQ resource


Fatal trap 12: page fault while in kernel mode
fault virtual address   = 0x0
fault code              = supervisor read, page not present
... (omitted) ...
panic: page fault
Uptime: 0s


This motherboard only has one IDE channel... at least, only one connector,
and it's only designed to go to the CD-ROM. Everything else is SCSI.
4.1-RELEASE only saw the primary channel. But after that commit, it sees two
channels. I don't know if this is correct or not, but the side effect is
that the secondary IDE channel uses IRQ 15, which sym1 wants to use, and
somehow can't share. 

Sym0 was sucessfully moved from 15 to 11, to avoid sharing i'm guessing...
why didn't sym1 get moved, if that's the case?

In any case, this breaks GENERIC on 4.1.1 and higher on Proliant ML series
servers... Can someone take a look at this? I'm willing to help how I can.

-- Kevin



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




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