Two drivers sharing a single PCI device

O'Connor, Daniel darius at dons.net.au
Fri Feb 6 12:34:09 UTC 2015


> On 6 Feb 2015, at 22:25, Hans Petter Selasky <hps at selasky.org> wrote:
> On 02/06/15 04:50, O'Connor, Daniel wrote:
>> Hi,
>> I am working on an EHCI debug driver and I have the basics working (attach, probe for a debug dongle and send data back and forth) - https://bitbucket.org/DJOConnor/dbgp
>> 
>> However one problem remaining is that for it to work you have to detach the EHCI driver (obviously rather suboptimal :) so I am wondering what the best way would be to allow both ehci and dbgp to attach to the same PCI device.
>> 
>> The dbgp driver doesn't touch the EHCI registers once it's running but it does have some code to start the EHCI controller and reset the port during attach.
>> 
>> I can modify echi so it uses RF_SHAREABLE which should allow them to get newbus handles to the same area but the problem is that only one probe routine gets called.
> 
> You possibly want "D_TRACKCLOSE" in d_flags in your cdevsw.

> What's the advantage of using the debug port over the regular EHCI USB interface?

I don't think that would help. It is supposed to be (largely) separate from the regular EHCI controller - it has it's own register set and it can steal the debug port from the regular controller so it doesn't appear occupied (although there is a bit of messing around on port reset).

The advantage is that it runs separately to the EHCI interface and it is quite simple to talk to, there is more information in appendix C of the USB 2 spec (usb_20.pdf).

--
Daniel O'Connor
"The nice thing about standards is that there
are so many of them to choose from."
 -- Andrew Tanenbaum
GPG Fingerprint - 5596 B766 97C0 0E94 4347 295E E593 DC20 7B3F CE8C



More information about the freebsd-hackers mailing list