Thread (6 messages) flat view 6 messages, 2 authors, 2005-08-09

Re: How to disable dcache on MPC82xx platform

From: Prashant Alange <hidden>
Date: 2005-08-09 21:50:35

Thanks Dan for your explaination. I am linking multiple BDs only but
no of BDs are very large in my case so I am allocating the memory and
updating the BD pointer for all BDs. I am thinking of using mem start
parameter option. I even tried using __get_free_page instead of using
cpm_hostalloc() but that also did not help.
If i use mem=3D option as kernel command line argument then I will have
to just ioremap() this reserved address in my driver and start
accessing the memory.  I do not have to worry about cache related
things.  right?

Thanks again,
Prashant


On 8/9/05, Dan Malek [off-list ref] wrote:
=20
On Aug 9, 2005, at 10:57 AM, Prashant Alange wrote:
=20
quoted
Since the existing UART/ethernet drivers are using cpm_hostalloc() so
I am also using the same function.
=20
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.
=20
quoted
 Then can I use kmalloc() to alloc
such huge memory.
=20
Yes, and you should.
=20
quoted
 If at all I have to configure BATx to just test how
it behaves.
=20
No, that's not all you have to do.  It's not a trivial process
easily described here.
=20
quoted
.....   One more thing is that
totally I am allocating about 1MB memory in a chunk of 200K.
=20
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.
=20
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.
=20
The other alternative is just reserve memory using the 'mem=3D'
start parameter so it isn't know to Linux, and manage entirely
yourself.
=20
=20
       -- Dan
=20
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help