PCI Weirdness found (sort of)

Jonathan Corbet (corbet@atd.ucar.edu)
Thu, 30 Jul 1998 17:01:18 -0600

About every third kernel release I've been sending in a note saying that
I've not been able to boot a development kernel since the 90's. I got a
couple of responses, including one from Leonard since I had pointed a
(mistaken) finger toward the BusLogic controller, but no solutions.

[The problem was all kinds of weird SCSI errors and timeouts shortly after
the controller was initialized.]

So I decided to get off my lazy butt and try to figure out what was going
on. Slogging through the old kernels showed me that 2.1.95 brought in the
problem. Looking at the patch, I narrowed things down to this bit of new
code in arch/i386/kernel/bios32.c:

if (has_io && !(cmd & PCI_COMMAND_IO)) {
printk("PCI: Enabling I/O for device %02x:%02x\n",
dev->bus->number, dev->devfn);
pci_write_config_word(dev, PCI_COMMAND, cmd);

This stuff was new; before 2.1.95 it used to content itself with griping in
this situation. Since my system does the above printk, I figured that the
problem might be here. So I commented these lines, rebuilt, and rebooted.
It worked...this is the first time I've been able to run a kernel above
2.1.94. I'm happy about that.

Now, I obviously don't recommend that this change go into the kernel. The
fact is that I don't know what the hell I'm doing; I know nothing about PCI
and how it works. But there's clearly something in my setup that doesn't
like having PCI_COMMAND_IO sent to it. I would sure like to track it down
so that this problem can be squashed, but I don't know how to go about it.
Any suggestions would be appreciated.

(For what it's worth, I have an Intel VS440FX motherboard, American
Megatrends BIOS 1.00.06.CS1).



Jonathan Corbet
National Center for Atmospheric Research, Atmospheric Technology Division
corbet@atd.ucar.edu http://www.atd.ucar.edu/rdp/jmc.html

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.altern.org/andrebalsa/doc/lkml-faq.html