Re: Standard driver call to enable/disable PCI ROM
From: Jon Smirl
Date: Tue Aug 19 2003 - 17:15:02 EST
--- Russell King <rmk@xxxxxxxxxxxxxxxx> wrote:
> On Tue, Aug 19, 2003 at 02:17:35PM -0700, David S. Miller wrote:
> > On Tue, 19 Aug 2003 21:52:46 +0100
> > Russell King <rmk@xxxxxxxxxxxxxxxx> wrote:
> > > new |= res->flags & PCI_ROM_ADDRESS_ENABLE;
> > > reg = dev->rom_base_reg;
> >
> > A word of caution, please do not enable PCI ROMs lightly.
> >
> > There are many devices which stop responding to MEM and IO
> > space once their ROM is enabled, Qlogic-ISP chips are one
> > such device and there are several others.
I'm doing this in the device driver for the device, so I know it is ok to do.
> However, there are device drivers which want to access the ROM for
> whatever reason, and we should provide a standard way to allow
> drivers to enable / disable ROM access for architecture portability
> reasons (so that VGA drivers can find tables in their ROMs for
> instance.)
In my case I need access to tables in the ROM.
> Since this is critical to some devices, maybe their drivers should
> consider ensuring that the ROM resources are disabled upon driver
> initialisation of the device?
My driver can be load/unloaded so I need to turn the ROM on each
time to get to the tables. I also don't like calling release_resource()
directly from my driver since that looks like an internal PCI driver call.
As to pcibios_resource_to_bus()....
I called pci_assign_resource() which calls pci_update_resource()
which calls pcibios_resource_to_bus().
I see now that pci_assign_resource() will return with the ROM
enabled. I believe I have also hit cases where ROM was assigned
an address but not enabled. Do I still need to call
pcibios_resource_to_bus() if I am just enabling the ROM?
Do I need to call pcibios_resource_to_bus() when disabling the ROM?
=====
Jon Smirl
jonsmirl@xxxxxxxxx
__________________________________
Do you Yahoo!?
Yahoo! SiteBuilder - Free, easy-to-use web site design software
http://sitebuilder.yahoo.com
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/