On Tue, Nov 25, 2008 at 9:40 PM, Kevin O'Connor kevin@koconnor.net wrote:
On Tue, Nov 25, 2008 at 11:38:29AM +0100, Rudolf Marek wrote:
Note that your patch doesn't seem to disable the mapping after the copy. This is definitely necessary. Maybe add something like:
pci_config_writel(bdf, PCI_ROM_ADDRESS, orig & ~PCI_ROM_ADDRESS_ENABLE);
Why we need it to disable? Just curious. Coreboot has assigned the address to it so we are sure we won't be hit by something else.
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. 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?
ron