4.0-CURRENT hangs in ex_isa_identify() (was: current hangs during boot if ET/5025-16 card is installed)

2000-03-03 Thread Don Lewis

On Mar 2,  4:09am, Don Lewis wrote:
} Subject: current hangs during boot if ET/5025-16 card is installed
} 
} I happened to try to install 4.0-CURRENT on a box that has an
} Emerging Technologies ET/5025-16 ISA card installed and found that
} the kernel wedges during boot.  It hangs hard and won't respond to
} anything except the reset switch.  The motherboard is an Asus P3B-F
} and I believe I have the BIOS propery configured with the correct
} settings to match the IRQ and memory addresses used by the ET card.
} 
} I also discovered that older versions of -CURRENT will boot correctly
} on this box.  I did a binary search on the -CURRENT snapshots and found
} that the floppies from the January 12th and earlier snapshots boot,
} while the floppies from the January 14th and later snapshots hang.

By adding a whole bunch of printf statements to the code, I was able
to track this problem to ex_isa_identify().  The ET card is jumpered
to I/O address 0x240, and it appears to consume 32 bytes starting at
this address.  When the ioport loop in ex_isa_identify() gets to 0x250,
look_for_card() appears to wedge.  I don't see how that can happen
unless the CPU gets stuck in inb().  I haven't looked at ISA hardware
in ages, can an ISA I/O read really hang forever?

What really sucks is that there is no way to disable the ex driver
at boot time, so the standard install floppies can no longer be used
to boot a box that contains one of these ET cards.

Should the ex driver be doing all this stuff at identify time, or was
the older method of doing this at probe time more correct?


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message



Re: 4.0-CURRENT hangs in ex_isa_identify() (was: current hangs during boot if ET/5025-16 card is installed)

2000-03-03 Thread Don Lewis

On Mar 3, 11:16am, "Matthew N. Dodd" wrote:
} Subject: Re: 4.0-CURRENT hangs in ex_isa_identify() (was: current hangs du
} On Fri, 3 Mar 2000, Don Lewis wrote:
}  What really sucks is that there is no way to disable the ex driver
}  at boot time, so the standard install floppies can no longer be used
}  to boot a box that contains one of these ET cards.
}  
}  Should the ex driver be doing all this stuff at identify time, or was
}  the older method of doing this at probe time more correct?
} 
} Thats really the only place for such a routine.  What needs to happen is
} for if_ex to a little more selective about which addresses it
} probes.  While it is using a non-destructive probe (see
} look_for_card()) it should also use the resource manager to check and see
} if a port is assigned before it does anything else.

Unfortunately the GENERIC kernel doesn't have a driver that could claim
the ET card.  Also ex_isa_identify() is called before the legacy ISA
probes are done.

IMHO, the best way to fix this would be for the dual-mode PnP/legacy
drivers to identify any cards in PnP mode, then do legacy ISA probes
using the old hard-wired port numbers, where legacy ISA probes can
be controlled by userconfig.  This is really ugly, but then we all
agree that ISA sucks.


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message



current hangs during boot if ET/5025-16 card is installed

2000-03-02 Thread Don Lewis


I happened to try to install 4.0-CURRENT on a box that has an
Emerging Technologies ET/5025-16 ISA card installed and found that
the kernel wedges during boot.  It hangs hard and won't respond to
anything except the reset switch.  The motherboard is an Asus P3B-F
and I believe I have the BIOS propery configured with the correct
settings to match the IRQ and memory addresses used by the ET card.

I also discovered that older versions of -CURRENT will boot correctly
on this box.  I did a binary search on the -CURRENT snapshots and found
that the floppies from the January 12th and earlier snapshots boot,
while the floppies from the January 14th and later snapshots hang.

Here's the dmesg.boot file that I get by doing a "boot -v" with
using late January kernel with the offending card removed.  With
the card installed, the boot process gets as far as
Trying Read_Port at 3c3
but doesn't get to
isa_probe_children: disabling PnP devices


