[coreboot] option roms in SeaBIOS and Coreboot

Kevin O'Connor kevin at koconnor.net
Wed Nov 26 17:39:13 CET 2008


On Wed, Nov 26, 2008 at 07:49:23AM -0800, ron minnich wrote:
> On Tue, Nov 25, 2008 at 9:40 PM, Kevin O'Connor <kevin at koconnor.net> wrote:
> > PCI cards aren't required to support option rom BAR accesses at the
> > same time as regular BAR accesses.  So, one can't leave the option rom
> > mapped while accessing the other mapped areas.
> 
> Not sure what this means, but the explanation is simpler.

I didn't do a good job of explaining the restriction.  If one googles
for "PCI Local Bus Specification v3.0 (2004-02-03).pdf" you'll find in
section 6.2.5.2:

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, the decoder is used for accesses to the expansion ROM and
device independent software must not access the device through any
other Base Address registers.

>The coreboot
> code maps in the option rom by enabling the register, runs the ROM,
> and disables it.
> 
> Why disable it? Because we map all option ROMs at the same address --
> see the code. What if there is more than one?

That is indeed an even simpler reason.

Thanks,
-Kevin




More information about the coreboot mailing list