[coreboot] PCI bus mastering

Jordan Crouse jordan.crouse at amd.com
Fri May 9 17:27:00 CEST 2008

On 09/05/08 16:22 +0200, Peter Stuge wrote:
> On Fri, May 09, 2008 at 05:06:37PM +0300, Andrei Birjukov wrote:
> > 1. With DBE61, we had a dummy RTL8139 PCI driver under 
> > src/drivers/pci/rtl8139 that did some chip initialization.
> > I believe that is not suitable for the mainline.
> No? I think I like this option the best, at least for v2. But please
> pick a name for the driver that more clearly shows what it does or at
> least that it is local for the board.
> > 2. Another option would be to globally force the PCI_COMMAND_MASTER
> > in pci_probe_dev(), if the base class is PCI_BASE_CLASS_NETWORK.
> I don't like doing this unconditionally. Maybe add an option?

The first rule of PCI is that you should never trust a PCI device.
There is a universe of broken boards, either by fate or by design.
Nowhere is this more true then in the commodity world of the NIC,
where you can plug in any random thing assuming you have a PCI
slot and a few bucks in your pocket.  

Thats why leaving things like enabling bus master is better left to
the device driver, which we presume knows best.  Thing is, not all
drivers know best or we wouldn't have this problem.

I like the idea of an option - those of us with boards that we feel more
confident about (because they have a built in NIC and/or don't have a 
PCI slot) can enable the flag and fix their broken drivers, while those
who are less confident in the quality of their components can leave it off
and let the OS deal with it.

Put me down for a ++ on #2, with a side of hash browns, please.


Jordan Crouse
Systems Software Development Engineer 
Advanced Micro Devices, Inc.

More information about the coreboot mailing list