[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date: Tue, 9 Sep 2008 16:26:35 +0100
From: Steve.Glendinning@...c.com
To: Guennadi Liakhovetski <g.liakhovetski@....de>
Cc: netdev@...r.kernel.org, Ian.Saturley@...c.com
Subject: Re: Extend smc911x to support LAN921x chips - differences?
Hi Guennadi,
> I have to support the LAN9215 chip from SMSC under Linux. Of course,
there
> is the manufacturer provided smsc911x driver, that supports both chip
> families, but I would prefer to extend the mainline smc911x driver to
also
> support 921x. I have both datasheets, they are freely downloadable from
> SMSC site, and I have both drivers, but they are absolutely different.
To
> make my decision and the work easier - maybe someone knows from the top
of
> their head, what the relevant differences between the chips are?
>
> The vendor driver does not really differentiate between the chips. It
does
> read the chip version, and sets the "generation" variable, but then that
> variable is only used once to rule out the oldest chips, which anyway
are
> not supported by smc911x. So I tried the in-kernel driver with only
added
> chip IDs added, it can access registers, read and write the MAC-address,
> interrupts are generated too, but so far I see nothing on the wire, and
> the PHY reports "link down".
Did you have the in-tree driver succesfully working with LAN9115?
The only hardware difference between the two is that LAN921[5678] has an
Auto-MDIX PHY. This adds a configuration bit in one of the
vendor-specific
PHY registers to force the feature off, but it defaults to Auto-MDIX
enabled.
All of the SCR and MAC registers (and the remaining PHY registers) are
*identical*, so any working driver should just need the ID register
changing to recognise the newer part.
Early revisions of LAN911X had a hardware bug which is most commonly
experienced when joining/leaving multicast groups. The smsc911x driver
contains a workaround for this, but the in-tree driver does not. LAN921X
came after this was fixed in hardware, so this workaround is not
necessary.
The vast majority of users i've worked with have ended up using the
out-of-tree smsc911x driver, as it "just works" on many platforms.
I'll be re-submitting another candidate when I've finished working on the
LAN9500 USB ethernet driver, but for now the latest submission:
http://marc.info/?l=linux-netdev&m=121240395122475&w=2
Regards,
--
Steve Glendinning
SMSC GmbH
m: +44 777 933 9124
e: steve.glendinning@...c.com
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists