How to disable dcache on MPC82xx platform

Dan Malek dan at embeddededge.com
Wed Aug 10 02:37:43 EST 2005


On Aug 9, 2005, at 10:57 AM, Prashant Alange wrote:

> Since the existing UART/ethernet drivers are using cpm_hostalloc() so
> I am also using the same function.

As I have said too many times before, cpm_hostalloc() is only used
to allocate small memory regions that would otherwise be wasteful
with the normal Linux memory allocators.  This function does not
do anything special with the memory, aside from allowing us have
multiple drivers share a page for efficiency.

>  Then can I use kmalloc() to alloc
> such huge memory.

Yes, and you should.

>  If at all I have to configure BATx to just test how
> it behaves.

No, that's not all you have to do.  It's not a trivial process
easily described here.

> .....   One more thing is that
> totally I am allocating about 1MB memory in a chunk of 200K.

I can't comprehend a reason why you need to allocate so much
space in a driver, especially for CPM devices.  The driver is just
a temporary FIFO for data flowing to/from other consumer/producers
of the data in the system.  If the software above a driver needs
that kind of buffering, it should manage that itself.

If you do need so much space, use the beauty of the CPM and
link multiple BDs with reasonable sized buffers more easily
managed by the existing Linux allocators.

The other alternative is just reserve memory using the 'mem='
start parameter so it isn't know to Linux, and manage entirely
yourself.


	-- Dan




More information about the Linuxppc-embedded mailing list