[openib-general] Generic device driver

Suresh Shelvapille suri at baymicrosystems.com
Fri Jul 15 09:03:55 PDT 2005


Hi:

I am using the Mellanox driver as a ref. for our own implementation of IB
device. I am only interested in MAD packets(for now!) and I have gone
through the mthca_init_one step by step. 

I see the mthca_create_agents() registering NULL for recv_handler(). 

What I am missing is, when a packet arrives at the PHY, how is the
recv_handler() being called? Just need the flow at this level. 

Thanks a lot.
Suri

-----Original Message-----
From: Hal Rosenstock [mailto:halr at voltaire.com] 
Sent: Wednesday, July 13, 2005 3:38 PM
To: Suresh Shelvapille
Cc: openib-general at openib.org
Subject: Re: [openib-general] Generic device driver

On Wed, 2005-07-13 at 15:19, Suresh Shelvapille wrote:
> Another newbee question. 
> 
> I only see a Mellanox HCA driver in the gen2/trunk, which is a PCI device.
> Where as, we have a proprietary implementation of the HCA, where the PHY
is
> accessed by the host via an FPGA (Host-bridge). 
> 
> 1. Is there a Generic Device Driver (I see it being mentioned in many
> places).

The generic device driver is a conccept. It is a set of required
(mandatory) APIs which the device driver needs to supply (at
registration time). Look at core/device.c.

> 2. If none, can I replace some files/functions within the Mellanox driver
> with the low level addresses etc, to achieve the same. 

Yes, you can use the Mellanox HCA driver structure (strip out the
implementation). You might want to change the names from mthca_xxxx to
fpga_name_xxx where fpga_name is some name used by your FPGA based
implementation.

Start with mthca_provider.c (and registration/deregistration) and build
up.

-- Hal




More information about the general mailing list