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