How to disable dcache on MPC82xx platform
Prashant Alange
prashant.alange at gmail.com
Wed Aug 10 07:50:33 EST 2005
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= 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 <dan at embeddededge.com> wrote:
>
> 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