[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