[coreboot] PCI bus mastering
andrei.birjukov at artecdesign.ee
Fri May 9 16:06:37 CEST 2008
I am writing to the CoreBoot mailing list concerning the PCI bus
mastering issue that prevents Windows CE drivers from functioning.
Artec DBE62 board has a VIA Velocity NIC, that requires bus mastering in
order to perform DMA and function correctly. I noticed that nearly all
Linux drivers set the bus mastering flag manually during init stage.
Unfortunately, this is not the case with Windows CE drivers. I would be
more than happy to do the same thing there, but the problem is, drivers
for modern NICs are often supplied as pre-compiled binaries. And it is
not always feasible to init the mastering flag in a CE board support
Provided that we want CoreBoot to set PCI bus mastering for a NIC, what
is the most adequate way of doing it?
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.
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.
3. It must be also possible to find the PCI device during the
mainboard-specific init and issue the mastering command from there.
We have already implemented it as (2), please let me know if you want
Embedded Software Engineer
Artec Design LLC
Turi 10C, 11313, Tallinn, Estonia
E-mail: andrei.birjukov at artecdesign.ee
More information about the coreboot