Thread (6 messages) 6 messages, 3 authors, 2015-10-02

Re: DSA driver - how to glue to a PCI based NIC's mdio?

From: Tim Harvey <tharvey@gateworks.com>
Date: 2015-09-30 21:27:20

On Wed, Sep 30, 2015 at 2:12 PM, Andrew Lunn [off-list ref] wrote:
On Wed, Sep 30, 2015 at 01:44:52PM -0700, Tim Harvey wrote:
quoted
Greetings,

I'm working on adding DSA support for a PCIe expansion card (designed
by us) that has common PCIe NIC connected via its mii-bus to a Marvell
MV88E6171. Because the NIC is a PCIe device, it has no device-tree
representation of its NIC or its mdio bus, but does register its mdio
bus with Linux.
It is possible to represent PCIe devices in device tree. Take a look
at ePAPR. Is the PCIe host in DT?
It is possible to represent PCI devices in device-tree however not in
a dynamic or plug-able fashion - they have to be nested per bus/slot
which defeats the purpose of dynamic enumeration.
quoted
Perhaps the right approach is to program the NIC's EEPROM on our board
with a PCI_ID/DEVICE_ID of ours, add support for those ID's to the
NIC's driver, and within the NIC's driver create and register dsa
platform device when our ID is encountered?
This sounds sensible. But i doubt you can add your DSA platform
information to the NIC's device driver. Better would be to have a
small shim driver which is loaded on your PCI_ID/DEVICE_ID. That would
instantiate the NIC driver, and insert a DSA platform device.
I was thinking of this as well, but then I would still need that shim
to know the netdevice that the driver I'm shimming creates so I can't
figure a way to do it without touching the PCI driver.

Tim
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help