Question about combining a PCI driver with an OF driver

Scott Wood scottwood at freescale.com
Wed Jan 5 06:23:17 EST 2011


On Tue, 4 Jan 2011 10:58:35 -0800
<Bruce_Leonard at selinc.com> wrote:

> Hi all,
> 
> I'm working on a project with an MPC8347 and three ethernet ports. Because 
> of end of life issues we've had to replace the part we're using for the 
> third ethernet port and we decided rather than rely on a vendor who would 
> pull a part out from under us every two to three years we would do our own 
> MAC in an FPGA.  In order to reduce driver work it was decided that we 
> would use the same hardware interface as the TSEC in the 8347 so we could 
> reuse the gianfar driver.

Making a faithful clone of any reasonably complex device strikes me as
more work than writing a new ethernet driver.

The last thing you want to end up doing is...

>  And for speed sake it would go on the PCI bus. 
> (So much for letting HW make decisions regarding SW :)   )

...hacking up the existing driver to deal with the quirks of the clone,
and having to maintain those hacks. :-)

> So now I'm stuck with hacking the gianfar driver to work on PCI.  However, 
> I think it would be a lot more elegant if I could wrap the gianfar driver 
> with a PCI interface.  After all the idea is sound, with a HW interface 
> that looks like the TSEC I should be able to reuse the gianfar driver. But 
> the gianfar driver is an open firmware driver registered with a call to 
> of_register_platform_driver() and depending on the order in which the 
> busses are walked the PCI bus may not be enumerated and available when the 
> onboard TSECS are detected and the gianfar driver claims them.

It shouldn't matter -- the way buses work in Linux, you should be able
to add a platform device at any time, and the driver will receive a
probe() callback.  The driver never actively searches for devices to
claim.

-Scott



More information about the Linuxppc-dev mailing list