Source-Changes-D archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: CVS commit: src/sys/dev/pci

 Hello Mark.

 > On Tuesday 10 March 2009 16:41:50 SAITOH Masanobu wrote:
 > > Module Name:       src
 > > Committed By:      msaitoh
 > > Date:              Tue Mar 10 03:41:50 UTC 2009
 > >
 > > Modified Files:
 > >    src/sys/dev/pci: if_wm.c if_wmreg.h
 > >
 > > Log Message:
 > > add an entry for 82567LF-3.
 > > fix the register access for ICH10DO.
 > Yay.  That fixed the recognising the PHY issue I was seeing in our Optiplex 
 > 760's, which have an 82567LM-3.  My laptop has (it appears) the same 
 > problem, but its got an "82801I mobile (AMT) LAN Controller" (which the 
 > pci.ids database calls an 82567LM) so should it also be marked as an 
 > ICH10?  There is also a bunch of other 82567 variant's listed in pci.ids, 
 > some of which we have in pcidevs and if_wm.c under other names - do they 
 > need the same?
 > cheers
 > mark

 0) In fact, 82567xx is not the MAC's name but PHY's name. The format of the
ICH's component name is:


                ICH1 = A
                ICH2 = B
                ICH10 = J

    We should call ICH10's MAC as "82801J xxxxx LAN Controller."

 1) It depends on the manufacturer that what PHY device is connect to, so
    we shoudn't guess what PHY device is with MAC type. if_wm.c rev. 1.167
    is not fix but quick hack...

    The problem of our driver is that read/write functions for MII registers
    are decided by MAC's type(WM_T_*).

 2) As i wrote:

    > I think we should move the MII page-select code into sys/dev/mii part.

   The heart of the problems are:

        A) some MACs have to make read/write access for MII registers
           atomically. Our MII layer doesn't know how to make the access
           atomic, so we have to do it in the MAC layer

        B) the page select function is depend on each PHY, but some register
           access routines are in MAC's driver(because of A)

   To solve this problem clearly:

        1) move all page select code into MII layer. MAC drivers dont
           bother whether a register access has to do with a page select

        2) Add lock and unlock function pointer into MII layer and MAC
           drivers set them if they are required.
        3) call them where the MII layer have to make the access atomic at.

   It's not so difficult, so I will try it soon.

                SAITOH Masanobu (

Home | Main Index | Thread Index | Old Index