mge, mii/e1000phy

Pyun YongHyeon pyunyh at
Wed Sep 23 21:40:59 UTC 2009

On Wed, Sep 23, 2009 at 10:55:35PM +0200, Kristof Provost wrote:
> On 2009-09-23 13:24:48 (-0700), Pyun YongHyeon <pyunyh at> wrote:
> > I'm pretty sure the device id for 88E1116 PHY is 0x21. Do you see
> > printed model number 88E1118 on your hardware? If so I have no idea
> > why Marvell use the same device id. Do you have access to 88E1118 
> > HY data sheet?
> > 
> I've just double checked. The documentation from TS claims it's an
> 88E1118 and that's what I see on the chip itself as well.
> I don't have access to the data sheet, that would make this exercise far
> too easy.
> > I wanted to know advertised PHY capabilities as mge(4) explicitly
> > disabled 1000baseT/half-duplex mode in driver layer. But MV88F5182
> > data sheet said it supports 1000baseT/half-duplex mode.
> > 
> I'll try to find out tomorrow. I'm not sure if it'll matter though, as
> the switch I'm using right now is a 10/100 model.

Oh, this question may not be related with your link issue. I wanted
to know why mge(4) had to check media type in its ioctl handler.
The advertised capability has nothing to do with link partner's
capability. The advertised capability is used in auto-negotiation
process and the PHY will choose the highest common denominator
capability. So if we want to disable 1000baseT/half-duplex for
whatever reason, it can be achieved by not advertising 1000baseT/
half-duplex capability to mii layer.

> > > > I'm not author of mge(4) so I'm not familiar with mge(4). But it
> > > > seems that mge(4) lacks link state change handler. Normally NICs
> > > > are required to reprogram MAC to match resolved speed/duplex/
> > > > flow-control of link when it know it established a valid link which
> > > > is notified from mii(4).
> > > > 
> > > If that's the case I'd expect the driver not to work on my Sheevaplug
> > > either. The only difference I see is the PHY.
> > > 
> > 
> > Could be, but if you manually set media it reinitializes PHY and it
> > will call mge_ifmedia_upd() which in turn reinitializes the
> > controller. I guess this is workaround in mge(4).
> > 
> Do you mean setting the media through an ioctl by 'manually set media'? 


> If so, that doesn't really apply for either the TS-7800 or the 
> Sheevaplug as both need the network to work before userspace can do 
> anything.

Correct. Hmm, I have to read mge(4) again if time permits. 

> Kristof

More information about the freebsd-current mailing list