[coreboot] PCI bus mastering
Andrei Birjukov
andrei.birjukov at artecdesign.ee
Fri May 9 16:06:37 CEST 2008
Hello,
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
packages.
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
the patch.
Regards,
Andrei
--
Andrei Birjukov
Embedded Software Engineer
Artec Design LLC
Turi 10C, 11313, Tallinn, Estonia
Phone: +3726718559
Fax: +3726718555
GSM: +37256908939
E-mail: andrei.birjukov at artecdesign.ee
WWW: http://www.artecdesign.com
More information about the coreboot
mailing list