Re: PCI Weirdness found (sort of)

Gabriel Paubert (
Fri, 31 Jul 1998 10:55:19 +0200 (METDST)

On Thu, 30 Jul 1998, Jonathan Corbet wrote:

> 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);
> cmd |= PCI_COMMAND_IO;
> pci_write_config_word(dev, PCI_COMMAND, cmd);
> }

It looks like an address conflict on PCI (i.e. several devices at the
same address), maybe your BIOS does not assign I/O addresses correctly ?

Can you please send the output of lspci -vvx. And also what was this
message exactly (device ??:??).

> 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.

PCI_COMMAND_IO enables the response of a device to certain types of bus
cycles. But if the registers describing to which addresses the devices
responds are set up incorrectly, you may end up with a badly thrashed
system. It seems to be your case.

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

Can you get a BIOS upgrade (it might very well be a BIOS bug).


To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
Please read the FAQ at