Project Home
Project Home
Wiki
Wiki
Discussion Forums
Discussions
Project Information
Project Info
Forum Topic - General advice for Marvell 88E6176 switch driver development?: (4 Items)
   
General advice for Marvell 88E6176 switch driver development?  
Hello,
This is more of a "broad brushstroke" question, mainly due to my lack of QNX knowledge. 

Our hardware has a 88E6176 switch attached on the MII bus. We would like to give the user the ability to set the various
 registers over a local socket. It would be a low level interface, i.e. "set this register to this value."

So here are some basic questions:

- Can I simply call mmap_device_memory to write to the device? Probably not, because the existing ethernet driver will 
be writing stuff to the MII bus.

- Which category would this driver belong in? It's not really an io-pkt driver.

- Is there already a device driver for something similar, with associated source code?

- Is there a PDF describing how to write device drivers? I found one called "QNX  Momentics  DDK - Network Devices" but 
it's for Neutrino 6.3. Also the MII_ functions it describes don't seem to be supported in Neutrino 6.5 SP1. For example,
 a help file search for MII_Register_Extended returns no results (Momentics version is 4.7).

Thanks!
Re: General advice for Marvell 88E6176 switch driver development?  
You can add a devctl call to the driver so that an external program can
read/write the switch registers. Here is a programming guide for io-pkt
drivers.

http://community.qnx.com/sf/sfmain/do/downloadAttachment/projects.networkin
g/discussion.drivers.topc20933/post89118;jsessionid=8628BFDB82FF9A97611B177
AAA18FDA4?id=atch11180




On 2014/8/15, 10:10 AM, "Derek Ross" <community-noreply@qnx.com> wrote:

>Hello,
>This is more of a "broad brushstroke" question, mainly due to my lack of
>QNX knowledge. 
>
>Our hardware has a 88E6176 switch attached on the MII bus. We would like
>to give the user the ability to set the various registers over a local
>socket. It would be a low level interface, i.e. "set this register to
>this value."
>
>So here are some basic questions:
>
>- Can I simply call mmap_device_memory to write to the device? Probably
>not, because the existing ethernet driver will be writing stuff to the
>MII bus.
>
>- Which category would this driver belong in? It's not really an io-pkt
>driver.
>
>- Is there already a device driver for something similar, with associated
>source code?
>
>- Is there a PDF describing how to write device drivers? I found one
>called "QNX  Momentics  DDK - Network Devices" but it's for Neutrino 6.3.
>Also the MII_ functions it describes don't seem to be supported in
>Neutrino 6.5 SP1. For example, a help file search for
>MII_Register_Extended returns no results (Momentics version is 4.7).
>
>Thanks!
>
>
>
>_______________________________________________
>
>Networking Drivers
>http://community.qnx.com/sf/go/post111453
>To cancel your subscription to this discussion, please e-mail
>drivers-networking-unsubscribe@community.qnx.com

Re: General advice for Marvell 88E6176 switch driver development?  
> You can add a devctl call to the driver so that an external program can
> read/write the switch registers. Here is a programming guide for io-pkt
> drivers.
> 
> http://community.qnx.com/sf/sfmain/do/downloadAttachment/projects.networkin
> g/discussion.drivers.topc20933/post89118;jsessionid=8628BFDB82FF9A97611B177
> AAA18FDA4?id=atch11180
> 

There's an updated version of that note in the SDP 6.6 documentation:

http://www.qnx.com/developers/docs/660/topic/com.qnx.doc.core_networking.user_guide/topic/native_drvr.html?cp=3_0_2_7

along with a couple of other appendices on writing network drivers.

Re: General advice for Marvell 88E6176 switch driver development?  
We've updated the io-pkt documentation since that original document and include it as part of the 6.6.0 documentation:
http://www.qnx.com/developers/docs/660/index.jsp?topic=%2Fcom.qnx.doc.core_networking.user_guide%2Ftopic%2Fabout.html&cp
=3_0_2

"Writing Network Drivers for io-pkt" is the updated version and there is also a link to the sample code there as well.