On Mon, 2005-08-29 at 21:20 -0700, David S. Miller wrote: > From: Linus Torvalds <[EMAIL PROTECTED]> > Date: Mon, 29 Aug 2005 21:09:24 -0700 (PDT) > > > So 2.6.13 is being "safe". It allocates the space for the ROM in the > > resource tables, but it neither enables it nor does it write the > > (disabled) address out to the device, since both of those actions have > > been shown to break on PC's. And sadly (or happily, depends on your > > viewpoint), PC's have a _much_ wider range of hardware, so they are the > > ones we have to work around. > > Actually, I can tell you that it is a known fact that Qlogic ISP > PCI cards will not respond to I/O and MEM space when you enable > the ROM. And this behavior exists in quite a few other PCI parts > as well.
Yes, including Matrox cards. > So I think the kernel, by not enabling the ROM, is doing the > right thing here. It is, the problem is that not only it doesn't enable it, but it also doesn't write the resource to the BAR, which triggers a bug in pci_map_rom which then enables the decoding but doesn't update the BAR with the new address neither. Note also the, imho totally broken, code in pci_map_rom_copy() which is supposed to keep a cached copy of the ROM in memory specifically for these cards to have an easier access afterward (or for sysfs rom file access to work). I think that code should have a pointer in pci_dev for the cache instead of stuffing a kernel virtual address in the middle of the resouce tree. Ben. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/