Marvell MV6436xx ethernet driver patch

Mark A. Greer mgreer at mvista.com
Thu Sep 1 02:04:17 EST 2005


On Wed, Aug 31, 2005 at 07:55:49AM +0100, Nicolas DET wrote:
> > This is a good idea.  I suspect that most of the gain is from
> > turning off snooping and flushing/invalidating the cache explicitly.
> > Implementation-wise, I'd rather we not manipulate the MV643XX_ETH_BAR_?
> > registers directly in the driver.  Today that is done in platform
> > setup code.  This has promise but needs to be reworked.
> 
> Yeah, the point was to have no snooping for this part of the chip.
> The descriptors in SRAM, and the data in DDR. This give a serious boost.
> 
> I noticed MV643xx memory performances are really higher when turning
> off snoop (not only for ethernet).
> 
> Well, I confess manipulating such thing here, is not totaly smart.
> However I don't really know where to put them.
> Maybe, somewhere in arch/ppc ?
> 
> Because, at some pooint the driver will need to have this modified in order
> to reall work correctly.
> 
> For example, if you use a module with that option (it will disable
> snooping) and then 'rmmod & modprobe' a new module without it will not work
> (no snooping as the new module expect!).
> 
> Conclusion: yes, touching ETH_BAR isn't really well here, but where could
> we move it ?

The enet->mem BARs are configured in
arch/ppc/syslib/mv64xc60.c:mv64360_config_io2mem_windows().

You can choose how the BAR reg is configured via the mv64x60_setup_info's
'enet_options' member.  The setup_info is passed in from your platform file
via mv64x60_init() at setup_arch() time.  There are examples arch/ppc/platforms.

The enet->sram window can be set up any way you want it in the platform
file as well.  Again, there are examples in arch/ppc/platforms.

IMHO, the platform file should be where things like that belong.

Mark



More information about the Linuxppc-dev mailing list