drtype=0x00, mfdev=0
subordinatebus=0secondarybus=0
map[20]: type 1, range 32, base d800, size  4
found- vendor=0x8086, dev=0x7112, revid=0x01
class=0c-03-00, hdrtype=0x00, mfdev=0
subordinatebus=0secondarybus=0
intpin=d, irq=255
map[20]: type 1, range 32, base d400, size  5
found- vendor=0x8086, dev=0x7113, revid=0x02
class=06-80-00, hdrtype=0x00, mfdev=0
subordinatebus=0secondarybus=0
map[90]: type 1, range 32, base e800, size  4
found- vendor=0x8086, dev=0x1229, revid=0x08
class=02-00-00, hdrtype=0x00, mfdev=0
subordinatebus=0secondarybus=0
intpin=a, irq=9
map[10]: type 1, range 32, base e180, size 12
map[14]: type 1, range 32, base d000, size  6
map[18]: type 1, range 32, base e100, size 20
found- vendor=0x8086, dev=0x1229, revid=0x08
class=02-00-00, hdrtype=0x00, mfdev=0
subordinatebus=0secondarybus=0
intpin=a, irq=15
map[10]: type 1, range 32, base e080, size 12
map[14]: type 1, range 32, base b800, size  6
map[18]: type 1, range 32, base e000, size 20
found- vendor=0x8086, dev=0x1229, revid=0x08
class=02-00-00, hdrtype=0x00, mfdev=0
subordinatebus=0secondarybus=0
intpin=a, irq=10
map[10]: type 1, range 32, base df80, size 12
map[14]: type 1, range 32, base b400, size  6
map[18]: type 1, range 32, base df00, size 20
found- vendor=0x8086, dev=0x1229, revid=0x08
class=02-00-00, hdrtype=0x00, mfdev=0
subordinatebus=0secondarybus=0
intpin=a, irq=11
map[10]: type 1, range 32, base de80, size 12
map[14]: type 1, range 32, base b000, size  6
map[18]: type 1, range 32, base de00, size 20
pci0: PCI bus on pcib0
pcib1: Intel 82443BX (440 BX) PCI-PCI (AGP) bridge at device 1.0 on pci0
found- vendor=0x104c, dev=0x3d07, revid=0x01
class=03-00-00, hdrtype=0x00, mfdev=0
subordinatebus=0secondarybus=0
intpin=a, irq=11
map[10]: type 1, range 32, base e300, size 17
map[14]: type 1, range 32, base e280, size 23
map[18]: type 1, range 32, base e200, size 23
pci1: PCI bus on pcib1
vga-pci0: VGA-compatible display device mem 
0xe200-0xe27f,0xe280-0xe2ff,0xe300-0xe301 irq 11 at device 0.0 
on pci1
isab0: Intel 82371AB PCI to ISA bridge at device 4.0 on pci0
isa0: ISA bus on isab0
ata-pci0: Intel PIIX4 ATA-33 controller port 0xd800-0xd80f at device 4.1 on pci0
ata-pci0: Busmastering DMA supported
ata0: iobase=0x01f0 altiobase=0x03f6 bmaddr=0xd800
ata0: mask=03 status0=50 status1=50
ata0: mask=03 status0=50 status1=00
ata0: devices = 0x9
ata0 at 0x01f0 irq 14 on ata-pci0
ata1: iobase=0x0170 altiobase=0x0376 bmaddr=0xd808
ata1: mask=00 status0=ff status1=ff
pci0: Intel 82371AB/EB (PIIX4) USB controller (vendor=0x8086, dev=0x7112) at 4.2
chip1: Intel 82371AB Power management controller port 0xe800-0xe80f at device 4.3 on 
pci0
fxp0: Intel EtherExpress Pro 10/100B Ethernet port 0xd000-0xd03f mem 
0xe100-0xe10f,0xe180-0xe1800fff irq 9 at device 9.0 on pci0
fxp0: Ethernet address 00:90:27:c6:bb:b8
bpf: fxp0 attached
fxp1: Intel EtherExpress Pro 10/100B Ethernet port 0xb800-0xb83f mem 
0xe000-0xe00f,0xe080-0xe0800fff irq 15 at device 10.0 on pci0
fxp1: Ethernet address 00:90:27:c6:bc:b9
bpf: fxp1 attached
fxp2: Intel EtherExpress Pro 10/100B Ethernet port 0xb400-0xb43f mem 
0xdf00-0xdf0f,0xdf80-0xdf800fff irq 10 at device 11.0 on pci0
fxp2: Ethernet address 00:90:27:c6:bc:c0
bpf: fxp2 attached
fxp3: Intel EtherExpress Pro 10/100B Ethernet port 0xb000-0xb03f mem 
0xde00-0xde0f,0xde80-0xde800fff irq 11 at device 12.0 on pci0
fxp3: Ethernet address 00:90:27:c6:a6:12
bpf: fxp3 attached
Trying Read_Port at 203
Trying Read_Port at 243
Trying Read_Port at 283
Trying Read_Port at 2c3