Re: Exposing ROM's though sysfs

Vojtech Pavlik
2004-07-30T19:46:39Z

On Fri, Jul 30, 2004 at 12:30:11PM -0700, Jon Smirl wrote:
> --- Matthew Wilcox <willy@debian.org> wrote:
>
> > My problem is with this is the following passage from PCI 2.2 and PCI
> > 2.3:
> >
> > In order to minimize the number of address decoders needed, a
> > device
> > may share a decoder between the Expansion ROM Base Address register
> > and
> > other Base Address registers. When expansion ROM decode is
> > enabled, ...
> >
> > On Fri, Jul 30, 2004 at 11:59:21AM -0700, Jon Smirl wrote:
> > > Alan Cox knows more about this, but I believe there is only one PCI
> > > card in existence that does this.
> >
> > Strange; he was the one who pointed out this requirement to me in the
> > first place and he hinted that many devices did this.
>
> Alan, what's the answer here?
>
> > Shutting off interrupts isn't nearly enough. Any other CPU could
> > access the device, or indeed any device capable of DMA could
>
> Another idea, it's ok to read the ROM when there is no device driver
> loaded. When the driver for one of these card loads it could trigger a
> copy of the ROM into RAM and cache it in a PCI structure.

I think this is a good idea.

It could either be done as a part of pci_enable_device(), or, which I
believe would be better, as a separate function, say
pci_copy_rom(char *dest), that the driver would call before
pci_enable_device().

Of course, in this case the ROM wouldn't be automatically exported
through sysfs, although the driver should be able to export it itself
rather easily.

--
Vojtech Pavlik
SuSE Labs, SuSE CR